module nitmetrics
import modelbuilder
-import exprbuilder
+import frontend
import metrics
# Create a tool context to handle options and paths
var modelbuilder = new ModelBuilder(model, toolcontext)
# Here we load an process all modules passed on the command line
-var mmodules = modelbuilder.parse_and_build(arguments)
-modelbuilder.full_propdef_semantic_analysis
+var mmodules = modelbuilder.parse(arguments)
+modelbuilder.run_phases
if mmodules.length == 0 then return
mainmodule.set_imported_mmodules(mmodules)
end
-# Now, we just have to play with the model!
-print "*** STATS ***"
+print "*** METRICS ***"
-print ""
-compute_statistics(model)
-
-print ""
-visit_self(modelbuilder)
-
-print ""
-visit_nullable_sends(modelbuilder)
-
-print ""
-count_ntypes(modelbuilder)
-
-print ""
-compute_tables_metrics(mainmodule)
-
-# RTA metrics
-if toolcontext.opt_rta.value then
- print ""
- compute_rta_metrics(modelbuilder, mainmodule)
-end
-
-# Generate Hyperdoc
-if toolcontext.opt_generate_hyperdoc.value then
- generate_module_hierarchy(toolcontext, model)
- generate_classdef_hierarchy(toolcontext, model)
- generate_class_hierarchy(toolcontext, mainmodule)
- generate_model_hyperdoc(toolcontext, model)
-end
+toolcontext.run_global_phases(mainmodule)