Diff
Not logged in

Differences From Artifact [98d6a7a3304f7043]:

To Artifact [8ec2df800d3eb579]:


89 89 class Fun : AST 90 90 { 91 91 Parameter[] params; /// 92 92 AST funbody; /// 93 93 94 94 mixin SimpleClass; 95 95 } 96 + 97 +/// AST node for deadend 98 +class Die : AST 99 +{ 100 + mixin SimpleClass; 101 +} 96 102 97 103 /// List of AST Types 98 104 99 -alias TypeTuple!(Int,Str,Var,Lay,Let,App,Fun) ListOfASTTypes; 105 +alias TypeTuple!(Int,Str,Var,Lay,Let,App,Fun,Die) ListOfASTTypes; 100 106 101 107 /// Handy Generator for AST nodes. To use this, mixin EasyAst; 102 108 103 109 /*mixin*/ 104 110 template EasyAST() 105 111 { 106 112 /// ................................................................................ 113 119 return genEast!Fun(array(map!((string x){return new Parameter(x,[]);})(xs)),ps); } 114 120 auto funp(Parameter[] xs, AST ps) { return genEast!Fun(xs,ps); } /// 115 121 alias genEast!Var var; /// 116 122 alias genEast!Lay lay; /// 117 123 alias genEast!Let let; /// 118 124 alias genEast!App call; /// 119 125 auto param(string name, string[] lay...) { return new Parameter(name, lay); } /// 126 + alias genEast!Die dieast; /// 120 127 }