# Example of simple module that aims to do some specific work on nit programs.
#
-# Fast prototypes can just start with this skeletton.
+# Fast prototypes can just start with this skeleton.
module test_test_phase
-# We need the framework that perfoms standard code for the main-program
+# We need the framework that performs standard code for the main-program
import test_phase
# We usualy need specific phases
-# NOTE: `frontend` is sufficent in most case (it is often too much)
+# NOTE: `frontend` is sufficient in most case (it is often too much)
import frontend
# The body of the specific work.
do
print "It works"
var model = modelbuilder.model
+ print "I have {model.mpackages.length} packages"
print "I have {model.mmodules.length} modules"
var mclasses = mainmodule.flatten_mclass_hierarchy
- print "I have also {mclasses.length} classes"
+ print "I have {mclasses.length} classes"
- var meth_cpt = 0
+ var m_cpt = 0
+ var md_cpt = 0
+ var cd_cpt = 0
for m in mainmodule.in_importation.greaters do
for cd in m.mclassdefs do
+ cd_cpt += 1
for pd in cd.mpropdefs do
- if pd isa MMethodDef then meth_cpt += 1
+ if pd isa MMethodDef then
+ md_cpt += 1
+ if pd.is_intro then m_cpt += 1
+ end
end
end
end
- print "And {meth_cpt} definitions of methods"
+ print "For {cd_cpt} definitions of classes"
+ print "I have {m_cpt} methods"
+ print "For {md_cpt} definitions of methods"
end