瀏覽代碼

Modelled first 20 rules

Yentl Van Tendeloo 7 年之前
父節點
當前提交
88fee8e5f4
共有 1 個文件被更改,包括 202 次插入1 次删除
  1. 202 1
      bootstrap/MvK_rules.mvc

+ 202 - 1
bootstrap/MvK_rules.mvc

@@ -1090,7 +1090,208 @@ Rule Continue_N16 {
     }
 }
 
-Rule If_False_N21 {
+Rule Declare_Init_N17 {
+    Root N17_0 {}
+    Match N17_1 {}
+    Match N17_2 {}
+    Delete N17_3 {
+        value = "'init'"
+    }
+    Create N17_4 {
+        value = "'finish'"
+    }
+    Match N17_5 {
+        value = "!declare"
+    }
+    Match N17_6 {}
+    Match N17_7 {}
+    Create N17_8 {}
+    
+    MatchEdge (N17_0, N17_1) {
+        value = "username"
+    }
+    MatchEdge (N17_1, N17_2) {
+        value = "'frame'"
+    }
+    DeleteEdge (N17_2, N17_3) {
+        value = "'phase'"
+    }
+    CreateEdge (N17_2, N17_4) {
+        value = "'finish'"
+    }
+    MatchEdge (N17_2, N17_5) {
+        value = "'IP'"
+    }
+    MatchEdge (N17_2, N17_6) {
+        value = "'symbols'"
+    }
+    MatchEdge (N17_5, N17_7) {
+        value = "'var'"
+    }
+    CreateEdge N17_9 (N17_6, N17_8) {}
+    CreateEdge (N17_9, N17_7) {}
+}
+
+Rule Global_Init_N18 {
+    Root N18_0 {}
+    Match N18_1 {}
+    Match N18_2 {}
+    Match N18_3 {}
+    Delete N18_4 {
+        value = "'init'"
+    }
+    Create N18_5 {
+        value = "'finish'"
+    }
+    Match N18_6 {
+        value = "!global"
+    }
+    Match N18_7 {}
+    Create N18_8 {}
+
+    MatchEdge (N18_0, N18_1) {
+        value = "username"
+    }
+    MatchEdge (N18_1, N18_2) {
+        value = "'frame'"
+    }
+    MatchEdge (N18_1, N18_3) {
+        value = "'globals'"
+    }
+    DeleteEdge (N18_2, N18_4) {
+        value = "'phase'"
+    }
+    CreateEdge (N18_2, N18_5) {
+        value = "'finish'"
+    }
+    MatchEdge (N18_2, N18_6) {
+        value = "'IP'"
+    }
+    MatchEdge (N18_6, N18_7) {
+        value = "'var'"
+    }
+    CreateEdge N18_9 (N18_3, N18_8) {}
+    CreateEdge (N18_9, N18_7) {}
+}
+
+Rule If_Cond_N19 {
+    Root N19_0 {}
+    Match N19_1 {}
+    Match N19_2 {}
+    Match N19_3 {
+        value = "'init'"
+    }
+    Create N19_4 {}
+    Match N19_5 {}
+    Match N19_6 {
+        value = "!if"
+    }
+    Create N19_7 {
+        value = "'cond'"
+    }
+    Match N19_8 {}
+
+    MatchEdge (N19_0, N19_1) {
+        value = "username"
+    }
+    MatchEdge (N19_1, N19_2) {
+        value = "'frame'"
+    }
+    MatchEdge (N19_2, N19_3) {
+        value = "'phase'"
+    }
+    DeleteEdge (N19_2, N19_6) {
+        value = "'IP'"
+    }
+    CreateEdge (N19_2, N19_4) {
+        value = "'evalstack'"
+    }
+    DeleteEdge (N19_2, N19_5) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N19_2, N19_8) {
+        value = "'IP'"
+    }
+    CreateEdge (N19_4, N19_5) {
+        value = "'prev'"
+    }
+    CreateEdge (N19_5, N19_6) {
+        value = "'inst'"
+    }
+    CreateEdge (N19_5, N19_7) {
+        value = "'phase'"
+    }
+    MatchEdge (N19_6, N19_8) {
+        value = "'cond'"
+    }
+}
+
+Rule If_False_Else_N20 {
+    Root N20_0 {}
+    Match N20_1 {}
+    Match N20_2 {}
+    Match N20_3 {
+        value = "'cond'"
+    }
+    Match N20_4 {
+        value = "!if"
+    }
+    Create N20_5 {}
+    Match N20_6 {
+        value = "False"
+        match = True
+    }
+    Create N20_7 {
+        value = "'init'"
+    }
+    Match N20_8 {}
+    Match N20_9 {}
+    Create N20_10 {
+        value = "'finish'"
+    }
+
+    MatchEdge (N20_0, N20_1) {
+        value = "username"
+    }
+    MatchEdge (N20_1, N20_2) {
+        value = "'frame'"
+    }
+    DeleteEdge (N20_2, N20_3) {
+        value = "'phase'"
+    }
+    DeleteEdge (N20_2, N20_4) {
+        value = "'IP'"
+    }
+    CreateEdge (N20_2, N20_5) {
+        value = "'evalstack'"
+    }
+    MatchEdge (N20_2, N20_6) {
+        value = "'returnvalue'"
+    }
+    CreateEdge (N20_2, N20_7) {
+        value = "'phase'"
+    }
+    DeleteEdge (N20_2, N20_9) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N20_2, N20_8) {
+        value = "'IP'"
+    }
+    MatchEdge (N20_4, N20_8) {
+        value = "'else'"
+    }
+    CreateEdge (N20_5, N20_9) {
+        value = "'prev'"
+    }
+    CreateEdge (N20_9, N20_4) {
+        value = "'inst'"
+    }
+    CreateEdge (N20_9, N20_10) {
+        value = "'phase'"
+    }
+}
+
+Rule If_False_None_N21 {
     Root N21_root {}
     Match N21_userroot {
         match = True