X-Git-Url: http://nitlanguage.org diff --git a/src/nitmetrics.nit b/src/nitmetrics.nit index 5d93ceb..0f6f430 100644 --- a/src/nitmetrics.nit +++ b/src/nitmetrics.nit @@ -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