change booleans like isstatement and allowambiguous into a single "location"
that describes the context in which the tree is being checked.
This will simplify logic for metamethods that do assignment.
Adding setters for some operators.
Expressions like

a(b,c) = d

Will call the metamethod typeof(a).metamethods.__update(&a,b,c,d)

a.b = c

will invoke the macro typeof(a).metamethods.__setentry("b",a,c)