diff ast/Decl.d @ 44:495188f9078e new_gen

Big update - Moving towards a better, more seperated parser The parser no loner creates the AST directly, but through callbacks(actions). This means the parser can be run with a different set of actions that do something else. The parser is not back to full strength yet, the main thing missing is the various statements and structs. Also added a SmallArray that uses the stack only until a given size is exceeded, after which the array is copied unto the heap.
author Anders Halager <halager@gmail.com>
date Wed, 23 Apr 2008 00:57:45 +0200
parents e331e4e816e4
children da551f90e03f
line wrap: on
line diff
--- a/ast/Decl.d	Tue Apr 22 22:31:39 2008 +0200
+++ b/ast/Decl.d	Wed Apr 23 00:57:45 2008 +0200
@@ -42,14 +42,21 @@
 
 class FuncDecl : Decl
 {
-    this(Identifier type, Identifier identifier, 
-            VarDecl[] funcArgs, Stmt[] statements)
+    this(Identifier type, Identifier identifier)
     {
         super(DeclType.FuncDecl);
         this.type = type;
         this.identifier = identifier;
-        this.funcArgs = funcArgs;
-        this.statements = statements;
+    }
+
+    void addParam(Identifier type, Identifier name)
+    {
+        funcArgs ~= new VarDecl(type, name, null);
+    }
+
+    void setBody(CompoundStatement stmts)
+    {
+        statements = stmts.statements;
     }
 
     Identifier type, identifier;