DSL EXPRESSION:
begin{ @a = @b[1] }; $c = @d; @e[$i][2+$j][3] = $4; end{@f[@g[5][@h]] = 6}


AST:
* statement block
    * begin block
        * statement block
            * assignment "="
                * direct oosvar value "a"
                * array or map index access "[]"
                    * direct oosvar value "b"
                    * int literal "1"
    * assignment "="
        * direct field value "c"
        * direct oosvar value "d"
    * assignment "="
        * array or map index access "[]"
            * array or map index access "[]"
                * array or map index access "[]"
                    * direct oosvar value "e"
                    * direct field value "i"
                * operator "+"
                    * int literal "2"
                    * direct field value "j"
            * int literal "3"
        * direct field value "4"
    * end block
        * statement block
            * assignment "="
                * array or map index access "[]"
                    * direct oosvar value "f"
                    * array or map index access "[]"
                        * array or map index access "[]"
                            * direct oosvar value "g"
                            * int literal "5"
                        * direct oosvar value "h"
                * int literal "6"

