Explorar el Código

Modelled first 13 rules

Yentl Van Tendeloo hace 7 años
padre
commit
f209b653b0
Se han modificado 1 ficheros con 274 adiciones y 0 borrados
  1. 274 0
      bootstrap/MvK_rules.mvc

+ 274 - 0
bootstrap/MvK_rules.mvc

@@ -693,6 +693,280 @@ Rule Call_Params_First_Single_N10 {
     }
 }
 
+Rule Call_Params_Last_N11 {
+    Root N11_0 {}
+    Match N11_1 {
+        match = True
+    }
+    Match N11_2 {
+        match = True
+    }
+    Match N11_3 {}
+    Match N11_4 {}
+    Match N11_5 {}
+    Match N11_6 {}
+    Match N11_7 {}
+    Create N11_8 {}
+    Create N11_9 {}
+    Match N11_10 {}
+    Match N11_11 {}
+    Match N11_12 {
+        value = "a"
+    }
+    Match N11_13 {}
+    Match N11_14 {}
+    Create N11_15 {
+        value = "'call'"
+    }
+    Match N11_16 {
+        value = "!call"
+    }
+    Match N11_17 {}
+    Create N11_18 {}
+    Create N11_19 {
+        value = "'init'"
+    }
+    Match N11_20 {}
+
+    MatchEdge (N11_0, N11_1) {
+        value = "username"
+    }
+    MatchEdge (N11_1, N11_2) {
+        value = "'frame'"
+    }
+    DeleteEdge (N11_2, N11_16) {
+        value = "'IP'"
+    }
+    DeleteEdge (N11_2, N11_17) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N11_2, N11_18) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N11_2, N11_19) {
+        value = "'phase'"
+    }
+    DeleteEdge (N11_2, N11_14) {
+        value = "'phase'"
+    }
+    MatchEdge (N11_2, N11_10) {
+        value = "'returnvalue'"
+    }
+    CreateEdge (N11_2, N11_13) {
+        value = "'IP'"
+    }
+    MatchEdge (N11_3, N11_16) {
+        value = "'caller'"
+    }
+    MatchEdge (N11_3, N11_2) {
+        value = "'prev'"
+    }
+    MatchEdge (N11_3, N11_20) {
+        value = "'symbols'"
+    }
+    MatchEdge (N11_3, N11_5) {
+        value = "'IP'"
+    }
+    MatchEdge (N11_4, N11_5) {
+        value = "'body'"
+    }
+    MatchEdge (N11_4, N11_6) {
+        value = "'params'"
+    }
+    MatchEdge (N11_6, N11_7) {
+        value = "a"
+    }
+    CreateEdge (N11_8, N11_7) {}
+    CreateEdge (N11_8, N11_9) {}
+    CreateEdge (N11_9, N11_10) {
+        value = "'value'"
+    }
+    MatchEdge (N11_11, N11_14) {
+        value = "'next_param'"
+    }
+    MatchEdge (N11_11, N11_12) {
+        value = "'name'"
+    }
+    MatchEdge (N11_14, N11_13) {
+        value = "'value'"
+    }
+    MatchEdge (N11_16, N11_14) {
+        value = "'last_param'"
+    }
+    CreateEdge (N11_17, N11_16) {
+        value = "'inst'"
+    }
+    CreateEdge (N11_17, N11_15) {
+        value = "'phase'"
+    }
+    CreateEdge (N11_18, N11_17) {
+        value = "'prev'"
+    }
+    CreateEdge (N11_20, N11_8) {}
+}
+
+Rule Call_Params_Next_N12 {
+    Root N12_0 {}
+    Match N12_1 {}
+    Match N12_2 {}
+    Match N12_3 {}
+    Match N12_4 {}
+    Match N12_5 {}
+    Match N12_6 {}
+    Match N12_7 {}
+    Create N12_8 {}
+    Create N12_9 {}
+    Match N12_10 {}
+    Match N12_11 {}
+    Match N12_12 {}
+    Match N12_13 {}
+    Match N12_14 {
+        value = "a"
+    }
+    Create N12_15 {}
+    Match N12_16 {}
+    Match N12_17 {}
+    Match N12_18 {}
+    Match N12_19 {
+        value = "!call"
+    }
+    Create N12_20 {
+        value = "'init'"
+    }
+
+    MatchEdge (N12_0, N12_1) {
+        value = "username"
+    }
+    MatchEdge (N12_1, N12_2) {
+        value = "'frame'"
+    }
+    MatchEdge (N12_2, N12_10) {
+        value = "'returnvalue'"
+    }
+    DeleteEdge (N12_2, N12_11) {
+        value = "'phase'"
+    }
+    DeleteEdge (N12_2, N12_17) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N12_2, N12_15) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N12_2, N12_16) {
+        value = "'IP'"
+    }
+    DeleteEdge (N12_2, N12_19) {
+        value = "'IP'"
+    }
+    CreateEdge (N12_2, N12_20) {
+        value = "'phase'"
+    }
+    MatchEdge (N12_3, N12_5) {
+        value = "'IP'"
+    }
+    MatchEdge (N12_3, N12_13) {
+        value = "'symbols'"
+    }
+    MatchEdge (N12_3, N12_2) {
+        value = "'prev'"
+    }
+    MatchEdge (N12_3, N12_19) {
+        value = "'caller'"
+    }
+    MatchEdge (N12_4, N12_6) {
+        value = "'params'"
+    }
+    MatchEdge (N12_4, N12_5) {
+        value = "'body'"
+    }
+    MatchEdge (N12_6, N12_7) {
+        value = "a"
+    }
+    CreateEdge (N12_8, N12_7) {}
+    CreateEdge (N12_8, N12_9) {}
+    CreateEdge (N12_9, N12_10) {
+        value = "'value'"
+    }
+    MatchEdge (N12_11, N12_18) {
+        value = "'next_param'"
+    }
+    MatchEdge (N12_11, N12_16) {
+        value = "'value'"
+    }
+    MatchEdge (N12_12, N12_14) {
+        value = "'name'"
+    }
+    MatchEdge (N12_12, N12_11) {
+        value = "'next_param'"
+    }
+    CreateEdge (N12_13, N12_8) {}
+    CreateEdge (N12_15, N12_17) {
+        value = "'prev'"
+    }
+    CreateEdge (N12_17, N12_18) {
+        value = "'phase'"
+    }
+    CreateEdge (N12_17, N12_19) {
+        value = "'inst'"
+    }
+}
+
+Rule Call_Resolve_No_Params_N13 {
+    Root N13_0 {}
+    Match N13_1 {}
+    Match N13_2 {}
+    Match N13_3 {
+        value = "'init'"
+    }
+    Create N13_4 {}
+    Match N13_5 {}
+    Match N13_6 {
+        value = "!call"
+    }
+    Create N13_7 {
+        value = "'call'"
+    }
+    Match N13_8 {}
+    NAC N13_9 {}
+
+    MatchEdge (N13_0, N13_1) {
+        value = "username"
+    }
+    MatchEdge (N13_1, N13_2) {
+        value = "'frame'"
+    }
+    DeleteEdge (N13_2, N13_6) {
+        value = "'IP'"
+    }
+    MatchEdge (N13_2, N13_3) {
+        value = "'phase'"
+    }
+    CreateEdge (N13_2, N13_4) {
+        value = "'evalstack'"
+    }
+    DeleteEdge (N13_2, N13_5) {
+        value = "'evalstack'"
+    }
+    CreateEdge (N13_2, N13_8) {
+        value = "'IP'"
+    }
+    CreateEdge (N13_4, N13_5) {
+        value = "'prev'"
+    }
+    CreateEdge (N13_5, N13_6) {
+        value = "'inst'"
+    }
+    CreateEdge (N13_5, N13_7) {
+        value = "'phase'"
+    }
+    NACEdge (N13_6, N13_9) {
+        value = "'params'"
+    }
+    MatchEdge (N13_6, N13_8) {
+        value = "'func'"
+    }
+}
+
 Rule If_False_N21 {
     Root N21_root {}
     Match N21_userroot {