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  }