Differences From Artifact [4e37845b6ce5021a]:
- File
polemy/ast.d
- 2010-11-08 14:59:30 - part of checkin [b985f3bf91] on branch trunk - refactored parser to change AST to ML-like one. (user: kinaba) [annotate]
To Artifact [35d37c6aa0a6531e]:
- File
polemy/ast.d
- 2010-11-08 16:40:55 - part of checkin [aa770610d3] on branch trunk - added layered-let (user: kinaba) [annotate]
34 string var; 34 string var;
35 mixin SimpleClass; 35 mixin SimpleClass;
36 } 36 }
37 37
38 class LetExpression : AST 38 class LetExpression : AST
39 { 39 {
40 string var; 40 string var;
> 41 string layer;
41 AST init; 42 AST init;
42 AST expr; 43 AST expr;
43 mixin SimpleClass; 44 mixin SimpleClass;
44 } 45 }
45 46
46 class FuncallExpression : AST 47 class FuncallExpression : AST
47 { 48 {
................................................................................................................................................................................
65 template EasyAST() 66 template EasyAST()
66 { 67 {
67 template genEast(T) 68 template genEast(T)
68 { T genEast(P...)(P ps) { return new T(LexPosition.dummy, ps); } 69 { T genEast(P...)(P ps) { return new T(LexPosition.dummy, ps); }
69 70
70 alias genEast!StrLiteral strl; 71 alias genEast!StrLiteral strl;
71 alias genEast!IntLiteral intl; 72 alias genEast!IntLiteral intl;
72 auto fun(string[] xs, AST ps) { return genEast!FunLiteral(xs,ps); } | 73 auto fun(string[] xs, AST ps) { return genEast!FunLiteral(xs,ps); } // t
73 alias genEast!VarExpression var; 74 alias genEast!VarExpression var;
74 alias genEast!LetExpression let; 75 alias genEast!LetExpression let;
75 alias genEast!FuncallExpression call; 76 alias genEast!FuncallExpression call;
76 } 77 }