-<span ng-if='mentity.location'>
- <a ng-href="{{mentity.web_url}}">{{mentity.location.file}}
- <span ng-if='mentity.location.line_start'>:{{mentity.location.line_start}}</span>
- </a>
+<span ng-if='mentity.location' class='text-muted'>
+ {{mentity.location.file}}
+ <span ng-if='mentity.location.line_start'>:{{mentity.location.line_start}}</span>
</span>
<span class='glyphicon glyphicon-arrow-down'/> Linearization
</a>
</li>
- <li role='presentation'>
- <a data-toggle='tab' data-target='#code' ng-click="entityCtrl.loadEntityCode()">
- <span class='glyphicon glyphicon-console'/> Code
- </a>
- </li>
</ul>
<div class='tab-content'>
list-entities='linearization'
list-focus='mentity' />
</div>
- <div role='tabpanel' class='tab-pane fade' id='code'>
- <div class='card'>
- <div class='card-body'>
- <pre ng-bind-html='code' />
- <entity-location mentity='mentity' />
- </div>
- </div>
- </div>
</div>
<span class='glyphicon glyphicon-arrow-down'/> Linearization
</a>
</li>
- <li role='presentation'>
- <a data-toggle='tab' data-target='#code' ng-click="entityCtrl.loadEntityCode()">
- <span class='glyphicon glyphicon-console'/> Code
- </a>
- </li>
</ul>
<div class='tab-content'>
list-entities='linearization'
list-focus='mentity' />
</div>
- <div role='tabpanel' class='tab-pane fade' id='code'>
- <div class='card'>
- <div class='card-body'>
- <pre ng-bind-html='code' />
- <entity-location mentity='mentity' />
- </div>
- </div>
- </div>
</div>
# Same as `to_full_json` but with pretty json.
fun to_pretty_full_json: String do return serialize_to_full_json(plain=true, pretty=true)
+
+ # Sort mentities by name
+ private fun sort_entities(mentities: Collection[MEntity]): Array[MEntity] do
+ var sorter = new MEntityNameSorter
+ var sorted = mentities.to_a
+ sorter.sort(sorted)
+ return sorted
+ end
end
redef class MDoc
super
if v isa FullJsonSerializer then
v.serialize_attribute("root", to_mentity_ref(root))
- v.serialize_attribute("mgroups", to_mentity_refs(mgroups))
+ v.serialize_attribute("mgroups", to_mentity_refs(sort_entities(mgroups)))
var ini = self.ini
if ini != null then v.serialize_attribute("ini", ini.to_map)
end
v.serialize_attribute("mpackage", to_mentity_ref(mpackage))
v.serialize_attribute("default_mmodule", to_mentity_ref(default_mmodule))
v.serialize_attribute("parent", to_mentity_ref(parent))
- v.serialize_attribute("mmodules", to_mentity_refs(mmodules))
- v.serialize_attribute("mgroups", to_mentity_refs(in_nesting.direct_smallers))
+ v.serialize_attribute("mmodules", to_mentity_refs(sort_entities(mmodules)))
+ v.serialize_attribute("mgroups", to_mentity_refs(sort_entities(in_nesting.direct_smallers)))
end
end
end
var view = private_view
v.serialize_attribute("mpackage", to_mentity_ref(mpackage))
v.serialize_attribute("mgroup", to_mentity_ref(mgroup))
- v.serialize_attribute("intro_mclasses", to_mentity_refs(intro_mclasses))
- v.serialize_attribute("mclassdefs", to_mentity_refs(mclassdefs))
- v.serialize_attribute("intro_mclassdefs", to_mentity_refs(collect_intro_mclassdefs(view)))
- v.serialize_attribute("redef_mclassdefs", to_mentity_refs(collect_redef_mclassdefs(view)))
+ v.serialize_attribute("intro_mclasses", to_mentity_refs(sort_entities(intro_mclasses)))
+ v.serialize_attribute("mclassdefs", to_mentity_refs(sort_entities(mclassdefs)))
+ v.serialize_attribute("intro_mclassdefs", to_mentity_refs(sort_entities(collect_intro_mclassdefs(view))))
+ v.serialize_attribute("redef_mclassdefs", to_mentity_refs(sort_entities(collect_redef_mclassdefs(view))))
v.serialize_attribute("imports", to_mentity_refs(in_importation.direct_greaters))
end
end
v.serialize_attribute("intro_mmodule", to_mentity_ref(intro_mmodule))
v.serialize_attribute("mpackage", to_mentity_ref(intro_mmodule.mpackage))
v.serialize_attribute("mclassdefs", to_mentity_refs(mclassdefs))
- v.serialize_attribute("all_mproperties", to_mentity_refs(collect_accessible_mproperties(view)))
- v.serialize_attribute("intro_mproperties", to_mentity_refs(collect_intro_mproperties(view)))
- v.serialize_attribute("redef_mproperties", to_mentity_refs(collect_redef_mproperties(view)))
- v.serialize_attribute("parents", to_mentity_refs(collect_parents(view)))
+ v.serialize_attribute("all_mproperties", to_mentity_refs(sort_entities(collect_accessible_mproperties(view))))
+ v.serialize_attribute("intro_mproperties", to_mentity_refs(sort_entities(collect_intro_mproperties(view))))
+ v.serialize_attribute("redef_mproperties", to_mentity_refs(sort_entities(collect_redef_mproperties(view))))
+ v.serialize_attribute("parents", to_mentity_refs(sort_entities(collect_parents(view))))
end
end
end
var view = private_view
v.serialize_attribute("mmodule", to_mentity_ref(mmodule))
v.serialize_attribute("mclass", to_mentity_ref(mclass))
- v.serialize_attribute("mpropdefs", to_mentity_refs(mpropdefs))
- v.serialize_attribute("intro_mproperties", to_mentity_refs(intro_mproperties))
+ v.serialize_attribute("mpropdefs", to_mentity_refs(sort_entities(mpropdefs)))
+ v.serialize_attribute("intro_mproperties", to_mentity_refs(sort_entities(intro_mproperties)))
v.serialize_attribute("intro", to_mentity_ref(mclass.intro))
v.serialize_attribute("mpackage", to_mentity_ref(mmodule.mpackage))
- v.serialize_attribute("intro_mpropdefs", to_mentity_refs(collect_intro_mpropdefs(view)))
- v.serialize_attribute("redef_mpropdefs", to_mentity_refs(collect_redef_mpropdefs(view)))
+ v.serialize_attribute("intro_mpropdefs", to_mentity_refs(sort_entities(collect_intro_mpropdefs(view))))
+ v.serialize_attribute("redef_mpropdefs", to_mentity_refs(sort_entities(collect_redef_mpropdefs(view))))
end
end
end
if v isa FullJsonSerializer then
v.serialize_attribute("intro", to_mentity_ref(intro))
v.serialize_attribute("intro_mclassdef", to_mentity_ref(intro_mclassdef))
- v.serialize_attribute("mpropdefs", to_mentity_refs(mpropdefs))
+ v.serialize_attribute("mpropdefs", to_mentity_refs(sort_entities(mpropdefs)))
v.serialize_attribute("intro_mclass", to_mentity_ref(intro_mclassdef.mclass))
v.serialize_attribute("mpackage", to_mentity_ref(intro_mclassdef.mmodule.mpackage))
end
"full_name": "test_prog::Object"
},
"mpropdefs": [{
- "full_name": "test_prog$Object$OTHER"
+ "full_name": "test_prog$Object$!="
}, {
"full_name": "test_prog$Object$=="
}, {
- "full_name": "test_prog$Object$!="
+ "full_name": "test_prog$Object$OTHER"
}, {
"full_name": "test_prog$Object$init"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
}],
"full_name": "test_prog"
},
"intro_mpropdefs": [{
- "full_name": "test_prog$Object$OTHER"
+ "full_name": "test_prog$Object$!="
}, {
"full_name": "test_prog$Object$=="
}, {
- "full_name": "test_prog$Object$!="
+ "full_name": "test_prog$Object$OTHER"
}, {
"full_name": "test_prog$Object$init"
}],
"full_name": "test_prog::Int"
},
"mpropdefs": [{
- "full_name": "test_prog$Int$unary -"
+ "full_name": "test_prog$Int$*"
}, {
"full_name": "test_prog$Int$+"
}, {
"full_name": "test_prog$Int$-"
}, {
- "full_name": "test_prog$Int$*"
- }, {
"full_name": "test_prog$Int$/"
}, {
"full_name": "test_prog$Int$>"
}, {
"full_name": "test_prog$Int$to_f"
+ }, {
+ "full_name": "test_prog$Int$unary -"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Int::unary -"
+ "full_name": "test_prog::Int::*"
}, {
"full_name": "test_prog::Int::+"
}, {
"full_name": "test_prog::Int::-"
}, {
- "full_name": "test_prog::Int::*"
- }, {
"full_name": "test_prog::Int::/"
}, {
"full_name": "test_prog::Int::>"
}, {
"full_name": "test_prog::Int::to_f"
+ }, {
+ "full_name": "test_prog::Int::unary -"
}],
"intro": {
"full_name": "test_prog$Int"
"full_name": "test_prog"
},
"intro_mpropdefs": [{
- "full_name": "test_prog$Int$unary -"
+ "full_name": "test_prog$Int$*"
}, {
"full_name": "test_prog$Int$+"
}, {
"full_name": "test_prog$Int$-"
}, {
- "full_name": "test_prog$Int$*"
- }, {
"full_name": "test_prog$Int$/"
}, {
"full_name": "test_prog$Int$>"
}, {
"full_name": "test_prog$Int$to_f"
+ }, {
+ "full_name": "test_prog$Int$unary -"
}],
"redef_mpropdefs": []
}
"full_name": "test_prog::Float"
},
"mpropdefs": [{
+ "full_name": "test_prog$Float$*"
+ }, {
"full_name": "test_prog$Float$+"
}, {
"full_name": "test_prog$Float$-"
}, {
- "full_name": "test_prog$Float$*"
- }, {
"full_name": "test_prog$Float$/"
}, {
"full_name": "test_prog$Float$>"
}],
"intro_mproperties": [{
+ "full_name": "test_prog::Float::*"
+ }, {
"full_name": "test_prog::Float::+"
}, {
"full_name": "test_prog::Float::-"
}, {
- "full_name": "test_prog::Float::*"
- }, {
"full_name": "test_prog::Float::/"
}, {
"full_name": "test_prog::Float::>"
"full_name": "test_prog"
},
"intro_mpropdefs": [{
+ "full_name": "test_prog$Float$*"
+ }, {
"full_name": "test_prog$Float$+"
}, {
"full_name": "test_prog$Float$-"
}, {
- "full_name": "test_prog$Float$*"
- }, {
"full_name": "test_prog$Float$/"
}, {
"full_name": "test_prog$Float$>"
"full_name": "test_prog::Career"
},
"mpropdefs": [{
- "full_name": "test_prog$Career$_strength_bonus"
- }, {
- "full_name": "test_prog$Career$strength_bonus"
+ "full_name": "test_prog$Career$_endurance_bonus"
}, {
- "full_name": "test_prog$Career$strength_bonus="
+ "full_name": "test_prog$Career$_intelligence_bonus"
}, {
- "full_name": "test_prog$Career$_endurance_bonus"
+ "full_name": "test_prog$Career$_strength_bonus"
}, {
"full_name": "test_prog$Career$endurance_bonus"
}, {
"full_name": "test_prog$Career$endurance_bonus="
}, {
- "full_name": "test_prog$Career$_intelligence_bonus"
+ "full_name": "test_prog$Career$Object::init"
}, {
"full_name": "test_prog$Career$intelligence_bonus"
}, {
"full_name": "test_prog$Career$intelligence_bonus="
}, {
- "full_name": "test_prog$Career$Object::init"
+ "full_name": "test_prog$Career$strength_bonus"
+ }, {
+ "full_name": "test_prog$Career$strength_bonus="
}],
"intro_mproperties": [{
- "full_name": "test_prog::careers::Career::_strength_bonus"
- }, {
- "full_name": "test_prog::Career::strength_bonus"
+ "full_name": "test_prog::careers::Career::_endurance_bonus"
}, {
- "full_name": "test_prog::Career::strength_bonus="
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
}, {
- "full_name": "test_prog::careers::Career::_endurance_bonus"
+ "full_name": "test_prog::careers::Career::_strength_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus="
}, {
- "full_name": "test_prog::careers::Career::_intelligence_bonus"
- }, {
"full_name": "test_prog::Career::intelligence_bonus"
}, {
"full_name": "test_prog::Career::intelligence_bonus="
+ }, {
+ "full_name": "test_prog::Career::strength_bonus"
+ }, {
+ "full_name": "test_prog::Career::strength_bonus="
}],
"intro": {
"full_name": "test_prog$Career"
"full_name": "test_prog"
},
"intro_mpropdefs": [{
- "full_name": "test_prog$Career$_strength_bonus"
- }, {
- "full_name": "test_prog$Career$strength_bonus"
+ "full_name": "test_prog$Career$_endurance_bonus"
}, {
- "full_name": "test_prog$Career$strength_bonus="
+ "full_name": "test_prog$Career$_intelligence_bonus"
}, {
- "full_name": "test_prog$Career$_endurance_bonus"
+ "full_name": "test_prog$Career$_strength_bonus"
}, {
"full_name": "test_prog$Career$endurance_bonus"
}, {
"full_name": "test_prog$Career$endurance_bonus="
}, {
- "full_name": "test_prog$Career$_intelligence_bonus"
- }, {
"full_name": "test_prog$Career$intelligence_bonus"
}, {
"full_name": "test_prog$Career$intelligence_bonus="
+ }, {
+ "full_name": "test_prog$Career$strength_bonus"
+ }, {
+ "full_name": "test_prog$Career$strength_bonus="
}],
"redef_mpropdefs": [{
"full_name": "test_prog$Career$Object::init"
"full_name": "test_prog::Race"
},
"mpropdefs": [{
- "full_name": "test_prog$Race$_base_strength"
- }, {
- "full_name": "test_prog$Race$base_strength"
+ "full_name": "test_prog$Race$_base_endurance"
}, {
- "full_name": "test_prog$Race$base_strength="
+ "full_name": "test_prog$Race$_base_intelligence"
}, {
- "full_name": "test_prog$Race$_base_endurance"
+ "full_name": "test_prog$Race$_base_strength"
}, {
"full_name": "test_prog$Race$base_endurance"
}, {
"full_name": "test_prog$Race$base_endurance="
}, {
- "full_name": "test_prog$Race$_base_intelligence"
- }, {
"full_name": "test_prog$Race$base_intelligence"
}, {
"full_name": "test_prog$Race$base_intelligence="
}, {
+ "full_name": "test_prog$Race$base_strength"
+ }, {
+ "full_name": "test_prog$Race$base_strength="
+ }, {
"full_name": "test_prog$Race$Object::init"
}],
"intro_mproperties": [{
- "full_name": "test_prog::races::Race::_base_strength"
- }, {
- "full_name": "test_prog::Race::base_strength"
+ "full_name": "test_prog::races::Race::_base_endurance"
}, {
- "full_name": "test_prog::Race::base_strength="
+ "full_name": "test_prog::races::Race::_base_intelligence"
}, {
- "full_name": "test_prog::races::Race::_base_endurance"
+ "full_name": "test_prog::races::Race::_base_strength"
}, {
"full_name": "test_prog::Race::base_endurance"
}, {
"full_name": "test_prog::Race::base_endurance="
}, {
- "full_name": "test_prog::races::Race::_base_intelligence"
- }, {
"full_name": "test_prog::Race::base_intelligence"
}, {
"full_name": "test_prog::Race::base_intelligence="
+ }, {
+ "full_name": "test_prog::Race::base_strength"
+ }, {
+ "full_name": "test_prog::Race::base_strength="
}],
"intro": {
"full_name": "test_prog$Race"
"full_name": "test_prog"
},
"intro_mpropdefs": [{
- "full_name": "test_prog$Race$_base_strength"
- }, {
- "full_name": "test_prog$Race$base_strength"
+ "full_name": "test_prog$Race$_base_endurance"
}, {
- "full_name": "test_prog$Race$base_strength="
+ "full_name": "test_prog$Race$_base_intelligence"
}, {
- "full_name": "test_prog$Race$_base_endurance"
+ "full_name": "test_prog$Race$_base_strength"
}, {
"full_name": "test_prog$Race$base_endurance"
}, {
"full_name": "test_prog$Race$base_endurance="
}, {
- "full_name": "test_prog$Race$_base_intelligence"
- }, {
"full_name": "test_prog$Race$base_intelligence"
}, {
"full_name": "test_prog$Race$base_intelligence="
+ }, {
+ "full_name": "test_prog$Race$base_strength"
+ }, {
+ "full_name": "test_prog$Race$base_strength="
}],
"redef_mpropdefs": [{
"full_name": "test_prog$Race$Object::init"
"full_name": "test_prog::Character"
},
"mpropdefs": [{
+ "full_name": "test_prog$Character$_age"
+ }, {
+ "full_name": "test_prog$Character$_career"
+ }, {
+ "full_name": "test_prog$Character$_health"
+ }, {
+ "full_name": "test_prog$Character$_name"
+ }, {
"full_name": "test_prog$Character$_race"
}, {
- "full_name": "test_prog$Character$race"
+ "full_name": "test_prog$Character$_sex"
}, {
- "full_name": "test_prog$Character$race="
+ "full_name": "test_prog$Character$age"
}, {
- "full_name": "test_prog$Character$_career"
+ "full_name": "test_prog$Character$age="
}, {
"full_name": "test_prog$Character$career"
}, {
"full_name": "test_prog$Character$career="
}, {
- "full_name": "test_prog$Character$quit"
+ "full_name": "test_prog$Character$health"
}, {
- "full_name": "test_prog$Character$_name"
+ "full_name": "test_prog$Character$health="
+ }, {
+ "full_name": "test_prog$Character$Object::init"
+ }, {
+ "full_name": "test_prog$Character$max_health"
}, {
"full_name": "test_prog$Character$name"
}, {
"full_name": "test_prog$Character$name="
}, {
- "full_name": "test_prog$Character$_age"
- }, {
- "full_name": "test_prog$Character$age"
+ "full_name": "test_prog$Character$quit"
}, {
- "full_name": "test_prog$Character$age="
+ "full_name": "test_prog$Character$race"
}, {
- "full_name": "test_prog$Character$_sex"
+ "full_name": "test_prog$Character$race="
}, {
"full_name": "test_prog$Character$sex"
}, {
"full_name": "test_prog$Character$sex="
}, {
- "full_name": "test_prog$Character$total_strengh"
- }, {
"full_name": "test_prog$Character$total_endurance"
}, {
"full_name": "test_prog$Character$total_intelligence"
}, {
- "full_name": "test_prog$Character$max_health"
+ "full_name": "test_prog$Character$total_strengh"
+ }],
+ "intro_mproperties": [{
+ "full_name": "test_prog::character::Character::_age"
}, {
- "full_name": "test_prog$Character$_health"
+ "full_name": "test_prog::character::Character::_career"
}, {
- "full_name": "test_prog$Character$health"
+ "full_name": "test_prog::character::Character::_health"
}, {
- "full_name": "test_prog$Character$health="
+ "full_name": "test_prog::character::Character::_name"
}, {
- "full_name": "test_prog$Character$Object::init"
- }],
- "intro_mproperties": [{
"full_name": "test_prog::character::Character::_race"
}, {
- "full_name": "test_prog::Character::race"
+ "full_name": "test_prog::character::Character::_sex"
}, {
- "full_name": "test_prog::Character::race="
+ "full_name": "test_prog::Character::age"
}, {
- "full_name": "test_prog::character::Character::_career"
+ "full_name": "test_prog::Character::age="
}, {
"full_name": "test_prog::Character::career"
}, {
"full_name": "test_prog::Character::career="
}, {
- "full_name": "test_prog::Character::quit"
+ "full_name": "test_prog::Character::health"
}, {
- "full_name": "test_prog::character::Character::_name"
+ "full_name": "test_prog::Character::health="
+ }, {
+ "full_name": "test_prog::Character::max_health"
}, {
"full_name": "test_prog::Character::name"
}, {
"full_name": "test_prog::Character::name="
}, {
- "full_name": "test_prog::character::Character::_age"
- }, {
- "full_name": "test_prog::Character::age"
+ "full_name": "test_prog::Character::quit"
}, {
- "full_name": "test_prog::Character::age="
+ "full_name": "test_prog::Character::race"
}, {
- "full_name": "test_prog::character::Character::_sex"
+ "full_name": "test_prog::Character::race="
}, {
"full_name": "test_prog::Character::sex"
}, {
"full_name": "test_prog::Character::sex="
}, {
- "full_name": "test_prog::Character::total_strengh"
- }, {
"full_name": "test_prog::Character::total_endurance"
}, {
"full_name": "test_prog::Character::total_intelligence"
}, {
- "full_name": "test_prog::Character::max_health"
- }, {
- "full_name": "test_prog::character::Character::_health"
- }, {
- "full_name": "test_prog::Character::health"
- }, {
- "full_name": "test_prog::Character::health="
+ "full_name": "test_prog::Character::total_strengh"
}],
"intro": {
"full_name": "test_prog$Character"
"full_name": "test_prog"
},
"intro_mpropdefs": [{
+ "full_name": "test_prog$Character$_age"
+ }, {
+ "full_name": "test_prog$Character$_career"
+ }, {
+ "full_name": "test_prog$Character$_health"
+ }, {
+ "full_name": "test_prog$Character$_name"
+ }, {
"full_name": "test_prog$Character$_race"
}, {
- "full_name": "test_prog$Character$race"
+ "full_name": "test_prog$Character$_sex"
}, {
- "full_name": "test_prog$Character$race="
+ "full_name": "test_prog$Character$age"
}, {
- "full_name": "test_prog$Character$_career"
+ "full_name": "test_prog$Character$age="
}, {
"full_name": "test_prog$Character$career"
}, {
"full_name": "test_prog$Character$career="
}, {
- "full_name": "test_prog$Character$quit"
+ "full_name": "test_prog$Character$health"
}, {
- "full_name": "test_prog$Character$_name"
+ "full_name": "test_prog$Character$health="
+ }, {
+ "full_name": "test_prog$Character$max_health"
}, {
"full_name": "test_prog$Character$name"
}, {
"full_name": "test_prog$Character$name="
}, {
- "full_name": "test_prog$Character$_age"
- }, {
- "full_name": "test_prog$Character$age"
+ "full_name": "test_prog$Character$quit"
}, {
- "full_name": "test_prog$Character$age="
+ "full_name": "test_prog$Character$race"
}, {
- "full_name": "test_prog$Character$_sex"
+ "full_name": "test_prog$Character$race="
}, {
"full_name": "test_prog$Character$sex"
}, {
"full_name": "test_prog$Character$sex="
}, {
- "full_name": "test_prog$Character$total_strengh"
- }, {
"full_name": "test_prog$Character$total_endurance"
}, {
"full_name": "test_prog$Character$total_intelligence"
}, {
- "full_name": "test_prog$Character$max_health"
- }, {
- "full_name": "test_prog$Character$_health"
- }, {
- "full_name": "test_prog$Character$health"
- }, {
- "full_name": "test_prog$Character$health="
+ "full_name": "test_prog$Character$total_strengh"
}],
"redef_mpropdefs": [{
"full_name": "test_prog$Character$Object::init"
"full_name": "test_prog::Combatable"
},
"mpropdefs": [{
- "full_name": "test_prog$Combatable$hit_points"
- }, {
"full_name": "test_prog$Combatable$attack"
}, {
+ "full_name": "test_prog$Combatable$defend"
+ }, {
"full_name": "test_prog$Combatable$direct_attack"
}, {
- "full_name": "test_prog$Combatable$defend"
+ "full_name": "test_prog$Combatable$hit_points"
}, {
"full_name": "test_prog$Combatable$is_dead"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Combatable::hit_points"
- }, {
"full_name": "test_prog::Combatable::attack"
}, {
+ "full_name": "test_prog::Combatable::defend"
+ }, {
"full_name": "test_prog::Combatable::direct_attack"
}, {
- "full_name": "test_prog::Combatable::defend"
+ "full_name": "test_prog::Combatable::hit_points"
}, {
"full_name": "test_prog::Combatable::is_dead"
}],
"full_name": "test_prog"
},
"intro_mpropdefs": [{
- "full_name": "test_prog$Combatable$hit_points"
- }, {
"full_name": "test_prog$Combatable$attack"
}, {
+ "full_name": "test_prog$Combatable$defend"
+ }, {
"full_name": "test_prog$Combatable$direct_attack"
}, {
- "full_name": "test_prog$Combatable$defend"
+ "full_name": "test_prog$Combatable$hit_points"
}, {
"full_name": "test_prog$Combatable$is_dead"
}],
"full_name": "test_prog::Game"
},
"mpropdefs": [{
- "full_name": "test_prog$Game$player_characters"
- }, {
"full_name": "test_prog$Game$computer_characters"
}, {
- "full_name": "test_prog$Game$start_game"
- }, {
"full_name": "test_prog$Game$pause_game"
}, {
+ "full_name": "test_prog$Game$player_characters"
+ }, {
+ "full_name": "test_prog$Game$start_game"
+ }, {
"full_name": "test_prog$Game$stop_game"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Game::player_characters"
- }, {
"full_name": "test_prog::Game::computer_characters"
}, {
- "full_name": "test_prog::Game::start_game"
- }, {
"full_name": "test_prog::Game::pause_game"
}, {
+ "full_name": "test_prog::Game::player_characters"
+ }, {
+ "full_name": "test_prog::Game::start_game"
+ }, {
"full_name": "test_prog::Game::stop_game"
}],
"intro": {
"full_name": "test_prog"
},
"intro_mpropdefs": [{
- "full_name": "test_prog$Game$player_characters"
- }, {
"full_name": "test_prog$Game$computer_characters"
}, {
- "full_name": "test_prog$Game$start_game"
- }, {
"full_name": "test_prog$Game$pause_game"
}, {
+ "full_name": "test_prog$Game$player_characters"
+ }, {
+ "full_name": "test_prog$Game$start_game"
+ }, {
"full_name": "test_prog$Game$stop_game"
}],
"redef_mpropdefs": []
"full_name": "test_prog$Object"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
}],
"full_name": "test_prog$Int"
}],
"all_mproperties": [{
- "full_name": "test_prog::Int::unary -"
+ "full_name": "test_prog::Object::!="
+ }, {
+ "full_name": "test_prog::Int::*"
}, {
"full_name": "test_prog::Int::+"
}, {
"full_name": "test_prog::Int::-"
}, {
- "full_name": "test_prog::Int::*"
- }, {
"full_name": "test_prog::Int::/"
}, {
- "full_name": "test_prog::Int::>"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Int::to_f"
+ "full_name": "test_prog::Int::>"
}, {
"full_name": "test_prog::Object::OTHER"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Object::init"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Int::to_f"
}, {
- "full_name": "test_prog::Object::init"
+ "full_name": "test_prog::Int::unary -"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Int::unary -"
+ "full_name": "test_prog::Int::*"
}, {
"full_name": "test_prog::Int::+"
}, {
"full_name": "test_prog::Int::-"
}, {
- "full_name": "test_prog::Int::*"
- }, {
"full_name": "test_prog::Int::/"
}, {
"full_name": "test_prog::Int::>"
}, {
"full_name": "test_prog::Int::to_f"
+ }, {
+ "full_name": "test_prog::Int::unary -"
}],
"redef_mproperties": [],
"parents": [{
"full_name": "test_prog$Float"
}],
"all_mproperties": [{
+ "full_name": "test_prog::Object::!="
+ }, {
+ "full_name": "test_prog::Float::*"
+ }, {
"full_name": "test_prog::Float::+"
}, {
"full_name": "test_prog::Float::-"
}, {
- "full_name": "test_prog::Float::*"
- }, {
"full_name": "test_prog::Float::/"
}, {
+ "full_name": "test_prog::Object::=="
+ }, {
"full_name": "test_prog::Float::>"
}, {
"full_name": "test_prog::Object::OTHER"
}, {
- "full_name": "test_prog::Object::=="
- }, {
- "full_name": "test_prog::Object::!="
- }, {
"full_name": "test_prog::Object::init"
}],
"intro_mproperties": [{
+ "full_name": "test_prog::Float::*"
+ }, {
"full_name": "test_prog::Float::+"
}, {
"full_name": "test_prog::Float::-"
}, {
- "full_name": "test_prog::Float::*"
- }, {
"full_name": "test_prog::Float::/"
}, {
"full_name": "test_prog::Float::>"
"full_name": "test_prog$Bool"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
}],
"full_name": "test_prog$String"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
}],
"full_name": "test_prog$List"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
}],
"full_name": "test_prog$Career"
}],
"all_mproperties": [{
- "full_name": "test_prog::careers::Career::_strength_bonus"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Career::strength_bonus"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Career::strength_bonus="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::careers::Career::_endurance_bonus"
}, {
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ }, {
+ "full_name": "test_prog::careers::Career::_strength_bonus"
+ }, {
"full_name": "test_prog::Career::endurance_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus="
}, {
- "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ "full_name": "test_prog::Object::init"
}, {
"full_name": "test_prog::Career::intelligence_bonus"
}, {
"full_name": "test_prog::Career::intelligence_bonus="
}, {
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::Object::OTHER"
- }, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Career::strength_bonus"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Career::strength_bonus="
}],
"intro_mproperties": [{
- "full_name": "test_prog::careers::Career::_strength_bonus"
- }, {
- "full_name": "test_prog::Career::strength_bonus"
+ "full_name": "test_prog::careers::Career::_endurance_bonus"
}, {
- "full_name": "test_prog::Career::strength_bonus="
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
}, {
- "full_name": "test_prog::careers::Career::_endurance_bonus"
+ "full_name": "test_prog::careers::Career::_strength_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus="
}, {
- "full_name": "test_prog::careers::Career::_intelligence_bonus"
- }, {
"full_name": "test_prog::Career::intelligence_bonus"
}, {
"full_name": "test_prog::Career::intelligence_bonus="
+ }, {
+ "full_name": "test_prog::Career::strength_bonus"
+ }, {
+ "full_name": "test_prog::Career::strength_bonus="
}],
"redef_mproperties": [{
"full_name": "test_prog::Object::init"
"full_name": "test_prog$Warrior"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::careers::Career::_strength_bonus"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Career::strength_bonus"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Career::strength_bonus="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::careers::Career::_endurance_bonus"
}, {
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ }, {
+ "full_name": "test_prog::careers::Career::_strength_bonus"
+ }, {
"full_name": "test_prog::Career::endurance_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus="
}, {
- "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ "full_name": "test_prog::Object::init"
}, {
"full_name": "test_prog::Career::intelligence_bonus"
}, {
"full_name": "test_prog::Career::intelligence_bonus="
}, {
- "full_name": "test_prog::Object::OTHER"
- }, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Career::strength_bonus"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Career::strength_bonus="
}],
"intro_mproperties": [],
"redef_mproperties": [{
"full_name": "test_prog$Magician"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::careers::Career::_strength_bonus"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Career::strength_bonus"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Career::strength_bonus="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::careers::Career::_endurance_bonus"
}, {
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ }, {
+ "full_name": "test_prog::careers::Career::_strength_bonus"
+ }, {
"full_name": "test_prog::Career::endurance_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus="
}, {
- "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ "full_name": "test_prog::Object::init"
}, {
"full_name": "test_prog::Career::intelligence_bonus"
}, {
"full_name": "test_prog::Career::intelligence_bonus="
}, {
- "full_name": "test_prog::Object::OTHER"
- }, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Career::strength_bonus"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Career::strength_bonus="
}],
"intro_mproperties": [],
"redef_mproperties": [{
"full_name": "test_prog$Alcoholic"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::careers::Career::_strength_bonus"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Career::strength_bonus"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Career::strength_bonus="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::careers::Career::_endurance_bonus"
}, {
+ "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ }, {
+ "full_name": "test_prog::careers::Career::_strength_bonus"
+ }, {
"full_name": "test_prog::Career::endurance_bonus"
}, {
"full_name": "test_prog::Career::endurance_bonus="
}, {
- "full_name": "test_prog::careers::Career::_intelligence_bonus"
+ "full_name": "test_prog::Object::init"
}, {
"full_name": "test_prog::Career::intelligence_bonus"
}, {
"full_name": "test_prog::Career::intelligence_bonus="
}, {
- "full_name": "test_prog::Object::OTHER"
- }, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Career::strength_bonus"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Career::strength_bonus="
}],
"intro_mproperties": [],
"redef_mproperties": [{
"full_name": "test_prog$Race"
}],
"all_mproperties": [{
- "full_name": "test_prog::races::Race::_base_strength"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Race::base_strength"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Race::base_strength="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::races::Race::_base_endurance"
}, {
+ "full_name": "test_prog::races::Race::_base_intelligence"
+ }, {
+ "full_name": "test_prog::races::Race::_base_strength"
+ }, {
"full_name": "test_prog::Race::base_endurance"
}, {
"full_name": "test_prog::Race::base_endurance="
}, {
- "full_name": "test_prog::races::Race::_base_intelligence"
- }, {
"full_name": "test_prog::Race::base_intelligence"
}, {
"full_name": "test_prog::Race::base_intelligence="
}, {
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Race::base_strength"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Race::base_strength="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::init"
}],
"intro_mproperties": [{
- "full_name": "test_prog::races::Race::_base_strength"
- }, {
- "full_name": "test_prog::Race::base_strength"
+ "full_name": "test_prog::races::Race::_base_endurance"
}, {
- "full_name": "test_prog::Race::base_strength="
+ "full_name": "test_prog::races::Race::_base_intelligence"
}, {
- "full_name": "test_prog::races::Race::_base_endurance"
+ "full_name": "test_prog::races::Race::_base_strength"
}, {
"full_name": "test_prog::Race::base_endurance"
}, {
"full_name": "test_prog::Race::base_endurance="
}, {
- "full_name": "test_prog::races::Race::_base_intelligence"
- }, {
"full_name": "test_prog::Race::base_intelligence"
}, {
"full_name": "test_prog::Race::base_intelligence="
+ }, {
+ "full_name": "test_prog::Race::base_strength"
+ }, {
+ "full_name": "test_prog::Race::base_strength="
}],
"redef_mproperties": [{
"full_name": "test_prog::Object::init"
"full_name": "test_prog$Human"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::races::Race::_base_strength"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Race::base_strength"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Race::base_strength="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::races::Race::_base_endurance"
}, {
+ "full_name": "test_prog::races::Race::_base_intelligence"
+ }, {
+ "full_name": "test_prog::races::Race::_base_strength"
+ }, {
"full_name": "test_prog::Race::base_endurance"
}, {
"full_name": "test_prog::Race::base_endurance="
}, {
- "full_name": "test_prog::races::Race::_base_intelligence"
- }, {
"full_name": "test_prog::Race::base_intelligence"
}, {
"full_name": "test_prog::Race::base_intelligence="
}, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Race::base_strength"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Race::base_strength="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::init"
}],
"intro_mproperties": [],
"redef_mproperties": [{
"full_name": "test_prog::combat$Dwarf"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::init"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Weapon::dps"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::races::Race::_base_strength"
+ "full_name": "test_prog::Object::OTHER"
}, {
- "full_name": "test_prog::Race::base_strength"
+ "full_name": "test_prog::races::Race::_base_endurance"
}, {
- "full_name": "test_prog::Race::base_strength="
+ "full_name": "test_prog::races::Race::_base_intelligence"
}, {
- "full_name": "test_prog::races::Race::_base_endurance"
+ "full_name": "test_prog::races::Race::_base_strength"
}, {
"full_name": "test_prog::Race::base_endurance"
}, {
"full_name": "test_prog::Race::base_endurance="
}, {
- "full_name": "test_prog::races::Race::_base_intelligence"
- }, {
"full_name": "test_prog::Race::base_intelligence"
}, {
"full_name": "test_prog::Race::base_intelligence="
}, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Race::base_strength"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Race::base_strength="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Weapon::dps"
+ }, {
+ "full_name": "test_prog::Object::init"
}],
"intro_mproperties": [],
"redef_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
"full_name": "test_prog::Weapon::dps"
+ }, {
+ "full_name": "test_prog::Object::init"
}],
"parents": [{
"full_name": "test_prog::Race"
"full_name": "test_prog$Elf"
}],
"all_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
- "full_name": "test_prog::races::Race::_base_strength"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Race::base_strength"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Race::base_strength="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::races::Race::_base_endurance"
}, {
+ "full_name": "test_prog::races::Race::_base_intelligence"
+ }, {
+ "full_name": "test_prog::races::Race::_base_strength"
+ }, {
"full_name": "test_prog::Race::base_endurance"
}, {
"full_name": "test_prog::Race::base_endurance="
}, {
- "full_name": "test_prog::races::Race::_base_intelligence"
- }, {
"full_name": "test_prog::Race::base_intelligence"
}, {
"full_name": "test_prog::Race::base_intelligence="
}, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Race::base_strength"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Race::base_strength="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::init"
}],
"intro_mproperties": [],
"redef_mproperties": [{
"full_name": "test_prog::combat$Character"
}],
"all_mproperties": [{
- "full_name": "test_prog::character::Character::_race"
- }, {
- "full_name": "test_prog::Character::race"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Character::race="
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::character::Character::_career"
+ "full_name": "test_prog::Object::OTHER"
}, {
- "full_name": "test_prog::Character::career"
+ "full_name": "test_prog::character::Character::_age"
}, {
- "full_name": "test_prog::Character::career="
+ "full_name": "test_prog::character::Character::_career"
}, {
- "full_name": "test_prog::Character::quit"
+ "full_name": "test_prog::character::Character::_health"
}, {
"full_name": "test_prog::character::Character::_name"
}, {
- "full_name": "test_prog::Character::name"
- }, {
- "full_name": "test_prog::Character::name="
+ "full_name": "test_prog::character::Character::_race"
}, {
- "full_name": "test_prog::character::Character::_age"
+ "full_name": "test_prog::character::Character::_sex"
}, {
"full_name": "test_prog::Character::age"
}, {
"full_name": "test_prog::Character::age="
}, {
- "full_name": "test_prog::character::Character::_sex"
- }, {
- "full_name": "test_prog::Character::sex"
- }, {
- "full_name": "test_prog::Character::sex="
- }, {
- "full_name": "test_prog::Character::total_strengh"
+ "full_name": "test_prog::Combatable::attack"
}, {
- "full_name": "test_prog::Character::total_endurance"
+ "full_name": "test_prog::Character::career"
}, {
- "full_name": "test_prog::Character::total_intelligence"
+ "full_name": "test_prog::Character::career="
}, {
- "full_name": "test_prog::Character::max_health"
+ "full_name": "test_prog::Combatable::defend"
}, {
- "full_name": "test_prog::character::Character::_health"
+ "full_name": "test_prog::Combatable::direct_attack"
}, {
"full_name": "test_prog::Character::health"
}, {
"full_name": "test_prog::Character::health="
}, {
+ "full_name": "test_prog::Combatable::hit_points"
+ }, {
"full_name": "test_prog::Object::init"
}, {
- "full_name": "test_prog::Combatable::hit_points"
+ "full_name": "test_prog::Combatable::is_dead"
}, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Character::max_health"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Character::name"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Character::name="
}, {
- "full_name": "test_prog::Combatable::attack"
+ "full_name": "test_prog::Character::quit"
}, {
- "full_name": "test_prog::Combatable::direct_attack"
+ "full_name": "test_prog::Character::race"
}, {
- "full_name": "test_prog::Combatable::defend"
+ "full_name": "test_prog::Character::race="
}, {
- "full_name": "test_prog::Combatable::is_dead"
+ "full_name": "test_prog::Character::sex"
+ }, {
+ "full_name": "test_prog::Character::sex="
+ }, {
+ "full_name": "test_prog::Character::total_endurance"
+ }, {
+ "full_name": "test_prog::Character::total_intelligence"
+ }, {
+ "full_name": "test_prog::Character::total_strengh"
}],
"intro_mproperties": [{
+ "full_name": "test_prog::character::Character::_age"
+ }, {
+ "full_name": "test_prog::character::Character::_career"
+ }, {
+ "full_name": "test_prog::character::Character::_health"
+ }, {
+ "full_name": "test_prog::character::Character::_name"
+ }, {
"full_name": "test_prog::character::Character::_race"
}, {
- "full_name": "test_prog::Character::race"
+ "full_name": "test_prog::character::Character::_sex"
}, {
- "full_name": "test_prog::Character::race="
+ "full_name": "test_prog::Character::age"
}, {
- "full_name": "test_prog::character::Character::_career"
+ "full_name": "test_prog::Character::age="
}, {
"full_name": "test_prog::Character::career"
}, {
"full_name": "test_prog::Character::career="
}, {
- "full_name": "test_prog::Character::quit"
+ "full_name": "test_prog::Character::health"
}, {
- "full_name": "test_prog::character::Character::_name"
+ "full_name": "test_prog::Character::health="
+ }, {
+ "full_name": "test_prog::Character::max_health"
}, {
"full_name": "test_prog::Character::name"
}, {
"full_name": "test_prog::Character::name="
}, {
- "full_name": "test_prog::character::Character::_age"
- }, {
- "full_name": "test_prog::Character::age"
+ "full_name": "test_prog::Character::quit"
}, {
- "full_name": "test_prog::Character::age="
+ "full_name": "test_prog::Character::race"
}, {
- "full_name": "test_prog::character::Character::_sex"
+ "full_name": "test_prog::Character::race="
}, {
"full_name": "test_prog::Character::sex"
}, {
"full_name": "test_prog::Character::sex="
}, {
- "full_name": "test_prog::Character::total_strengh"
- }, {
"full_name": "test_prog::Character::total_endurance"
}, {
"full_name": "test_prog::Character::total_intelligence"
}, {
- "full_name": "test_prog::Character::max_health"
- }, {
- "full_name": "test_prog::character::Character::_health"
- }, {
- "full_name": "test_prog::Character::health"
- }, {
- "full_name": "test_prog::Character::health="
+ "full_name": "test_prog::Character::total_strengh"
}],
"redef_mproperties": [{
- "full_name": "test_prog::Object::init"
- }, {
"full_name": "test_prog::Combatable::hit_points"
+ }, {
+ "full_name": "test_prog::Object::init"
}],
"parents": [{
- "full_name": "test_prog::Object"
- }, {
"full_name": "test_prog::Combatable"
+ }, {
+ "full_name": "test_prog::Object"
}]
}
{
"full_name": "test_prog$Weapon"
}],
"all_mproperties": [{
- "full_name": "test_prog::Weapon::dps"
- }, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
+ }, {
+ "full_name": "test_prog::Weapon::dps"
}, {
"full_name": "test_prog::Object::init"
}],
"full_name": "test_prog$Combatable"
}],
"all_mproperties": [{
- "full_name": "test_prog::Combatable::hit_points"
- }, {
- "full_name": "test_prog::Combatable::attack"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Combatable::direct_attack"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Combatable::defend"
+ "full_name": "test_prog::Object::OTHER"
}, {
- "full_name": "test_prog::Combatable::is_dead"
+ "full_name": "test_prog::Combatable::attack"
}, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Combatable::defend"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Combatable::direct_attack"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Combatable::hit_points"
}, {
"full_name": "test_prog::Object::init"
+ }, {
+ "full_name": "test_prog::Combatable::is_dead"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Combatable::hit_points"
- }, {
"full_name": "test_prog::Combatable::attack"
}, {
+ "full_name": "test_prog::Combatable::defend"
+ }, {
"full_name": "test_prog::Combatable::direct_attack"
}, {
- "full_name": "test_prog::Combatable::defend"
+ "full_name": "test_prog::Combatable::hit_points"
}, {
"full_name": "test_prog::Combatable::is_dead"
}],
"full_name": "test_prog$Game"
}],
"all_mproperties": [{
- "full_name": "test_prog::Game::player_characters"
+ "full_name": "test_prog::Object::!="
}, {
- "full_name": "test_prog::Game::computer_characters"
+ "full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Game::start_game"
+ "full_name": "test_prog::Object::OTHER"
}, {
- "full_name": "test_prog::Game::pause_game"
+ "full_name": "test_prog::Game::computer_characters"
}, {
- "full_name": "test_prog::Game::stop_game"
+ "full_name": "test_prog::Object::init"
}, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Game::pause_game"
}, {
- "full_name": "test_prog::Object::=="
+ "full_name": "test_prog::Game::player_characters"
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Game::start_game"
}, {
- "full_name": "test_prog::Object::init"
+ "full_name": "test_prog::Game::stop_game"
}],
"intro_mproperties": [{
- "full_name": "test_prog::Game::player_characters"
- }, {
"full_name": "test_prog::Game::computer_characters"
}, {
- "full_name": "test_prog::Game::start_game"
- }, {
"full_name": "test_prog::Game::pause_game"
}, {
+ "full_name": "test_prog::Game::player_characters"
+ }, {
+ "full_name": "test_prog::Game::start_game"
+ }, {
"full_name": "test_prog::Game::stop_game"
}],
"redef_mproperties": [],
"full_name": "test_prog$Starter"
}],
"all_mproperties": [{
- "full_name": "test_prog::Starter::start"
- }, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
+ }, {
+ "full_name": "test_prog::Starter::start"
}],
"intro_mproperties": [{
"full_name": "test_prog::Starter::start"
"full_name": "test_prog$Sys"
}],
"all_mproperties": [{
- "full_name": "test_prog::Sys::main"
- }, {
- "full_name": "test_prog::Object::OTHER"
+ "full_name": "test_prog::Object::!="
}, {
"full_name": "test_prog::Object::=="
}, {
- "full_name": "test_prog::Object::!="
+ "full_name": "test_prog::Object::OTHER"
}, {
"full_name": "test_prog::Object::init"
+ }, {
+ "full_name": "test_prog::Sys::main"
}],
"intro_mproperties": [{
"full_name": "test_prog::Sys::main"
"full_name": "test_prog>platform>"
},
"intro_mclasses": [{
- "full_name": "test_prog::Object"
+ "full_name": "test_prog::Bool"
+ }, {
+ "full_name": "test_prog::Float"
}, {
"full_name": "test_prog::Int"
}, {
- "full_name": "test_prog::Float"
+ "full_name": "test_prog::List"
}, {
- "full_name": "test_prog::Bool"
+ "full_name": "test_prog::Object"
}, {
"full_name": "test_prog::String"
- }, {
- "full_name": "test_prog::List"
}],
"mclassdefs": [{
- "full_name": "test_prog$Object"
+ "full_name": "test_prog$Bool"
+ }, {
+ "full_name": "test_prog$Float"
}, {
"full_name": "test_prog$Int"
}, {
- "full_name": "test_prog$Float"
+ "full_name": "test_prog$List"
}, {
- "full_name": "test_prog$Bool"
+ "full_name": "test_prog$Object"
}, {
"full_name": "test_prog$String"
- }, {
- "full_name": "test_prog$List"
}],
"intro_mclassdefs": [{
- "full_name": "test_prog$Object"
+ "full_name": "test_prog$Bool"
+ }, {
+ "full_name": "test_prog$Float"
}, {
"full_name": "test_prog$Int"
}, {
- "full_name": "test_prog$Float"
+ "full_name": "test_prog$List"
}, {
- "full_name": "test_prog$Bool"
+ "full_name": "test_prog$Object"
}, {
"full_name": "test_prog$String"
- }, {
- "full_name": "test_prog$List"
}],
"redef_mclassdefs": [],
"imports": []
"full_name": "test_prog>rpg>"
},
"intro_mclasses": [{
- "full_name": "test_prog::Career"
+ "full_name": "test_prog::Alcoholic"
}, {
- "full_name": "test_prog::Warrior"
+ "full_name": "test_prog::Career"
}, {
"full_name": "test_prog::Magician"
}, {
- "full_name": "test_prog::Alcoholic"
+ "full_name": "test_prog::Warrior"
}],
"mclassdefs": [{
- "full_name": "test_prog$Career"
+ "full_name": "test_prog$Alcoholic"
}, {
- "full_name": "test_prog$Warrior"
+ "full_name": "test_prog$Career"
}, {
"full_name": "test_prog$Magician"
}, {
- "full_name": "test_prog$Alcoholic"
+ "full_name": "test_prog$Warrior"
}],
"intro_mclassdefs": [{
- "full_name": "test_prog$Career"
+ "full_name": "test_prog$Alcoholic"
}, {
- "full_name": "test_prog$Warrior"
+ "full_name": "test_prog$Career"
}, {
"full_name": "test_prog$Magician"
}, {
- "full_name": "test_prog$Alcoholic"
+ "full_name": "test_prog$Warrior"
}],
"redef_mclassdefs": [],
"imports": [{
"full_name": "test_prog>rpg>"
},
"intro_mclasses": [{
- "full_name": "test_prog::Weapon"
- }, {
"full_name": "test_prog::Combatable"
+ }, {
+ "full_name": "test_prog::Weapon"
}],
"mclassdefs": [{
- "full_name": "test_prog$Weapon"
+ "full_name": "test_prog::combat$Character"
}, {
"full_name": "test_prog$Combatable"
}, {
- "full_name": "test_prog::combat$Character"
- }, {
"full_name": "test_prog::combat$Dwarf"
+ }, {
+ "full_name": "test_prog$Weapon"
}],
"intro_mclassdefs": [{
- "full_name": "test_prog$Weapon"
- }, {
"full_name": "test_prog$Combatable"
+ }, {
+ "full_name": "test_prog$Weapon"
}],
"redef_mclassdefs": [{
"full_name": "test_prog::combat$Character"
"full_name": "test_prog>rpg>"
},
"intro_mclasses": [{
- "full_name": "test_prog::Race"
- }, {
- "full_name": "test_prog::Human"
- }, {
"full_name": "test_prog::Dwarf"
}, {
"full_name": "test_prog::Elf"
- }],
- "mclassdefs": [{
- "full_name": "test_prog$Race"
}, {
- "full_name": "test_prog$Human"
+ "full_name": "test_prog::Human"
}, {
+ "full_name": "test_prog::Race"
+ }],
+ "mclassdefs": [{
"full_name": "test_prog$Dwarf"
}, {
"full_name": "test_prog$Elf"
- }],
- "intro_mclassdefs": [{
- "full_name": "test_prog$Race"
}, {
"full_name": "test_prog$Human"
}, {
+ "full_name": "test_prog$Race"
+ }],
+ "intro_mclassdefs": [{
"full_name": "test_prog$Dwarf"
}, {
"full_name": "test_prog$Elf"
+ }, {
+ "full_name": "test_prog$Human"
+ }, {
+ "full_name": "test_prog$Race"
}],
"redef_mclassdefs": [],
"imports": [{
"full_name": "test_prog>"
},
"mgroups": [{
- "full_name": "test_prog>"
- }, {
"full_name": "test_prog>game>"
}, {
"full_name": "test_prog>platform>"
}, {
"full_name": "test_prog>rpg>"
+ }, {
+ "full_name": "test_prog>"
}],
"ini": {
"upstream.issues": "https://github.com/nitlang/nit/issues",
"full_name": "test_prog$Object"
},
"mpropdefs": [{
- "full_name": "test_prog$Object$init"
+ "full_name": "test_prog$Elf$Object::init"
}, {
"full_name": "test_prog$Career$Object::init"
}, {
}, {
"full_name": "test_prog$Dwarf$Object::init"
}, {
- "full_name": "test_prog$Elf$Object::init"
- }, {
"full_name": "test_prog$Character$Object::init"
+ }, {
+ "full_name": "test_prog$Object$init"
}],
"intro_mclass": {
"full_name": "test_prog::Object"
return mentities
end
+ # Sort mentities by lexicographic order
+ #
+ # TODO choose order from request
+ fun sort_mentities(req: HttpRequest, mentities: Array[MEntity]) : Array[MEntity] do
+ var sorted = mentities.to_a
+ var sorter = new MEntityNameSorter
+ sorter.sort(sorted)
+ return sorted
+ end
+
# Limit mentities depending on the `n` parameter.
fun limit_mentities(req: HttpRequest, mentities: Array[MEntity]): Array[MEntity] do
var n = req.int_arg("n")
redef fun get(req, res) do
var mentities = list_mentities(req)
+ mentities = sort_mentities(req, mentities)
mentities = limit_mentities(req, mentities)
res.json new JsonArray.from(mentities)
end
#
# Example: `GET /defs/core::Array`
class APIEntityDefs
- super APIHandler
+ super APIList
redef fun get(req, res) do
var mentity = mentity_from_uri(req, res)
if mentity == null then return
- var arr = new JsonArray
+ var mentities: Array[MEntity]
if mentity isa MModule then
- for mclassdef in mentity.mclassdefs do arr.add mclassdef
+ mentities = mentity.mclassdefs
else if mentity isa MClass then
- for mclassdef in mentity.mclassdefs do arr.add mclassdef
+ mentities = mentity.mclassdefs
else if mentity isa MClassDef then
- for mpropdef in mentity.mpropdefs do arr.add mpropdef
+ mentities = mentity.mpropdefs
else if mentity isa MProperty then
- for mpropdef in mentity.mpropdefs do arr.add mpropdef
+ mentities = mentity.mpropdefs
else
res.api_error(404, "No definition list for mentity `{mentity.full_name}`")
return
end
- res.json arr
+ mentities = sort_mentities(req, mentities)
+ mentities = limit_mentities(req, mentities)
+ res.json new JsonArray.from(mentities)
end
end