EVar(n:String, t:CType, e:Expr, isPublic:Bool, isStatic:Bool, isPrivate:Bool, isFinal:Bool, isInline:Bool)
EFunction(args:Array<Argument>, e:Expr, name:String, ret:CType, isPublic:Bool, isStatic:Bool, isOverride:Bool, isPrivate:Bool, isFinal:Bool, isInline:Bool)
EArrayDecl(e:Array<Expr>, wantedType:CType)
EObject(fl:Array<ObjectField>)
ESwitch(e:Expr, cases:Array<SwitchCase>, defaultExpr:Expr)
ECheckType(e:Expr, t:CType)