gen_nit :: NitModule :: defaultinit
# Template of a Nit module to generate Nit code
class NitModule
super Template
# Header on top of the module, usually the documentation
var header: nullable Writable = null is writable
# The module's name
var name: Writable is writable
# Annotations on the module declaration
var annotations = new Array[Writable]
# Importation declarations
#
# Accepts two formats:
# * Module name only, short or qualified: `json`, `gamnit::flat`, etc.
# * Full importation declaration: `import json`, `private import gamnit::flat`, etc.
var imports = new Set[Writable]
# Main content of this module
var content = new Array[Writable]
redef fun rendering
do
var header = header
if header != null then add header
var name = name
if annotations.is_empty then
add "module {name}\n\n"
else
add "module {name} is\n"
for annotation in annotations do add "\t{annotation}\n"
add "end\n\n"
end
for i in imports do
if i.to_s.has("import ") then
add i
else
add "import "
add i
end
add "\n"
end
add "\n"
for l in content do
add l
add "\n"
end
end
end
lib/gen_nit/gen_nit.nit:45,1--98,3