Mercurial > projects > dil
annotate trunk/src/cmd/ASTStats.d @ 643:3bd947eb72c2
Added module cmd.ASTStats.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Mon, 14 Jan 2008 14:55:49 +0100 |
parents | |
children | d422e5f2f3ea |
rev | line source |
---|---|
643
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
1 /++ |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
2 Author: Aziz Köksal |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
3 License: GPL3 |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
4 +/ |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
5 module cmd.ASTStats; |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
6 |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
7 import dil.ast.DefaultVisitor; |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
8 import dil.ast.Node; |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
9 |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
10 class ASTStats : DefaultVisitor |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
11 { |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
12 uint[] table; /// Table for counting nodes. |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
13 |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
14 uint[] count(Node root) |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
15 { |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
16 table = new uint[classNames.length]; |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
17 super.visitN(root); |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
18 return table; |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
19 } |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
20 |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
21 // TODO: add visit methods. |
3bd947eb72c2
Added module cmd.ASTStats.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff
changeset
|
22 } |