TConst(c:Const)
TVar(v:TVar)
TGlobal(g:TGlobal)
TParenthesis(e:TExpr)
TBlock(el:Array<TExpr>)
TBinop(op:Binop, e1:TExpr, e2:TExpr)
TUnop(op:Unop, e1:TExpr)
TVarDecl(v:TVar, init:TExpr)
TCall(e:TExpr, args:Array<TExpr>)
TSwiz(e:TExpr, regs:Array<Component>)
TIf(econd:TExpr, eif:TExpr, eelse:Null<TExpr>)
TDiscard
TReturn(e:TExpr)
TFor(v:TVar, it:TExpr, loop:TExpr)
TContinue
TBreak
TArray(e:TExpr, index:TExpr)
TArrayDecl(el:Array<TExpr>)
TSwitch(e:TExpr, cases:Array<{values:Array<TExpr>, expr:TExpr}>, def:Null<TExpr>)
TWhile(e:TExpr, loop:TExpr, normalWhile:Bool)
TMeta(m:String, args:Array<Const>, e:TExpr)
TField(e:TExpr, name:String)