nitc :: actors_injection_phase
Injects model for the classes annotated with "is actor" sonitc :: astbuilder
Instantiation and transformation of semantic nodes in the AST of expressions and statementsnitc :: i18n_phase
Basic support of internationalization through the generation of id-to-string tablesSerializable::inspect
to show more useful information
nitc :: modelbuilder
more_collections :: more_collections
Highly specific, but useful, collections-related classes.threaded
annotation
serialization :: serialization_core
Abstract services to serialize Nit objects to different formatsnitc :: serialization_model_phase
Phase generating methods (model-only) to serialize Nit objectsnitc :: toolcontext
Common command-line tool infrastructure than handle options and error messagesnitc :: uml_module
Services for generation of a UML package diagram based on aModel
core :: union_find
union–find algorithm using an efficient disjoint-set data structure
# UML generator in dot format.
module nituml
import modelbuilder
import frontend
import uml
redef class ToolContext
# Phase that generates UML diagrams from model entities.
var umlphase: Phase = new UMLPhase(self, null)
# What to generate?
var opt_gen = new OptionEnum(["class", "package"], "Choose which type of uml diagram to generate", 0, "--diagram")
# Generate private?
var opt_privacy = new OptionBool("Generates private API", "-p", "--private")
redef init do
option_context.add_option opt_gen
option_context.add_option opt_privacy
super
end
end
private class UMLPhase
super Phase
redef fun process_mainmodule(mainmodule, mmodules)
do
var filters = new ModelFilter
if not toolcontext.opt_privacy.value then
filters.min_visibility = protected_visibility
end
var d = new UMLModel(toolcontext.modelbuilder.model, mainmodule, filters)
if toolcontext.opt_gen.value == 0 then
print d.generate_class_uml.write_to_string
else if toolcontext.opt_gen.value == 1 then
print d.generate_package_uml.write_to_string
end
end
end
# process options
var toolcontext = new ToolContext
toolcontext.process_options(args)
var arguments = toolcontext.option_context.rest
# build model
var model = new Model
var mbuilder = new ModelBuilder(model, toolcontext)
var mmodules = mbuilder.parse_full(arguments)
if mmodules.is_empty then return
mbuilder.run_phases
toolcontext.run_global_phases(mmodules)
src/nituml.nit:15,1--70,39