MvK_rules.mvc 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016
  1. Rule Access_Eval_N1 {
  2. Root N1_root {}
  3. Match N1_userroot {
  4. match = True
  5. }
  6. Match N1_frame {
  7. match = True
  8. }
  9. Delete N1_phase_D {
  10. value = "'eval'"
  11. match = True
  12. }
  13. Match N1_IP {
  14. value = "!access"
  15. match = True
  16. }
  17. Create N1_phase_C {
  18. value = "'finish'"
  19. }
  20. Delete N1_RV_D {}
  21. Create N1_RV_C {}
  22. Match N1_val {}
  23. MatchEdge (N1_root, N1_userroot) {
  24. value = "username"
  25. }
  26. MatchEdge (N1_userroot, N1_frame) {
  27. value = "'frame'"
  28. }
  29. MatchEdge (N1_frame, N1_IP) {
  30. value = "'IP'"
  31. }
  32. DeleteEdge (N1_frame, N1_phase_D) {
  33. value = "'phase'"
  34. }
  35. CreateEdge (N1_frame, N1_phase_C) {
  36. value = "'phase'"
  37. }
  38. CreateEdge (N1_frame, N1_RV_C) {
  39. value = "'returnvalue'"
  40. }
  41. DeleteEdge (N1_frame, N1_RV_D) {
  42. value = "'returnvalue'"
  43. }
  44. MatchEdge (N1_RV_D, N1_RV_C) {
  45. value = "'value'"
  46. }
  47. }
  48. Rule Access_Init_N2 {
  49. Root N2_root {}
  50. Match N2_userroot {
  51. match = True
  52. }
  53. Match N2_frame {
  54. match = True
  55. }
  56. Match N2_phase {
  57. match = True
  58. value = "'init'"
  59. }
  60. Match N2_IP_old {
  61. match = True
  62. value = "!access"
  63. }
  64. Create N2_evalstack_C {}
  65. Match N2_evalstack_M {}
  66. Match N2_IP_new {}
  67. Create N2_phase_new {
  68. value = "'eval'"
  69. }
  70. MatchEdge (N2_root, N2_userroot) {
  71. value = "username"
  72. }
  73. MatchEdge (N2_userroot, N2_frame) {
  74. value = "'frame'"
  75. }
  76. MatchEdge (N2_frame, N2_phase) {
  77. value = "'phase'"
  78. }
  79. DeleteEdge (N2_frame, N2_IP_old) {
  80. value = "'IP'"
  81. }
  82. CreateEdge (N2_frame, N2_evalstack_C) {
  83. value = "'evalstack'"
  84. }
  85. DeleteEdge (N2_frame, N2_evalstack_M) {
  86. value = "'evalstack'"
  87. }
  88. CreateEdge (N2_frame, N2_IP_new) {
  89. value = "'IP'"
  90. }
  91. CreateEdge (N2_evalstack_C, N2_evalstack_M) {
  92. value = "'prev'"
  93. }
  94. CreateEdge (N2_evalstack_M, N2_phase_new) {
  95. value = "'phase'"
  96. }
  97. CreateEdge (N2_evalstack_M, N2_IP) {
  98. value = "'inst'"
  99. }
  100. MatchEdge (N2_IP, N2_IP_new) {
  101. value = "'var'"
  102. }
  103. }
  104. Rule Assign_Assign_N3 {
  105. Root N3_0 {}
  106. Match N3_1 {
  107. match = True
  108. }
  109. Match N3_2 {
  110. match = True
  111. }
  112. Match N3_3 {
  113. match = True
  114. value = "!assign"
  115. }
  116. Delete N3_4 {
  117. match = True
  118. value = "'assign'"
  119. }
  120. Create N3_5 {
  121. value = "'finish'"
  122. }
  123. Match N3_6 {}
  124. Match N3_7 {}
  125. Match N3_8 {}
  126. MatchEdge (N3_0, N3_1) {
  127. value = "username"
  128. }
  129. MatchEdge (N3_1, N3_2) {
  130. value = "'frame'"
  131. }
  132. MatchEdge (N3_2, N3_3) {
  133. value = "'IP'"
  134. }
  135. DeleteEdge (N3_2, N3_4) {
  136. value = "'phase'"
  137. }
  138. CreateEdge (N3_2, N3_5) {
  139. value = "'phase'"
  140. }
  141. MatchEdge (N3_2, N3_6) {
  142. value = "'returnvalue'"
  143. }
  144. DeleteEdge (N3_2, N3_7) {
  145. value = "'variable'"
  146. }
  147. CreateEdge (N3_7, N3_6) {
  148. value = "'value'"
  149. }
  150. DeleteEdge (N3_7, N3_8) {
  151. value = "'value'"
  152. }
  153. }
  154. Rule Assign_Init_N4 {
  155. Root N4_0 {}
  156. Match N4_1 {
  157. match = True
  158. }
  159. Match N4_2 {
  160. match = True
  161. }
  162. Match N4_3 {
  163. match = True
  164. value = "'init'"
  165. }
  166. Create N4_4 {}
  167. Match N4_5 {}
  168. Match N4_6 {
  169. match = True
  170. value = "!assign"
  171. }
  172. Create N4_7 {
  173. value = "'value'"
  174. }
  175. Match N4_8 {}
  176. MatchEdge (N4_0, N4_1) {
  177. value = "username"
  178. }
  179. MatchEdge (N4_1, N4_2) {
  180. value = "'frame'"
  181. }
  182. MatchEdge (N4_2, N4_3) {
  183. value = "'phase'"
  184. }
  185. DeleteEdge (N4_2, N4_6) {
  186. value = "'IP'"
  187. }
  188. CreateEdge (N4_2, N4_4) {
  189. value = "'evalstack'"
  190. }
  191. DeleteEdge (N4_2, N4_5) {
  192. value = "'evalstack'"
  193. }
  194. CreateEdge (N4_2, N4_8) {
  195. value = "'IP'"
  196. }
  197. CreateEdge (N4_5, N4_6) {
  198. value = "'inst'"
  199. }
  200. CreateEdge (N4_5, N4_7) {
  201. value = "'phase'"
  202. }
  203. MatchEdge (N4_6, N4_8) {
  204. value = "'var'"
  205. }
  206. }
  207. Rule Assign_Value_N5 {
  208. Root N5_0 {}
  209. Match N5_1 {
  210. match = True
  211. }
  212. Match N5_2 {
  213. match = True
  214. }
  215. Match N5_3 {
  216. match = True
  217. value = "'value'"
  218. }
  219. Match N5_4 {
  220. match = True
  221. value = "!assign"
  222. }
  223. Create N5_5 {
  224. match = True
  225. }
  226. Create N5_6 {
  227. value = "'init'"
  228. }
  229. Match N5_7 {}
  230. Match N5_8 {}
  231. Match N5_9 {}
  232. Create N5_10 {
  233. value = "'assign'"
  234. }
  235. MatchEdge (N5_0, N5_1) {
  236. value = "username"
  237. }
  238. MatchEdge (N5_1, N5_2) {
  239. value = "'frame'"
  240. }
  241. DeleteEdge (N5_2, N5_3) {
  242. value = "'phase'"
  243. }
  244. DeleteEdge (N5_2, N5_4) {
  245. value = "'IP'"
  246. }
  247. CreateEdge (N5_2, N5_5) {
  248. value = "'evalstack'"
  249. }
  250. CreateEdge (N5_2, N5_6) {
  251. value = "'phase'"
  252. }
  253. DeleteEdge (N5_2, N5_9) {
  254. value = "'evalstack'"
  255. }
  256. CreateEdge (N5_2, N5_7) {
  257. value = "'IP'"
  258. }
  259. MatchEdge (N5_2, N5_8) {
  260. value = "'returnvalue'"
  261. }
  262. CreateEdge (N5_2, N5_8) {
  263. value = "'variable'"
  264. }
  265. CreateEdge (N5_5, N5_9) {
  266. value = "'prev'"
  267. }
  268. DeleteEdge (N5_5, N5_9) {
  269. value = "'evalstack'"
  270. }
  271. CreateEdge (N5_9, N5_4) {
  272. value = "'inst'"
  273. }
  274. CreateEdge (N5_9, N5_10) {
  275. value = "'phase'"
  276. }
  277. MatchEdge (N5_4, N5_7) {
  278. value = "'value'"
  279. }
  280. }
  281. Rule Break_N6 {
  282. Root N6_0 {}
  283. Match N6_1 {
  284. match = True
  285. }
  286. Match N6_2 {
  287. match = True
  288. }
  289. Delete N6_3 {
  290. value = "'init'"
  291. match = True
  292. }
  293. Create N6_4 {
  294. value = "'finish'"
  295. }
  296. Match N6_5 {
  297. value = "!break"
  298. match = True
  299. }
  300. Match N6_6 {
  301. value = "!while"
  302. }
  303. Match N6_7 {}
  304. Match N6_8 {}
  305. Create N6_9 {}
  306. Match N6_10 {}
  307. MatchEdge (N6_0, N6_1) {
  308. value = "username"
  309. }
  310. MatchEdge (N6_1, N6_2) {
  311. value = "'frame'"
  312. }
  313. DeleteEdge (N6_2, N6_3) {
  314. value = "'phase'"
  315. }
  316. CreateEdge (N6_2, N6_4) {
  317. value = "'phase'"
  318. }
  319. DeleteEdge (N6_2, N6_5) {
  320. value = "'IP'"
  321. }
  322. CreateEdge (N6_2, N6_6) {
  323. value = "'IP'"
  324. }
  325. MatchEdge (N6_5, N6_6) {
  326. value = "'while'"
  327. }
  328. DeleteEdge (N6_2, N6_7) {
  329. value = "'evalstack'"
  330. }
  331. MatchEdge (N6_8, N6_6) {
  332. value = "taskname"
  333. }
  334. DeleteEdge (N6_10, N6_8) {
  335. value = "'prev'"
  336. }
  337. CreateEdge (N6_2, N6_9) {
  338. value = "'evalstack'"
  339. }
  340. CreateEdge (N6_9, N6_8) {
  341. value = "'prev'"
  342. }
  343. }
  344. Rule Call_Call_None_N7 {
  345. Root N7_0 {}
  346. Match N7_1 {
  347. match = True
  348. }
  349. Create N7_2 {}
  350. Match N7_3 {
  351. match = True
  352. }
  353. Create N7_4 {}
  354. Create N7_5 {}
  355. Create N7_6 {
  356. value = "!call"
  357. }
  358. Create N7_7 {}
  359. Match N7_8 {}
  360. Create N7_9 {
  361. value = "'finish'"
  362. }
  363. Delete N7_10 {
  364. value = "'call'"
  365. match = True
  366. }
  367. NAC N7_11 {}
  368. Match N7_12 {}
  369. Create N7_13 {
  370. value = "'init'"
  371. }
  372. MatchEdge (N7_0, N7_1) {
  373. value = "username"
  374. }
  375. CreateEdge (N7_1, N7_2) {
  376. value = "'frame'"
  377. }
  378. DeleteEdge (N7_1, N7_3) {
  379. value = "'frame'"
  380. }
  381. CreateEdge (N7_2, N7_4) {
  382. value = "'evalstack'"
  383. }
  384. CreateEdge (N7_2, N7_5) {
  385. value = "'symbols'"
  386. }
  387. CreateEdge (N7_2, N7_6) {
  388. value = "'caller'"
  389. }
  390. CreateEdge (N7_2, N7_7) {
  391. value = "'returnvalue'"
  392. }
  393. CreateEdge (N7_2, N7_12) {
  394. value = "'IP'"
  395. }
  396. CreateEdge (N7_2, N7_13) {
  397. value = "'phase'"
  398. }
  399. NACEdge (N7_6, N7_11) {
  400. value = "'last_param'"
  401. }
  402. CreateEdge (N7_2, N7_3) {
  403. value = "'prev'"
  404. }
  405. MatchEdge (N7_3, N7_6) {
  406. value = "'IP'"
  407. }
  408. MatchEdge (N7_3, N7_8) {
  409. value = "'returnvalue'"
  410. }
  411. CreateEdge (N7_3, N7_9) {
  412. value = "'phase'"
  413. }
  414. DeleteEdge (N7_3, N7_10) {
  415. value = "'phase'"
  416. }
  417. MatchEdge (N7_8, N7_12) {
  418. value = "'body'"
  419. }
  420. }
  421. Rule Call_Call_Params_N8 {
  422. Root N8_0 {}
  423. Match N8_1 {
  424. match = True
  425. }
  426. Match N8_2 {}
  427. Match N8_3 {}
  428. Match N8_4 {
  429. value = "!call"
  430. }
  431. Match N8_5 {}
  432. Match N8_6 {
  433. value = "a"
  434. match = True
  435. }
  436. Create N8_7 {
  437. value = "'finish'"
  438. }
  439. Match N8_8 {}
  440. Match N8_9 {}
  441. Create N8_10 {}
  442. Match N8_11 {}
  443. Match N8_12 {}
  444. Match N8_13 {}
  445. Delete N8_14 {
  446. value = "'call'"
  447. }
  448. Match N8_15 {}
  449. MatchEdge (N8_0, N8_1) {
  450. value = "username"
  451. }
  452. CreateEdge (N8_1, N8_2) {
  453. value = "'frame'"
  454. }
  455. DeleteEdge (N8_1, N8_3) {
  456. value = "'frame'"
  457. }
  458. MatchEdge (N8_2, N8_4) {
  459. value = "'caller'"
  460. }
  461. MatchEdge (N8_2, N8_3) {
  462. value = "'prev'"
  463. }
  464. MatchEdge (N8_2, N8_15) {
  465. value = "'symbols'"
  466. }
  467. MatchEdge (N8_2, N8_13) {
  468. value = "'IP'"
  469. }
  470. MatchEdge (N8_3, N8_4) {
  471. value = "!call"
  472. }
  473. CreateEdge (N8_3, N8_7) {
  474. value = "'finish'"
  475. }
  476. MatchEdge (N8_3, N8_8) {
  477. value = "'returnvalue'"
  478. }
  479. DeleteEdge (N8_3, N8_14) {
  480. value = "'phase'"
  481. }
  482. MatchEdge (N8_4, N8_5) {
  483. value = "'last_param'"
  484. }
  485. MatchEdge (N8_5, N8_6) {
  486. value = "'name'"
  487. }
  488. CreateEdge (N8_10, N8_8) {
  489. value = "'value'"
  490. }
  491. MatchEdge (N8_11, N8_9) {
  492. value = "a"
  493. }
  494. MatchEdge (N8_12, N8_13) {
  495. value = "'body'"
  496. }
  497. MatchEdge (N8_12, N8_11) {
  498. value = "'params'"
  499. }
  500. CreateEdge N8_16 (N8_15, N8_10) {}
  501. CreateEdge (N8_16, N8_9) {}
  502. }
  503. Rule Call_Params_First_Multi_N9 {
  504. Root N9_0 {}
  505. Match N9_1 {
  506. match = True
  507. }
  508. Match N9_2 {
  509. match = True
  510. ]
  511. Create N9_3 {}
  512. Create N9_4 {
  513. value = "'init'"
  514. }
  515. Create N9_5 {}
  516. Create N9_6 {}
  517. Create N9_7 {}
  518. Match N9_8 {}
  519. Match N9_9 {}
  520. Match N9_10 {}
  521. Create N9_11 {
  522. value = "'init'"
  523. }
  524. Create N9_12 {}
  525. Match N9_13 {}
  526. Match N9_14 {
  527. value = "!call"
  528. match = True
  529. }
  530. Match N9_15 {}
  531. Match N9_16 {}
  532. Match N9_17 {}
  533. MatchEdge (N9_0, N9_1) {
  534. value = "username"
  535. }
  536. MatchEdge (N9_1, N9_2) {
  537. value = "'frame'"
  538. }
  539. DeleteEdge (N9_2, N9_13) {
  540. value = "'evalstack'"
  541. }
  542. DeleteEdge (N9_2, N9_14) {
  543. value = "'IP'"
  544. }
  545. CreateEdge (N9_2, N9_11) {
  546. value = "'init'"
  547. }
  548. DeleteEdge (N9_2, N9_15) {
  549. value = "'phase'"
  550. }
  551. MatchEdge (N9_2, N9_10) {
  552. value = "'returnvalue'"
  553. }
  554. CreateEdge (N9_2, N9_17) {
  555. value = "'IP'"
  556. }
  557. CreateEdge (N9_3, N9_14) {
  558. value = "'caller'"
  559. }
  560. CreateEdge (N9_3, N9_2) {
  561. value = "'prev'"
  562. }
  563. CreateEdge (N9_3, N9_4) {
  564. value = "'phase'"
  565. }
  566. CreateEdge (N9_3, N9_5) {
  567. value = "'evalstack'"
  568. }
  569. CreateEdge (N9_3, N9_6) {
  570. value = "'symbols'"
  571. }
  572. CreateEdge (N9_3, N9_7) {
  573. value = "'returnvalue'"
  574. }
  575. CreateEdge (N9_3, N9_8) {
  576. value = "'IP'"
  577. }
  578. MatchEdge (N9_10, N9_9) {
  579. value = "'params'"
  580. }
  581. MatchEdge (N9_10, N9_8) {
  582. value = "'body'"
  583. }
  584. CreateEdge (N9_12, N9_13) {
  585. value = "'prev'"
  586. }
  587. CreateEdge (N9_13, N9_14) {
  588. value = "'inst'"
  589. }
  590. MatchEdge (N9_14, N9_15) {
  591. value = "'params'"
  592. }
  593. MatchEdge (N9_15, N9_16) {
  594. value = "'next_param'"
  595. }
  596. MatchEdge (N9_15, N9_17) {
  597. value = "'value'"
  598. }
  599. }
  600. Rule Call_Params_First_Single_N10 {
  601. Root N10_0 {}
  602. Match N10_1 {
  603. match = True
  604. }
  605. Match N10_2 {
  606. match = True
  607. }
  608. Create N10_3 {}
  609. Create N10_4 {
  610. value = "'init'"
  611. }
  612. Create N10_5 {}
  613. Create N10_6 {}
  614. Create N10_7 {}
  615. Match N10_8 {}
  616. Create N10_9 {
  617. value = "'init'"
  618. }
  619. Match N10_10 {}
  620. Match N10_11 {}
  621. Match N10_12 {}
  622. Create N10_13 {
  623. value = "'call'"
  624. }
  625. Match N10_14 {
  626. value = "!call"
  627. }
  628. Match N10_15 {}
  629. Match N10_16 {}
  630. Create N10_17 {}
  631. MatchEdge (N10_0, N10_1) {
  632. value = "username"
  633. }
  634. MatchEdge (N10_1, N10_2) {
  635. value = "'frame'"
  636. }
  637. CreateEdge (N10_2, N10_16) {
  638. value = "'IP'"
  639. }
  640. CreateEdge (N10_2, N10_9) {
  641. value = "'phase'"
  642. }
  643. MatchEdge (N10_2, N10_10) {
  644. value = "'returnvalue'"
  645. }
  646. DeleteEdge (N10_2, N10_12) {
  647. value = "'evalstack'"
  648. }
  649. CreateEdge (N10_2, N10_17) {
  650. value = "'evalstack'"
  651. }
  652. DeleteEdge (N10_2, N10_14) {
  653. value = "'IP'"
  654. }
  655. DeleteEdge (N10_2, N10_15) {
  656. value = "'phase'"
  657. }
  658. CreateEdge (N10_3, N10_4) {
  659. value = "'phase'"
  660. }
  661. CreateEdge (N10_3, N10_5) {
  662. value = "'evalstack'"
  663. }
  664. CreateEdge (N10_3, N10_6) {
  665. value = "'symbols'"
  666. }
  667. CreateEdge (N10_3, N10_7) {
  668. value = "'returnvalue'"
  669. }
  670. MatchEdge (N10_10, N10_8) {
  671. value = "'body'"
  672. }
  673. MatchEdge (N10_10, N10_11) {
  674. value = "'params'"
  675. }
  676. CreateEdge (N10_12, N10_13) {
  677. value = "'phase'"
  678. }
  679. CreateEdge (N10_12, N10_14) {
  680. value = "'inst'"
  681. }
  682. MatchEdge (N10_14, N10_15) {
  683. value = "'params'"
  684. }
  685. MatchEdge (N10_14, N10_15) {
  686. value = "'last_param'"
  687. }
  688. MatchEdge (N10_15, N10_16) {
  689. value = "'value'"
  690. }
  691. CreateEdge (N10_17, N10_12) {
  692. value = "'prev'"
  693. }
  694. }
  695. Rule Call_Params_Last_N11 {
  696. Root N11_0 {}
  697. Match N11_1 {
  698. match = True
  699. }
  700. Match N11_2 {
  701. match = True
  702. }
  703. Match N11_3 {}
  704. Match N11_4 {}
  705. Match N11_5 {}
  706. Match N11_6 {}
  707. Match N11_7 {}
  708. Create N11_9 {}
  709. Match N11_10 {}
  710. Match N11_11 {}
  711. Match N11_12 {
  712. value = "a"
  713. }
  714. Match N11_13 {}
  715. Match N11_14 {}
  716. Create N11_15 {
  717. value = "'call'"
  718. }
  719. Match N11_16 {
  720. value = "!call"
  721. }
  722. Match N11_17 {}
  723. Create N11_18 {}
  724. Create N11_19 {
  725. value = "'init'"
  726. }
  727. Match N11_20 {}
  728. MatchEdge (N11_0, N11_1) {
  729. value = "username"
  730. }
  731. MatchEdge (N11_1, N11_2) {
  732. value = "'frame'"
  733. }
  734. DeleteEdge (N11_2, N11_16) {
  735. value = "'IP'"
  736. }
  737. DeleteEdge (N11_2, N11_17) {
  738. value = "'evalstack'"
  739. }
  740. CreateEdge (N11_2, N11_18) {
  741. value = "'evalstack'"
  742. }
  743. CreateEdge (N11_2, N11_19) {
  744. value = "'phase'"
  745. }
  746. DeleteEdge (N11_2, N11_14) {
  747. value = "'phase'"
  748. }
  749. MatchEdge (N11_2, N11_10) {
  750. value = "'returnvalue'"
  751. }
  752. CreateEdge (N11_2, N11_13) {
  753. value = "'IP'"
  754. }
  755. MatchEdge (N11_3, N11_16) {
  756. value = "'caller'"
  757. }
  758. MatchEdge (N11_3, N11_2) {
  759. value = "'prev'"
  760. }
  761. MatchEdge (N11_3, N11_20) {
  762. value = "'symbols'"
  763. }
  764. MatchEdge (N11_3, N11_5) {
  765. value = "'IP'"
  766. }
  767. MatchEdge (N11_4, N11_5) {
  768. value = "'body'"
  769. }
  770. MatchEdge (N11_4, N11_6) {
  771. value = "'params'"
  772. }
  773. MatchEdge (N11_6, N11_7) {
  774. value = "a"
  775. }
  776. CreateEdge (N11_9, N11_10) {
  777. value = "'value'"
  778. }
  779. MatchEdge (N11_11, N11_14) {
  780. value = "'next_param'"
  781. }
  782. MatchEdge (N11_11, N11_12) {
  783. value = "'name'"
  784. }
  785. MatchEdge (N11_14, N11_13) {
  786. value = "'value'"
  787. }
  788. MatchEdge (N11_16, N11_14) {
  789. value = "'last_param'"
  790. }
  791. CreateEdge (N11_17, N11_16) {
  792. value = "'inst'"
  793. }
  794. CreateEdge (N11_17, N11_15) {
  795. value = "'phase'"
  796. }
  797. CreateEdge (N11_18, N11_17) {
  798. value = "'prev'"
  799. }
  800. CreateEdge N11_8 (N11_20, N11_9) {}
  801. CreateEdge (N11_8, N11_7) {}
  802. }
  803. Rule Call_Params_Next_N12 {
  804. Root N12_0 {}
  805. Match N12_1 {}
  806. Match N12_2 {}
  807. Match N12_3 {}
  808. Match N12_4 {}
  809. Match N12_5 {}
  810. Match N12_6 {}
  811. Match N12_7 {}
  812. Create N12_9 {}
  813. Match N12_10 {}
  814. Match N12_11 {}
  815. Match N12_12 {}
  816. Match N12_13 {}
  817. Match N12_14 {
  818. value = "a"
  819. }
  820. Create N12_15 {}
  821. Match N12_16 {}
  822. Match N12_17 {}
  823. Match N12_18 {}
  824. Match N12_19 {
  825. value = "!call"
  826. }
  827. Create N12_20 {
  828. value = "'init'"
  829. }
  830. MatchEdge (N12_0, N12_1) {
  831. value = "username"
  832. }
  833. MatchEdge (N12_1, N12_2) {
  834. value = "'frame'"
  835. }
  836. MatchEdge (N12_2, N12_10) {
  837. value = "'returnvalue'"
  838. }
  839. DeleteEdge (N12_2, N12_11) {
  840. value = "'phase'"
  841. }
  842. DeleteEdge (N12_2, N12_17) {
  843. value = "'evalstack'"
  844. }
  845. CreateEdge (N12_2, N12_15) {
  846. value = "'evalstack'"
  847. }
  848. CreateEdge (N12_2, N12_16) {
  849. value = "'IP'"
  850. }
  851. DeleteEdge (N12_2, N12_19) {
  852. value = "'IP'"
  853. }
  854. CreateEdge (N12_2, N12_20) {
  855. value = "'phase'"
  856. }
  857. MatchEdge (N12_3, N12_5) {
  858. value = "'IP'"
  859. }
  860. MatchEdge (N12_3, N12_13) {
  861. value = "'symbols'"
  862. }
  863. MatchEdge (N12_3, N12_2) {
  864. value = "'prev'"
  865. }
  866. MatchEdge (N12_3, N12_19) {
  867. value = "'caller'"
  868. }
  869. MatchEdge (N12_4, N12_6) {
  870. value = "'params'"
  871. }
  872. MatchEdge (N12_4, N12_5) {
  873. value = "'body'"
  874. }
  875. MatchEdge (N12_6, N12_7) {
  876. value = "a"
  877. }
  878. CreateEdge (N12_9, N12_10) {
  879. value = "'value'"
  880. }
  881. MatchEdge (N12_11, N12_18) {
  882. value = "'next_param'"
  883. }
  884. MatchEdge (N12_11, N12_16) {
  885. value = "'value'"
  886. }
  887. MatchEdge (N12_12, N12_14) {
  888. value = "'name'"
  889. }
  890. MatchEdge (N12_12, N12_11) {
  891. value = "'next_param'"
  892. }
  893. CreateEdge (N12_15, N12_17) {
  894. value = "'prev'"
  895. }
  896. CreateEdge (N12_17, N12_18) {
  897. value = "'phase'"
  898. }
  899. CreateEdge (N12_17, N12_19) {
  900. value = "'inst'"
  901. }
  902. CreateEdge N12_8 (N12_13, N12_9) {}
  903. CreateEdge (N12_8, N12_7) {}
  904. }
  905. Rule Call_Resolve_No_Params_N13 {
  906. Root N13_0 {}
  907. Match N13_1 {}
  908. Match N13_2 {}
  909. Match N13_3 {
  910. value = "'init'"
  911. }
  912. Create N13_4 {}
  913. Match N13_5 {}
  914. Match N13_6 {
  915. value = "!call"
  916. }
  917. Create N13_7 {
  918. value = "'call'"
  919. }
  920. Match N13_8 {}
  921. NAC N13_9 {}
  922. MatchEdge (N13_0, N13_1) {
  923. value = "username"
  924. }
  925. MatchEdge (N13_1, N13_2) {
  926. value = "'frame'"
  927. }
  928. DeleteEdge (N13_2, N13_6) {
  929. value = "'IP'"
  930. }
  931. MatchEdge (N13_2, N13_3) {
  932. value = "'phase'"
  933. }
  934. CreateEdge (N13_2, N13_4) {
  935. value = "'evalstack'"
  936. }
  937. DeleteEdge (N13_2, N13_5) {
  938. value = "'evalstack'"
  939. }
  940. CreateEdge (N13_2, N13_8) {
  941. value = "'IP'"
  942. }
  943. CreateEdge (N13_4, N13_5) {
  944. value = "'prev'"
  945. }
  946. CreateEdge (N13_5, N13_6) {
  947. value = "'inst'"
  948. }
  949. CreateEdge (N13_5, N13_7) {
  950. value = "'phase'"
  951. }
  952. NACEdge (N13_6, N13_9) {
  953. value = "'params'"
  954. }
  955. MatchEdge (N13_6, N13_8) {
  956. value = "'func'"
  957. }
  958. }
  959. Rule Call_Resolve_Params_N14 {
  960. Root N14_0 {}
  961. Match N14_1 {}
  962. Match N14_2 {}
  963. Match N14_3 {}
  964. Create N14_4 {}
  965. Match N14_5 {}
  966. Match N14_6 {}
  967. Match N14_7 {
  968. value = "'init'"
  969. }
  970. Match N14_8 {}
  971. MatchEdge (N14_0, N14_1) {
  972. value = "username"
  973. }
  974. MatchEdge (N14_1, N14_2) {
  975. value = "'frame'"
  976. }
  977. DeleteEdge (N14_2, N14_3) {
  978. value = "'evalstack'"
  979. }
  980. CreateEdge (N14_2, N14_4) {
  981. value = "'evalstack'"
  982. }
  983. DeleteEdge (N14_2, N14_5) {
  984. value = "'IP'"
  985. }
  986. CreateEdge (N14_2, N14_6) {
  987. value = "'IP'"
  988. }
  989. MatchEdge (N14_2, N14_7) {
  990. value = "'phase'"
  991. }
  992. CreateEdge (N14_3, N14_8) {
  993. value = "'phase'"
  994. }
  995. CreateEdge (N14_3, N14_5) {
  996. value = "'inst'"
  997. }
  998. CreateEdge (N14_4, N14_3) {
  999. value = "'prev'"
  1000. }
  1001. MatchEdge (N14_5, N14_8) {
  1002. value = "'params'"
  1003. }
  1004. MatchEdge (N14_5, N14_6) {
  1005. value = "'func'"
  1006. }
  1007. }
  1008. Rule Const_N15 {
  1009. Root N15_0 {}
  1010. Match N15_1 {}
  1011. Match N15_2 {}
  1012. Match N15_3 {}
  1013. Delete N15_4 {
  1014. value = "'init'"
  1015. }
  1016. Create N15_5 {
  1017. value = "'finish'"
  1018. }
  1019. Match N15_6 {
  1020. value = "!const"
  1021. }
  1022. Match N15_7 {}
  1023. MatchEdge (N15_0, N15_1) {
  1024. value = "username"
  1025. }
  1026. MatchEdge (N15_1, N15_2) {
  1027. value = "'frame'"
  1028. }
  1029. CreateEdge (N15_2, N15_7) {
  1030. value = "'returnvalue'"
  1031. }
  1032. DeleteEdge (N15_2, N15_3) {
  1033. value = "'returnvalue'"
  1034. }
  1035. DeleteEdge (N15_2, N15_4) {
  1036. value = "'phase'"
  1037. }
  1038. CreateEdge (N15_2, N15_5) {
  1039. value = "'phase'"
  1040. }
  1041. MatchEdge (N15_2, N15_6) {
  1042. value = "'IP'"
  1043. }
  1044. MatchEdge (N15_6, N15_7) {
  1045. value = "'node'"
  1046. }
  1047. }
  1048. Rule Continue_N16 {
  1049. Root N16_0 {}
  1050. Match N16_1 {}
  1051. Match N16_2 {}
  1052. Match N16_3 {
  1053. value = "'init'"
  1054. }
  1055. Match N16_4 {
  1056. value = "!continue"
  1057. }
  1058. Match N16_5 {
  1059. value = "!while"
  1060. }
  1061. Match N16_7 {}
  1062. Match N16_8 {}
  1063. Create N16_9 {}
  1064. Match N16_10 {}
  1065. MatchEdge (N16_0, N16_1) {
  1066. value = "username"
  1067. }
  1068. MatchEdge (N16_1, N16_2) {
  1069. value = "'frame'"
  1070. }
  1071. MatchEdge (N16_2, N16_3) {
  1072. value = "'init'"
  1073. }
  1074. DeleteEdge (N16_2, N16_4) {
  1075. value = "'IP'"
  1076. }
  1077. CreateEdge (N16_2, N16_5) {
  1078. value = "'IP'"
  1079. }
  1080. MatchEdge (N16_4, N16_5) {
  1081. value = "'while'"
  1082. }
  1083. DeleteEdge (N16_2, N16_7) {
  1084. value = "'evalstack'"
  1085. }
  1086. MatchEdge (N16_8, N16_6) {
  1087. value = "taskname"
  1088. }
  1089. DeleteEdge (N16_10, N16_8) {
  1090. value = "'prev'"
  1091. }
  1092. CreateEdge (N16_2, N16_9) {
  1093. value = "'evalstack'"
  1094. }
  1095. CreateEdge (N16_9, N16_8) {
  1096. value = "'prev'"
  1097. }
  1098. }
  1099. Rule Declare_Init_N17 {
  1100. Root N17_0 {}
  1101. Match N17_1 {}
  1102. Match N17_2 {}
  1103. Delete N17_3 {
  1104. value = "'init'"
  1105. }
  1106. Create N17_4 {
  1107. value = "'finish'"
  1108. }
  1109. Match N17_5 {
  1110. value = "!declare"
  1111. }
  1112. Match N17_6 {}
  1113. Match N17_7 {}
  1114. Create N17_8 {}
  1115. MatchEdge (N17_0, N17_1) {
  1116. value = "username"
  1117. }
  1118. MatchEdge (N17_1, N17_2) {
  1119. value = "'frame'"
  1120. }
  1121. DeleteEdge (N17_2, N17_3) {
  1122. value = "'phase'"
  1123. }
  1124. CreateEdge (N17_2, N17_4) {
  1125. value = "'finish'"
  1126. }
  1127. MatchEdge (N17_2, N17_5) {
  1128. value = "'IP'"
  1129. }
  1130. MatchEdge (N17_2, N17_6) {
  1131. value = "'symbols'"
  1132. }
  1133. MatchEdge (N17_5, N17_7) {
  1134. value = "'var'"
  1135. }
  1136. CreateEdge N17_9 (N17_6, N17_8) {}
  1137. CreateEdge (N17_9, N17_7) {}
  1138. }
  1139. Rule Global_Init_N18 {
  1140. Root N18_0 {}
  1141. Match N18_1 {}
  1142. Match N18_2 {}
  1143. Match N18_3 {}
  1144. Delete N18_4 {
  1145. value = "'init'"
  1146. }
  1147. Create N18_5 {
  1148. value = "'finish'"
  1149. }
  1150. Match N18_6 {
  1151. value = "!global"
  1152. }
  1153. Match N18_7 {}
  1154. Create N18_8 {}
  1155. MatchEdge (N18_0, N18_1) {
  1156. value = "username"
  1157. }
  1158. MatchEdge (N18_1, N18_2) {
  1159. value = "'frame'"
  1160. }
  1161. MatchEdge (N18_1, N18_3) {
  1162. value = "'globals'"
  1163. }
  1164. DeleteEdge (N18_2, N18_4) {
  1165. value = "'phase'"
  1166. }
  1167. CreateEdge (N18_2, N18_5) {
  1168. value = "'finish'"
  1169. }
  1170. MatchEdge (N18_2, N18_6) {
  1171. value = "'IP'"
  1172. }
  1173. MatchEdge (N18_6, N18_7) {
  1174. value = "'var'"
  1175. }
  1176. CreateEdge N18_9 (N18_3, N18_8) {}
  1177. CreateEdge (N18_9, N18_7) {}
  1178. }
  1179. Rule If_Cond_N19 {
  1180. Root N19_0 {}
  1181. Match N19_1 {}
  1182. Match N19_2 {}
  1183. Match N19_3 {
  1184. value = "'init'"
  1185. }
  1186. Create N19_4 {}
  1187. Match N19_5 {}
  1188. Match N19_6 {
  1189. value = "!if"
  1190. }
  1191. Create N19_7 {
  1192. value = "'cond'"
  1193. }
  1194. Match N19_8 {}
  1195. MatchEdge (N19_0, N19_1) {
  1196. value = "username"
  1197. }
  1198. MatchEdge (N19_1, N19_2) {
  1199. value = "'frame'"
  1200. }
  1201. MatchEdge (N19_2, N19_3) {
  1202. value = "'phase'"
  1203. }
  1204. DeleteEdge (N19_2, N19_6) {
  1205. value = "'IP'"
  1206. }
  1207. CreateEdge (N19_2, N19_4) {
  1208. value = "'evalstack'"
  1209. }
  1210. DeleteEdge (N19_2, N19_5) {
  1211. value = "'evalstack'"
  1212. }
  1213. CreateEdge (N19_2, N19_8) {
  1214. value = "'IP'"
  1215. }
  1216. CreateEdge (N19_4, N19_5) {
  1217. value = "'prev'"
  1218. }
  1219. CreateEdge (N19_5, N19_6) {
  1220. value = "'inst'"
  1221. }
  1222. CreateEdge (N19_5, N19_7) {
  1223. value = "'phase'"
  1224. }
  1225. MatchEdge (N19_6, N19_8) {
  1226. value = "'cond'"
  1227. }
  1228. }
  1229. Rule If_False_Else_N20 {
  1230. Root N20_0 {}
  1231. Match N20_1 {}
  1232. Match N20_2 {}
  1233. Match N20_3 {
  1234. value = "'cond'"
  1235. }
  1236. Match N20_4 {
  1237. value = "!if"
  1238. }
  1239. Create N20_5 {}
  1240. Match N20_6 {
  1241. value = "False"
  1242. match = True
  1243. }
  1244. Create N20_7 {
  1245. value = "'init'"
  1246. }
  1247. Match N20_8 {}
  1248. Match N20_9 {}
  1249. Create N20_10 {
  1250. value = "'finish'"
  1251. }
  1252. MatchEdge (N20_0, N20_1) {
  1253. value = "username"
  1254. }
  1255. MatchEdge (N20_1, N20_2) {
  1256. value = "'frame'"
  1257. }
  1258. DeleteEdge (N20_2, N20_3) {
  1259. value = "'phase'"
  1260. }
  1261. DeleteEdge (N20_2, N20_4) {
  1262. value = "'IP'"
  1263. }
  1264. CreateEdge (N20_2, N20_5) {
  1265. value = "'evalstack'"
  1266. }
  1267. MatchEdge (N20_2, N20_6) {
  1268. value = "'returnvalue'"
  1269. }
  1270. CreateEdge (N20_2, N20_7) {
  1271. value = "'phase'"
  1272. }
  1273. DeleteEdge (N20_2, N20_9) {
  1274. value = "'evalstack'"
  1275. }
  1276. CreateEdge (N20_2, N20_8) {
  1277. value = "'IP'"
  1278. }
  1279. MatchEdge (N20_4, N20_8) {
  1280. value = "'else'"
  1281. }
  1282. CreateEdge (N20_5, N20_9) {
  1283. value = "'prev'"
  1284. }
  1285. CreateEdge (N20_9, N20_4) {
  1286. value = "'inst'"
  1287. }
  1288. CreateEdge (N20_9, N20_10) {
  1289. value = "'phase'"
  1290. }
  1291. }
  1292. Rule If_False_None_N21 {
  1293. Root N21_root {}
  1294. Match N21_userroot {
  1295. match = True
  1296. }
  1297. Match N21_frame {
  1298. match = True
  1299. }
  1300. Delete N21_phase_D {
  1301. value = "'cond'"
  1302. match = True
  1303. }
  1304. Create N21_phase_C {
  1305. value = "'finish'"
  1306. }
  1307. Match N21_IP {
  1308. value = "!if"
  1309. match = True
  1310. }
  1311. Match N21_RV {
  1312. value = "False"
  1313. match = True
  1314. }
  1315. NAC N21_else {}
  1316. MatchEdge (N21_root, N21_userroot) {
  1317. value = "username"
  1318. }
  1319. MatchEdge (N21_userroot, N21_frame) {
  1320. value = "'frame'"
  1321. }
  1322. MatchEdge (N21_frame, N21_IP) {
  1323. value = "'IP'"
  1324. }
  1325. MatchEdge (N21_frame, N21_RV) {
  1326. value = "'returnvalue'"
  1327. }
  1328. DeleteEdge (N21_frame, N21_phase_D) {
  1329. value = "'phase'"
  1330. }
  1331. CreateEdge (N21_frame, N21_phase_C) {
  1332. value = "'phase'"
  1333. }
  1334. NACEdge (N21_IP, N21_else) {
  1335. value = "'else'"
  1336. }
  1337. }
  1338. Rule If_True_N22 {
  1339. Root N22_0 {}
  1340. Match N22_1 {}
  1341. Match N22_2 {}
  1342. Delete N22_3 {
  1343. value = "'cond'"
  1344. }
  1345. Create N22_4 {}
  1346. Create N22_5 {
  1347. value = "'init'"
  1348. }
  1349. Match N22_6 {
  1350. value = "True"
  1351. }
  1352. Match N22_7 {}
  1353. Match N22_8 {}
  1354. Match N22_9 {
  1355. value = "!if"
  1356. }
  1357. Create N22_10 {
  1358. value = "'finish'"
  1359. }
  1360. MatchEdge (N22_0, N22_1) {
  1361. value = "username"
  1362. }
  1363. MatchEdge (N22_1, N22_2) {
  1364. value = "'frame'"
  1365. }
  1366. DeleteEdge (N22_2, N22_3) {
  1367. value = "'phase'"
  1368. }
  1369. DeleteEdge (N22_2, N22_9) {
  1370. value = "'IP'"
  1371. }
  1372. CreateEdge (N22_2, N22_4) {
  1373. value = "'evalstack'"
  1374. }
  1375. CreateEdge (N22_2, N22_5) {
  1376. value = "'phase'"
  1377. }
  1378. MatchEdge (N22_2, N22_6) {
  1379. value = "True"
  1380. }
  1381. DeleteEdge (N22_2, N22_7) {
  1382. value = "'evalstack'"
  1383. }
  1384. CreateEdge (N22_2, N22_8) {
  1385. value = "'IP'"
  1386. }
  1387. CreateEdge (N22_7, N22_9) {
  1388. value = "'inst'"
  1389. }
  1390. CreateEdge (N22_7, N22_10) {
  1391. value = "'phase'"
  1392. }
  1393. MatchEdge (N22_9, N22_8) {
  1394. value = "'then'"
  1395. }
  1396. }
  1397. Rule Next_Next_N24 {
  1398. Root N24_0 {}
  1399. Match N24_1 {}
  1400. Match N24_2 {}
  1401. Delete N24_3 {
  1402. value = "'finish'"
  1403. }
  1404. Create N24_4 {
  1405. value = "'init'"
  1406. }
  1407. Match N24_5 {}
  1408. Match N24_6 {}
  1409. MatchEdge (N24_0, N24_1) {
  1410. value = "username"
  1411. }
  1412. MatchEdge (N24_1, N24_2) {
  1413. value = "'frame'"
  1414. }
  1415. DeleteEdge (N24_2, N24_3) {
  1416. value = "'phase'"
  1417. }
  1418. CreateEdge (N24_2, N24_4) {
  1419. value = "'phase'"
  1420. }
  1421. DeleteEdge (N24_2, N24_5) {
  1422. value = "'IP'"
  1423. }
  1424. CreateEdge (N24_2, N24_6) {
  1425. value = "'IP'"
  1426. }
  1427. MatchEdge (N24_5, N24_6) {
  1428. value = "'next'"
  1429. }
  1430. }
  1431. Rule Next_NoNext_N25 {
  1432. Root N25_0 {}
  1433. Match N25_1 {}
  1434. Match N25_2 {}
  1435. Delete N25_3 {
  1436. value = "'finish'"
  1437. }
  1438. Match N25_4 {
  1439. value = "'IP'"
  1440. }
  1441. Match N25_5 {}
  1442. Delete N25_6 {}
  1443. Match N25_7 {}
  1444. Match N25_8 {}
  1445. NAC N25_9 {}
  1446. MatchEdge (N25_0, N25_1) {
  1447. value = "username"
  1448. }
  1449. MatchEdge (N25_1, N25_2) {
  1450. value = "'frame'"
  1451. }
  1452. DeleteEdge (N25_2, N25_3) {
  1453. value = "'phase'"
  1454. }
  1455. DeleteEdge (N25_2, N25_4) {
  1456. value = "'IP'"
  1457. }
  1458. CreateEdge (N25_2, N25_5) {
  1459. value = "'IP'"
  1460. }
  1461. DeleteEdge (N25_2, N25_6) {
  1462. value = "'evalstack'"
  1463. }
  1464. CreateEdge (N25_2, N25_7) {
  1465. value = "'evalstack'"
  1466. }
  1467. CreateEdge (N25_2, N25_8) {
  1468. value = "'phase'"
  1469. }
  1470. DeleteEdge (N25_6, N25_7) {
  1471. value = "'prev'"
  1472. }
  1473. DeleteEdge (N25_7, N25_5) {
  1474. value = "'inst'"
  1475. }
  1476. DeleteEdge (N25_7, N25_8) {
  1477. value = "'phase'"
  1478. }
  1479. NACEdge (N25_4, N25_9) {
  1480. value = "'next'"
  1481. }
  1482. }
  1483. Rule Output_Init_N26 {
  1484. Root N26_0 {}
  1485. Match N26_1 {}
  1486. Match N26_2 {}
  1487. Match N26_3 {
  1488. value = "'init'"
  1489. }
  1490. Match N26_4 {
  1491. value = "!output"
  1492. }
  1493. Create N26_5 {}
  1494. Match N26_6 {}
  1495. Match N26_7 {}
  1496. Match N26_8 {
  1497. value = "'output'"
  1498. }
  1499. MatchEdge (N26_0, N26_1) {
  1500. value = "username"
  1501. }
  1502. MatchEdge (N26_1, N26_2) {
  1503. value = "'frame'"
  1504. }
  1505. MatchEdge (N26_2, N26_3) {
  1506. value = "'phase'"
  1507. }
  1508. DeleteEdge (N26_2, N26_4) {
  1509. value = "'IP'"
  1510. }
  1511. CreateEdge (N26_2, N26_5) {
  1512. value = "'evalstack'"
  1513. }
  1514. DeleteEdge (N26_2, N26_6) {
  1515. value = "'evalstack'"
  1516. }
  1517. CreateEdge (N26_2, N26_7) {
  1518. value = "'IP'"
  1519. }
  1520. CreateEdge (N26_6, N26_4) {
  1521. value = "'inst'"
  1522. }
  1523. CreateEdge (N26_6, N26_8) {
  1524. value = "'phase'"
  1525. }
  1526. MatchEdge (N26_4, N26_7) {
  1527. value = "'value'"
  1528. }
  1529. }
  1530. Rule Output_Output_N27 {
  1531. Root N27_0 {}
  1532. Match N27_1 {}
  1533. Match N27_2 {}
  1534. Match N27_3 {}
  1535. Match N27_4 {
  1536. value = "!output"
  1537. }
  1538. Match N27_5 {
  1539. value = "'output'"
  1540. }
  1541. Create N27_6 {
  1542. value = "'finish'"
  1543. }
  1544. Match N27_7 {}
  1545. Create N27_8 {}
  1546. MatchEdge (N27_0, N27_1) {
  1547. value = "username"
  1548. }
  1549. MatchEdge (N27_1, N27_2) {
  1550. value = "'frame'"
  1551. }
  1552. MatchEdge (N27_2, N27_4) {
  1553. value = "'IP'"
  1554. }
  1555. DeleteEdge (N27_2, N27_5) {
  1556. value = "'phase'"
  1557. }
  1558. CreateEdge (N27_2, N27_6) {
  1559. value = "'phase'"
  1560. }
  1561. MatchEdge (N27_2, N27_7) {
  1562. value = "'returnvalue'"
  1563. }
  1564. CreateEdge (N27_3, N27_7) {
  1565. value = "'value'"
  1566. }
  1567. CreateEdge (N27_3, N27_8) {
  1568. value = "'next'"
  1569. }
  1570. CreateEdge (N27_1, N27_8) {
  1571. value = "'last_output'"
  1572. }
  1573. }
  1574. Rule Resolve_NoAttrGlobal_N28 {
  1575. Root N28_0 {}
  1576. Match N28_1 {}
  1577. Match N28_2 {}
  1578. Match N28_3 {}
  1579. Create N28_4 {
  1580. value = "'finish'"
  1581. }
  1582. Match N28_5 {}
  1583. Match N28_6 {}
  1584. Match N28_7 {
  1585. value = "!resolve"
  1586. }
  1587. Delete N28_8 {
  1588. value = "'init'"
  1589. }
  1590. Match N28_9 {}
  1591. Match N28_10 {}
  1592. NAC N18_11 {}
  1593. MatchEdge (N28_0, N28_1) {
  1594. value = "username"
  1595. }
  1596. MatchEdge (N28_0, N28_2) {
  1597. value = "'__global'"
  1598. }
  1599. MatchEdge (N28_1, N28_3) {
  1600. value = "'frame'"
  1601. }
  1602. CreateEdge (N28_3, N28_4) {
  1603. value = "'finish'"
  1604. }
  1605. MatchEdge (N28_3, N28_5) {
  1606. value = "'symbols'"
  1607. }
  1608. DeleteEdge (N28_3, N28_6) {
  1609. value = "'returnvalue'"
  1610. }
  1611. MatchEdge (N28_3, N28_7) {
  1612. value = "'IP'"
  1613. }
  1614. DeleteEdge (N28_3, N28_8) {
  1615. value = "'phase'"
  1616. }
  1617. CreateEdge (N28_3, N28_9) {
  1618. value = "'returnvalue'"
  1619. }
  1620. MatchEdge N28_13 (N28_2, N28_9) {}
  1621. MatchEdge (N28_13, N28_10) {}
  1622. MatchEdge (N28_7, N28_10) {}
  1623. NACEdge N28_12 (N28_5, N28_11) {}
  1624. NACEdge (N28_12, N28_10) {}
  1625. }
  1626. Rule Resolve_NoAttr_N29 {
  1627. Root N29_0 {}
  1628. Match N29_1 {}
  1629. Match N29_2 {}
  1630. Match N29_3 {
  1631. value = "!resolve"
  1632. }
  1633. Delete N29_4 {
  1634. value = "'init'"
  1635. }
  1636. Create N29_5 {
  1637. value = "'finish'"
  1638. }
  1639. Match N29_6 {}
  1640. Match N29_7 {}
  1641. Match N29_8 {}
  1642. Match N29_9 {}
  1643. MatchEdge (N29_0, N29_1) {
  1644. value = "username"
  1645. }
  1646. MatchEdge (N29_1, N29_2) {
  1647. value = "'frame'"
  1648. }
  1649. MatchEdge (N29_2, N29_3) {
  1650. value = "'IP'"
  1651. }
  1652. DeleteEdge (N29_2, N29_4) {
  1653. value = "'phase'"
  1654. }
  1655. CreateEdge (N29_2, N29_5) {
  1656. value = "'phase'"
  1657. }
  1658. MatchEdge (N29_2, N29_6) {
  1659. value = "'symbols'"
  1660. }
  1661. CreateEdge (N29_2, N29_7) {
  1662. value = "'returnvalue'"
  1663. }
  1664. DeleteEdge (N29_2, N29_8) {
  1665. value = "'returnvalue'"
  1666. }
  1667. MatchEdge (N29_3, N29_9) {
  1668. value = "'var'"
  1669. }
  1670. MatchEdge N29_10 (N29_6, N29_7) {}
  1671. MatchEdge (N29_10, N29_9) {}
  1672. }
  1673. Rule Return_Eval_N30 {
  1674. Root N30_0 {}
  1675. Match N30_1 {}
  1676. Match N30_2 {}
  1677. Match N30_3 {}
  1678. Match N30_4 {
  1679. value = "'eval'"
  1680. }
  1681. Match N30_5 {
  1682. value = "!return"
  1683. }
  1684. Match N30_6 {}
  1685. Match N30_7 {}
  1686. MatchEdge (N30_0, N30_1) {
  1687. value = "username"
  1688. }
  1689. DeleteEdge (N30_1, N30_2) {
  1690. value = "'frame'"
  1691. }
  1692. CreateEdge (N30_1, N30_3) {
  1693. value = "'frame'"
  1694. }
  1695. DeleteEdge (N30_2, N30_4) {
  1696. value = "'phase'"
  1697. }
  1698. DeleteEdge (N30_2, N30_5) {
  1699. value = "'IP'"
  1700. }
  1701. DeleteEdge (N30_2, N30_6) {
  1702. value = "'returnvalue'"
  1703. }
  1704. DeleteEdge (N30_2, N30_3) {
  1705. value = "'prev'"
  1706. }
  1707. CreateEdge (N30_3, N30_6) {
  1708. value = "'returnvalue'"
  1709. }
  1710. DeleteEdge (N30_3, N30_7) {
  1711. value = "'returnvalue'"
  1712. }
  1713. }
  1714. Rule Return_NoValue_N31 {
  1715. Root N31_0 {}
  1716. Match N31_1 {}
  1717. Match N31_2 {}
  1718. Match N31_3 {}
  1719. Match N31_4 {
  1720. value = "'init'"
  1721. }
  1722. Match N31_5 {
  1723. value = "!return"
  1724. }
  1725. NAC N31_6 {}
  1726. MatchEdge (N31_0, N31_1) {
  1727. value = "username"
  1728. }
  1729. DeleteEdge (N31_1, N31_2) {
  1730. value = "'frame'"
  1731. }
  1732. CreateEdge (N31_1, N31_3) {
  1733. value = "'frame'"
  1734. }
  1735. DeleteEdge (N31_2, N31_4) {
  1736. value = "'phase'"
  1737. }
  1738. DeleteEdge (N31_2, N31_5) {
  1739. value = "'IP'"
  1740. }
  1741. DeleteEdge (N31_2, N31_3) {
  1742. value = "'prev'"
  1743. }
  1744. NACEdge (N31_5, N31_6) {
  1745. value = "'value'"
  1746. }
  1747. }
  1748. Rule Return_Value_N32 {
  1749. Root N32_0 {}
  1750. Match N32_1 {}
  1751. Match N32_2 {}
  1752. Match N32_3 {
  1753. value = "'init'"
  1754. }
  1755. Create N32_4 {}
  1756. Match N32_5 {
  1757. value = "!return"
  1758. }
  1759. Match N32_6 {}
  1760. Match N32_7 {}
  1761. Create N32_8 {
  1762. value = "'eval'"
  1763. }
  1764. MatchEdge (N32_0, N32_1) {
  1765. value = "username"
  1766. }
  1767. MatchEdge (N32_1, N32_2) {
  1768. value = "'frame'"
  1769. }
  1770. MatchEdge (N32_2, N32_3) {
  1771. value = "'phase'"
  1772. }
  1773. DeleteEdge (N32_2, N32_5) {
  1774. value = "'IP'"
  1775. }
  1776. CreateEdge (N32_2, N32_4) {
  1777. value = "'evalstack'"
  1778. }
  1779. DeleteEdge (N32_2, N32_6) {
  1780. value = "'evalstack'"
  1781. }
  1782. CreateEdge (N32_2, N32_7) {
  1783. value = "'IP'"
  1784. }
  1785. CreateEdge (N32_4, N32_6) {
  1786. value = "'prev'"
  1787. }
  1788. CreateEdge (N32_6, N32_5) {
  1789. value = "'inst'"
  1790. }
  1791. CreateEdge (N32_6, N32_8) {
  1792. value = "'phase'"
  1793. }
  1794. MatchEdge (N32_5, N32_7) {
  1795. value = "'value'"
  1796. }
  1797. }
  1798. Rule While_Cond_N33 {
  1799. Root N33_0 {}
  1800. Match N33_1 {}
  1801. Match N33_2 {}
  1802. Match N33_3 {
  1803. value = "'init'"
  1804. }
  1805. Create N33_4 {}
  1806. Match N33_5 {
  1807. value = "!while"
  1808. }
  1809. Match N33_6 {}
  1810. Match N33_7 {}
  1811. Create N33_8 {
  1812. value = "'cond'"
  1813. }
  1814. MatchEdge (N33_0, N33_1) {
  1815. value = "username"
  1816. }
  1817. MatchEdge (N33_1, N33_2) {
  1818. value = "'frame'"
  1819. }
  1820. MatchEdge (N33_2, N33_3) {
  1821. value = "'phase'"
  1822. }
  1823. DeleteEdge (N33_2, N33_5) {
  1824. value = "'IP'"
  1825. }
  1826. CreateEdge (N33_2, N33_4) {
  1827. value = "'evalstack'"
  1828. }
  1829. DeleteEdge (N33_2, N33_6) {
  1830. value = "'evalstack'"
  1831. }
  1832. CreateEdge (N33_2, N33_7) {
  1833. value = "'IP'"
  1834. }
  1835. CreateEdge (N33_4, N33_6) {
  1836. value = "'prev'"
  1837. }
  1838. CreateEdge (N33_6, N33_5) {
  1839. value = "'inst'"
  1840. }
  1841. CreateEdge (N33_6, N33_8) {
  1842. value = "'phase'"
  1843. }
  1844. MatchEdge (N33_5, N33_7) {
  1845. value = "'cond'"
  1846. }
  1847. }
  1848. Rule While_False_N34 {
  1849. Root N34_0 {}
  1850. Match N34_1 {}
  1851. Match N34_2 {}
  1852. Delete N34_3 {
  1853. value = "'cond'"
  1854. }
  1855. Create N34_4 {
  1856. value = "'finish'"
  1857. }
  1858. Match N34_5 {
  1859. value = "!while"
  1860. }
  1861. Match N34_6 {
  1862. value = "False"
  1863. }
  1864. MatchEdge (N34_0, N34_1) {
  1865. value = "username"
  1866. }
  1867. MatchEdge (N34_1, N34_2) {
  1868. value = "'frame'"
  1869. }
  1870. DeleteEdge (N34_2, N34_3) {
  1871. value = "'phase'"
  1872. }
  1873. CreateEdge (N34_2, N34_4) {
  1874. value = "'phase'"
  1875. }
  1876. MatchEdge (N34_2, N34_5) {
  1877. value = "'IP'"
  1878. }
  1879. MatchEdge (N34_2, N34_6) {
  1880. value = "'returnvalue'"
  1881. }
  1882. }
  1883. Rule While_True_N35 {
  1884. Root N35_0 {}
  1885. Match N35_1 {}
  1886. Match N35_2 {}
  1887. Delete N35_3 {
  1888. value = "'cond'"
  1889. }
  1890. Create N35_4 {
  1891. value = "'init'"
  1892. }
  1893. Match N35_5 {
  1894. value = "!while"
  1895. }
  1896. Create N35_6 {}
  1897. Match N35_7 {
  1898. value = "True"
  1899. }
  1900. Match N35_8 {}
  1901. Match N35_9 {}
  1902. Create N35_10 {
  1903. value = "'init'"
  1904. }
  1905. Match N35_11 {}
  1906. MatchEdge (N35_0, N35_1) {
  1907. value = "username"
  1908. }
  1909. MatchEdge (N35_1, N35_2) {
  1910. value = "'frame'"
  1911. }
  1912. DeleteEdge (N35_2, N35_3) {
  1913. value = "'phase'"
  1914. }
  1915. CreateEdge (N35_2, N35_4) {
  1916. value = "'phase'"
  1917. }
  1918. DeleteEdge (N35_2, N35_5) {
  1919. value = "'IP'"
  1920. }
  1921. CreateEdge (N35_2, N35_6) {
  1922. value = "'evalstack'"
  1923. }
  1924. MatchEdge (N35_2, N35_7) {
  1925. value = "'returnvalue'"
  1926. }
  1927. DeleteEdge (N35_2, N35_8) {
  1928. value = "'evalstack'"
  1929. }
  1930. CreateEdge (N35_2, N35_9) {
  1931. value = "'IP'"
  1932. }
  1933. CreateEdge (N35_8, N35_5) {
  1934. value = "'inst'"
  1935. }
  1936. CreateEdge (N35_8, N35_10) {
  1937. value = "'phase'"
  1938. }
  1939. MatchEdge (N35_5, N35_9) {
  1940. value = "'body'"
  1941. }
  1942. DeleteEdge (N35_8, N35_11) {
  1943. value = "taskname"
  1944. }
  1945. CreateEdge (N35_8, N35_5) {
  1946. value = "taskname"
  1947. }
  1948. }