Mercurial > projects > dang
diff sema/Visitor.d @ 22:e331e4e816e4
now handling structs to some extend
author | johnsen@johnsen-laptop |
---|---|
date | Fri, 18 Apr 2008 23:45:45 +0200 |
parents | 642c6a998fd9 |
children | 69464d465284 |
line wrap: on
line diff
--- a/sema/Visitor.d Fri Apr 18 21:39:17 2008 +0200 +++ b/sema/Visitor.d Fri Apr 18 23:45:45 2008 +0200 @@ -30,6 +30,8 @@ return visitFuncDecl(cast(FuncDecl)decl); case DeclType.VarDecl: return visitVarDecl(cast(VarDecl)decl); + case DeclType.StructDecl: + return visitStructDecl(cast(StructDecl)decl); default: throw new Exception("Unknown declaration type"); } @@ -104,6 +106,19 @@ return DeclT.init; } + DeclT visitStructDecl(StructDecl s) + { + visitExp(s.identifier); + + foreach (arg; s.vars) + visitDecl(arg); + + static if (is(DeclT == void)) + return; + else + return DeclT.init; + } + // Statements: StmtT visitReturnStmt(ReturnStmt s) {