Mercurial > projects > dang
view ast/Decl.d @ 1:2168f4cb73f1
First push
author | johnsen@johnsen-desktop |
---|---|
date | Fri, 18 Apr 2008 02:01:38 +0200 |
parents | |
children | e331e4e816e4 |
line wrap: on
line source
module ast.Decl; import ast.Exp, ast.Stmt; import lexer.Token; import sema.SymbolTable; enum DeclType { VarDecl, FuncDecl, } class Decl { this(DeclType declType) { this.declType = declType; } DeclType declType; Scope env; } class VarDecl : Decl { this(Identifier type, Identifier identifier, Exp e = null) { super(DeclType.VarDecl); this.type = type; this.identifier = identifier; this.init = e; } Identifier type, identifier; Exp init; } class FuncDecl : Decl { this(Identifier type, Identifier identifier, VarDecl[] funcArgs, Stmt[] statements) { super(DeclType.FuncDecl); this.type = type; this.identifier = identifier; this.funcArgs = funcArgs; this.statements = statements; } Identifier type, identifier; VarDecl[] funcArgs; Stmt[] statements; }