Mercurial > projects > dang
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;