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)
     {