From: Alexandre Terrasa Date: Wed, 23 Nov 2016 21:32:08 +0000 (-0500) Subject: model: add nitunit for model_json X-Git-Url: http://nitlanguage.org model: add nitunit for model_json Signed-off-by: Alexandre Terrasa --- diff --git a/src/model/test_model_json.nit b/src/model/test_model_json.nit new file mode 100644 index 0000000..105c493 --- /dev/null +++ b/src/model/test_model_json.nit @@ -0,0 +1,111 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +module test_model_json is test_suite + +import test_suite +import model_json +import frontend + +class TestModelSerialization + super TestSuite + + var suite_path: String = "NIT_TESTING_PATH".environ + var lib_path: String = "{suite_path.dirname}/../../tests/test_prog" + + private var model: Model do + var toolcontext = new ToolContext + var model = new Model + var mbuilder = new ModelBuilder(model, toolcontext) + var mmodules = mbuilder.parse_full([lib_path]) + if mmodules.is_empty then return model + mbuilder.run_phases + toolcontext.run_global_phases(mmodules) + return model + end + + fun test_refs_to_full_json do + var mentities = new Array[MEntity] + mentities.add model.mpackages.first + mentities.add model.mmodules.first + mentities.add model.mclasses.first + for mentity in mentities do + print ((new MEntityRef(mentity)).to_pretty_full_json) + end + end + + fun test_packages_to_full_json do + for mentity in model.mpackages do + print mentity.to_pretty_full_json + end + end + + fun test_groups_to_full_json do + for mpackage in model.mpackages do + for mentity in mpackage.mgroups do + print mentity.to_pretty_full_json + end + end + end + + fun test_modules_to_full_json do + for mentity in model.mmodules do + print mentity.to_pretty_full_json + end + end + + fun test_classes_to_full_json do + for mentity in model.mclasses do + print mentity.to_pretty_full_json + end + end + + fun test_classdefs_to_full_json do + for mclass in model.mclasses do + for mentity in mclass.mclassdefs do + print mentity.to_pretty_full_json + end + end + end + + fun test_props_to_full_json do + for mentity in model.mproperties do + print mentity.to_pretty_full_json + end + end + + fun test_propdefs_to_full_json do + for mprop in model.mproperties do + for mentity in mprop.mpropdefs do + print mentity.to_pretty_full_json + end + end + end +end + +redef class Location + serialize + + # Avoid diff on location absolute path + redef fun core_serialize_to(v) do + v.serialize_attribute("column_end", column_end) + v.serialize_attribute("column_start", column_start) + v.serialize_attribute("line_end", line_end) + v.serialize_attribute("line_start", line_start) + var file = self.file + if file != null then + v.serialize_attribute("file", "test_location") + end + end +end diff --git a/src/model/test_model_json.sav/test_classdefs_to_full_json.res b/src/model/test_model_json.sav/test_classdefs_to_full_json.res new file mode 100644 index 0000000..2dd320b --- /dev/null +++ b/src/model/test_model_json.sav/test_classdefs_to_full_json.res @@ -0,0 +1,1376 @@ +{ + "name": "Object", + "class_name": "MClassDef", + "full_name": "test_prog$Object", + "mdoc": { + "content": "Root of everything.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 21, + "line_start": 20, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 30, + "line_start": 20, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::platform" + }, + "mclass": { + "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$init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }, { + "full_name": "test_prog::Object::init" + }], + "intro": { + "full_name": "test_prog$Object" + }, + "mpackage": { + "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$init" + }], + "redef_mpropdefs": [] +} +{ + "name": "Int", + "class_name": "MClassDef", + "full_name": "test_prog$Int", + "mdoc": { + "content": "Some services about Integers.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 33, + "line_start": 32, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 41, + "line_start": 32, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::platform" + }, + "mclass": { + "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$to_f" + }], + "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::to_f" + }], + "intro": { + "full_name": "test_prog$Int" + }, + "mpackage": { + "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$to_f" + }], + "redef_mpropdefs": [] +} +{ + "name": "Float", + "class_name": "MClassDef", + "full_name": "test_prog$Float", + "mdoc": { + "content": "Some services about Floats.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 44, + "line_start": 43, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 50, + "line_start": 43, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::platform" + }, + "mclass": { + "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$>" + }], + "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::>" + }], + "intro": { + "full_name": "test_prog$Float" + }, + "mpackage": { + "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$>" + }], + "redef_mpropdefs": [] +} +{ + "name": "Bool", + "class_name": "MClassDef", + "full_name": "test_prog$Bool", + "mdoc": { + "content": "Booleans, `true` or `false`.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 53, + "line_start": 52, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 14, + "column_start": 1, + "line_end": 53, + "line_start": 52, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::platform" + }, + "mclass": { + "full_name": "test_prog::Bool" + }, + "mpropdefs": [], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Bool" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [] +} +{ + "name": "String", + "class_name": "MClassDef", + "full_name": "test_prog$String", + "mdoc": { + "content": "Strings (there is no chars...).", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 56, + "line_start": 55, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 16, + "column_start": 1, + "line_end": 56, + "line_start": 55, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::platform" + }, + "mclass": { + "full_name": "test_prog::String" + }, + "mpropdefs": [], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$String" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [] +} +{ + "name": "List", + "class_name": "MClassDef", + "full_name": "test_prog$List", + "mdoc": { + "content": "List of things.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 59, + "line_start": 58, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 17, + "column_start": 1, + "line_end": 59, + "line_start": 58, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [{ + "name": "E", + "rank": 0, + "mtype": { + "full_name": "nullable test_prog::Object" + } + }], + "mmodule": { + "full_name": "test_prog::platform" + }, + "mclass": { + "full_name": "test_prog::List" + }, + "mpropdefs": [], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$List" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [] +} +{ + "name": "Career", + "class_name": "MClassDef", + "full_name": "test_prog$Career", + "mdoc": { + "content": "A `Career` gives a characteristic bonus or malus to the character.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 30, + "line_start": 29, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 36, + "line_start": 29, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::careers" + }, + "mclass": { + "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$strength_bonus=" + }, { + "full_name": "test_prog$Career$_endurance_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$Object::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::careers::Career::_strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus=" + }, { + "full_name": "test_prog::careers::Career::_endurance_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=" + }], + "intro": { + "full_name": "test_prog$Career" + }, + "mpackage": { + "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$strength_bonus=" + }, { + "full_name": "test_prog$Career$_endurance_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=" + }], + "redef_mpropdefs": [{ + "full_name": "test_prog$Career$Object::init" + }] +} +{ + "name": "Warrior", + "class_name": "MClassDef", + "full_name": "test_prog$Warrior", + "mdoc": { + "content": "Warriors are good for fighting.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 47, + "line_start": 38, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::careers" + }, + "mclass": { + "full_name": "test_prog::Warrior" + }, + "mpropdefs": [{ + "full_name": "test_prog$Warrior$Object::init" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Warrior" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog$Warrior$Object::init" + }] +} +{ + "name": "Magician", + "class_name": "MClassDef", + "full_name": "test_prog$Magician", + "mdoc": { + "content": "Magicians know magic and how to use it.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 50, + "line_start": 49, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 58, + "line_start": 49, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::careers" + }, + "mclass": { + "full_name": "test_prog::Magician" + }, + "mpropdefs": [{ + "full_name": "test_prog$Magician$Object::init" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Magician" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog$Magician$Object::init" + }] +} +{ + "name": "Alcoholic", + "class_name": "MClassDef", + "full_name": "test_prog$Alcoholic", + "mdoc": { + "content": "Alcoholics are good to nothing escept taking punches.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 61, + "line_start": 60, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 69, + "line_start": 60, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::careers" + }, + "mclass": { + "full_name": "test_prog::Alcoholic" + }, + "mpropdefs": [{ + "full_name": "test_prog$Alcoholic$Object::init" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Alcoholic" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog$Alcoholic$Object::init" + }] +} +{ + "name": "Race", + "class_name": "MClassDef", + "full_name": "test_prog$Race", + "mdoc": { + "content": "Race determines basic characteristics and what the character will be able to do in life.\n\nThese are base characteristics, they cannot be changed\nbut you can add new ones if needed using refinement.\nObjects and spells cannot change those characteristics.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 33, + "line_start": 28, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 45, + "line_start": 28, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::races" + }, + "mclass": { + "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_strength=" + }, { + "full_name": "test_prog$Race$_base_endurance" + }, { + "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$Object::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::races::Race::_base_strength" + }, { + "full_name": "test_prog::Race::base_strength" + }, { + "full_name": "test_prog::Race::base_strength=" + }, { + "full_name": "test_prog::races::Race::_base_endurance" + }, { + "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=" + }], + "intro": { + "full_name": "test_prog$Race" + }, + "mpackage": { + "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_strength=" + }, { + "full_name": "test_prog$Race$_base_endurance" + }, { + "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=" + }], + "redef_mpropdefs": [{ + "full_name": "test_prog$Race$Object::init" + }] +} +{ + "name": "Human", + "class_name": "MClassDef", + "full_name": "test_prog$Human", + "mdoc": { + "content": "Humans are able to do everithing.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 48, + "line_start": 47, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 56, + "line_start": 47, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::races" + }, + "mclass": { + "full_name": "test_prog::Human" + }, + "mpropdefs": [{ + "full_name": "test_prog$Human$Object::init" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Human" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog$Human$Object::init" + }] +} +{ + "name": "Dwarf", + "class_name": "MClassDef", + "full_name": "test_prog$Dwarf", + "mdoc": { + "content": "Dwarves make strong warriors.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 59, + "line_start": 58, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 67, + "line_start": 58, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::races" + }, + "mclass": { + "full_name": "test_prog::Dwarf" + }, + "mpropdefs": [{ + "full_name": "test_prog$Dwarf$Object::init" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Dwarf" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog$Dwarf$Object::init" + }] +} +{ + "name": "Dwarf", + "class_name": "MClassDef", + "full_name": "test_prog::combat$Dwarf", + "mdoc": { + "content": "Dwarves can be used as weapons.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 62, + "line_start": 61, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["redef", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 67, + "line_start": 61, + "file": "test_location" + }, + "is_intro": false, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::combat" + }, + "mclass": { + "full_name": "test_prog::Dwarf" + }, + "mpropdefs": [{ + "full_name": "test_prog::combat$Dwarf$Weapon::dps" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Dwarf" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog::combat$Dwarf$Weapon::dps" + }] +} +{ + "name": "Elf", + "class_name": "MClassDef", + "full_name": "test_prog$Elf", + "mdoc": { + "content": "Elves make good magicians.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 70, + "line_start": 69, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 78, + "line_start": 69, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::races" + }, + "mclass": { + "full_name": "test_prog::Elf" + }, + "mpropdefs": [{ + "full_name": "test_prog$Elf$Object::init" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Elf" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog$Elf$Object::init" + }] +} +{ + "name": "Character", + "class_name": "MClassDef", + "full_name": "test_prog$Character", + "mdoc": { + "content": "Characters can be played by both the human or the machine.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 22, + "line_start": 21, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 68, + "line_start": 21, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::character" + }, + "mclass": { + "full_name": "test_prog::Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_race" + }, { + "full_name": "test_prog$Character$race" + }, { + "full_name": "test_prog$Character$race=" + }, { + "full_name": "test_prog$Character$_career" + }, { + "full_name": "test_prog$Character$career" + }, { + "full_name": "test_prog$Character$career=" + }, { + "full_name": "test_prog$Character$quit" + }, { + "full_name": "test_prog$Character$_name" + }, { + "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$age=" + }, { + "full_name": "test_prog$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$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$Object::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::character::Character::_race" + }, { + "full_name": "test_prog::Character::race" + }, { + "full_name": "test_prog::Character::race=" + }, { + "full_name": "test_prog::character::Character::_career" + }, { + "full_name": "test_prog::Character::career" + }, { + "full_name": "test_prog::Character::career=" + }, { + "full_name": "test_prog::Character::quit" + }, { + "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::_age" + }, { + "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::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=" + }], + "intro": { + "full_name": "test_prog$Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [{ + "full_name": "test_prog$Character$_race" + }, { + "full_name": "test_prog$Character$race" + }, { + "full_name": "test_prog$Character$race=" + }, { + "full_name": "test_prog$Character$_career" + }, { + "full_name": "test_prog$Character$career" + }, { + "full_name": "test_prog$Character$career=" + }, { + "full_name": "test_prog$Character$quit" + }, { + "full_name": "test_prog$Character$_name" + }, { + "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$age=" + }, { + "full_name": "test_prog$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$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=" + }], + "redef_mpropdefs": [{ + "full_name": "test_prog$Character$Object::init" + }] +} +{ + "name": "Character", + "class_name": "MClassDef", + "full_name": "test_prog::combat$Character", + "mdoc": { + "content": "Characters are now `Comabatable`", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 54, + "line_start": 53, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["redef", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 59, + "line_start": 53, + "file": "test_location" + }, + "is_intro": false, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::combat" + }, + "mclass": { + "full_name": "test_prog::Character" + }, + "mpropdefs": [{ + "full_name": "test_prog::combat$Character$Combatable::hit_points" + }], + "intro_mproperties": [], + "intro": { + "full_name": "test_prog$Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [], + "redef_mpropdefs": [{ + "full_name": "test_prog::combat$Character$Combatable::hit_points" + }] +} +{ + "name": "Weapon", + "class_name": "MClassDef", + "full_name": "test_prog$Weapon", + "mdoc": { + "content": "Something that can be used to attack someone and inflict damage.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 21, + "line_start": 20, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 24, + "line_start": 20, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::combat" + }, + "mclass": { + "full_name": "test_prog::Weapon" + }, + "mpropdefs": [{ + "full_name": "test_prog$Weapon$dps" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Weapon::dps" + }], + "intro": { + "full_name": "test_prog$Weapon" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [{ + "full_name": "test_prog$Weapon$dps" + }], + "redef_mpropdefs": [] +} +{ + "name": "Combatable", + "class_name": "MClassDef", + "full_name": "test_prog$Combatable", + "mdoc": { + "content": "Something that can be combatted, it can `attack` and `defend`.\n\nWorld items can also be `Combatable`.\n`defend` method is then used to determines how the object react to an attack\nSome magical items can even `attack`.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 31, + "line_start": 26, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 51, + "line_start": 26, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::combat" + }, + "mclass": { + "full_name": "test_prog::Combatable" + }, + "mpropdefs": [{ + "full_name": "test_prog$Combatable$hit_points" + }, { + "full_name": "test_prog$Combatable$attack" + }, { + "full_name": "test_prog$Combatable$direct_attack" + }, { + "full_name": "test_prog$Combatable$defend" + }, { + "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::direct_attack" + }, { + "full_name": "test_prog::Combatable::defend" + }, { + "full_name": "test_prog::Combatable::is_dead" + }], + "intro": { + "full_name": "test_prog$Combatable" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [{ + "full_name": "test_prog$Combatable$hit_points" + }, { + "full_name": "test_prog$Combatable$attack" + }, { + "full_name": "test_prog$Combatable$direct_attack" + }, { + "full_name": "test_prog$Combatable$defend" + }, { + "full_name": "test_prog$Combatable$is_dead" + }], + "redef_mpropdefs": [] +} +{ + "name": "Game", + "class_name": "MClassDef", + "full_name": "test_prog$Game", + "mdoc": { + "content": "This is the interface you have to implement to use ure gaming platform.\n\nsee http://our.platform.com", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 23, + "line_start": 20, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 45, + "line_start": 20, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::game" + }, + "mclass": { + "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$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::stop_game" + }], + "intro": { + "full_name": "test_prog$Game" + }, + "mpackage": { + "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$stop_game" + }], + "redef_mpropdefs": [] +} +{ + "name": "Starter", + "class_name": "MClassDef", + "full_name": "test_prog$Starter", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 23, + "line_start": 21, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::test_prog" + }, + "mclass": { + "full_name": "test_prog::Starter" + }, + "mpropdefs": [{ + "full_name": "test_prog$Starter$start" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Starter::start" + }], + "intro": { + "full_name": "test_prog$Starter" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [{ + "full_name": "test_prog$Starter$start" + }], + "redef_mpropdefs": [] +} +{ + "name": "Sys", + "class_name": "MClassDef", + "full_name": "test_prog$Sys", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 13, + "column_start": 1, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "is_intro": true, + "mparameters": [], + "mmodule": { + "full_name": "test_prog::test_prog" + }, + "mclass": { + "full_name": "test_prog::Sys" + }, + "mpropdefs": [{ + "full_name": "test_prog$Sys$main" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Sys::main" + }], + "intro": { + "full_name": "test_prog$Sys" + }, + "mpackage": { + "full_name": "test_prog" + }, + "intro_mpropdefs": [{ + "full_name": "test_prog$Sys$main" + }], + "redef_mpropdefs": [] +} diff --git a/src/model/test_model_json.sav/test_classes_to_full_json.res b/src/model/test_model_json.sav/test_classes_to_full_json.res new file mode 100644 index 0000000..2fc7104 --- /dev/null +++ b/src/model/test_model_json.sav/test_classes_to_full_json.res @@ -0,0 +1,1428 @@ +{ + "name": "Object", + "class_name": "MClass", + "full_name": "test_prog::Object", + "mdoc": { + "content": "Root of everything.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 21, + "line_start": 20, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 30, + "line_start": 20, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Object" + }, + "intro_mmodule": { + "full_name": "test_prog::platform" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }, { + "full_name": "test_prog::Object::init" + }], + "redef_mproperties": [], + "parents": [] +} +{ + "name": "Int", + "class_name": "MClass", + "full_name": "test_prog::Int", + "mdoc": { + "content": "Some services about Integers.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 33, + "line_start": 32, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 41, + "line_start": 32, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Int" + }, + "intro_mmodule": { + "full_name": "test_prog::platform" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Int" + }], + "all_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::to_f" + }, { + "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::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::to_f" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Float", + "class_name": "MClass", + "full_name": "test_prog::Float", + "mdoc": { + "content": "Some services about Floats.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 44, + "line_start": 43, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 50, + "line_start": 43, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Float" + }, + "intro_mmodule": { + "full_name": "test_prog::platform" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Float" + }], + "all_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::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::>" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Bool", + "class_name": "MClass", + "full_name": "test_prog::Bool", + "mdoc": { + "content": "Booleans, `true` or `false`.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 53, + "line_start": 52, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 14, + "column_start": 1, + "line_end": 53, + "line_start": 52, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Bool" + }, + "intro_mmodule": { + "full_name": "test_prog::platform" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "String", + "class_name": "MClass", + "full_name": "test_prog::String", + "mdoc": { + "content": "Strings (there is no chars...).", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 56, + "line_start": 55, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 16, + "column_start": 1, + "line_end": 56, + "line_start": 55, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$String" + }, + "intro_mmodule": { + "full_name": "test_prog::platform" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "List", + "class_name": "MClass", + "full_name": "test_prog::List", + "mdoc": { + "content": "List of things.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 59, + "line_start": 58, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 17, + "column_start": 1, + "line_end": 59, + "line_start": 58, + "file": "test_location" + }, + "mparameters": [{ + "name": "E", + "rank": 0, + "mtype": { + "full_name": "nullable test_prog::Object" + } + }], + "intro": { + "full_name": "test_prog$List" + }, + "intro_mmodule": { + "full_name": "test_prog::platform" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Career", + "class_name": "MClass", + "full_name": "test_prog::Career", + "mdoc": { + "content": "A `Career` gives a characteristic bonus or malus to the character.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 30, + "line_start": 29, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 36, + "line_start": 29, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Career" + }, + "intro_mmodule": { + "full_name": "test_prog::careers" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Career" + }], + "all_mproperties": [{ + "full_name": "test_prog::careers::Career::_strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus=" + }, { + "full_name": "test_prog::careers::Career::_endurance_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::Object::init" + }, { + "full_name": "test_prog::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [{ + "full_name": "test_prog::careers::Career::_strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus=" + }, { + "full_name": "test_prog::careers::Career::_endurance_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=" + }], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Warrior", + "class_name": "MClass", + "full_name": "test_prog::Warrior", + "mdoc": { + "content": "Warriors are good for fighting.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 47, + "line_start": 38, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Warrior" + }, + "intro_mmodule": { + "full_name": "test_prog::careers" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::Career::strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus=" + }, { + "full_name": "test_prog::careers::Career::_endurance_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::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Career" + }] +} +{ + "name": "Magician", + "class_name": "MClass", + "full_name": "test_prog::Magician", + "mdoc": { + "content": "Magicians know magic and how to use it.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 50, + "line_start": 49, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 58, + "line_start": 49, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Magician" + }, + "intro_mmodule": { + "full_name": "test_prog::careers" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::Career::strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus=" + }, { + "full_name": "test_prog::careers::Career::_endurance_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::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Career" + }] +} +{ + "name": "Alcoholic", + "class_name": "MClass", + "full_name": "test_prog::Alcoholic", + "mdoc": { + "content": "Alcoholics are good to nothing escept taking punches.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 61, + "line_start": 60, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 69, + "line_start": 60, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Alcoholic" + }, + "intro_mmodule": { + "full_name": "test_prog::careers" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::Career::strength_bonus" + }, { + "full_name": "test_prog::Career::strength_bonus=" + }, { + "full_name": "test_prog::careers::Career::_endurance_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::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Career" + }] +} +{ + "name": "Race", + "class_name": "MClass", + "full_name": "test_prog::Race", + "mdoc": { + "content": "Race determines basic characteristics and what the character will be able to do in life.\n\nThese are base characteristics, they cannot be changed\nbut you can add new ones if needed using refinement.\nObjects and spells cannot change those characteristics.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 33, + "line_start": 28, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 45, + "line_start": 28, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Race" + }, + "intro_mmodule": { + "full_name": "test_prog::races" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Race" + }], + "all_mproperties": [{ + "full_name": "test_prog::races::Race::_base_strength" + }, { + "full_name": "test_prog::Race::base_strength" + }, { + "full_name": "test_prog::Race::base_strength=" + }, { + "full_name": "test_prog::races::Race::_base_endurance" + }, { + "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::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [{ + "full_name": "test_prog::races::Race::_base_strength" + }, { + "full_name": "test_prog::Race::base_strength" + }, { + "full_name": "test_prog::Race::base_strength=" + }, { + "full_name": "test_prog::races::Race::_base_endurance" + }, { + "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=" + }], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Human", + "class_name": "MClass", + "full_name": "test_prog::Human", + "mdoc": { + "content": "Humans are able to do everithing.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 48, + "line_start": 47, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 56, + "line_start": 47, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Human" + }, + "intro_mmodule": { + "full_name": "test_prog::races" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::Race::base_strength" + }, { + "full_name": "test_prog::Race::base_strength=" + }, { + "full_name": "test_prog::races::Race::_base_endurance" + }, { + "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::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Race" + }] +} +{ + "name": "Dwarf", + "class_name": "MClass", + "full_name": "test_prog::Dwarf", + "mdoc": { + "content": "Dwarves make strong warriors.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 59, + "line_start": 58, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 67, + "line_start": 58, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Dwarf" + }, + "intro_mmodule": { + "full_name": "test_prog::races" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Dwarf" + }, { + "full_name": "test_prog::combat$Dwarf" + }], + "all_mproperties": [{ + "full_name": "test_prog::Object::init" + }, { + "full_name": "test_prog::Weapon::dps" + }, { + "full_name": "test_prog::races::Race::_base_strength" + }, { + "full_name": "test_prog::Race::base_strength" + }, { + "full_name": "test_prog::Race::base_strength=" + }, { + "full_name": "test_prog::races::Race::_base_endurance" + }, { + "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::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }, { + "full_name": "test_prog::Weapon::dps" + }], + "parents": [{ + "full_name": "test_prog::Race" + }, { + "full_name": "test_prog::Weapon" + }] +} +{ + "name": "Elf", + "class_name": "MClass", + "full_name": "test_prog::Elf", + "mdoc": { + "content": "Elves make good magicians.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 70, + "line_start": 69, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 78, + "line_start": 69, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Elf" + }, + "intro_mmodule": { + "full_name": "test_prog::races" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::Race::base_strength" + }, { + "full_name": "test_prog::Race::base_strength=" + }, { + "full_name": "test_prog::races::Race::_base_endurance" + }, { + "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::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }], + "intro_mproperties": [], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }], + "parents": [{ + "full_name": "test_prog::Race" + }] +} +{ + "name": "Character", + "class_name": "MClass", + "full_name": "test_prog::Character", + "mdoc": { + "content": "Characters can be played by both the human or the machine.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 22, + "line_start": 21, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 68, + "line_start": 21, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Character" + }, + "intro_mmodule": { + "full_name": "test_prog::character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Character" + }, { + "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::Character::race=" + }, { + "full_name": "test_prog::character::Character::_career" + }, { + "full_name": "test_prog::Character::career" + }, { + "full_name": "test_prog::Character::career=" + }, { + "full_name": "test_prog::Character::quit" + }, { + "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::_age" + }, { + "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::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::Object::init" + }, { + "full_name": "test_prog::Combatable::hit_points" + }, { + "full_name": "test_prog::Object::OTHER" + }, { + "full_name": "test_prog::Object::==" + }, { + "full_name": "test_prog::Object::!=" + }, { + "full_name": "test_prog::Combatable::attack" + }, { + "full_name": "test_prog::Combatable::direct_attack" + }, { + "full_name": "test_prog::Combatable::defend" + }, { + "full_name": "test_prog::Combatable::is_dead" + }], + "intro_mproperties": [{ + "full_name": "test_prog::character::Character::_race" + }, { + "full_name": "test_prog::Character::race" + }, { + "full_name": "test_prog::Character::race=" + }, { + "full_name": "test_prog::character::Character::_career" + }, { + "full_name": "test_prog::Character::career" + }, { + "full_name": "test_prog::Character::career=" + }, { + "full_name": "test_prog::Character::quit" + }, { + "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::_age" + }, { + "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::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=" + }], + "redef_mproperties": [{ + "full_name": "test_prog::Object::init" + }, { + "full_name": "test_prog::Combatable::hit_points" + }], + "parents": [{ + "full_name": "test_prog::Object" + }, { + "full_name": "test_prog::Combatable" + }] +} +{ + "name": "Weapon", + "class_name": "MClass", + "full_name": "test_prog::Weapon", + "mdoc": { + "content": "Something that can be used to attack someone and inflict damage.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 21, + "line_start": 20, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 24, + "line_start": 20, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Weapon" + }, + "intro_mmodule": { + "full_name": "test_prog::combat" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Weapon::dps" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Combatable", + "class_name": "MClass", + "full_name": "test_prog::Combatable", + "mdoc": { + "content": "Something that can be combatted, it can `attack` and `defend`.\n\nWorld items can also be `Combatable`.\n`defend` method is then used to determines how the object react to an attack\nSome magical items can even `attack`.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 31, + "line_start": 26, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 51, + "line_start": 26, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Combatable" + }, + "intro_mmodule": { + "full_name": "test_prog::combat" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Combatable" + }], + "all_mproperties": [{ + "full_name": "test_prog::Combatable::hit_points" + }, { + "full_name": "test_prog::Combatable::attack" + }, { + "full_name": "test_prog::Combatable::direct_attack" + }, { + "full_name": "test_prog::Combatable::defend" + }, { + "full_name": "test_prog::Combatable::is_dead" + }, { + "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::Combatable::hit_points" + }, { + "full_name": "test_prog::Combatable::attack" + }, { + "full_name": "test_prog::Combatable::direct_attack" + }, { + "full_name": "test_prog::Combatable::defend" + }, { + "full_name": "test_prog::Combatable::is_dead" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Game", + "class_name": "MClass", + "full_name": "test_prog::Game", + "mdoc": { + "content": "This is the interface you have to implement to use ure gaming platform.\n\nsee http://our.platform.com", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 23, + "line_start": 20, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "interface"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 45, + "line_start": 20, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Game" + }, + "intro_mmodule": { + "full_name": "test_prog::game" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "full_name": "test_prog$Game" + }], + "all_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::stop_game" + }, { + "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::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::stop_game" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Starter", + "class_name": "MClass", + "full_name": "test_prog::Starter", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 23, + "line_start": 21, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Starter" + }, + "intro_mmodule": { + "full_name": "test_prog::test_prog" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Starter::start" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} +{ + "name": "Sys", + "class_name": "MClass", + "full_name": "test_prog::Sys", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "class"], + "location": { + "column_end": 13, + "column_start": 1, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "mparameters": [], + "intro": { + "full_name": "test_prog$Sys" + }, + "intro_mmodule": { + "full_name": "test_prog::test_prog" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mclassdefs": [{ + "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::init" + }], + "intro_mproperties": [{ + "full_name": "test_prog::Sys::main" + }], + "redef_mproperties": [], + "parents": [{ + "full_name": "test_prog::Object" + }] +} diff --git a/src/model/test_model_json.sav/test_groups_to_full_json.res b/src/model/test_model_json.sav/test_groups_to_full_json.res new file mode 100644 index 0000000..3e9fd9f --- /dev/null +++ b/src/model/test_model_json.sav/test_groups_to_full_json.res @@ -0,0 +1,191 @@ +{ + "name": "test_prog", + "class_name": "MGroup", + "full_name": "test_prog>", + "mdoc": { + "content": "Test program for model tools.\n\nThis program creates a fake model that can be used to test tools like:\n\n* `nitdoc`\n* `nitmetrics`\n* `nitx`\n* or others `modelbuilder`.\n\nAn image:\n\n![Tinks3D](../../contrib/tinks/doc/tinks3d.png)", + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 12, + "line_start": 1, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["group"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "is_root": true, + "mpackage": { + "full_name": "test_prog" + }, + "default_mmodule": { + "full_name": "test_prog::test_prog" + }, + "parent": null, + "mmodules": [{ + "full_name": "test_prog::test_prog" + }], + "mgroups": [{ + "full_name": "test_prog>game>" + }, { + "full_name": "test_prog>platform>" + }, { + "full_name": "test_prog>rpg>" + }] +} +{ + "name": "game", + "class_name": "MGroup", + "full_name": "test_prog>game>", + "mdoc": { + "content": "Gaming group", + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 1, + "line_start": 1, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["group"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "is_root": false, + "mpackage": { + "full_name": "test_prog" + }, + "default_mmodule": { + "full_name": "test_prog::game" + }, + "parent": { + "full_name": "test_prog>" + }, + "mmodules": [{ + "full_name": "test_prog::game" + }], + "mgroups": [] +} +{ + "name": "platform", + "class_name": "MGroup", + "full_name": "test_prog>platform>", + "mdoc": { + "content": "Fictive Crappy Platform.", + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 1, + "line_start": 1, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["group"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "is_root": false, + "mpackage": { + "full_name": "test_prog" + }, + "default_mmodule": { + "full_name": "test_prog::platform" + }, + "parent": { + "full_name": "test_prog>" + }, + "mmodules": [{ + "full_name": "test_prog::platform" + }], + "mgroups": [] +} +{ + "name": "rpg", + "class_name": "MGroup", + "full_name": "test_prog>rpg>", + "mdoc": { + "content": "Role Playing Game group", + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 1, + "line_start": 1, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["group"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "is_root": false, + "mpackage": { + "full_name": "test_prog" + }, + "default_mmodule": { + "full_name": "test_prog::rpg" + }, + "parent": { + "full_name": "test_prog>" + }, + "mmodules": [{ + "full_name": "test_prog::careers" + }, { + "full_name": "test_prog::character" + }, { + "full_name": "test_prog::combat" + }, { + "full_name": "test_prog::races" + }, { + "full_name": "test_prog::rpg" + }], + "mgroups": [] +} +{ + "name": "excluded", + "class_name": "MGroup", + "full_name": "excluded>", + "mdoc": null, + "visibility": "public", + "modifiers": ["group"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "is_root": true, + "mpackage": { + "full_name": "excluded" + }, + "default_mmodule": { + "full_name": "excluded::excluded" + }, + "parent": null, + "mmodules": [{ + "full_name": "excluded::excluded" + }], + "mgroups": [] +} diff --git a/src/model/test_model_json.sav/test_modules_to_full_json.res b/src/model/test_model_json.sav/test_modules_to_full_json.res new file mode 100644 index 0000000..92690d1 --- /dev/null +++ b/src/model/test_model_json.sav/test_modules_to_full_json.res @@ -0,0 +1,474 @@ +{ + "name": "excluded", + "class_name": "MModule", + "full_name": "excluded::excluded", + "mdoc": null, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "mpackage": { + "full_name": "excluded" + }, + "mgroup": { + "full_name": "excluded>" + }, + "intro_mclasses": [], + "mclassdefs": [], + "intro_mclassdefs": [], + "redef_mclassdefs": [], + "imports": [] +} +{ + "name": "game", + "class_name": "MModule", + "full_name": "test_prog::game", + "mdoc": { + "content": "A game abstraction for RPG.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 16, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 45, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>game>" + }, + "intro_mclasses": [{ + "full_name": "test_prog::Game" + }], + "mclassdefs": [{ + "full_name": "test_prog$Game" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Game" + }], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::rpg" + }] +} +{ + "name": "platform", + "class_name": "MModule", + "full_name": "test_prog::platform", + "mdoc": { + "content": "Declares base types allowed on the platform.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 16, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 17, + "column_start": 1, + "line_end": 59, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "intro_mclasses": [{ + "full_name": "test_prog::Object" + }, { + "full_name": "test_prog::Int" + }, { + "full_name": "test_prog::Float" + }, { + "full_name": "test_prog::Bool" + }, { + "full_name": "test_prog::String" + }, { + "full_name": "test_prog::List" + }], + "mclassdefs": [{ + "full_name": "test_prog$Object" + }, { + "full_name": "test_prog$Int" + }, { + "full_name": "test_prog$Float" + }, { + "full_name": "test_prog$Bool" + }, { + "full_name": "test_prog$String" + }, { + "full_name": "test_prog$List" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Object" + }, { + "full_name": "test_prog$Int" + }, { + "full_name": "test_prog$Float" + }, { + "full_name": "test_prog$Bool" + }, { + "full_name": "test_prog$String" + }, { + "full_name": "test_prog$List" + }], + "redef_mclassdefs": [], + "imports": [] +} +{ + "name": "careers", + "class_name": "MModule", + "full_name": "test_prog::careers", + "mdoc": { + "content": "Careers of the game.\n\nAll characters can have a `Career`.\nA character can also quit its current career and start a new one.\n\nAvailable careers:\n\n * `Warrior`\n * `Magician`\n * `Alcoholic`", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 25, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 69, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "intro_mclasses": [{ + "full_name": "test_prog::Career" + }, { + "full_name": "test_prog::Warrior" + }, { + "full_name": "test_prog::Magician" + }, { + "full_name": "test_prog::Alcoholic" + }], + "mclassdefs": [{ + "full_name": "test_prog$Career" + }, { + "full_name": "test_prog$Warrior" + }, { + "full_name": "test_prog$Magician" + }, { + "full_name": "test_prog$Alcoholic" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Career" + }, { + "full_name": "test_prog$Warrior" + }, { + "full_name": "test_prog$Magician" + }, { + "full_name": "test_prog$Alcoholic" + }], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::platform" + }] +} +{ + "name": "character", + "class_name": "MModule", + "full_name": "test_prog::character", + "mdoc": { + "content": "Characters are playable entity in the world.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 16, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 68, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "intro_mclasses": [{ + "full_name": "test_prog::Character" + }], + "mclassdefs": [{ + "full_name": "test_prog$Character" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Character" + }], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::races" + }, { + "full_name": "test_prog::careers" + }] +} +{ + "name": "combat", + "class_name": "MModule", + "full_name": "test_prog::combat", + "mdoc": { + "content": "COmbat interactions between characters.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 16, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 67, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "intro_mclasses": [{ + "full_name": "test_prog::Weapon" + }, { + "full_name": "test_prog::Combatable" + }], + "mclassdefs": [{ + "full_name": "test_prog$Weapon" + }, { + "full_name": "test_prog$Combatable" + }, { + "full_name": "test_prog::combat$Character" + }, { + "full_name": "test_prog::combat$Dwarf" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Weapon" + }, { + "full_name": "test_prog$Combatable" + }], + "redef_mclassdefs": [{ + "full_name": "test_prog::combat$Character" + }, { + "full_name": "test_prog::combat$Dwarf" + }], + "imports": [{ + "full_name": "test_prog::character" + }] +} +{ + "name": "races", + "class_name": "MModule", + "full_name": "test_prog::races", + "mdoc": { + "content": "Races of the game.\n\nAll characters belong to a `Race`.\n\nAvailable races:\n\n * `Human`\n * `Dwarf`\n * `Elf`", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 24, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 78, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "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$Dwarf" + }, { + "full_name": "test_prog$Elf" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Race" + }, { + "full_name": "test_prog$Human" + }, { + "full_name": "test_prog$Dwarf" + }, { + "full_name": "test_prog$Elf" + }], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::platform" + }] +} +{ + "name": "rpg", + "class_name": "MModule", + "full_name": "test_prog::rpg", + "mdoc": { + "content": "A worlg RPG abstraction.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 16, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 13, + "column_start": 1, + "line_end": 21, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "intro_mclasses": [], + "mclassdefs": [], + "intro_mclassdefs": [], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::combat" + }] +} +{ + "name": "test_prog", + "class_name": "MModule", + "full_name": "test_prog::test_prog", + "mdoc": { + "content": "A test program with a fake model to check model tools.", + "location": { + "column_end": 0, + "column_start": 1, + "line_end": 16, + "line_start": 15, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 13, + "column_start": 1, + "line_end": 26, + "line_start": 15, + "file": "test_location" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mgroup": { + "full_name": "test_prog>" + }, + "intro_mclasses": [{ + "full_name": "test_prog::Starter" + }, { + "full_name": "test_prog::Sys" + }], + "mclassdefs": [{ + "full_name": "test_prog$Starter" + }, { + "full_name": "test_prog$Sys" + }], + "intro_mclassdefs": [{ + "full_name": "test_prog$Starter" + }, { + "full_name": "test_prog$Sys" + }], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::game" + }] +} +{ + "name": "test_prog-m", + "class_name": "MModule", + "full_name": "test_prog-m", + "mdoc": null, + "visibility": "public", + "modifiers": ["module"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "mpackage": null, + "mgroup": null, + "intro_mclasses": [], + "mclassdefs": [], + "intro_mclassdefs": [], + "redef_mclassdefs": [], + "imports": [{ + "full_name": "test_prog::test_prog" + }] +} diff --git a/src/model/test_model_json.sav/test_packages_to_full_json.res b/src/model/test_model_json.sav/test_packages_to_full_json.res new file mode 100644 index 0000000..81a0cae --- /dev/null +++ b/src/model/test_model_json.sav/test_packages_to_full_json.res @@ -0,0 +1,70 @@ +{ + "name": "test_prog", + "class_name": "MPackage", + "full_name": "test_prog", + "mdoc": { + "content": "Test program for model tools.\n\nThis program creates a fake model that can be used to test tools like:\n\n* `nitdoc`\n* `nitmetrics`\n* `nitx`\n* or others `modelbuilder`.\n\nAn image:\n\n![Tinks3D](../../contrib/tinks/doc/tinks3d.png)", + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 12, + "line_start": 1, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["package"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "root": { + "full_name": "test_prog>" + }, + "mgroups": [{ + "full_name": "test_prog>" + }, { + "full_name": "test_prog>game>" + }, { + "full_name": "test_prog>platform>" + }, { + "full_name": "test_prog>rpg>" + }], + "ini": { + "upstream.issues": "https://github.com/nitlang/nit/issues", + "upstream.homepage": "http://nitlanguage.org", + "upstream.git.directory": "tests/test_prog", + "upstream.browse": "https://github.com/nitlang/nit/tree/master/tests/test_prog", + "source.exclude": "game/excluded.nit:game/excluded_dir", + "package.license": "Apache-2.0", + "package.more_contributors": "Riri , Fifi (http://www.example.com/~fifi), Loulou", + "package.maintainer": "John Doe (http://www.example.com/~jdoe), Spider-Man", + "package.tags": "test,game", + "package.version": "0.1", + "package.name": "test_prog" + } +} +{ + "name": "excluded", + "class_name": "MPackage", + "full_name": "excluded", + "mdoc": null, + "visibility": "public", + "modifiers": ["package"], + "location": { + "column_end": 0, + "column_start": 0, + "line_end": 0, + "line_start": 0, + "file": "test_location" + }, + "root": { + "full_name": "excluded>" + }, + "mgroups": [{ + "full_name": "excluded>" + }] +} diff --git a/src/model/test_model_json.sav/test_propdefs_to_full_json.res b/src/model/test_model_json.sav/test_propdefs_to_full_json.res new file mode 100644 index 0000000..167ec94 --- /dev/null +++ b/src/model/test_model_json.sav/test_propdefs_to_full_json.res @@ -0,0 +1,4032 @@ +{ + "name": "OTHER", + "class_name": "MVirtualTypeDef", + "full_name": "test_prog$Object$OTHER", + "mdoc": { + "content": "Used for comparisons.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "type"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Object" + }, + "mproperty": { + "full_name": "test_prog::Object::OTHER" + }, + "intro": { + "full_name": "test_prog$Object$OTHER" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "bound": { + "full_name": "nullable test_prog::Object" + }, + "is_fixed": false +} +{ + "name": "==", + "class_name": "MMethodDef", + "full_name": "test_prog$Object$==", + "mdoc": { + "content": "Is `other` equqls to `self`?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 37, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Object" + }, + "mproperty": { + "full_name": "test_prog::Object::==" + }, + "intro": { + "full_name": "test_prog$Object$==" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "other", + "mtype": { + "full_name": "test_prog::Object::OTHER" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "!=", + "class_name": "MMethodDef", + "full_name": "test_prog$Object$!=", + "mdoc": { + "content": "Is `other` different from `self`?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 55, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Object" + }, + "mproperty": { + "full_name": "test_prog::Object::!=" + }, + "intro": { + "full_name": "test_prog$Object$!=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "other", + "mtype": { + "full_name": "test_prog::Object::OTHER" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Object$init", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "init"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 30, + "line_start": 20, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Object" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 12, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Warrior$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 46, + "line_start": 42, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Warrior" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Magician$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 57, + "line_start": 53, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Magician" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Alcoholic$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 68, + "line_start": 64, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Alcoholic" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 12, + "column_start": 2, + "line_end": 44, + "line_start": 44, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Human$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 55, + "line_start": 51, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Human" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Dwarf$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 66, + "line_start": 62, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Dwarf" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Elf$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 77, + "line_start": 73, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Elf" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["redef", "init"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 68, + "line_start": 21, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Object::init" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "unary -", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$unary -", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 21, + "column_start": 2, + "line_end": 34, + "line_start": 34, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::unary -" + }, + "intro": { + "full_name": "test_prog$Int$unary -" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "+", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$+", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::+" + }, + "intro": { + "full_name": "test_prog$Int$+" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "-", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$-", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::-" + }, + "intro": { + "full_name": "test_prog$Int$-" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "*", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$*", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::*" + }, + "intro": { + "full_name": "test_prog$Int$*" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "/", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$/", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 38, + "line_start": 38, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::/" + }, + "intro": { + "full_name": "test_prog$Int$/" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": ">", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$>", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 30, + "column_start": 2, + "line_end": 39, + "line_start": 39, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::>" + }, + "intro": { + "full_name": "test_prog$Int$>" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "to_f", + "class_name": "MMethodDef", + "full_name": "test_prog$Int$to_f", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 26, + "column_start": 2, + "line_end": 40, + "line_start": 40, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Int" + }, + "mproperty": { + "full_name": "test_prog::Int::to_f" + }, + "intro": { + "full_name": "test_prog$Int$to_f" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "+", + "class_name": "MMethodDef", + "full_name": "test_prog$Float$+", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 45, + "line_start": 45, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Float" + }, + "mproperty": { + "full_name": "test_prog::Float::+" + }, + "intro": { + "full_name": "test_prog$Float$+" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "-", + "class_name": "MMethodDef", + "full_name": "test_prog$Float$-", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 46, + "line_start": 46, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Float" + }, + "mproperty": { + "full_name": "test_prog::Float::-" + }, + "intro": { + "full_name": "test_prog$Float$-" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "*", + "class_name": "MMethodDef", + "full_name": "test_prog$Float$*", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 47, + "line_start": 47, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Float" + }, + "mproperty": { + "full_name": "test_prog::Float::*" + }, + "intro": { + "full_name": "test_prog$Float$*" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "/", + "class_name": "MMethodDef", + "full_name": "test_prog$Float$/", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 48, + "line_start": 48, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Float" + }, + "mproperty": { + "full_name": "test_prog::Float::/" + }, + "intro": { + "full_name": "test_prog$Float$/" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": ">", + "class_name": "MMethodDef", + "full_name": "test_prog$Float$>", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 32, + "column_start": 2, + "line_end": 49, + "line_start": 49, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Float" + }, + "mproperty": { + "full_name": "test_prog::Float::>" + }, + "intro": { + "full_name": "test_prog$Float$>" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mmodule": { + "full_name": "test_prog::platform" + }, + "mgroup": { + "full_name": "test_prog>platform>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "_strength_bonus", + "class_name": "MAttributeDef", + "full_name": "test_prog$Career$_strength_bonus", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 31, + "line_start": 31, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::careers::Career::_strength_bonus" + }, + "intro": { + "full_name": "test_prog$Career$_strength_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "strength_bonus", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$strength_bonus", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 31, + "line_start": 31, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Career::strength_bonus" + }, + "intro": { + "full_name": "test_prog$Career$strength_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "strength_bonus=", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$strength_bonus=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 31, + "line_start": 31, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Career::strength_bonus=" + }, + "intro": { + "full_name": "test_prog$Career$strength_bonus=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "strength_bonus", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_endurance_bonus", + "class_name": "MAttributeDef", + "full_name": "test_prog$Career$_endurance_bonus", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 25, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::careers::Career::_endurance_bonus" + }, + "intro": { + "full_name": "test_prog$Career$_endurance_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "endurance_bonus", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$endurance_bonus", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 25, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Career::endurance_bonus" + }, + "intro": { + "full_name": "test_prog$Career$endurance_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "endurance_bonus=", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$endurance_bonus=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 25, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Career::endurance_bonus=" + }, + "intro": { + "full_name": "test_prog$Career$endurance_bonus=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "endurance_bonus", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_intelligence_bonus", + "class_name": "MAttributeDef", + "full_name": "test_prog$Career$_intelligence_bonus", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 33, + "line_start": 33, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::careers::Career::_intelligence_bonus" + }, + "intro": { + "full_name": "test_prog$Career$_intelligence_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "intelligence_bonus", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$intelligence_bonus", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 33, + "line_start": 33, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Career::intelligence_bonus" + }, + "intro": { + "full_name": "test_prog$Career$intelligence_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "intelligence_bonus=", + "class_name": "MMethodDef", + "full_name": "test_prog$Career$intelligence_bonus=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 33, + "line_start": 33, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Career" + }, + "mproperty": { + "full_name": "test_prog::Career::intelligence_bonus=" + }, + "intro": { + "full_name": "test_prog$Career$intelligence_bonus=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mmodule": { + "full_name": "test_prog::careers" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "intelligence_bonus", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_base_strength", + "class_name": "MAttributeDef", + "full_name": "test_prog$Race$_base_strength", + "mdoc": { + "content": "Used to represents how strong the race is.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 23, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::races::Race::_base_strength" + }, + "intro": { + "full_name": "test_prog$Race$_base_strength" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "base_strength", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$base_strength", + "mdoc": { + "content": "Used to represents how strong the race is.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 23, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Race::base_strength" + }, + "intro": { + "full_name": "test_prog$Race$base_strength" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "base_strength=", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$base_strength=", + "mdoc": { + "content": "Used to represents how strong the race is.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 23, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Race::base_strength=" + }, + "intro": { + "full_name": "test_prog$Race$base_strength=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "base_strength", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_base_endurance", + "class_name": "MAttributeDef", + "full_name": "test_prog$Race$_base_endurance", + "mdoc": { + "content": "Used to represents how the race can absorb damage.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::races::Race::_base_endurance" + }, + "intro": { + "full_name": "test_prog$Race$_base_endurance" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "base_endurance", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$base_endurance", + "mdoc": { + "content": "Used to represents how the race can absorb damage.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Race::base_endurance" + }, + "intro": { + "full_name": "test_prog$Race$base_endurance" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "base_endurance=", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$base_endurance=", + "mdoc": { + "content": "Used to represents how the race can absorb damage.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Race::base_endurance=" + }, + "intro": { + "full_name": "test_prog$Race$base_endurance=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "base_endurance", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_base_intelligence", + "class_name": "MAttributeDef", + "full_name": "test_prog$Race$_base_intelligence", + "mdoc": { + "content": "Is this race smart?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::races::Race::_base_intelligence" + }, + "intro": { + "full_name": "test_prog$Race$_base_intelligence" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "base_intelligence", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$base_intelligence", + "mdoc": { + "content": "Is this race smart?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Race::base_intelligence" + }, + "intro": { + "full_name": "test_prog$Race$base_intelligence" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "base_intelligence=", + "class_name": "MMethodDef", + "full_name": "test_prog$Race$base_intelligence=", + "mdoc": { + "content": "Is this race smart?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Race" + }, + "mproperty": { + "full_name": "test_prog::Race::base_intelligence=" + }, + "intro": { + "full_name": "test_prog$Race$base_intelligence=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mmodule": { + "full_name": "test_prog::races" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "base_intelligence", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_race", + "class_name": "MAttributeDef", + "full_name": "test_prog$Character$_race", + "mdoc": { + "content": "The `Race` of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 15, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::character::Character::_race" + }, + "intro": { + "full_name": "test_prog$Character$_race" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Race" + } +} +{ + "name": "race", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$race", + "mdoc": { + "content": "The `Race` of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 15, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::race" + }, + "intro": { + "full_name": "test_prog$Character$race" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Race" + }, + "vararg_rank": -1 + } +} +{ + "name": "race=", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$race=", + "mdoc": { + "content": "The `Race` of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 15, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::race=" + }, + "intro": { + "full_name": "test_prog$Character$race=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "race", + "mtype": { + "full_name": "test_prog::Race" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_career", + "class_name": "MAttributeDef", + "full_name": "test_prog$Character$_career", + "mdoc": { + "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 47, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::character::Character::_career" + }, + "intro": { + "full_name": "test_prog$Character$_career" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "nullable test_prog::Career" + } +} +{ + "name": "career", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$career", + "mdoc": { + "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 47, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::career" + }, + "intro": { + "full_name": "test_prog$Character$career" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "nullable test_prog::Career" + }, + "vararg_rank": -1 + } +} +{ + "name": "career=", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$career=", + "mdoc": { + "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 47, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::career=" + }, + "intro": { + "full_name": "test_prog$Character$career=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "career", + "mtype": { + "full_name": "nullable test_prog::Career" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "quit", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$quit", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 33, + "line_start": 31, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::quit" + }, + "intro": { + "full_name": "test_prog$Character$quit" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_name", + "class_name": "MAttributeDef", + "full_name": "test_prog$Character$_name", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::character::Character::_name" + }, + "intro": { + "full_name": "test_prog$Character$_name" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::String" + } +} +{ + "name": "name", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$name", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::name" + }, + "intro": { + "full_name": "test_prog$Character$name" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::String" + }, + "vararg_rank": -1 + } +} +{ + "name": "name=", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$name=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::name=" + }, + "intro": { + "full_name": "test_prog$Character$name=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "name", + "mtype": { + "full_name": "test_prog::String" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_age", + "class_name": "MAttributeDef", + "full_name": "test_prog$Character$_age", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 13, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::character::Character::_age" + }, + "intro": { + "full_name": "test_prog$Character$_age" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "age", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$age", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 13, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::age" + }, + "intro": { + "full_name": "test_prog$Character$age" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "age=", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$age=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 13, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::age=" + }, + "intro": { + "full_name": "test_prog$Character$age=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "age", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_sex", + "class_name": "MAttributeDef", + "full_name": "test_prog$Character$_sex", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 14, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::character::Character::_sex" + }, + "intro": { + "full_name": "test_prog$Character$_sex" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Bool" + } +} +{ + "name": "sex", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$sex", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 14, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::sex" + }, + "intro": { + "full_name": "test_prog$Character$sex" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "sex=", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$sex=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 14, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::sex=" + }, + "intro": { + "full_name": "test_prog$Character$sex=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "sex", + "mtype": { + "full_name": "test_prog::Bool" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "total_strengh", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$total_strengh", + "mdoc": { + "content": "The actual strength of the character.\n\nReturns `race.base_strength + career.strength_bonus` or just `race.base_strength` is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 39, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 45, + "line_start": 39, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::total_strengh" + }, + "intro": { + "full_name": "test_prog$Character$total_strengh" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "total_endurance", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$total_endurance", + "mdoc": { + "content": "The actual endurance of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 48, + "line_start": 47, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 51, + "line_start": 47, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::total_endurance" + }, + "intro": { + "full_name": "test_prog$Character$total_endurance" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "total_intelligence", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$total_intelligence", + "mdoc": { + "content": "The acutal intelligence of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 54, + "line_start": 53, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 57, + "line_start": 53, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::total_intelligence" + }, + "intro": { + "full_name": "test_prog$Character$total_intelligence" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "max_health", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$max_health", + "mdoc": { + "content": "Maximum health of the character.\n\nBased on `total endurance * 10`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 62, + "line_start": 59, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 51, + "column_start": 2, + "line_end": 62, + "line_start": 59, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::max_health" + }, + "intro": { + "full_name": "test_prog$Character$max_health" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "_health", + "class_name": "MAttributeDef", + "full_name": "test_prog$Character$_health", + "mdoc": { + "content": "The current `health` of the character.\n\nStarts at `max_health`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::character::Character::_health" + }, + "intro": { + "full_name": "test_prog$Character$_health" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "health", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$health", + "mdoc": { + "content": "The current `health` of the character.\n\nStarts at `max_health`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::health" + }, + "intro": { + "full_name": "test_prog$Character$health" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "health=", + "class_name": "MMethodDef", + "full_name": "test_prog$Character$health=", + "mdoc": { + "content": "The current `health` of the character.\n\nStarts at `max_health`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Character" + }, + "mproperty": { + "full_name": "test_prog::Character::health=" + }, + "intro": { + "full_name": "test_prog$Character$health=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mmodule": { + "full_name": "test_prog::character" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "health", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "dps", + "class_name": "MMethodDef", + "full_name": "test_prog$Weapon$dps", + "mdoc": { + "content": "Damage per second inflicted by this weapon.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Weapon" + }, + "mproperty": { + "full_name": "test_prog::Weapon::dps" + }, + "intro": { + "full_name": "test_prog$Weapon$dps" + }, + "intro_mclassdef": { + "full_name": "test_prog$Weapon" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "dps", + "class_name": "MMethodDef", + "full_name": "test_prog::combat$Dwarf$Weapon::dps", + "mdoc": { + "content": "Dwarf `dps` are based on the dwarf `base_endurance` (represents weight here)", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 66, + "line_start": 65, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["redef", "fun"], + "location": { + "column_end": 51, + "column_start": 2, + "line_end": 66, + "line_start": 65, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog::combat$Dwarf" + }, + "mproperty": { + "full_name": "test_prog::Weapon::dps" + }, + "intro": { + "full_name": "test_prog$Weapon$dps" + }, + "intro_mclassdef": { + "full_name": "test_prog$Weapon" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "hit_points", + "class_name": "MMethodDef", + "full_name": "test_prog$Combatable$hit_points", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 32, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mproperty": { + "full_name": "test_prog::Combatable::hit_points" + }, + "intro": { + "full_name": "test_prog$Combatable$hit_points" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "hit_points", + "class_name": "MMethodDef", + "full_name": "test_prog::combat$Character$Combatable::hit_points", + "mdoc": { + "content": "Use character `health` to determines hit_points.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 58, + "line_start": 57, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["redef", "fun"], + "location": { + "column_end": 38, + "column_start": 2, + "line_end": 58, + "line_start": 57, + "file": "test_location" + }, + "is_intro": false, + "mclassdef": { + "full_name": "test_prog::combat$Character" + }, + "mproperty": { + "full_name": "test_prog::Combatable::hit_points" + }, + "intro": { + "full_name": "test_prog$Combatable$hit_points" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "attack", + "class_name": "MMethodDef", + "full_name": "test_prog$Combatable$attack", + "mdoc": { + "content": "A `Combatable` can attack a `target` that is also a `Combatable`.\n\nAttack the `target` using `wepaon` and returns the number of inflicted hit points.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 37, + "line_start": 34, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 64, + "column_start": 2, + "line_end": 37, + "line_start": 34, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mproperty": { + "full_name": "test_prog::Combatable::attack" + }, + "intro": { + "full_name": "test_prog$Combatable$attack" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 2, + "mparams": [{ + "is_vararg": false, + "name": "target", + "mtype": { + "full_name": "test_prog::Combatable" + } + }, { + "is_vararg": false, + "name": "weapon", + "mtype": { + "full_name": "test_prog::Weapon" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "direct_attack", + "class_name": "MMethodDef", + "full_name": "test_prog$Combatable$direct_attack", + "mdoc": { + "content": "Like `attack` but cannot be defended.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 40, + "line_start": 39, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 71, + "column_start": 2, + "line_end": 40, + "line_start": 39, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mproperty": { + "full_name": "test_prog::Combatable::direct_attack" + }, + "intro": { + "full_name": "test_prog$Combatable$direct_attack" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 2, + "mparams": [{ + "is_vararg": false, + "name": "target", + "mtype": { + "full_name": "test_prog::Combatable" + } + }, { + "is_vararg": false, + "name": "weapon", + "mtype": { + "full_name": "test_prog::Weapon" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "defend", + "class_name": "MMethodDef", + "full_name": "test_prog$Combatable$defend", + "mdoc": { + "content": "`Combatable` can defend against attacks.\n\nDefends against a number of received hit points and return the number of pared hit points.\n\n@param hit: damage received.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 47, + "line_start": 42, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 38, + "column_start": 2, + "line_end": 47, + "line_start": 42, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mproperty": { + "full_name": "test_prog::Combatable::defend" + }, + "intro": { + "full_name": "test_prog$Combatable$defend" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "hit", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "is_dead", + "class_name": "MMethodDef", + "full_name": "test_prog$Combatable$is_dead", + "mdoc": { + "content": "Is the character still have hit_points?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 50, + "line_start": 49, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 43, + "column_start": 2, + "line_end": 50, + "line_start": 49, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mproperty": { + "full_name": "test_prog::Combatable::is_dead" + }, + "intro": { + "full_name": "test_prog$Combatable$is_dead" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mmodule": { + "full_name": "test_prog::combat" + }, + "mgroup": { + "full_name": "test_prog>rpg>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "player_characters", + "class_name": "MMethodDef", + "full_name": "test_prog$Game$player_characters", + "mdoc": { + "content": "Characters played by human players.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 51, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Game" + }, + "mproperty": { + "full_name": "test_prog::Game::player_characters" + }, + "intro": { + "full_name": "test_prog$Game$player_characters" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mmodule": { + "full_name": "test_prog::game" + }, + "mgroup": { + "full_name": "test_prog>game>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::List[test_prog::Character]" + }, + "vararg_rank": -1 + } +} +{ + "name": "computer_characters", + "class_name": "MMethodDef", + "full_name": "test_prog$Game$computer_characters", + "mdoc": { + "content": "Characters players by computer.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 53, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Game" + }, + "mproperty": { + "full_name": "test_prog::Game::computer_characters" + }, + "intro": { + "full_name": "test_prog$Game$computer_characters" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mmodule": { + "full_name": "test_prog::game" + }, + "mgroup": { + "full_name": "test_prog>game>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::List[test_prog::Character]" + }, + "vararg_rank": -1 + } +} +{ + "name": "start_game", + "class_name": "MMethodDef", + "full_name": "test_prog$Game$start_game", + "mdoc": { + "content": "Start the game.\n\nYou have to implement that method!", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 34, + "line_start": 31, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 34, + "line_start": 31, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Game" + }, + "mproperty": { + "full_name": "test_prog::Game::start_game" + }, + "intro": { + "full_name": "test_prog$Game$start_game" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mmodule": { + "full_name": "test_prog::game" + }, + "mgroup": { + "full_name": "test_prog>game>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "pause_game", + "class_name": "MMethodDef", + "full_name": "test_prog$Game$pause_game", + "mdoc": { + "content": "Pause the game.\n\nYou have to implement that method!", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 36, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 39, + "line_start": 36, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Game" + }, + "mproperty": { + "full_name": "test_prog::Game::pause_game" + }, + "intro": { + "full_name": "test_prog$Game$pause_game" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mmodule": { + "full_name": "test_prog::game" + }, + "mgroup": { + "full_name": "test_prog>game>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "stop_game", + "class_name": "MMethodDef", + "full_name": "test_prog$Game$stop_game", + "mdoc": { + "content": "Stop the game.\n\nYou have to implement that method!", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 44, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 26, + "column_start": 2, + "line_end": 44, + "line_start": 41, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Game" + }, + "mproperty": { + "full_name": "test_prog::Game::stop_game" + }, + "intro": { + "full_name": "test_prog$Game$stop_game" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mmodule": { + "full_name": "test_prog::game" + }, + "mgroup": { + "full_name": "test_prog>game>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "start", + "class_name": "MMethodDef", + "full_name": "test_prog$Starter$start", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 22, + "line_start": 22, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Starter" + }, + "mproperty": { + "full_name": "test_prog::Starter::start" + }, + "intro": { + "full_name": "test_prog$Starter$start" + }, + "intro_mclassdef": { + "full_name": "test_prog$Starter" + }, + "mmodule": { + "full_name": "test_prog::test_prog" + }, + "mgroup": { + "full_name": "test_prog>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "main", + "class_name": "MMethodDef", + "full_name": "test_prog$Sys$main", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 13, + "column_start": 1, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "is_intro": true, + "mclassdef": { + "full_name": "test_prog$Sys" + }, + "mproperty": { + "full_name": "test_prog::Sys::main" + }, + "intro": { + "full_name": "test_prog$Sys$main" + }, + "intro_mclassdef": { + "full_name": "test_prog$Sys" + }, + "mmodule": { + "full_name": "test_prog::test_prog" + }, + "mgroup": { + "full_name": "test_prog>" + }, + "mpackage": { + "full_name": "test_prog" + }, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} diff --git a/src/model/test_model_json.sav/test_props_to_full_json.res b/src/model/test_model_json.sav/test_props_to_full_json.res new file mode 100644 index 0000000..d61dd81 --- /dev/null +++ b/src/model/test_model_json.sav/test_props_to_full_json.res @@ -0,0 +1,3128 @@ +{ + "name": "OTHER", + "class_name": "MVirtualTypeProp", + "full_name": "test_prog::Object::OTHER", + "mdoc": { + "content": "Used for comparisons.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "type"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Object$OTHER" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mpropdefs": [{ + "full_name": "test_prog$Object$OTHER" + }], + "intro_mclass": { + "full_name": "test_prog::Object" + }, + "mpackage": { + "full_name": "test_prog" + }, + "mvirtualtype": { + "full_name": "test_prog::Object::OTHER" + }, + "bound": { + "full_name": "nullable test_prog::Object" + } +} +{ + "name": "==", + "class_name": "MMethod", + "full_name": "test_prog::Object::==", + "mdoc": { + "content": "Is `other` equqls to `self`?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 37, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Object$==" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mpropdefs": [{ + "full_name": "test_prog$Object$==" + }], + "intro_mclass": { + "full_name": "test_prog::Object" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "other", + "mtype": { + "full_name": "test_prog::Object::OTHER" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "!=", + "class_name": "MMethod", + "full_name": "test_prog::Object::!=", + "mdoc": { + "content": "Is `other` different from `self`?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 55, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Object$!=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mpropdefs": [{ + "full_name": "test_prog$Object$!=" + }], + "intro_mclass": { + "full_name": "test_prog::Object" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "other", + "mtype": { + "full_name": "test_prog::Object::OTHER" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "init", + "class_name": "MMethod", + "full_name": "test_prog::Object::init", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "init"], + "location": { + "column_end": 3, + "column_start": 1, + "line_end": 30, + "line_start": 20, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Object$init" + }, + "intro_mclassdef": { + "full_name": "test_prog$Object" + }, + "mpropdefs": [{ + "full_name": "test_prog$Object$init" + }, { + "full_name": "test_prog$Career$Object::init" + }, { + "full_name": "test_prog$Warrior$Object::init" + }, { + "full_name": "test_prog$Magician$Object::init" + }, { + "full_name": "test_prog$Alcoholic$Object::init" + }, { + "full_name": "test_prog$Race$Object::init" + }, { + "full_name": "test_prog$Human$Object::init" + }, { + "full_name": "test_prog$Dwarf$Object::init" + }, { + "full_name": "test_prog$Elf$Object::init" + }, { + "full_name": "test_prog$Character$Object::init" + }], + "intro_mclass": { + "full_name": "test_prog::Object" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": true, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "unary -", + "class_name": "MMethod", + "full_name": "test_prog::Int::unary -", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 21, + "column_start": 2, + "line_end": 34, + "line_start": 34, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$unary -" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$unary -" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "+", + "class_name": "MMethod", + "full_name": "test_prog::Int::+", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$+" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$+" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "-", + "class_name": "MMethod", + "full_name": "test_prog::Int::-", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$-" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$-" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "*", + "class_name": "MMethod", + "full_name": "test_prog::Int::*", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$*" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$*" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "/", + "class_name": "MMethod", + "full_name": "test_prog::Int::/", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 38, + "line_start": 38, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$/" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$/" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": ">", + "class_name": "MMethod", + "full_name": "test_prog::Int::>", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 30, + "column_start": 2, + "line_end": 39, + "line_start": 39, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$>" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$>" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "i", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "to_f", + "class_name": "MMethod", + "full_name": "test_prog::Int::to_f", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 26, + "column_start": 2, + "line_end": 40, + "line_start": 40, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Int$to_f" + }, + "intro_mclassdef": { + "full_name": "test_prog$Int" + }, + "mpropdefs": [{ + "full_name": "test_prog$Int$to_f" + }], + "intro_mclass": { + "full_name": "test_prog::Int" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "+", + "class_name": "MMethod", + "full_name": "test_prog::Float::+", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 45, + "line_start": 45, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Float$+" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mpropdefs": [{ + "full_name": "test_prog$Float$+" + }], + "intro_mclass": { + "full_name": "test_prog::Float" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "-", + "class_name": "MMethod", + "full_name": "test_prog::Float::-", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 46, + "line_start": 46, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Float$-" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mpropdefs": [{ + "full_name": "test_prog$Float$-" + }], + "intro_mclass": { + "full_name": "test_prog::Float" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "*", + "class_name": "MMethod", + "full_name": "test_prog::Float::*", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 47, + "line_start": 47, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Float$*" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mpropdefs": [{ + "full_name": "test_prog$Float$*" + }], + "intro_mclass": { + "full_name": "test_prog::Float" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "/", + "class_name": "MMethod", + "full_name": "test_prog::Float::/", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 33, + "column_start": 2, + "line_end": 48, + "line_start": 48, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Float$/" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mpropdefs": [{ + "full_name": "test_prog$Float$/" + }], + "intro_mclass": { + "full_name": "test_prog::Float" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": ">", + "class_name": "MMethod", + "full_name": "test_prog::Float::>", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "intern", "fun"], + "location": { + "column_end": 32, + "column_start": 2, + "line_end": 49, + "line_start": 49, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Float$>" + }, + "intro_mclassdef": { + "full_name": "test_prog$Float" + }, + "mpropdefs": [{ + "full_name": "test_prog$Float$>" + }], + "intro_mclass": { + "full_name": "test_prog::Float" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "f", + "mtype": { + "full_name": "test_prog::Float" + } + }], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "_strength_bonus", + "class_name": "MAttribute", + "full_name": "test_prog::careers::Career::_strength_bonus", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 31, + "line_start": 31, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$_strength_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$_strength_bonus" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "strength_bonus", + "class_name": "MMethod", + "full_name": "test_prog::Career::strength_bonus", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 31, + "line_start": 31, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$strength_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$strength_bonus" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "strength_bonus=", + "class_name": "MMethod", + "full_name": "test_prog::Career::strength_bonus=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 31, + "line_start": 31, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$strength_bonus=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$strength_bonus=" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "strength_bonus", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_endurance_bonus", + "class_name": "MAttribute", + "full_name": "test_prog::careers::Career::_endurance_bonus", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 25, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$_endurance_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$_endurance_bonus" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "endurance_bonus", + "class_name": "MMethod", + "full_name": "test_prog::Career::endurance_bonus", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 25, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$endurance_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$endurance_bonus" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "endurance_bonus=", + "class_name": "MMethod", + "full_name": "test_prog::Career::endurance_bonus=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 25, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$endurance_bonus=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$endurance_bonus=" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "endurance_bonus", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_intelligence_bonus", + "class_name": "MAttribute", + "full_name": "test_prog::careers::Career::_intelligence_bonus", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 33, + "line_start": 33, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$_intelligence_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$_intelligence_bonus" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "intelligence_bonus", + "class_name": "MMethod", + "full_name": "test_prog::Career::intelligence_bonus", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 33, + "line_start": 33, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$intelligence_bonus" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$intelligence_bonus" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "intelligence_bonus=", + "class_name": "MMethod", + "full_name": "test_prog::Career::intelligence_bonus=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 28, + "column_start": 2, + "line_end": 33, + "line_start": 33, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Career$intelligence_bonus=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Career" + }, + "mpropdefs": [{ + "full_name": "test_prog$Career$intelligence_bonus=" + }], + "intro_mclass": { + "full_name": "test_prog::Career" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "intelligence_bonus", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_base_strength", + "class_name": "MAttribute", + "full_name": "test_prog::races::Race::_base_strength", + "mdoc": { + "content": "Used to represents how strong the race is.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 23, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$_base_strength" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$_base_strength" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "base_strength", + "class_name": "MMethod", + "full_name": "test_prog::Race::base_strength", + "mdoc": { + "content": "Used to represents how strong the race is.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 23, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$base_strength" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$base_strength" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "base_strength=", + "class_name": "MMethod", + "full_name": "test_prog::Race::base_strength=", + "mdoc": { + "content": "Used to represents how strong the race is.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 23, + "column_start": 2, + "line_end": 36, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$base_strength=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$base_strength=" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "base_strength", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_base_endurance", + "class_name": "MAttribute", + "full_name": "test_prog::races::Race::_base_endurance", + "mdoc": { + "content": "Used to represents how the race can absorb damage.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$_base_endurance" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$_base_endurance" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "base_endurance", + "class_name": "MMethod", + "full_name": "test_prog::Race::base_endurance", + "mdoc": { + "content": "Used to represents how the race can absorb damage.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$base_endurance" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$base_endurance" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "base_endurance=", + "class_name": "MMethod", + "full_name": "test_prog::Race::base_endurance=", + "mdoc": { + "content": "Used to represents how the race can absorb damage.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 24, + "column_start": 2, + "line_end": 39, + "line_start": 38, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$base_endurance=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$base_endurance=" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "base_endurance", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_base_intelligence", + "class_name": "MAttribute", + "full_name": "test_prog::races::Race::_base_intelligence", + "mdoc": { + "content": "Is this race smart?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$_base_intelligence" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$_base_intelligence" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "base_intelligence", + "class_name": "MMethod", + "full_name": "test_prog::Race::base_intelligence", + "mdoc": { + "content": "Is this race smart?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$base_intelligence" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$base_intelligence" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "base_intelligence=", + "class_name": "MMethod", + "full_name": "test_prog::Race::base_intelligence=", + "mdoc": { + "content": "Is this race smart?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 42, + "line_start": 41, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Race$base_intelligence=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Race" + }, + "mpropdefs": [{ + "full_name": "test_prog$Race$base_intelligence=" + }], + "intro_mclass": { + "full_name": "test_prog::Race" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "base_intelligence", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_race", + "class_name": "MAttribute", + "full_name": "test_prog::character::Character::_race", + "mdoc": { + "content": "The `Race` of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 15, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$_race" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_race" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Race" + } +} +{ + "name": "race", + "class_name": "MMethod", + "full_name": "test_prog::Character::race", + "mdoc": { + "content": "The `Race` of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 15, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$race" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$race" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Race" + }, + "vararg_rank": -1 + } +} +{ + "name": "race=", + "class_name": "MMethod", + "full_name": "test_prog::Character::race=", + "mdoc": { + "content": "The `Race` of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 15, + "column_start": 2, + "line_end": 25, + "line_start": 24, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$race=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$race=" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "race", + "mtype": { + "full_name": "test_prog::Race" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_career", + "class_name": "MAttribute", + "full_name": "test_prog::character::Character::_career", + "mdoc": { + "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 47, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$_career" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_career" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "nullable test_prog::Career" + } +} +{ + "name": "career", + "class_name": "MMethod", + "full_name": "test_prog::Character::career", + "mdoc": { + "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 47, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$career" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$career" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "nullable test_prog::Career" + }, + "vararg_rank": -1 + } +} +{ + "name": "career=", + "class_name": "MMethod", + "full_name": "test_prog::Character::career=", + "mdoc": { + "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 47, + "column_start": 2, + "line_end": 29, + "line_start": 27, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$career=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$career=" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "career", + "mtype": { + "full_name": "nullable test_prog::Career" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "quit", + "class_name": "MMethod", + "full_name": "test_prog::Character::quit", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 33, + "line_start": 31, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$quit" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$quit" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_name", + "class_name": "MAttribute", + "full_name": "test_prog::character::Character::_name", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$_name" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_name" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::String" + } +} +{ + "name": "name", + "class_name": "MMethod", + "full_name": "test_prog::Character::name", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$name" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$name" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::String" + }, + "vararg_rank": -1 + } +} +{ + "name": "name=", + "class_name": "MMethod", + "full_name": "test_prog::Character::name=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 35, + "line_start": 35, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$name=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$name=" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "name", + "mtype": { + "full_name": "test_prog::String" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_age", + "class_name": "MAttribute", + "full_name": "test_prog::character::Character::_age", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 13, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$_age" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_age" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "age", + "class_name": "MMethod", + "full_name": "test_prog::Character::age", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 13, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$age" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$age" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "age=", + "class_name": "MMethod", + "full_name": "test_prog::Character::age=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 13, + "column_start": 2, + "line_end": 36, + "line_start": 36, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$age=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$age=" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "age", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "_sex", + "class_name": "MAttribute", + "full_name": "test_prog::character::Character::_sex", + "mdoc": null, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 14, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$_sex" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_sex" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Bool" + } +} +{ + "name": "sex", + "class_name": "MMethod", + "full_name": "test_prog::Character::sex", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 14, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$sex" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$sex" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "sex=", + "class_name": "MMethod", + "full_name": "test_prog::Character::sex=", + "mdoc": null, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 14, + "column_start": 2, + "line_end": 37, + "line_start": 37, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$sex=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$sex=" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "sex", + "mtype": { + "full_name": "test_prog::Bool" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "total_strengh", + "class_name": "MMethod", + "full_name": "test_prog::Character::total_strengh", + "mdoc": { + "content": "The actual strength of the character.\n\nReturns `race.base_strength + career.strength_bonus` or just `race.base_strength` is unemployed.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 42, + "line_start": 39, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 45, + "line_start": 39, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$total_strengh" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$total_strengh" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "total_endurance", + "class_name": "MMethod", + "full_name": "test_prog::Character::total_endurance", + "mdoc": { + "content": "The actual endurance of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 48, + "line_start": 47, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 51, + "line_start": 47, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$total_endurance" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$total_endurance" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "total_intelligence", + "class_name": "MMethod", + "full_name": "test_prog::Character::total_intelligence", + "mdoc": { + "content": "The acutal intelligence of the character.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 54, + "line_start": 53, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 4, + "column_start": 2, + "line_end": 57, + "line_start": 53, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$total_intelligence" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$total_intelligence" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "max_health", + "class_name": "MMethod", + "full_name": "test_prog::Character::max_health", + "mdoc": { + "content": "Maximum health of the character.\n\nBased on `total endurance * 10`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 62, + "line_start": 59, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 51, + "column_start": 2, + "line_end": 62, + "line_start": 59, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$max_health" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$max_health" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "_health", + "class_name": "MAttribute", + "full_name": "test_prog::character::Character::_health", + "mdoc": { + "content": "The current `health` of the character.\n\nStarts at `max_health`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + } + }, + "visibility": "private", + "modifiers": ["private", "var"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$_health" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$_health" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "static_mtype": { + "full_name": "test_prog::Int" + } +} +{ + "name": "health", + "class_name": "MMethod", + "full_name": "test_prog::Character::health", + "mdoc": { + "content": "The current `health` of the character.\n\nStarts at `max_health`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$health" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$health" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "health=", + "class_name": "MMethod", + "full_name": "test_prog::Character::health=", + "mdoc": { + "content": "The current `health` of the character.\n\nStarts at `max_health`.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + } + }, + "visibility": "protected", + "modifiers": ["protected", "fun"], + "location": { + "column_end": 29, + "column_start": 2, + "line_end": 67, + "line_start": 64, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Character$health=" + }, + "intro_mclassdef": { + "full_name": "test_prog$Character" + }, + "mpropdefs": [{ + "full_name": "test_prog$Character$health=" + }], + "intro_mclass": { + "full_name": "test_prog::Character" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "health", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "dps", + "class_name": "MMethod", + "full_name": "test_prog::Weapon::dps", + "mdoc": { + "content": "Damage per second inflicted by this weapon.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 23, + "line_start": 22, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Weapon$dps" + }, + "intro_mclassdef": { + "full_name": "test_prog$Weapon" + }, + "mpropdefs": [{ + "full_name": "test_prog$Weapon$dps" + }, { + "full_name": "test_prog::combat$Dwarf$Weapon::dps" + }], + "intro_mclass": { + "full_name": "test_prog::Weapon" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Float" + }, + "vararg_rank": -1 + } +} +{ + "name": "hit_points", + "class_name": "MMethod", + "full_name": "test_prog::Combatable::hit_points", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 32, + "column_start": 2, + "line_end": 32, + "line_start": 32, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Combatable$hit_points" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mpropdefs": [{ + "full_name": "test_prog$Combatable$hit_points" + }, { + "full_name": "test_prog::combat$Character$Combatable::hit_points" + }], + "intro_mclass": { + "full_name": "test_prog::Combatable" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "attack", + "class_name": "MMethod", + "full_name": "test_prog::Combatable::attack", + "mdoc": { + "content": "A `Combatable` can attack a `target` that is also a `Combatable`.\n\nAttack the `target` using `wepaon` and returns the number of inflicted hit points.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 37, + "line_start": 34, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 64, + "column_start": 2, + "line_end": 37, + "line_start": 34, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Combatable$attack" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mpropdefs": [{ + "full_name": "test_prog$Combatable$attack" + }], + "intro_mclass": { + "full_name": "test_prog::Combatable" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 2, + "mparams": [{ + "is_vararg": false, + "name": "target", + "mtype": { + "full_name": "test_prog::Combatable" + } + }, { + "is_vararg": false, + "name": "weapon", + "mtype": { + "full_name": "test_prog::Weapon" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "direct_attack", + "class_name": "MMethod", + "full_name": "test_prog::Combatable::direct_attack", + "mdoc": { + "content": "Like `attack` but cannot be defended.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 40, + "line_start": 39, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 71, + "column_start": 2, + "line_end": 40, + "line_start": 39, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Combatable$direct_attack" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mpropdefs": [{ + "full_name": "test_prog$Combatable$direct_attack" + }], + "intro_mclass": { + "full_name": "test_prog::Combatable" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 2, + "mparams": [{ + "is_vararg": false, + "name": "target", + "mtype": { + "full_name": "test_prog::Combatable" + } + }, { + "is_vararg": false, + "name": "weapon", + "mtype": { + "full_name": "test_prog::Weapon" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "defend", + "class_name": "MMethod", + "full_name": "test_prog::Combatable::defend", + "mdoc": { + "content": "`Combatable` can defend against attacks.\n\nDefends against a number of received hit points and return the number of pared hit points.\n\n@param hit: damage received.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 47, + "line_start": 42, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 38, + "column_start": 2, + "line_end": 47, + "line_start": 42, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Combatable$defend" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mpropdefs": [{ + "full_name": "test_prog$Combatable$defend" + }], + "intro_mclass": { + "full_name": "test_prog::Combatable" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 1, + "mparams": [{ + "is_vararg": false, + "name": "hit", + "mtype": { + "full_name": "test_prog::Int" + } + }], + "return_mtype": { + "full_name": "test_prog::Int" + }, + "vararg_rank": -1 + } +} +{ + "name": "is_dead", + "class_name": "MMethod", + "full_name": "test_prog::Combatable::is_dead", + "mdoc": { + "content": "Is the character still have hit_points?", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 50, + "line_start": 49, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 43, + "column_start": 2, + "line_end": 50, + "line_start": 49, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Combatable$is_dead" + }, + "intro_mclassdef": { + "full_name": "test_prog$Combatable" + }, + "mpropdefs": [{ + "full_name": "test_prog$Combatable$is_dead" + }], + "intro_mclass": { + "full_name": "test_prog::Combatable" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::Bool" + }, + "vararg_rank": -1 + } +} +{ + "name": "player_characters", + "class_name": "MMethod", + "full_name": "test_prog::Game::player_characters", + "mdoc": { + "content": "Characters played by human players.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 51, + "column_start": 2, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Game$player_characters" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mpropdefs": [{ + "full_name": "test_prog$Game$player_characters" + }], + "intro_mclass": { + "full_name": "test_prog::Game" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::List[test_prog::Character]" + }, + "vararg_rank": -1 + } +} +{ + "name": "computer_characters", + "class_name": "MMethod", + "full_name": "test_prog::Game::computer_characters", + "mdoc": { + "content": "Characters players by computer.", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 53, + "column_start": 2, + "line_end": 29, + "line_start": 28, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Game$computer_characters" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mpropdefs": [{ + "full_name": "test_prog$Game$computer_characters" + }], + "intro_mclass": { + "full_name": "test_prog::Game" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": { + "full_name": "test_prog::List[test_prog::Character]" + }, + "vararg_rank": -1 + } +} +{ + "name": "start_game", + "class_name": "MMethod", + "full_name": "test_prog::Game::start_game", + "mdoc": { + "content": "Start the game.\n\nYou have to implement that method!", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 34, + "line_start": 31, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 34, + "line_start": 31, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Game$start_game" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mpropdefs": [{ + "full_name": "test_prog$Game$start_game" + }], + "intro_mclass": { + "full_name": "test_prog::Game" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "pause_game", + "class_name": "MMethod", + "full_name": "test_prog::Game::pause_game", + "mdoc": { + "content": "Pause the game.\n\nYou have to implement that method!", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 39, + "line_start": 36, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 27, + "column_start": 2, + "line_end": 39, + "line_start": 36, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Game$pause_game" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mpropdefs": [{ + "full_name": "test_prog$Game$pause_game" + }], + "intro_mclass": { + "full_name": "test_prog::Game" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "stop_game", + "class_name": "MMethod", + "full_name": "test_prog::Game::stop_game", + "mdoc": { + "content": "Stop the game.\n\nYou have to implement that method!", + "location": { + "column_end": 0, + "column_start": 2, + "line_end": 44, + "line_start": 41, + "file": "test_location" + } + }, + "visibility": "public", + "modifiers": ["public", "abstract", "fun"], + "location": { + "column_end": 26, + "column_start": 2, + "line_end": 44, + "line_start": 41, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Game$stop_game" + }, + "intro_mclassdef": { + "full_name": "test_prog$Game" + }, + "mpropdefs": [{ + "full_name": "test_prog$Game$stop_game" + }], + "intro_mclass": { + "full_name": "test_prog::Game" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "start", + "class_name": "MMethod", + "full_name": "test_prog::Starter::start", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 17, + "column_start": 2, + "line_end": 22, + "line_start": 22, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Starter$start" + }, + "intro_mclassdef": { + "full_name": "test_prog$Starter" + }, + "mpropdefs": [{ + "full_name": "test_prog$Starter$start" + }], + "intro_mclass": { + "full_name": "test_prog::Starter" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} +{ + "name": "main", + "class_name": "MMethod", + "full_name": "test_prog::Sys::main", + "mdoc": null, + "visibility": "public", + "modifiers": ["public", "fun"], + "location": { + "column_end": 13, + "column_start": 1, + "line_end": 26, + "line_start": 25, + "file": "test_location" + }, + "intro": { + "full_name": "test_prog$Sys$main" + }, + "intro_mclassdef": { + "full_name": "test_prog$Sys" + }, + "mpropdefs": [{ + "full_name": "test_prog$Sys$main" + }], + "intro_mclass": { + "full_name": "test_prog::Sys" + }, + "mpackage": { + "full_name": "test_prog" + }, + "is_init": false, + "msignature": { + "arity": 0, + "mparams": [], + "return_mtype": null, + "vararg_rank": -1 + } +} diff --git a/src/model/test_model_json.sav/test_refs_to_full_json.res b/src/model/test_model_json.sav/test_refs_to_full_json.res new file mode 100644 index 0000000..60e70df --- /dev/null +++ b/src/model/test_model_json.sav/test_refs_to_full_json.res @@ -0,0 +1,9 @@ +{ + "full_name": "test_prog" +} +{ + "full_name": "excluded::excluded" +} +{ + "full_name": "test_prog::Object" +}