Mercurial > projects > dil
view 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 source
/++ Author: Aziz Köksal License: GPL3 +/ module cmd.ASTStats; import dil.ast.DefaultVisitor; import dil.ast.Node, dil.ast.Declaration, dil.ast.Statement, dil.ast.Expression, dil.ast.Types; class ASTStats : DefaultVisitor { uint[] table; /// Table for counting nodes. uint[] count(Node root) { table = new uint[classNames.length]; super.visitN(root); return table; } // 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); } }