DSL EXPRESSION:
begin{@a=0; @b=0; @c=0}; $za=@a; $zb=@b; $zc=@c; $d=@a+@b+@c; @a=@b; @b=@c; @c=$i


AST:
"block" [tt:block] [nt:StatementBlock]
    "begin" [tt:kw_begin] [nt:BeginBlock]
        "block" [tt:block] [nt:StatementBlockInBraces]
            "block" [tt:block] [nt:StatementBlock]
                "=" [tt:equals] [nt:Assignment]
                    "@a" [tt:oosvar_name] [nt:DirectOosvarValue]
                    "0" [tt:int_literal] [nt:int_literal]
                "=" [tt:equals] [nt:Assignment]
                    "@b" [tt:oosvar_name] [nt:DirectOosvarValue]
                    "0" [tt:int_literal] [nt:int_literal]
                "=" [tt:equals] [nt:Assignment]
                    "@c" [tt:oosvar_name] [nt:DirectOosvarValue]
                    "0" [tt:int_literal] [nt:int_literal]
    "=" [tt:equals] [nt:Assignment]
        "$za" [tt:field_name] [nt:DirectFieldValue]
        "@a" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "$zb" [tt:field_name] [nt:DirectFieldValue]
        "@b" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "$zc" [tt:field_name] [nt:DirectFieldValue]
        "@c" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "$d" [tt:field_name] [nt:DirectFieldValue]
        "+" [tt:op_plus] [nt:Operator]
            "+" [tt:op_plus] [nt:Operator]
                "@a" [tt:oosvar_name] [nt:DirectOosvarValue]
                "@b" [tt:oosvar_name] [nt:DirectOosvarValue]
            "@c" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "@a" [tt:oosvar_name] [nt:DirectOosvarValue]
        "@b" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "@b" [tt:oosvar_name] [nt:DirectOosvarValue]
        "@c" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "@c" [tt:oosvar_name] [nt:DirectOosvarValue]
        "$i" [tt:field_name] [nt:DirectFieldValue]

a   b   i  x          y          za zb zc d
pan pan 1  0.34679014 0.72680286 0  0  0  0
eks pan 2  0.75867996 0.52215111 0  0  1  1
wye wye 3  0.20460331 0.33831853 0  1  2  3
eks wye 4  0.38139939 0.13418874 1  2  3  6
wye pan 5  0.57328892 0.86362447 2  3  4  9
zee pan 6  0.52712616 0.49322129 3  4  5  12
eks zee 7  0.61178406 0.18788492 4  5  6  15
zee wye 8  0.59855401 0.97618139 5  6  7  18
hat wye 9  0.03144188 0.74955076 6  7  8  21
pan wye 10 0.50262601 0.95261836 7  8  9  24
