Rule Access_Eval_N1 { Root N1_root {} Match N1_userroot { match = True } Match N1_frame { match = True } Delete N1_phase_D { value = "'eval'" match = True } Match N1_IP { value = "!access" match = True } Create N1_phase_C { value = "'finish'" } Delete N1_RV_D {} Create N1_RV_C {} Match N1_val {} MatchEdge (N1_root, N1_userroot) { value = "username" } MatchEdge (N1_userroot, N1_frame) { value = "'frame'" } MatchEdge (N1_frame, N1_IP) { value = "'IP'" } DeleteEdge (N1_frame, N1_phase_D) { value = "'phase'" } CreateEdge (N1_frame, N1_phase_C) { value = "'phase'" } CreateEdge (N1_frame, N1_RV_C) { value = "'returnvalue'" } DeleteEdge (N1_frame, N1_RV_D) { value = "'returnvalue'" } MatchEdge (N1_RV_D, N1_RV_C) { value = "'value'" } } Rule Access_Init_N2 { Root N2_root {} Match N2_userroot { match = True } Match N2_frame { match = True } Match N2_phase { match = True value = "'init'" } Match N2_IP_old { match = True value = "!access" } Create N2_evalstack_C {} Match N2_evalstack_M {} Match N2_IP_new {} Create N2_phase_new { value = "'eval'" } MatchEdge (N2_root, N2_userroot) { value = "username" } MatchEdge (N2_userroot, N2_frame) { value = "'frame'" } MatchEdge (N2_frame, N2_phase) { value = "'phase'" } DeleteEdge (N2_frame, N2_IP_old) { value = "'IP'" } CreateEdge (N2_frame, N2_evalstack_C) { value = "'evalstack'" } DeleteEdge (N2_frame, N2_evalstack_M) { value = "'evalstack'" } CreateEdge (N2_frame, N2_IP_new) { value = "'IP'" } CreateEdge (N2_evalstack_C, N2_evalstack_M) { value = "'prev'" } CreateEdge (N2_evalstack_M, N2_phase_new) { value = "'phase'" } CreateEdge (N2_evalstack_M, N2_IP) { value = "'inst'" } MatchEdge (N2_IP, N2_IP_new) { value = "'var'" } } Rule Assign_Assign_N3 { Root N3_0 {} Match N3_1 { match = True } Match N3_2 { match = True } Match N3_3 { match = True value = "!assign" } Delete N3_4 { match = True value = "'assign'" } Create N3_5 { value = "'finish'" } Match N3_6 {} Match N3_7 {} Match N3_8 {} MatchEdge (N3_0, N3_1) { value = "username" } MatchEdge (N3_1, N3_2) { value = "'frame'" } MatchEdge (N3_2, N3_3) { value = "'IP'" } DeleteEdge (N3_2, N3_4) { value = "'phase'" } CreateEdge (N3_2, N3_5) { value = "'phase'" } MatchEdge (N3_2, N3_6) { value = "'returnvalue'" } DeleteEdge (N3_2, N3_7) { value = "'variable'" } CreateEdge (N3_7, N3_6) { value = "'value'" } DeleteEdge (N3_7, N3_8) { value = "'value'" } } Rule Assign_Init_N4 { Root N4_0 {} Match N4_1 { match = True } Match N4_2 { match = True } Match N4_3 { match = True value = "'init'" } Create N4_4 {} Match N4_5 {} Match N4_6 { match = True value = "!assign" } Create N4_7 { value = "'value'" } Match N4_8 {} MatchEdge (N4_0, N4_1) { value = "username" } MatchEdge (N4_1, N4_2) { value = "'frame'" } MatchEdge (N4_2, N4_3) { value = "'phase'" } DeleteEdge (N4_2, N4_6) { value = "'IP'" } CreateEdge (N4_2, N4_4) { value = "'evalstack'" } DeleteEdge (N4_2, N4_5) { value = "'evalstack'" } CreateEdge (N4_2, N4_8) { value = "'IP'" } CreateEdge (N4_5, N4_6) { value = "'inst'" } CreateEdge (N4_5, N4_7) { value = "'phase'" } MatchEdge (N4_6, N4_8) { value = "'var'" } } Rule Assign_Value_N5 { Root N5_0 {} Match N5_1 { match = True } Match N5_2 { match = True } Match N5_3 { match = True value = "'value'" } Match N5_4 { match = True value = "!assign" } Create N5_5 { match = True } Create N5_6 { value = "'init'" } Match N5_7 {} Match N5_8 {} Match N5_9 {} Create N5_10 { value = "'assign'" } MatchEdge (N5_0, N5_1) { value = "username" } MatchEdge (N5_1, N5_2) { value = "'frame'" } DeleteEdge (N5_2, N5_3) { value = "'phase'" } DeleteEdge (N5_2, N5_4) { value = "'IP'" } CreateEdge (N5_2, N5_5) { value = "'evalstack'" } CreateEdge (N5_2, N5_6) { value = "'phase'" } DeleteEdge (N5_2, N5_9) { value = "'evalstack'" } CreateEdge (N5_2, N5_7) { value = "'IP'" } MatchEdge (N5_2, N5_8) { value = "'returnvalue'" } CreateEdge (N5_2, N5_8) { value = "'variable'" } CreateEdge (N5_5, N5_9) { value = "'prev'" } DeleteEdge (N5_5, N5_9) { value = "'evalstack'" } CreateEdge (N5_9, N5_4) { value = "'inst'" } CreateEdge (N5_9, N5_10) { value = "'phase'" } MatchEdge (N5_4, N5_7) { value = "'value'" } } Rule Break_N6 { Root N6_0 {} Match N6_1 { match = True } Match N6_2 { match = True } Delete N6_3 { value = "'init'" match = True } Create N6_4 { value = "'finish'" } Match N6_5 { value = "!break" match = True } Match N6_6 { value = "!while" } MatchEdge (N6_0, N6_1) { value = "username" } MatchEdge (N6_1, N6_2) { value = "'frame'" } DeleteEdge (N6_2, N6_3) { value = "'phase'" } CreateEdge (N6_2, N6_4) { value = "'phase'" } DeleteEdge (N6_2, N6_5) { value = "'IP'" } CreateEdge (N6_2, N6_6) { value = "'IP'" } MatchEdge (N6_5, N6_6) { value = "'while'" } } Rule Call_Call_None_N7 { Root N7_0 {} Match N7_1 { match = True } Create N7_2 {} Match N7_3 { match = True } Create N7_4 {} Create N7_5 {} Create N7_6 { value = "!call" } Create N7_7 {} Match N7_8 {} Create N7_9 { value = "'finish'" } Delete N7_10 { value = "'call'" match = True } NAC N7_11 {} Match N7_12 {} Create N7_13 { value = "'init'" } MatchEdge (N7_0, N7_1) { value = "username" } CreateEdge (N7_1, N7_2) { value = "'frame'" } DeleteEdge (N7_1, N7_3) { value = "'frame'" } CreateEdge (N7_2, N7_4) { value = "'evalstack'" } CreateEdge (N7_2, N7_5) { value = "'symbols'" } CreateEdge (N7_2, N7_6) { value = "'caller'" } CreateEdge (N7_2, N7_7) { value = "'returnvalue'" } CreateEdge (N7_2, N7_12) { value = "'IP'" } CreateEdge (N7_2, N7_13) { value = "'phase'" } NACEdge (N7_6, N7_11) { value = "'last_param'" } CreateEdge (N7_2, N7_3) { value = "'prev'" } MatchEdge (N7_3, N7_6) { value = "'IP'" } MatchEdge (N7_3, N7_8) { value = "'returnvalue'" } CreateEdge (N7_3, N7_9) { value = "'phase'" } DeleteEdge (N7_3, N7_10) { value = "'phase'" } MatchEdge (N7_8, N7_12) { value = "'body'" } } Rule Call_Call_Params_N8 { Root N8_0 {} Match N8_1 { match = True } Match N8_2 {} Match N8_3 {} Match N8_4 { value = "!call" } Match N8_5 {} Match N8_6 { value = "a" match = True } Create N8_7 { value = "'finish'" } Match N8_8 {} Match N8_9 {} Create N8_10 {} Match N8_11 {} Match N8_12 {} Match N8_13 {} Delete N8_14 { value = "'call'" } Match N8_15 {} MatchEdge (N8_0, N8_1) { value = "username" } CreateEdge (N8_1, N8_2) { value = "'frame'" } DeleteEdge (N8_1, N8_3) { value = "'frame'" } MatchEdge (N8_2, N8_4) { value = "'caller'" } MatchEdge (N8_2, N8_3) { value = "'prev'" } MatchEdge (N8_2, N8_15) { value = "'symbols'" } MatchEdge (N8_2, N8_13) { value = "'IP'" } MatchEdge (N8_3, N8_4) { value = "!call" } CreateEdge (N8_3, N8_7) { value = "'finish'" } MatchEdge (N8_3, N8_8) { value = "'returnvalue'" } DeleteEdge (N8_3, N8_14) { value = "'phase'" } MatchEdge (N8_4, N8_5) { value = "'last_param'" } MatchEdge (N8_5, N8_6) { value = "'name'" } CreateEdge (N8_10, N8_8) { value = "'value'" } MatchEdge (N8_11, N8_9) { value = "a" } MatchEdge (N8_12, N8_13) { value = "'body'" } MatchEdge (N8_12, N8_11) { value = "'params'" } CreateEdge N8_16 (N8_15, N8_10) {} CreateEdge (N8_16, N8_9) {} } Rule Call_Params_First_Multi_N9 { Root N9_0 {} Match N9_1 { match = True } Match N9_2 { match = True ] Create N9_3 {} Create N9_4 { value = "'init'" } Create N9_5 {} Create N9_6 {} Create N9_7 {} Match N9_8 {} Match N9_9 {} Match N9_10 {} Create N9_11 { value = "'init'" } Create N9_12 {} Match N9_13 {} Match N9_14 { value = "!call" match = True } Match N9_15 {} Match N9_16 {} Match N9_17 {} MatchEdge (N9_0, N9_1) { value = "username" } MatchEdge (N9_1, N9_2) { value = "'frame'" } DeleteEdge (N9_2, N9_13) { value = "'evalstack'" } DeleteEdge (N9_2, N9_14) { value = "'IP'" } CreateEdge (N9_2, N9_11) { value = "'init'" } DeleteEdge (N9_2, N9_15) { value = "'phase'" } MatchEdge (N9_2, N9_10) { value = "'returnvalue'" } CreateEdge (N9_2, N9_17) { value = "'IP'" } CreateEdge (N9_3, N9_14) { value = "'caller'" } CreateEdge (N9_3, N9_2) { value = "'prev'" } CreateEdge (N9_3, N9_4) { value = "'phase'" } CreateEdge (N9_3, N9_5) { value = "'evalstack'" } CreateEdge (N9_3, N9_6) { value = "'symbols'" } CreateEdge (N9_3, N9_7) { value = "'returnvalue'" } CreateEdge (N9_3, N9_8) { value = "'IP'" } MatchEdge (N9_10, N9_9) { value = "'params'" } MatchEdge (N9_10, N9_8) { value = "'body'" } CreateEdge (N9_12, N9_13) { value = "'prev'" } CreateEdge (N9_13, N9_14) { value = "'inst'" } MatchEdge (N9_14, N9_15) { value = "'params'" } MatchEdge (N9_15, N9_16) { value = "'next_param'" } MatchEdge (N9_15, N9_17) { value = "'value'" } } Rule Call_Params_First_Single_N10 { Root N10_0 {} Match N10_1 { match = True } Match N10_2 { match = True } Create N10_3 {} Create N10_4 { value = "'init'" } Create N10_5 {} Create N10_6 {} Create N10_7 {} Match N10_8 {} Create N10_9 { value = "'init'" } Match N10_10 {} Match N10_11 {} Match N10_12 {} Create N10_13 { value = "'call'" } Match N10_14 { value = "!call" } Match N10_15 {} Match N10_16 {} Create N10_17 {} MatchEdge (N10_0, N10_1) { value = "username" } MatchEdge (N10_1, N10_2) { value = "'frame'" } CreateEdge (N10_2, N10_16) { value = "'IP'" } CreateEdge (N10_2, N10_9) { value = "'phase'" } MatchEdge (N10_2, N10_10) { value = "'returnvalue'" } DeleteEdge (N10_2, N10_12) { value = "'evalstack'" } CreateEdge (N10_2, N10_17) { value = "'evalstack'" } DeleteEdge (N10_2, N10_14) { value = "'IP'" } DeleteEdge (N10_2, N10_15) { value = "'phase'" } CreateEdge (N10_3, N10_4) { value = "'phase'" } CreateEdge (N10_3, N10_5) { value = "'evalstack'" } CreateEdge (N10_3, N10_6) { value = "'symbols'" } CreateEdge (N10_3, N10_7) { value = "'returnvalue'" } MatchEdge (N10_10, N10_8) { value = "'body'" } MatchEdge (N10_10, N10_11) { value = "'params'" } CreateEdge (N10_12, N10_13) { value = "'phase'" } CreateEdge (N10_12, N10_14) { value = "'inst'" } MatchEdge (N10_14, N10_15) { value = "'params'" } MatchEdge (N10_14, N10_15) { value = "'last_param'" } MatchEdge (N10_15, N10_16) { value = "'value'" } CreateEdge (N10_17, N10_12) { value = "'prev'" } } 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_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_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_8 (N11_20, N11_9) {} CreateEdge (N11_8, N11_7) {} } 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_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_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_15, N12_17) { value = "'prev'" } CreateEdge (N12_17, N12_18) { value = "'phase'" } CreateEdge (N12_17, N12_19) { value = "'inst'" } CreateEdge N12_8 (N12_13, N12_9) {} CreateEdge (N12_8, N12_7) {} } 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 Call_Resolve_Params_N14 { Root N14_0 {} Match N14_1 {} Match N14_2 {} Match N14_3 {} Create N14_4 {} Match N14_5 {} Match N14_6 {} Match N14_7 { value = "'init'" } Match N14_8 {} MatchEdge (N14_0, N14_1) { value = "username" } MatchEdge (N14_1, N14_2) { value = "'frame'" } DeleteEdge (N14_2, N14_3) { value = "'evalstack'" } CreateEdge (N14_2, N14_4) { value = "'evalstack'" } DeleteEdge (N14_2, N14_5) { value = "'IP'" } CreateEdge (N14_2, N14_6) { value = "'IP'" } MatchEdge (N14_2, N14_7) { value = "'phase'" } CreateEdge (N14_3, N14_8) { value = "'phase'" } CreateEdge (N14_3, N14_5) { value = "'inst'" } CreateEdge (N14_4, N14_3) { value = "'prev'" } MatchEdge (N14_5, N14_8) { value = "'params'" } MatchEdge (N14_5, N14_6) { value = "'func'" } } Rule Const_N15 { Root N15_0 {} Match N15_1 {} Match N15_2 {} Match N15_3 {} Delete N15_4 { value = "'init'" } Create N15_5 { value = "'finish'" } Match N15_6 { value = "!const" } Match N15_7 {} MatchEdge (N15_0, N15_1) { value = "username" } MatchEdge (N15_1, N15_2) { value = "'frame'" } CreateEdge (N15_2, N15_7) { value = "'returnvalue'" } DeleteEdge (N15_2, N15_3) { value = "'returnvalue'" } DeleteEdge (N15_2, N15_4) { value = "'phase'" } CreateEdge (N15_2, N15_5) { value = "'phase'" } MatchEdge (N15_2, N15_6) { value = "'IP'" } MatchEdge (N15_6, N15_7) { value = "'node'" } } Rule Continue_N16 { Root N16_0 {} Match N16_1 {} Match N16_2 {} Match N16_3 { value = "'init'" } Match N16_4 { value = "!continue" } Match N16_5 { value = "!while" } MatchEdge (N16_0, N16_1) { value = "username" } MatchEdge (N16_1, N16_2) { value = "'frame'" } MatchEdge (N16_2, N16_3) { value = "'init'" } DeleteEdge (N16_2, N16_4) { value = "'IP'" } CreateEdge (N16_2, N16_5) { value = "'IP'" } MatchEdge (N16_4, N16_5) { value = "'while'" } } 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 } Match N21_frame { match = True } Delete N21_phase_D { value = "'cond'" match = True } Create N21_phase_C { value = "'finish'" } Match N21_IP { value = "!if" match = True } Match N21_RV { value = "False" match = True } NAC N21_else {} MatchEdge (N21_root, N21_userroot) { value = "username" } MatchEdge (N21_userroot, N21_frame) { value = "'frame'" } MatchEdge (N21_frame, N21_IP) { value = "'IP'" } MatchEdge (N21_frame, N21_RV) { value = "'returnvalue'" } DeleteEdge (N21_frame, N21_phase_D) { value = "'phase'" } CreateEdge (N21_frame, N21_phase_C) { value = "'phase'" } NACEdge (N21_IP, N21_else) { value = "'else'" } } Rule If_True_N22 { Root N22_0 {} Match N22_1 {} Match N22_2 {} Delete N22_3 { value = "'cond'" } Create N22_4 {} Create N22_5 { value = "'init'" } Match N22_6 { value = "True" } Match N22_7 {} Match N22_8 {} Match N22_9 { value = "!if" } Create N22_10 { value = "'finish'" } MatchEdge (N22_0, N22_1) { value = "username" } MatchEdge (N22_1, N22_2) { value = "'frame'" } DeleteEdge (N22_2, N22_3) { value = "'phase'" } DeleteEdge (N22_2, N22_9) { value = "'IP'" } CreateEdge (N22_2, N22_4) { value = "'evalstack'" } CreateEdge (N22_2, N22_5) { value = "'phase'" } MatchEdge (N22_2, N22_6) { value = "True" } DeleteEdge (N22_2, N22_7) { value = "'evalstack'" } CreateEdge (N22_2, N22_8) { value = "'IP'" } CreateEdge (N22_7, N22_9) { value = "'inst'" } CreateEdge (N22_7, N22_10) { value = "'phase'" } MatchEdge (N22_9, N22_8) { value = "'then'" } } Rule Next_Next_N24 { Root N24_0 {} Match N24_1 {} Match N24_2 {} Delete N24_3 { value = "'finish'" } Create N24_4 { value = "'init'" } Match N24_5 {} Match N24_6 {} MatchEdge (N24_0, N24_1) { value = "username" } MatchEdge (N24_1, N24_2) { value = "'frame'" } DeleteEdge (N24_2, N24_3) { value = "'phase'" } CreateEdge (N24_2, N24_4) { value = "'phase'" } DeleteEdge (N24_2, N24_5) { value = "'IP'" } CreateEdge (N24_2, N24_6) { value = "'IP'" } MatchEdge (N24_5, N24_6) { value = "'next'" } } Rule Next_NoNext_N25 { Root N25_0 {} Match N25_1 {} Match N25_2 {} Delete N25_3 { value = "'finish'" } Match N25_4 { value = "'IP'" } Match N25_5 {} Delete N25_6 {} Match N25_7 {} Match N25_8 {} NAC N25_9 {} MatchEdge (N25_0, N25_1) { value = "username" } MatchEdge (N25_1, N25_2) { value = "'frame'" } DeleteEdge (N25_2, N25_3) { value = "'phase'" } DeleteEdge (N25_2, N25_4) { value = "'IP'" } CreateEdge (N25_2, N25_5) { value = "'IP'" } DeleteEdge (N25_2, N25_6) { value = "'evalstack'" } CreateEdge (N25_2, N25_7) { value = "'evalstack'" } CreateEdge (N25_2, N25_8) { value = "'phase'" } DeleteEdge (N25_6, N25_7) { value = "'prev'" } DeleteEdge (N25_7, N25_5) { value = "'inst'" } DeleteEdge (N25_7, N25_8) { value = "'phase'" } NACEdge (N25_4, N25_9) { value = "'next'" } } Rule Output_Init_N26 { Root N26_0 {} Match N26_1 {} Match N26_2 {} Match N26_3 { value = "'init'" } Match N26_4 { value = "!output" } Create N26_5 {} Match N26_6 {} Match N26_7 {} Match N26_8 { value = "'output'" } MatchEdge (N26_0, N26_1) { value = "username" } MatchEdge (N26_1, N26_2) { value = "'frame'" } MatchEdge (N26_2, N26_3) { value = "'phase'" } DeleteEdge (N26_2, N26_4) { value = "'IP'" } CreateEdge (N26_2, N26_5) { value = "'evalstack'" } DeleteEdge (N26_2, N26_6) { value = "'evalstack'" } CreateEdge (N26_2, N26_7) { value = "'IP'" } CreateEdge (N26_6, N26_4) { value = "'inst'" } CreateEdge (N26_6, N26_8) { value = "'phase'" } MatchEdge (N26_4, N26_7) { value = "'value'" } } Rule Output_Output_N27 { Root N27_0 {} Match N27_1 {} Match N27_2 {} Match N27_3 {} Match N27_4 { value = "!output" } Match N27_5 { value = "'output'" } Create N27_6 { value = "'finish'" } Match N27_7 {} Create N27_8 {} MatchEdge (N27_0, N27_1) { value = "username" } MatchEdge (N27_1, N27_2) { value = "'frame'" } MatchEdge (N27_2, N27_4) { value = "'IP'" } DeleteEdge (N27_2, N27_5) { value = "'phase'" } CreateEdge (N27_2, N27_6) { value = "'phase'" } MatchEdge (N27_2, N27_7) { value = "'returnvalue'" } CreateEdge (N27_3, N27_7) { value = "'value'" } CreateEdge (N27_3, N27_8) { value = "'next'" } CreateEdge (N27_1, N27_8) { value = "'last_output'" } } Rule Resolve_NoAttrGlobal_N28 { Root N28_0 {} Match N28_1 {} Match N28_2 {} Match N28_3 {} Create N28_4 { value = "'finish'" } Match N28_5 {} Match N28_6 {} Match N28_7 { value = "!resolve" } Delete N28_8 { value = "'init'" } Match N28_9 {} Match N28_10 {} NAC N18_11 {} MatchEdge (N28_0, N28_1) { value = "username" } MatchEdge (N28_0, N28_2) { value = "'__global'" } MatchEdge (N28_1, N28_3) { value = "'frame'" } CreateEdge (N28_3, N28_4) { value = "'finish'" } MatchEdge (N28_3, N28_5) { value = "'symbols'" } DeleteEdge (N28_3, N28_6) { value = "'returnvalue'" } MatchEdge (N28_3, N28_7) { value = "'IP'" } DeleteEdge (N28_3, N28_8) { value = "'phase'" } CreateEdge (N28_3, N28_9) { value = "'returnvalue'" } MatchEdge N28_13 (N28_2, N28_9) {} MatchEdge (N28_13, N28_10) {} MatchEdge (N28_7, N28_10) {} NACEdge N28_12 (N28_5, N28_11) {} NACEdge (N28_12, N28_10) {} } Rule Resolve_NoAttr_N29 { Root N29_0 {} Match N29_1 {} Match N29_2 {} Match N29_3 { value = "!resolve" } Delete N29_4 { value = "'init'" } Create N29_5 { value = "'finish'" } Match N29_6 {} Match N29_7 {} Match N29_8 {} Match N29_9 {} MatchEdge (N29_0, N29_1) { value = "username" } MatchEdge (N29_1, N29_2) { value = "'frame'" } MatchEdge (N29_2, N29_3) { value = "'IP'" } DeleteEdge (N29_2, N29_4) { value = "'phase'" } CreateEdge (N29_2, N29_5) { value = "'phase'" } MatchEdge (N29_2, N29_6) { value = "'symbols'" } CreateEdge (N29_2, N29_7) { value = "'returnvalue'" } DeleteEdge (N29_2, N29_8) { value = "'returnvalue'" } MatchEdge (N29_3, N29_9) { value = "'var'" } MatchEdge N29_10 (N29_6, N29_7) {} MatchEdge (N29_10, N29_9) {} }