Merge branch 'phases'
[nit.git] / src / nitmetrics.nit
index 5d93ceb..0f6f430 100644 (file)
@@ -18,7 +18,7 @@
 module nitmetrics
 
 import modelbuilder
-import exprbuilder
+import frontend
 import metrics
 
 # Create a tool context to handle options and paths
@@ -39,8 +39,8 @@ var model = new Model
 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
 
@@ -53,38 +53,49 @@ else
        mainmodule.set_imported_mmodules(mmodules)
 end
 
-# Now, we just have to play with the model!
-print "*** STATS ***"
+print "*** METRICS ***"
 
-print ""
-compute_statistics(model)
+# All metrics computation ?
+var all = toolcontext.opt_all.value
+
+# Inheritance usage metrics
+if all or toolcontext.opt_inheritance.value then
+       print ""
+       compute_inheritance_metrics(toolcontext, model)
+end
+
+# Refinement usage metrics
+if all or toolcontext.opt_refinement.value then
+       print ""
+       compute_refinement_metrics(model)
+end
 
 # Self usage metrics
-if toolcontext.opt_self.value then
+if all or toolcontext.opt_self.value then
        print ""
        compute_self_metrics(modelbuilder)
 end
 
 # Nullables metrics
-if toolcontext.opt_nullables.value then
+if all or toolcontext.opt_nullables.value then
        print ""
        compute_nullables_metrics(modelbuilder)
 end
 
 # Static types metrics
-if toolcontext.opt_static_types.value then
+if all or toolcontext.opt_static_types.value then
        print ""
        compute_static_types_metrics(modelbuilder)
 end
 
 # Tables metrics
-if toolcontext.opt_tables.value then
+if all or toolcontext.opt_tables.value then
        print ""
        compute_tables_metrics(mainmodule)
 end
 
 # RTA metrics
-if toolcontext.opt_rta.value then
+if all or toolcontext.opt_rta.value then
        print ""
        compute_rta_metrics(modelbuilder, mainmodule)
 end