DSL EXPRESSION:
begin{@ox=0}; $d=$x-@ox; @ox=$x


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]
                    "@ox" [tt:oosvar_name] [nt:DirectOosvarValue]
                    "0" [tt:int_literal] [nt:int_literal]
    "=" [tt:equals] [nt:Assignment]
        "$d" [tt:field_name] [nt:DirectFieldValue]
        "-" [tt:op_minus] [nt:Operator]
            "$x" [tt:field_name] [nt:DirectFieldValue]
            "@ox" [tt:oosvar_name] [nt:DirectOosvarValue]
    "=" [tt:equals] [nt:Assignment]
        "@ox" [tt:oosvar_name] [nt:DirectOosvarValue]
        "$x" [tt:field_name] [nt:DirectFieldValue]

a   b   i  x          y          d
pan pan 1  0.34679014 0.72680286 0.34679014
eks pan 2  0.75867996 0.52215111 0.41188982
wye wye 3  0.20460331 0.33831853 -0.55407666
eks wye 4  0.38139939 0.13418874 0.17679609
wye pan 5  0.57328892 0.86362447 0.19188953
zee pan 6  0.52712616 0.49322129 -0.04616276
eks zee 7  0.61178406 0.18788492 0.08465790
zee wye 8  0.59855401 0.97618139 -0.01323005
hat wye 9  0.03144188 0.74955076 -0.56711213
pan wye 10 0.50262601 0.95261836 0.47118413
