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:
* statement block
    * begin block
        * statement block
            * assignment "="
                * direct oosvar value "a"
                * int literal "0"
            * assignment "="
                * direct oosvar value "b"
                * int literal "0"
            * assignment "="
                * direct oosvar value "c"
                * int literal "0"
    * assignment "="
        * direct field value "za"
        * direct oosvar value "a"
    * assignment "="
        * direct field value "zb"
        * direct oosvar value "b"
    * assignment "="
        * direct field value "zc"
        * direct oosvar value "c"
    * assignment "="
        * direct field value "d"
        * operator "+"
            * operator "+"
                * direct oosvar value "a"
                * direct oosvar value "b"
            * direct oosvar value "c"
    * assignment "="
        * direct oosvar value "a"
        * direct oosvar value "b"
    * assignment "="
        * direct oosvar value "b"
        * direct oosvar value "c"
    * assignment "="
        * direct oosvar value "c"
        * direct field value "i"

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
