Yentl Van Tendeloo 7 лет назад
Родитель
Сommit
8b0030ed3d
1 измененных файлов с 281 добавлено и 0 удалено
  1. 281 0
      bootstrap/MvK_rules.mvc

+ 281 - 0
bootstrap/MvK_rules.mvc

@@ -1687,3 +1687,284 @@ Rule Resolve_NoAttr_N29 {
     MatchEdge N29_10 (N29_6, N29_7) {}
     MatchEdge (N29_10, N29_9) {}
 }
+
+Rule Return_Eval_N30 {
+    Root N30_0 {}
+    Match N30_1 {}
+    Match N30_2 {}
+    Match N30_3 {}
+    Match N30_4 {
+        value = "'eval'"
+    }
+    Match N30_5 {
+        value = "!return"
+    }
+    Match N30_6 {}
+    Match N30_7 {}
+
+    MatchEdge (N30_0, N30_1) {
+        value = "username"
+    }
+    DeleteEdge (N30_1, N30_2) {
+        value = "'frame'"
+    }
+    CreateEdge (N30_1, N30_3) {
+        value = "'frame'"
+    }
+    DeleteEdge (N30_2, N30_4) {
+        value = "'phase'"
+    }
+    DeleteEdge (N30_2, N30_5) {
+        value = "'IP'"
+    }
+    DeleteEdge (N30_2, N30_6) {
+        value = "'returnvalue'"
+    }
+    DeleteEdge (N30_2, N30_3) {
+        value = "'prev'"
+    }
+    CreateEdge (N30_3, N30_6) {
+        value = "'returnvalue'"
+    }
+    DeleteEdge (N30_3, N30_7) {
+        value = "'returnvalue'"
+    }
+}
+
+Rule Return_NoValue_N31 {
+    Root N31_0 {}
+    Match N31_1 {}
+    Match N31_2 {}
+    Match N31_3 {}
+    Match N31_4 {
+        value = "'init'"
+    }
+    Match N31_5 {
+        value = "!return"
+    }
+    NAC N31_6 {}
+
+    MatchEdge (N31_0, N31_1) {
+        value = "username"
+    }
+    DeleteEdge (N31_1, N31_2) {
+        value = "'frame'"
+    }
+    CreateEdge (N31_1, N31_3) {
+        value = "'frame'"
+    }
+    DeleteEdge (N31_2, N31_4) {
+        value = "'phase'"
+    }
+    DeleteEdge (N31_2, N31_5) {
+        value = "'IP'"
+    }
+    DeleteEdge (N31_2, N31_3) {
+        value = "'prev'"
+    }
+    NACEdge (N31_5, N31_6) {
+        value = "'value'"
+    }
+}
+
+Rule Return_Value_N32 {
+    Root N32_0 {}
+    Match N32_1 {}
+    Match N32_2 {}
+    Match N32_3 {
+        value = "'init'"
+    }
+    Create N32_4 {}
+    Match N32_5 {
+        value = "!return"
+    }
+    Match N32_6 {}
+    Match N32_7 {}
+    Create N32_8 {
+        value = "'eval'"
+    }
+
+    MatchEdge (N32_0, N32_1) {
+        value = "username"
+    }
+    MatchEdge (N32_1, N32_2) {
+        value = "'frame'"
+    }
+    MatchEdge (N32_2, N32_3) {
+        value = "'phase'"
+    }
+    DeleteEdge (N32_2, N32_5) {
+        value = "'IP'"
+    }
+    CreateEdge (N32_2, N32_4) {
+        value = "'evalstack'"
+    }
+    DeleteEdge (N32_2, N32_6) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N32_2, N32_7) {
+        value = "'IP'"
+    }
+    CreateEdge (N32_4, N32_6) {
+        value = "'prev'"
+    }
+    CreateEdge (N32_6, N32_5) {
+        value = "'inst'"
+    }
+    CreateEdge (N32_6, N32_8) {
+        value = "'phase'"
+    }
+    MatchEdge (N32_5, N32_7) {
+        value = "'value'"
+    }
+}
+
+Rule While_Cond_N33 {
+    Root N33_0 {}
+    Match N33_1 {}
+    Match N33_2 {}
+    Match N33_3 {
+        value = "'init'"
+    }
+    Create N33_4 {}
+    Match N33_5 {
+        value = "!while"
+    }
+    Match N33_6 {}
+    Match N33_7 {}
+    Create N33_8 {
+        value = "'cond'"
+    }
+
+    MatchEdge (N33_0, N33_1) {
+        value = "username"
+    }
+    MatchEdge (N33_1, N33_2) {
+        value = "'frame'"
+    }
+    MatchEdge (N33_2, N33_3) {
+        value = "'phase'"
+    }
+    DeleteEdge (N33_2, N33_5) {
+        value = "'IP'"
+    }
+    CreateEdge (N33_2, N33_4) {
+        value = "'evalstack'"
+    }
+    DeleteEdge (N33_2, N33_6) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N33_2, N33_7) {
+        value = "'IP'"
+    }
+    CreateEdge (N33_4, N33_6) {
+        value = "'prev'"
+    }
+    CreateEdge (N33_6, N33_5) {
+        value = "'inst'"
+    }
+    CreateEdge (N33_6, N33_8) {
+        value = "'phase'"
+    }
+    MatchEdge (N33_5, N33_7) {
+        value = "'cond'"
+    }
+}
+
+Rule While_False_N34 {
+    Root N34_0 {}
+    Match N34_1 {}
+    Match N34_2 {}
+    Delete N34_3 {
+        value = "'cond'"
+    }
+    Create N34_4 {
+        value = "'finish'"
+    }
+    Match N34_5 {
+        value = "!while"
+    }
+    Match N34_6 {
+        value = "False"
+    }
+
+    MatchEdge (N34_0, N34_1) {
+        value = "username"
+    }
+    MatchEdge (N34_1, N34_2) {
+        value = "'frame'"
+    }
+    DeleteEdge (N34_2, N34_3) {
+        value = "'phase'"
+    }
+    CreateEdge (N34_2, N34_4) {
+        value = "'phase'"
+    }
+    MatchEdge (N34_2, N34_5) {
+        value = "'IP'"
+    }
+    MatchEdge (N34_2, N34_6) {
+        value = "'returnvalue'"
+    }
+}
+
+Rule While_True_N35 {
+    Root N35_0 {}
+    Match N35_1 {}
+    Match N35_2 {}
+    Delete N35_3 {
+        value = "'cond'"
+    }
+    Create N35_4 {
+        value = "'init'"
+    }
+    Match N35_5 {
+        value = "!while"
+    }
+    Create N35_6 {}
+    Match N35_7 {
+        value = "True"
+    }
+    Match N35_8 {}
+    Match N35_9 {}
+    Create N35_10 {
+        value = "'init'"
+    }
+
+    MatchEdge (N35_0, N35_1) {
+        value = "username"
+    }
+    MatchEdge (N35_1, N35_2) {
+        value = "'frame'"
+    }
+    DeleteEdge (N35_2, N35_3) {
+        value = "'phase'"
+    }
+    CreateEdge (N35_2, N35_4) {
+        value = "'phase'"
+    }
+    DeleteEdge (N35_2, N35_5) {
+        value = "'IP'"
+    }
+    CreateEdge (N35_2, N35_6) {
+        value = "'evalstack'"
+    }
+    MatchEdge (N35_2, N35_7) {
+        value = "'returnvalue'"
+    }
+    DeleteEdge (N35_2, N35_8) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N35_2, N35_9) {
+        value = "'IP'"
+    }
+    CreateEdge (N35_8, N35_5) {
+        value = "'inst'"
+    }
+    CreateEdge (N35_8, N35_10) {
+        value = "'phase'"
+    }
+    MatchEdge (N35_5, N35_9) {
+        value = "'body'"
+    }
+}