{ict_advance, no input, no eof -- suspend&wait} {} 0 0 1 {{0 0} x {}} {} {ict_advance, no input, at eof -- fail} {} 1 0 1 {{0 0} x {}} {pc 2 at 0 er {0 x}} {ict_advance, has input, no eof -- consume} {{NUM 1 0 0}} 1 0 1 {{0 0} x {}} {pc 2 at 0 cc NUM ok 1} {ict_advance, has input, at eof -- consume} {{NUM 1 0 0}} 1 0 1 {{0 0} x {}} {pc 2 at 0 cc NUM ok 1} {icf_halt -- stop engine} {} 0 0 2 {{14 14 14} {} {}} {pc 1 ht 1} {icf_halt -- stopped engine, no instruction advance} {} 0 1 2 {{14 14 14} {} {}} {} {iok_ok -- always match} {} 0 0 1 {8 {} {}} {pc 1 ok 1} {iok_fail -- never match} {} 0 1 1 {{8 9} {} {}} {pc 2 ok 0} {iok_negate -- match negation} {} 0 1 1 {{8 10} {} {}} {pc 2 ok 0} {iok_negate -- match negation} {} 0 1 1 {{9 10} {} {}} {pc 2 ok 1} {icf_jalways -- jump always} {} 0 0 1 {{11 5 8 8 8 8} {} {}} {pc 5} {icf_jok -- jump on ok, !ok -- no jump} {} 0 0 1 {{12 5 8 8 8 8} {} {}} {pc 2} {icf_jok -- jump on ok, ok -- jump} {} 0 1 1 {{8 12 5 8 8 8 8} {} {}} {pc 5} {icf_jfail -- jump on !ok, !ok -- jump} {} 0 0 1 {{13 5 8 8 8 8} {} {}} {pc 5} {icf_jfail -- jump on !ok, ok -- no jump} {} 0 1 1 {{8 13 5 8 8 8 8} {} {}} {pc 3} {icl_push, save current location} {{ID lalal 0 0} {NUM 1 0 5}} 0 2 2 {{0 0 0 0 15 15} x {}} {pc 6 ls {1 1}} {icl_rewind, reset to last saved location} {{ID lalal 0 0} {NUM 1 0 5}} 0 3 1 {{0 0 15 0 0 16} x {}} {pc 6 at 0 ls {}} {icl_pop, discard last saved location} {{ID lalal 0 0} {NUM 1 0 5}} 0 4 1 {{0 0 15 0 0 15 17} x {}} {pc 7 ls 0} {isv_terminal -- semantic value, set for terminal} {{ID lalal 0 0} {NUM 1 0 5}} 0 2 1 {{0 0 0 0 23} x {}} {pc 5 sv {{} 1 1} as {{{} 1 1}}} {isv_clear -- semantic value, clear} {{ID lalal 0 0} {NUM 1 0 5}} 0 3 1 {{0 0 0 0 23 22} x {}} {pc 6 sv {}} {isv_nonterminal_leaf -- semantic value, set for leaf nonterminal} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 4 1 {{0 0 0 0 15 0 0 24 0} x {}} {pc 9 sv {0 1 2}} {isv_nonterminal_range -- semantic value, set for range nonterminal} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 4 1 {{0 0 0 0 15 0 0 25 0} x {}} {pc 9 sv {0 1 2 {{} 1 2}}} {ias_push -- save semantic value on ast stack} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 5 1 {{0 0 0 0 15 0 0 24 0 27} x {}} {pc 10 as {{0 1 2}}} {ias_mark -- remember location on ast stack} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 6 1 {{0 0 0 0 15 0 0 24 0 27 28} x {}} {pc 11 ms 0} {ias_mark -- remember location on ast stack, empty ast stack} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 0 1 {28 {} {}} {pc 1 ms -1} {ias_mrewind -- discard ast stack to last saved location} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 10 1 {{0 0 0 0 15 0 0 24 0 27 28 27 27 27 29} x {}} {pc 15 as {{0 1 2}} ms {}} {ias_mpop -- discard last saved ast location} {{ID lalal 0 0} {NUM 1 0 5} {NUM 1 0 5}} 0 10 1 {{0 0 0 0 15 0 0 24 0 27 28 27 27 27 30} x {}} {pc 15 ms {}} {ict_match_token, no match} {{NUM 1 0 0}} 1 1 1 {{0 0 1 0 1} {x bad} {}} {pc 5 ok 0 er {0 bad}} {ict_match_token, match} {{NUM 1 0 0}} 1 1 1 {{0 0 1 0 1} {NUM bad} {}} {pc 5} {ict_match_token, no match, token map} {{NUM 1 0 0}} 1 1 1 {{0 0 1 5 1} {x bad} {x 5 NUM 7}} {pc 5 ok 0 er {0 bad}} {ict_match_token, match, token map} {{NUM 1 0 0}} 1 1 1 {{0 0 1 7 1} {NUM bad} {NUM 7}} {pc 5} {ict_match_tokrange, no match} {{NUM 1 0 0}} 1 1 1 {{0 0 2 0 1 2} {a z bad} {}} {pc 6 ok 0 er {0 bad}} {ict_match_tokrange, match} {{f 1 0 0}} 1 1 1 {{0 0 2 0 1 2} {a z bad} {}} {pc 6} {ict_match_tokrange, no match, token map} {{k 1 0 0}} 1 1 1 {{0 0 2 5 7 0} {bad} {a 5 x 6 z 7 k 0}} {pc 6 ok 0 er {0 bad}} {ict_match_tokrange, match, token map} {{x 1 0 0}} 1 1 1 {{0 0 2 5 7 0} {bad} {a 5 x 6 z 7 k 0}} {pc 6} {ict_match_tokclass, no match} {{NUM 1 0 0}} 1 1 1 {{0 0 3 2 0} bad {}} {pc 5 ok 0 er {0 bad}} {ict_match_tokclass, match} {{8 1 0 0}} 1 1 1 {{0 0 3 2 0} bad {}} {pc 5} {icf_ntcall -- subroutine invokation} {} 0 0 1 {{6 5 8 8 8 8} {} {}} {pc 5 rs 2} {icf_ntcall -- nested subroutine invokation} {} 0 0 2 {{6 3 8 6 8 8 8 8 8} {} {}} {pc 8 rs {2 5}} {icf_ntreturn -- subroutine return} {} 0 1 1 {{6 5 8 8 8 7} {} {}} {pc 2 rs {}} {icf_ntreturn -- nested subroutine return} {} 0 2 2 {{6 3 7 6 6 7 7} {} {}} {pc 2 rs {}} {inc_save - save match status for nonterminal} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 6 1 {{0 0 0 0 15 15 0 0 23 5 0} {NT} {}} {pc 11 ls 1 nc {1,NT {2 1 {} {{} 2 2}}}} {inc_restore - restore match status for nonterminal - wrong location for restore} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 1 10 1 {{0 0 0 0 15 15 0 0 23 5 0 0 0 9 22 4 0 0} {NT} {}} {pc 18} {inc_restore - restore match status for nonterminal} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 1 10 2 {{0 0 0 0 15 15 0 0 23 5 0 0 0 9 22 16 4 0 0} {NT} {}} {pc 0 at 2 ok 1 sv {{} 2 2} ls {}} {ier_push -- save error information} {} 0 0 1 {18 {} {}} {pc 1 es {{}}} {ier_clear -- clear error information, nothing to clear} {} 0 0 1 {19 {} {}} {pc 1} {ier_merge - merge current and pushed error - keep current, pushed is empty} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 3 1 {{18 0 0 1 0 0 21} {XX} {}} {pc 7 es {}} {ier_merge - merge current and pushed error - current is empty, keep pushed} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 5 1 {{18 0 0 1 0 0 18 19 21} {XX} {}} {pc 9 er {0 XX} es {{}}} {ier_merge - merge current and pushed error - old/new identical} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 4 1 {{18 0 0 1 0 0 18 21} {XX} {}} {pc 8 es {{}}} {ier_merge - merge current and pushed error - old/new sam location, merge messages} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 5 1 {{18 0 0 1 0 0 18 1 0 1 21} {XX YY} {}} {pc 11 er {0 {XX YY}} es {{}}} {ier_merge - merge current and pushed error - current further than pushed} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 5 1 {{0 0 1 0 0 18 0 0 1 0 0 21} {XX} {}} {pc 12 es {}} {ier_merge - merge current and pushed error - pushed further than current} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 7 1 {{0 0 15 0 0 1 0 0 18 16 1 0 0 21} {XX} {}} {pc 14 er {1 XX} es {}} {ier_nonterminal - replace token error against nt error} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 4 1 {{0 0 15 0 0 1 0 0 20 1} {X NT} {}} {pc 10 er {1 NT}} {isv_nonterminal_reduce - reduce to bottom} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 6 1 {{0 0 15 0 0 23 23 23 26 2} {NT XX YY} {}} {pc 10 sv {2 0 1 {{} 1 1} {{} 1 1} {{} 1 1}}} {isv_nonterminal_reduce - reduce to mark} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 7 1 {{0 0 15 0 0 23 28 23 23 26 2} {NT XX YY} {}} {pc 11 sv {2 0 1 {{} 1 1} {{} 1 1}}} {isv_nonterminal_reduce - reduce to mark and rewind} {{NUM 1 0 0} {SPACE { } 0 1} {ID ident 0 2}} 0 7 2 {{0 0 15 0 0 23 28 23 23 26 2 29} {NT XX YY} {}} {pc 12 sv {2 0 1 {{} 1 1} {{} 1 1}} as {{{} 1 1}} ms {}}