import frontend
redef class ToolContext
- var ast_metrics_phase = new AstMetricsPhase(self, null)
+ var ast_metrics_phase: Phase = new AstMetricsPhase(self, null)
end
private class AstMetricsPhase
var node_counter = new Counter[String]
var id_counter = new Counter[String]
- redef fun process_mainmodule(mainmodule)
+ redef fun process_mainmodule(mainmodule, given_mmodules)
do
if not toolcontext.opt_ast.value and not toolcontext.opt_all.value then return
print "--- AST Metrics ---"
redef fun visit(n)
do
- if n == null then return
n.visit_all(self)
phase.node_counter.inc(n.class_name)
if n isa TId or n isa TAttrid or n isa TClassid then