|
@@ -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'"
|
|
|
+ }
|
|
|
+}
|