DSL EXPRESSION:
j = 2; for (i = 0; i < NR; i += 1) { $i += i }


AST:
"block" [tt:block] [nt:StatementBlock]
    "=" [tt:equals] [nt:Assignment]
        "j" [tt:non_sigil_name] [nt:LocalVariable]
        "2" [tt:int_literal] [nt:int_literal]
    "for" [tt:kw_for] [nt:TripleForLoop]
        "block" [tt:block] [nt:StatementBlock]
            "=" [tt:equals] [nt:Assignment]
                "i" [tt:non_sigil_name] [nt:LocalVariable]
                "0" [tt:int_literal] [nt:int_literal]
        "block" [tt:block] [nt:StatementBlock]
            "<" [tt:op_lt] [nt:BareBoolean]
                "<" [tt:op_lt] [nt:Operator]
                    "i" [tt:non_sigil_name] [nt:LocalVariable]
                    "NR" [tt:ctx_NR] [nt:ctx_NR]
        "block" [tt:block] [nt:StatementBlock]
            "+=" [tt:op_plus_equals] [nt:CompoundAssignment]
                "i" [tt:non_sigil_name] [nt:LocalVariable]
                "+=" [tt:op_plus_equals] [nt:op_plus_equals]
                "1" [tt:int_literal] [nt:int_literal]
        "block" [tt:block] [nt:StatementBlockInBraces]
            "block" [tt:block] [nt:StatementBlock]
                "+=" [tt:op_plus_equals] [nt:CompoundAssignment]
                    "$i" [tt:field_name] [nt:DirectFieldValue]
                    "+=" [tt:op_plus_equals] [nt:op_plus_equals]
                    "i" [tt:non_sigil_name] [nt:LocalVariable]

a=pan,b=pan,i=1,x=0.34679014,y=0.72680286
a=eks,b=pan,i=3,x=0.75867996,y=0.52215111
a=wye,b=wye,i=6,x=0.20460331,y=0.33831853
a=eks,b=wye,i=10,x=0.38139939,y=0.13418874
