@@ -28,14 +28,21 @@ this(immutable LexPosition pos, BigInt n) {super(pos); data = n;} this(immutable LexPosition pos, string n) {super(pos); data = BigInt(n);} } -class VarExpression : AST -{ - string var; +class VarExpression : AST +{ + string var; + mixin SimpleClass; +} + +class LayeredExpression : AST +{ + string lay; + AST expr; mixin SimpleClass; -} - +} + class LetExpression : AST { string var; string layer; @@ -71,7 +78,8 @@ alias genEast!StrLiteral strl; alias genEast!IntLiteral intl; auto fun(string[] xs, AST ps) { return genEast!FunLiteral(xs,ps); } // to help type inference of D alias genEast!VarExpression var; + alias genEast!LayeredExpression lay; alias genEast!LetExpression let; alias genEast!FuncallExpression call; }