X-Git-Url: http://nitlanguage.org diff --git a/src/nitmetrics.nit b/src/nitmetrics.nit index 1b2ebd1..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,28 +53,57 @@ 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 -print "" -visit_self(modelbuilder) +# 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 all or toolcontext.opt_self.value then + print "" + compute_self_metrics(modelbuilder) +end -print "" -visit_nullable_sends(modelbuilder) +# Nullables metrics +if all or toolcontext.opt_nullables.value then + print "" + compute_nullables_metrics(modelbuilder) +end -print "" -count_ntypes(modelbuilder) +# Static types metrics +if all or toolcontext.opt_static_types.value then + print "" + compute_static_types_metrics(modelbuilder) +end -generate_module_hierarchy(toolcontext, model) -generate_classdef_hierarchy(toolcontext, model) -generate_class_hierarchy(toolcontext, mainmodule) -generate_model_hyperdoc(toolcontext, model) +# Tables metrics +if all or toolcontext.opt_tables.value then + print "" + compute_tables_metrics(mainmodule) +end -print "" -compute_tables(mainmodule) +# RTA metrics +if all or toolcontext.opt_rta.value then + print "" + compute_rta_metrics(modelbuilder, mainmodule) +end -print "" -compute_rta_stats(modelbuilder, mainmodule) +# 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