diff trunk/src/cmd/ASTStats.d @ 672:d422e5f2f3ea

Added '--asttable' option to command 'statistics'.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Fri, 18 Jan 2008 00:30:14 +0100
parents 3bd947eb72c2
children e4b60543c5e8
line wrap: on
line diff
--- a/trunk/src/cmd/ASTStats.d	Thu Jan 17 22:57:36 2008 +0100
+++ b/trunk/src/cmd/ASTStats.d	Fri Jan 18 00:30:14 2008 +0100
@@ -5,7 +5,11 @@
 module cmd.ASTStats;
 
 import dil.ast.DefaultVisitor;
-import dil.ast.Node;
+import dil.ast.Node,
+       dil.ast.Declaration,
+       dil.ast.Statement,
+       dil.ast.Expression,
+       dil.ast.Types;
 
 class ASTStats : DefaultVisitor
 {
@@ -18,5 +22,35 @@
     return table;
   }
 
-  // TODO: add visit methods.
+  // Override dispatch functions.
+override:
+  Declaration visitD(Declaration n)
+  {
+    table[n.kind]++;
+    return super.visitD(n);
+  }
+
+  Statement visitS(Statement n)
+  {
+    table[n.kind]++;
+    return super.visitS(n);
+  }
+
+  Expression visitE(Expression n)
+  {
+    table[n.kind]++;
+    return super.visitE(n);
+  }
+
+  TypeNode visitT(TypeNode n)
+  {
+    table[n.kind]++;
+    return super.visitT(n);
+  }
+
+  Node visitN(Node n)
+  {
+    table[n.kind]++;
+    return super.visitN(n);
+  }
 }