nitc :: NeoModel :: to_mmodule
MModule
from a node
.REQUIRE node.labels.has("MModule")
# Build a new `MModule` from a `node`.
#
# REQUIRE `node.labels.has("MModule")`
private fun to_mmodule(model: Model, node: NeoNode): MModule do
var m = mentities.get_or_null(node.id.as(Int))
if m isa MModule then return m
assert node.labels.has("MModule")
var ins = node.in_nodes("DECLARES")
var mgroup: nullable MGroup = null
if not ins.is_empty then
mgroup = to_mgroup(model, ins.first)
end
var name = node["name"].to_s
var location = to_location(node["location"].to_s)
var mmodule = new MModule(model, mgroup, name, location)
mentities[node.id.as(Int)] = mmodule
set_doc(node, mmodule)
var imported_mmodules = new Array[MModule]
for smod in node.out_nodes("IMPORTS") do
imported_mmodules.add to_mmodule(model, smod)
end
mmodule.set_imported_mmodules(imported_mmodules)
return mmodule
end
src/neo.nit:382,2--406,4