bf731cd0910862c5747f857e2bae20ad7152a5ba
[nit.git] / src / model / test_model_json.sav / test_classdefs_to_full_json.res
1 {
2         "name": "Object",
3         "class_name": "MClassDef",
4         "full_name": "test_prog$Object",
5         "mdoc": {
6                 "content": "Root of everything.",
7                 "location": {
8                         "column_end": 0,
9                         "column_start": 1,
10                         "line_end": 21,
11                         "line_start": 20,
12                         "file": "test_location"
13                 }
14         },
15         "visibility": "public",
16         "modifiers": ["interface"],
17         "location": {
18                 "column_end": 3,
19                 "column_start": 1,
20                 "line_end": 30,
21                 "line_start": 20,
22                 "file": "test_location"
23         },
24         "is_intro": true,
25         "mparameters": [],
26         "mmodule": {
27                 "full_name": "test_prog::platform"
28         },
29         "mclass": {
30                 "full_name": "test_prog::Object"
31         },
32         "mpropdefs": [{
33                 "full_name": "test_prog$Object$!="
34         }, {
35                 "full_name": "test_prog$Object$=="
36         }, {
37                 "full_name": "test_prog$Object$OTHER"
38         }, {
39                 "full_name": "test_prog$Object$init"
40         }],
41         "intro_mproperties": [{
42                 "full_name": "test_prog::Object::!="
43         }, {
44                 "full_name": "test_prog::Object::=="
45         }, {
46                 "full_name": "test_prog::Object::OTHER"
47         }, {
48                 "full_name": "test_prog::Object::init"
49         }],
50         "intro": {
51                 "full_name": "test_prog$Object"
52         },
53         "mpackage": {
54                 "full_name": "test_prog"
55         },
56         "intro_mpropdefs": [{
57                 "full_name": "test_prog$Object$!="
58         }, {
59                 "full_name": "test_prog$Object$=="
60         }, {
61                 "full_name": "test_prog$Object$OTHER"
62         }, {
63                 "full_name": "test_prog$Object$init"
64         }],
65         "redef_mpropdefs": []
66 }
67 {
68         "name": "Int",
69         "class_name": "MClassDef",
70         "full_name": "test_prog$Int",
71         "mdoc": {
72                 "content": "Some services about Integers.",
73                 "location": {
74                         "column_end": 0,
75                         "column_start": 1,
76                         "line_end": 33,
77                         "line_start": 32,
78                         "file": "test_location"
79                 }
80         },
81         "visibility": "public",
82         "modifiers": ["class"],
83         "location": {
84                 "column_end": 3,
85                 "column_start": 1,
86                 "line_end": 41,
87                 "line_start": 32,
88                 "file": "test_location"
89         },
90         "is_intro": true,
91         "mparameters": [],
92         "mmodule": {
93                 "full_name": "test_prog::platform"
94         },
95         "mclass": {
96                 "full_name": "test_prog::Int"
97         },
98         "mpropdefs": [{
99                 "full_name": "test_prog$Int$*"
100         }, {
101                 "full_name": "test_prog$Int$+"
102         }, {
103                 "full_name": "test_prog$Int$-"
104         }, {
105                 "full_name": "test_prog$Int$/"
106         }, {
107                 "full_name": "test_prog$Int$>"
108         }, {
109                 "full_name": "test_prog$Int$to_f"
110         }, {
111                 "full_name": "test_prog$Int$unary -"
112         }],
113         "intro_mproperties": [{
114                 "full_name": "test_prog::Int::*"
115         }, {
116                 "full_name": "test_prog::Int::+"
117         }, {
118                 "full_name": "test_prog::Int::-"
119         }, {
120                 "full_name": "test_prog::Int::/"
121         }, {
122                 "full_name": "test_prog::Int::>"
123         }, {
124                 "full_name": "test_prog::Int::to_f"
125         }, {
126                 "full_name": "test_prog::Int::unary -"
127         }],
128         "intro": {
129                 "full_name": "test_prog$Int"
130         },
131         "mpackage": {
132                 "full_name": "test_prog"
133         },
134         "intro_mpropdefs": [{
135                 "full_name": "test_prog$Int$*"
136         }, {
137                 "full_name": "test_prog$Int$+"
138         }, {
139                 "full_name": "test_prog$Int$-"
140         }, {
141                 "full_name": "test_prog$Int$/"
142         }, {
143                 "full_name": "test_prog$Int$>"
144         }, {
145                 "full_name": "test_prog$Int$to_f"
146         }, {
147                 "full_name": "test_prog$Int$unary -"
148         }],
149         "redef_mpropdefs": []
150 }
151 {
152         "name": "Float",
153         "class_name": "MClassDef",
154         "full_name": "test_prog$Float",
155         "mdoc": {
156                 "content": "Some services about Floats.",
157                 "location": {
158                         "column_end": 0,
159                         "column_start": 1,
160                         "line_end": 44,
161                         "line_start": 43,
162                         "file": "test_location"
163                 }
164         },
165         "visibility": "public",
166         "modifiers": ["class"],
167         "location": {
168                 "column_end": 3,
169                 "column_start": 1,
170                 "line_end": 50,
171                 "line_start": 43,
172                 "file": "test_location"
173         },
174         "is_intro": true,
175         "mparameters": [],
176         "mmodule": {
177                 "full_name": "test_prog::platform"
178         },
179         "mclass": {
180                 "full_name": "test_prog::Float"
181         },
182         "mpropdefs": [{
183                 "full_name": "test_prog$Float$*"
184         }, {
185                 "full_name": "test_prog$Float$+"
186         }, {
187                 "full_name": "test_prog$Float$-"
188         }, {
189                 "full_name": "test_prog$Float$/"
190         }, {
191                 "full_name": "test_prog$Float$>"
192         }],
193         "intro_mproperties": [{
194                 "full_name": "test_prog::Float::*"
195         }, {
196                 "full_name": "test_prog::Float::+"
197         }, {
198                 "full_name": "test_prog::Float::-"
199         }, {
200                 "full_name": "test_prog::Float::/"
201         }, {
202                 "full_name": "test_prog::Float::>"
203         }],
204         "intro": {
205                 "full_name": "test_prog$Float"
206         },
207         "mpackage": {
208                 "full_name": "test_prog"
209         },
210         "intro_mpropdefs": [{
211                 "full_name": "test_prog$Float$*"
212         }, {
213                 "full_name": "test_prog$Float$+"
214         }, {
215                 "full_name": "test_prog$Float$-"
216         }, {
217                 "full_name": "test_prog$Float$/"
218         }, {
219                 "full_name": "test_prog$Float$>"
220         }],
221         "redef_mpropdefs": []
222 }
223 {
224         "name": "Bool",
225         "class_name": "MClassDef",
226         "full_name": "test_prog$Bool",
227         "mdoc": {
228                 "content": "Booleans, `true` or `false`.",
229                 "location": {
230                         "column_end": 0,
231                         "column_start": 1,
232                         "line_end": 53,
233                         "line_start": 52,
234                         "file": "test_location"
235                 }
236         },
237         "visibility": "public",
238         "modifiers": ["class"],
239         "location": {
240                 "column_end": 14,
241                 "column_start": 1,
242                 "line_end": 53,
243                 "line_start": 52,
244                 "file": "test_location"
245         },
246         "is_intro": true,
247         "mparameters": [],
248         "mmodule": {
249                 "full_name": "test_prog::platform"
250         },
251         "mclass": {
252                 "full_name": "test_prog::Bool"
253         },
254         "mpropdefs": [],
255         "intro_mproperties": [],
256         "intro": {
257                 "full_name": "test_prog$Bool"
258         },
259         "mpackage": {
260                 "full_name": "test_prog"
261         },
262         "intro_mpropdefs": [],
263         "redef_mpropdefs": []
264 }
265 {
266         "name": "String",
267         "class_name": "MClassDef",
268         "full_name": "test_prog$String",
269         "mdoc": {
270                 "content": "Strings (there is no chars...).",
271                 "location": {
272                         "column_end": 0,
273                         "column_start": 1,
274                         "line_end": 56,
275                         "line_start": 55,
276                         "file": "test_location"
277                 }
278         },
279         "visibility": "public",
280         "modifiers": ["class"],
281         "location": {
282                 "column_end": 16,
283                 "column_start": 1,
284                 "line_end": 56,
285                 "line_start": 55,
286                 "file": "test_location"
287         },
288         "is_intro": true,
289         "mparameters": [],
290         "mmodule": {
291                 "full_name": "test_prog::platform"
292         },
293         "mclass": {
294                 "full_name": "test_prog::String"
295         },
296         "mpropdefs": [],
297         "intro_mproperties": [],
298         "intro": {
299                 "full_name": "test_prog$String"
300         },
301         "mpackage": {
302                 "full_name": "test_prog"
303         },
304         "intro_mpropdefs": [],
305         "redef_mpropdefs": []
306 }
307 {
308         "name": "List",
309         "class_name": "MClassDef",
310         "full_name": "test_prog$List",
311         "mdoc": {
312                 "content": "List of things.",
313                 "location": {
314                         "column_end": 0,
315                         "column_start": 1,
316                         "line_end": 59,
317                         "line_start": 58,
318                         "file": "test_location"
319                 }
320         },
321         "visibility": "public",
322         "modifiers": ["class"],
323         "location": {
324                 "column_end": 17,
325                 "column_start": 1,
326                 "line_end": 59,
327                 "line_start": 58,
328                 "file": "test_location"
329         },
330         "is_intro": true,
331         "mparameters": [{
332                 "name": "E",
333                 "rank": 0,
334                 "mtype": {
335                         "full_name": "nullable test_prog::Object"
336                 }
337         }],
338         "mmodule": {
339                 "full_name": "test_prog::platform"
340         },
341         "mclass": {
342                 "full_name": "test_prog::List"
343         },
344         "mpropdefs": [],
345         "intro_mproperties": [],
346         "intro": {
347                 "full_name": "test_prog$List"
348         },
349         "mpackage": {
350                 "full_name": "test_prog"
351         },
352         "intro_mpropdefs": [],
353         "redef_mpropdefs": []
354 }
355 {
356         "name": "Career",
357         "class_name": "MClassDef",
358         "full_name": "test_prog$Career",
359         "mdoc": {
360                 "content": "A `Career` gives a characteristic bonus or malus to the character.",
361                 "location": {
362                         "column_end": 0,
363                         "column_start": 1,
364                         "line_end": 30,
365                         "line_start": 29,
366                         "file": "test_location"
367                 }
368         },
369         "visibility": "public",
370         "modifiers": ["abstract class"],
371         "location": {
372                 "column_end": 3,
373                 "column_start": 1,
374                 "line_end": 36,
375                 "line_start": 29,
376                 "file": "test_location"
377         },
378         "is_intro": true,
379         "mparameters": [],
380         "mmodule": {
381                 "full_name": "test_prog::careers"
382         },
383         "mclass": {
384                 "full_name": "test_prog::Career"
385         },
386         "mpropdefs": [{
387                 "full_name": "test_prog$Career$_endurance_bonus"
388         }, {
389                 "full_name": "test_prog$Career$_intelligence_bonus"
390         }, {
391                 "full_name": "test_prog$Career$_strength_bonus"
392         }, {
393                 "full_name": "test_prog$Career$endurance_bonus"
394         }, {
395                 "full_name": "test_prog$Career$endurance_bonus="
396         }, {
397                 "full_name": "test_prog$Career$Object::init"
398         }, {
399                 "full_name": "test_prog$Career$intelligence_bonus"
400         }, {
401                 "full_name": "test_prog$Career$intelligence_bonus="
402         }, {
403                 "full_name": "test_prog$Career$strength_bonus"
404         }, {
405                 "full_name": "test_prog$Career$strength_bonus="
406         }],
407         "intro_mproperties": [{
408                 "full_name": "test_prog::careers::Career::_endurance_bonus"
409         }, {
410                 "full_name": "test_prog::careers::Career::_intelligence_bonus"
411         }, {
412                 "full_name": "test_prog::careers::Career::_strength_bonus"
413         }, {
414                 "full_name": "test_prog::Career::endurance_bonus"
415         }, {
416                 "full_name": "test_prog::Career::endurance_bonus="
417         }, {
418                 "full_name": "test_prog::Career::intelligence_bonus"
419         }, {
420                 "full_name": "test_prog::Career::intelligence_bonus="
421         }, {
422                 "full_name": "test_prog::Career::strength_bonus"
423         }, {
424                 "full_name": "test_prog::Career::strength_bonus="
425         }],
426         "intro": {
427                 "full_name": "test_prog$Career"
428         },
429         "mpackage": {
430                 "full_name": "test_prog"
431         },
432         "intro_mpropdefs": [{
433                 "full_name": "test_prog$Career$_endurance_bonus"
434         }, {
435                 "full_name": "test_prog$Career$_intelligence_bonus"
436         }, {
437                 "full_name": "test_prog$Career$_strength_bonus"
438         }, {
439                 "full_name": "test_prog$Career$endurance_bonus"
440         }, {
441                 "full_name": "test_prog$Career$endurance_bonus="
442         }, {
443                 "full_name": "test_prog$Career$intelligence_bonus"
444         }, {
445                 "full_name": "test_prog$Career$intelligence_bonus="
446         }, {
447                 "full_name": "test_prog$Career$strength_bonus"
448         }, {
449                 "full_name": "test_prog$Career$strength_bonus="
450         }],
451         "redef_mpropdefs": [{
452                 "full_name": "test_prog$Career$Object::init"
453         }]
454 }
455 {
456         "name": "Warrior",
457         "class_name": "MClassDef",
458         "full_name": "test_prog$Warrior",
459         "mdoc": {
460                 "content": "Warriors are good for fighting.",
461                 "location": {
462                         "column_end": 0,
463                         "column_start": 1,
464                         "line_end": 39,
465                         "line_start": 38,
466                         "file": "test_location"
467                 }
468         },
469         "visibility": "public",
470         "modifiers": ["class"],
471         "location": {
472                 "column_end": 3,
473                 "column_start": 1,
474                 "line_end": 47,
475                 "line_start": 38,
476                 "file": "test_location"
477         },
478         "is_intro": true,
479         "mparameters": [],
480         "mmodule": {
481                 "full_name": "test_prog::careers"
482         },
483         "mclass": {
484                 "full_name": "test_prog::Warrior"
485         },
486         "mpropdefs": [{
487                 "full_name": "test_prog$Warrior$Object::init"
488         }],
489         "intro_mproperties": [],
490         "intro": {
491                 "full_name": "test_prog$Warrior"
492         },
493         "mpackage": {
494                 "full_name": "test_prog"
495         },
496         "intro_mpropdefs": [],
497         "redef_mpropdefs": [{
498                 "full_name": "test_prog$Warrior$Object::init"
499         }]
500 }
501 {
502         "name": "Magician",
503         "class_name": "MClassDef",
504         "full_name": "test_prog$Magician",
505         "mdoc": {
506                 "content": "Magicians know magic and how to use it.",
507                 "location": {
508                         "column_end": 0,
509                         "column_start": 1,
510                         "line_end": 50,
511                         "line_start": 49,
512                         "file": "test_location"
513                 }
514         },
515         "visibility": "public",
516         "modifiers": ["class"],
517         "location": {
518                 "column_end": 3,
519                 "column_start": 1,
520                 "line_end": 58,
521                 "line_start": 49,
522                 "file": "test_location"
523         },
524         "is_intro": true,
525         "mparameters": [],
526         "mmodule": {
527                 "full_name": "test_prog::careers"
528         },
529         "mclass": {
530                 "full_name": "test_prog::Magician"
531         },
532         "mpropdefs": [{
533                 "full_name": "test_prog$Magician$Object::init"
534         }],
535         "intro_mproperties": [],
536         "intro": {
537                 "full_name": "test_prog$Magician"
538         },
539         "mpackage": {
540                 "full_name": "test_prog"
541         },
542         "intro_mpropdefs": [],
543         "redef_mpropdefs": [{
544                 "full_name": "test_prog$Magician$Object::init"
545         }]
546 }
547 {
548         "name": "Alcoholic",
549         "class_name": "MClassDef",
550         "full_name": "test_prog$Alcoholic",
551         "mdoc": {
552                 "content": "Alcoholics are good to nothing escept taking punches.",
553                 "location": {
554                         "column_end": 0,
555                         "column_start": 1,
556                         "line_end": 61,
557                         "line_start": 60,
558                         "file": "test_location"
559                 }
560         },
561         "visibility": "public",
562         "modifiers": ["class"],
563         "location": {
564                 "column_end": 3,
565                 "column_start": 1,
566                 "line_end": 69,
567                 "line_start": 60,
568                 "file": "test_location"
569         },
570         "is_intro": true,
571         "mparameters": [],
572         "mmodule": {
573                 "full_name": "test_prog::careers"
574         },
575         "mclass": {
576                 "full_name": "test_prog::Alcoholic"
577         },
578         "mpropdefs": [{
579                 "full_name": "test_prog$Alcoholic$Object::init"
580         }],
581         "intro_mproperties": [],
582         "intro": {
583                 "full_name": "test_prog$Alcoholic"
584         },
585         "mpackage": {
586                 "full_name": "test_prog"
587         },
588         "intro_mpropdefs": [],
589         "redef_mpropdefs": [{
590                 "full_name": "test_prog$Alcoholic$Object::init"
591         }]
592 }
593 {
594         "name": "Race",
595         "class_name": "MClassDef",
596         "full_name": "test_prog$Race",
597         "mdoc": {
598                 "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.",
599                 "location": {
600                         "column_end": 0,
601                         "column_start": 1,
602                         "line_end": 33,
603                         "line_start": 28,
604                         "file": "test_location"
605                 }
606         },
607         "visibility": "public",
608         "modifiers": ["abstract class"],
609         "location": {
610                 "column_end": 3,
611                 "column_start": 1,
612                 "line_end": 45,
613                 "line_start": 28,
614                 "file": "test_location"
615         },
616         "is_intro": true,
617         "mparameters": [],
618         "mmodule": {
619                 "full_name": "test_prog::races"
620         },
621         "mclass": {
622                 "full_name": "test_prog::Race"
623         },
624         "mpropdefs": [{
625                 "full_name": "test_prog$Race$_base_endurance"
626         }, {
627                 "full_name": "test_prog$Race$_base_intelligence"
628         }, {
629                 "full_name": "test_prog$Race$_base_strength"
630         }, {
631                 "full_name": "test_prog$Race$base_endurance"
632         }, {
633                 "full_name": "test_prog$Race$base_endurance="
634         }, {
635                 "full_name": "test_prog$Race$base_intelligence"
636         }, {
637                 "full_name": "test_prog$Race$base_intelligence="
638         }, {
639                 "full_name": "test_prog$Race$base_strength"
640         }, {
641                 "full_name": "test_prog$Race$base_strength="
642         }, {
643                 "full_name": "test_prog$Race$Object::init"
644         }],
645         "intro_mproperties": [{
646                 "full_name": "test_prog::races::Race::_base_endurance"
647         }, {
648                 "full_name": "test_prog::races::Race::_base_intelligence"
649         }, {
650                 "full_name": "test_prog::races::Race::_base_strength"
651         }, {
652                 "full_name": "test_prog::Race::base_endurance"
653         }, {
654                 "full_name": "test_prog::Race::base_endurance="
655         }, {
656                 "full_name": "test_prog::Race::base_intelligence"
657         }, {
658                 "full_name": "test_prog::Race::base_intelligence="
659         }, {
660                 "full_name": "test_prog::Race::base_strength"
661         }, {
662                 "full_name": "test_prog::Race::base_strength="
663         }],
664         "intro": {
665                 "full_name": "test_prog$Race"
666         },
667         "mpackage": {
668                 "full_name": "test_prog"
669         },
670         "intro_mpropdefs": [{
671                 "full_name": "test_prog$Race$_base_endurance"
672         }, {
673                 "full_name": "test_prog$Race$_base_intelligence"
674         }, {
675                 "full_name": "test_prog$Race$_base_strength"
676         }, {
677                 "full_name": "test_prog$Race$base_endurance"
678         }, {
679                 "full_name": "test_prog$Race$base_endurance="
680         }, {
681                 "full_name": "test_prog$Race$base_intelligence"
682         }, {
683                 "full_name": "test_prog$Race$base_intelligence="
684         }, {
685                 "full_name": "test_prog$Race$base_strength"
686         }, {
687                 "full_name": "test_prog$Race$base_strength="
688         }],
689         "redef_mpropdefs": [{
690                 "full_name": "test_prog$Race$Object::init"
691         }]
692 }
693 {
694         "name": "Human",
695         "class_name": "MClassDef",
696         "full_name": "test_prog$Human",
697         "mdoc": {
698                 "content": "Humans are able to do everithing.",
699                 "location": {
700                         "column_end": 0,
701                         "column_start": 1,
702                         "line_end": 48,
703                         "line_start": 47,
704                         "file": "test_location"
705                 }
706         },
707         "visibility": "public",
708         "modifiers": ["class"],
709         "location": {
710                 "column_end": 3,
711                 "column_start": 1,
712                 "line_end": 56,
713                 "line_start": 47,
714                 "file": "test_location"
715         },
716         "is_intro": true,
717         "mparameters": [],
718         "mmodule": {
719                 "full_name": "test_prog::races"
720         },
721         "mclass": {
722                 "full_name": "test_prog::Human"
723         },
724         "mpropdefs": [{
725                 "full_name": "test_prog$Human$Object::init"
726         }],
727         "intro_mproperties": [],
728         "intro": {
729                 "full_name": "test_prog$Human"
730         },
731         "mpackage": {
732                 "full_name": "test_prog"
733         },
734         "intro_mpropdefs": [],
735         "redef_mpropdefs": [{
736                 "full_name": "test_prog$Human$Object::init"
737         }]
738 }
739 {
740         "name": "Dwarf",
741         "class_name": "MClassDef",
742         "full_name": "test_prog$Dwarf",
743         "mdoc": {
744                 "content": "Dwarves make strong warriors.",
745                 "location": {
746                         "column_end": 0,
747                         "column_start": 1,
748                         "line_end": 59,
749                         "line_start": 58,
750                         "file": "test_location"
751                 }
752         },
753         "visibility": "public",
754         "modifiers": ["class"],
755         "location": {
756                 "column_end": 3,
757                 "column_start": 1,
758                 "line_end": 67,
759                 "line_start": 58,
760                 "file": "test_location"
761         },
762         "is_intro": true,
763         "mparameters": [],
764         "mmodule": {
765                 "full_name": "test_prog::races"
766         },
767         "mclass": {
768                 "full_name": "test_prog::Dwarf"
769         },
770         "mpropdefs": [{
771                 "full_name": "test_prog$Dwarf$Object::init"
772         }],
773         "intro_mproperties": [],
774         "intro": {
775                 "full_name": "test_prog$Dwarf"
776         },
777         "mpackage": {
778                 "full_name": "test_prog"
779         },
780         "intro_mpropdefs": [],
781         "redef_mpropdefs": [{
782                 "full_name": "test_prog$Dwarf$Object::init"
783         }]
784 }
785 {
786         "name": "Dwarf",
787         "class_name": "MClassDef",
788         "full_name": "test_prog::combat$Dwarf",
789         "mdoc": {
790                 "content": "Dwarves can be used as weapons.",
791                 "location": {
792                         "column_end": 0,
793                         "column_start": 1,
794                         "line_end": 62,
795                         "line_start": 61,
796                         "file": "test_location"
797                 }
798         },
799         "visibility": "public",
800         "modifiers": ["redef", "class"],
801         "location": {
802                 "column_end": 3,
803                 "column_start": 1,
804                 "line_end": 67,
805                 "line_start": 61,
806                 "file": "test_location"
807         },
808         "is_intro": false,
809         "mparameters": [],
810         "mmodule": {
811                 "full_name": "test_prog::combat"
812         },
813         "mclass": {
814                 "full_name": "test_prog::Dwarf"
815         },
816         "mpropdefs": [{
817                 "full_name": "test_prog::combat$Dwarf$Weapon::dps"
818         }],
819         "intro_mproperties": [],
820         "intro": {
821                 "full_name": "test_prog$Dwarf"
822         },
823         "mpackage": {
824                 "full_name": "test_prog"
825         },
826         "intro_mpropdefs": [],
827         "redef_mpropdefs": [{
828                 "full_name": "test_prog::combat$Dwarf$Weapon::dps"
829         }]
830 }
831 {
832         "name": "Elf",
833         "class_name": "MClassDef",
834         "full_name": "test_prog$Elf",
835         "mdoc": {
836                 "content": "Elves make good magicians.",
837                 "location": {
838                         "column_end": 0,
839                         "column_start": 1,
840                         "line_end": 70,
841                         "line_start": 69,
842                         "file": "test_location"
843                 }
844         },
845         "visibility": "public",
846         "modifiers": ["class"],
847         "location": {
848                 "column_end": 3,
849                 "column_start": 1,
850                 "line_end": 78,
851                 "line_start": 69,
852                 "file": "test_location"
853         },
854         "is_intro": true,
855         "mparameters": [],
856         "mmodule": {
857                 "full_name": "test_prog::races"
858         },
859         "mclass": {
860                 "full_name": "test_prog::Elf"
861         },
862         "mpropdefs": [{
863                 "full_name": "test_prog$Elf$Object::init"
864         }],
865         "intro_mproperties": [],
866         "intro": {
867                 "full_name": "test_prog$Elf"
868         },
869         "mpackage": {
870                 "full_name": "test_prog"
871         },
872         "intro_mpropdefs": [],
873         "redef_mpropdefs": [{
874                 "full_name": "test_prog$Elf$Object::init"
875         }]
876 }
877 {
878         "name": "Character",
879         "class_name": "MClassDef",
880         "full_name": "test_prog$Character",
881         "mdoc": {
882                 "content": "Characters can be played by both the human or the machine.",
883                 "location": {
884                         "column_end": 0,
885                         "column_start": 1,
886                         "line_end": 22,
887                         "line_start": 21,
888                         "file": "test_location"
889                 }
890         },
891         "visibility": "public",
892         "modifiers": ["class"],
893         "location": {
894                 "column_end": 3,
895                 "column_start": 1,
896                 "line_end": 68,
897                 "line_start": 21,
898                 "file": "test_location"
899         },
900         "is_intro": true,
901         "mparameters": [],
902         "mmodule": {
903                 "full_name": "test_prog::character"
904         },
905         "mclass": {
906                 "full_name": "test_prog::Character"
907         },
908         "mpropdefs": [{
909                 "full_name": "test_prog$Character$_age"
910         }, {
911                 "full_name": "test_prog$Character$_career"
912         }, {
913                 "full_name": "test_prog$Character$_health"
914         }, {
915                 "full_name": "test_prog$Character$_name"
916         }, {
917                 "full_name": "test_prog$Character$_race"
918         }, {
919                 "full_name": "test_prog$Character$_sex"
920         }, {
921                 "full_name": "test_prog$Character$age"
922         }, {
923                 "full_name": "test_prog$Character$age="
924         }, {
925                 "full_name": "test_prog$Character$career"
926         }, {
927                 "full_name": "test_prog$Character$career="
928         }, {
929                 "full_name": "test_prog$Character$health"
930         }, {
931                 "full_name": "test_prog$Character$health="
932         }, {
933                 "full_name": "test_prog$Character$Object::init"
934         }, {
935                 "full_name": "test_prog$Character$max_health"
936         }, {
937                 "full_name": "test_prog$Character$name"
938         }, {
939                 "full_name": "test_prog$Character$name="
940         }, {
941                 "full_name": "test_prog$Character$quit"
942         }, {
943                 "full_name": "test_prog$Character$race"
944         }, {
945                 "full_name": "test_prog$Character$race="
946         }, {
947                 "full_name": "test_prog$Character$sex"
948         }, {
949                 "full_name": "test_prog$Character$sex="
950         }, {
951                 "full_name": "test_prog$Character$total_endurance"
952         }, {
953                 "full_name": "test_prog$Character$total_intelligence"
954         }, {
955                 "full_name": "test_prog$Character$total_strengh"
956         }],
957         "intro_mproperties": [{
958                 "full_name": "test_prog::character::Character::_age"
959         }, {
960                 "full_name": "test_prog::character::Character::_career"
961         }, {
962                 "full_name": "test_prog::character::Character::_health"
963         }, {
964                 "full_name": "test_prog::character::Character::_name"
965         }, {
966                 "full_name": "test_prog::character::Character::_race"
967         }, {
968                 "full_name": "test_prog::character::Character::_sex"
969         }, {
970                 "full_name": "test_prog::Character::age"
971         }, {
972                 "full_name": "test_prog::Character::age="
973         }, {
974                 "full_name": "test_prog::Character::career"
975         }, {
976                 "full_name": "test_prog::Character::career="
977         }, {
978                 "full_name": "test_prog::Character::health"
979         }, {
980                 "full_name": "test_prog::Character::health="
981         }, {
982                 "full_name": "test_prog::Character::max_health"
983         }, {
984                 "full_name": "test_prog::Character::name"
985         }, {
986                 "full_name": "test_prog::Character::name="
987         }, {
988                 "full_name": "test_prog::Character::quit"
989         }, {
990                 "full_name": "test_prog::Character::race"
991         }, {
992                 "full_name": "test_prog::Character::race="
993         }, {
994                 "full_name": "test_prog::Character::sex"
995         }, {
996                 "full_name": "test_prog::Character::sex="
997         }, {
998                 "full_name": "test_prog::Character::total_endurance"
999         }, {
1000                 "full_name": "test_prog::Character::total_intelligence"
1001         }, {
1002                 "full_name": "test_prog::Character::total_strengh"
1003         }],
1004         "intro": {
1005                 "full_name": "test_prog$Character"
1006         },
1007         "mpackage": {
1008                 "full_name": "test_prog"
1009         },
1010         "intro_mpropdefs": [{
1011                 "full_name": "test_prog$Character$_age"
1012         }, {
1013                 "full_name": "test_prog$Character$_career"
1014         }, {
1015                 "full_name": "test_prog$Character$_health"
1016         }, {
1017                 "full_name": "test_prog$Character$_name"
1018         }, {
1019                 "full_name": "test_prog$Character$_race"
1020         }, {
1021                 "full_name": "test_prog$Character$_sex"
1022         }, {
1023                 "full_name": "test_prog$Character$age"
1024         }, {
1025                 "full_name": "test_prog$Character$age="
1026         }, {
1027                 "full_name": "test_prog$Character$career"
1028         }, {
1029                 "full_name": "test_prog$Character$career="
1030         }, {
1031                 "full_name": "test_prog$Character$health"
1032         }, {
1033                 "full_name": "test_prog$Character$health="
1034         }, {
1035                 "full_name": "test_prog$Character$max_health"
1036         }, {
1037                 "full_name": "test_prog$Character$name"
1038         }, {
1039                 "full_name": "test_prog$Character$name="
1040         }, {
1041                 "full_name": "test_prog$Character$quit"
1042         }, {
1043                 "full_name": "test_prog$Character$race"
1044         }, {
1045                 "full_name": "test_prog$Character$race="
1046         }, {
1047                 "full_name": "test_prog$Character$sex"
1048         }, {
1049                 "full_name": "test_prog$Character$sex="
1050         }, {
1051                 "full_name": "test_prog$Character$total_endurance"
1052         }, {
1053                 "full_name": "test_prog$Character$total_intelligence"
1054         }, {
1055                 "full_name": "test_prog$Character$total_strengh"
1056         }],
1057         "redef_mpropdefs": [{
1058                 "full_name": "test_prog$Character$Object::init"
1059         }]
1060 }
1061 {
1062         "name": "Character",
1063         "class_name": "MClassDef",
1064         "full_name": "test_prog::combat$Character",
1065         "mdoc": {
1066                 "content": "Characters are now `Comabatable`",
1067                 "location": {
1068                         "column_end": 0,
1069                         "column_start": 1,
1070                         "line_end": 54,
1071                         "line_start": 53,
1072                         "file": "test_location"
1073                 }
1074         },
1075         "visibility": "public",
1076         "modifiers": ["redef", "class"],
1077         "location": {
1078                 "column_end": 3,
1079                 "column_start": 1,
1080                 "line_end": 59,
1081                 "line_start": 53,
1082                 "file": "test_location"
1083         },
1084         "is_intro": false,
1085         "mparameters": [],
1086         "mmodule": {
1087                 "full_name": "test_prog::combat"
1088         },
1089         "mclass": {
1090                 "full_name": "test_prog::Character"
1091         },
1092         "mpropdefs": [{
1093                 "full_name": "test_prog::combat$Character$Combatable::hit_points"
1094         }],
1095         "intro_mproperties": [],
1096         "intro": {
1097                 "full_name": "test_prog$Character"
1098         },
1099         "mpackage": {
1100                 "full_name": "test_prog"
1101         },
1102         "intro_mpropdefs": [],
1103         "redef_mpropdefs": [{
1104                 "full_name": "test_prog::combat$Character$Combatable::hit_points"
1105         }]
1106 }
1107 {
1108         "name": "Weapon",
1109         "class_name": "MClassDef",
1110         "full_name": "test_prog$Weapon",
1111         "mdoc": {
1112                 "content": "Something that can be used to attack someone and inflict damage.",
1113                 "location": {
1114                         "column_end": 0,
1115                         "column_start": 1,
1116                         "line_end": 21,
1117                         "line_start": 20,
1118                         "file": "test_location"
1119                 }
1120         },
1121         "visibility": "public",
1122         "modifiers": ["interface"],
1123         "location": {
1124                 "column_end": 3,
1125                 "column_start": 1,
1126                 "line_end": 24,
1127                 "line_start": 20,
1128                 "file": "test_location"
1129         },
1130         "is_intro": true,
1131         "mparameters": [],
1132         "mmodule": {
1133                 "full_name": "test_prog::combat"
1134         },
1135         "mclass": {
1136                 "full_name": "test_prog::Weapon"
1137         },
1138         "mpropdefs": [{
1139                 "full_name": "test_prog$Weapon$dps"
1140         }],
1141         "intro_mproperties": [{
1142                 "full_name": "test_prog::Weapon::dps"
1143         }],
1144         "intro": {
1145                 "full_name": "test_prog$Weapon"
1146         },
1147         "mpackage": {
1148                 "full_name": "test_prog"
1149         },
1150         "intro_mpropdefs": [{
1151                 "full_name": "test_prog$Weapon$dps"
1152         }],
1153         "redef_mpropdefs": []
1154 }
1155 {
1156         "name": "Combatable",
1157         "class_name": "MClassDef",
1158         "full_name": "test_prog$Combatable",
1159         "mdoc": {
1160                 "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`.",
1161                 "location": {
1162                         "column_end": 0,
1163                         "column_start": 1,
1164                         "line_end": 31,
1165                         "line_start": 26,
1166                         "file": "test_location"
1167                 }
1168         },
1169         "visibility": "public",
1170         "modifiers": ["interface"],
1171         "location": {
1172                 "column_end": 3,
1173                 "column_start": 1,
1174                 "line_end": 51,
1175                 "line_start": 26,
1176                 "file": "test_location"
1177         },
1178         "is_intro": true,
1179         "mparameters": [],
1180         "mmodule": {
1181                 "full_name": "test_prog::combat"
1182         },
1183         "mclass": {
1184                 "full_name": "test_prog::Combatable"
1185         },
1186         "mpropdefs": [{
1187                 "full_name": "test_prog$Combatable$attack"
1188         }, {
1189                 "full_name": "test_prog$Combatable$defend"
1190         }, {
1191                 "full_name": "test_prog$Combatable$direct_attack"
1192         }, {
1193                 "full_name": "test_prog$Combatable$hit_points"
1194         }, {
1195                 "full_name": "test_prog$Combatable$is_dead"
1196         }],
1197         "intro_mproperties": [{
1198                 "full_name": "test_prog::Combatable::attack"
1199         }, {
1200                 "full_name": "test_prog::Combatable::defend"
1201         }, {
1202                 "full_name": "test_prog::Combatable::direct_attack"
1203         }, {
1204                 "full_name": "test_prog::Combatable::hit_points"
1205         }, {
1206                 "full_name": "test_prog::Combatable::is_dead"
1207         }],
1208         "intro": {
1209                 "full_name": "test_prog$Combatable"
1210         },
1211         "mpackage": {
1212                 "full_name": "test_prog"
1213         },
1214         "intro_mpropdefs": [{
1215                 "full_name": "test_prog$Combatable$attack"
1216         }, {
1217                 "full_name": "test_prog$Combatable$defend"
1218         }, {
1219                 "full_name": "test_prog$Combatable$direct_attack"
1220         }, {
1221                 "full_name": "test_prog$Combatable$hit_points"
1222         }, {
1223                 "full_name": "test_prog$Combatable$is_dead"
1224         }],
1225         "redef_mpropdefs": []
1226 }
1227 {
1228         "name": "Game",
1229         "class_name": "MClassDef",
1230         "full_name": "test_prog$Game",
1231         "mdoc": {
1232                 "content": "This is the interface you have to implement to use ure gaming platform.\n\nsee http://our.platform.com",
1233                 "location": {
1234                         "column_end": 0,
1235                         "column_start": 1,
1236                         "line_end": 23,
1237                         "line_start": 20,
1238                         "file": "test_location"
1239                 }
1240         },
1241         "visibility": "public",
1242         "modifiers": ["interface"],
1243         "location": {
1244                 "column_end": 3,
1245                 "column_start": 1,
1246                 "line_end": 45,
1247                 "line_start": 20,
1248                 "file": "test_location"
1249         },
1250         "is_intro": true,
1251         "mparameters": [],
1252         "mmodule": {
1253                 "full_name": "test_prog::game"
1254         },
1255         "mclass": {
1256                 "full_name": "test_prog::Game"
1257         },
1258         "mpropdefs": [{
1259                 "full_name": "test_prog$Game$computer_characters"
1260         }, {
1261                 "full_name": "test_prog$Game$pause_game"
1262         }, {
1263                 "full_name": "test_prog$Game$player_characters"
1264         }, {
1265                 "full_name": "test_prog$Game$start_game"
1266         }, {
1267                 "full_name": "test_prog$Game$stop_game"
1268         }],
1269         "intro_mproperties": [{
1270                 "full_name": "test_prog::Game::computer_characters"
1271         }, {
1272                 "full_name": "test_prog::Game::pause_game"
1273         }, {
1274                 "full_name": "test_prog::Game::player_characters"
1275         }, {
1276                 "full_name": "test_prog::Game::start_game"
1277         }, {
1278                 "full_name": "test_prog::Game::stop_game"
1279         }],
1280         "intro": {
1281                 "full_name": "test_prog$Game"
1282         },
1283         "mpackage": {
1284                 "full_name": "test_prog"
1285         },
1286         "intro_mpropdefs": [{
1287                 "full_name": "test_prog$Game$computer_characters"
1288         }, {
1289                 "full_name": "test_prog$Game$pause_game"
1290         }, {
1291                 "full_name": "test_prog$Game$player_characters"
1292         }, {
1293                 "full_name": "test_prog$Game$start_game"
1294         }, {
1295                 "full_name": "test_prog$Game$stop_game"
1296         }],
1297         "redef_mpropdefs": []
1298 }
1299 {
1300         "name": "MyGame",
1301         "class_name": "MClassDef",
1302         "full_name": "test_prog$MyGame",
1303         "mdoc": {
1304                 "content": "This is an example of how to implement the Game interface",
1305                 "location": {
1306                         "column_end": 0,
1307                         "column_start": 1,
1308                         "line_end": 20,
1309                         "line_start": 19,
1310                         "file": "test_location"
1311                 }
1312         },
1313         "visibility": "public",
1314         "modifiers": ["public", "class"],
1315         "location": {
1316                 "column_end": 3,
1317                 "column_start": 1,
1318                 "line_end": 32,
1319                 "line_start": 19,
1320                 "file": "test_location"
1321         },
1322         "is_intro": true,
1323         "mparameters": [],
1324         "mmodule": {
1325                 "full_name": "test_prog::game_examples"
1326         },
1327         "mclass": {
1328                 "full_name": "test_prog::MyGame"
1329         },
1330         "mpropdefs": [{
1331                 "full_name": "test_prog$MyGame$_computer_characters"
1332         }, {
1333                 "full_name": "test_prog$MyGame$_player_characters"
1334         }, {
1335                 "full_name": "test_prog$MyGame$Game::computer_characters"
1336         }, {
1337                 "full_name": "test_prog$MyGame$computer_characters="
1338         }, {
1339                 "full_name": "test_prog$MyGame$Game::pause_game"
1340         }, {
1341                 "full_name": "test_prog$MyGame$Game::player_characters"
1342         }, {
1343                 "full_name": "test_prog$MyGame$player_characters="
1344         }, {
1345                 "full_name": "test_prog$MyGame$Game::start_game"
1346         }, {
1347                 "full_name": "test_prog$MyGame$Game::stop_game"
1348         }],
1349         "intro_mproperties": [{
1350                 "full_name": "test_prog::game_examples::MyGame::_computer_characters"
1351         }, {
1352                 "full_name": "test_prog::game_examples::MyGame::_player_characters"
1353         }, {
1354                 "full_name": "test_prog::MyGame::computer_characters="
1355         }, {
1356                 "full_name": "test_prog::MyGame::player_characters="
1357         }],
1358         "intro": {
1359                 "full_name": "test_prog$MyGame"
1360         },
1361         "mpackage": {
1362                 "full_name": "test_prog"
1363         },
1364         "intro_mpropdefs": [{
1365                 "full_name": "test_prog$MyGame$_computer_characters"
1366         }, {
1367                 "full_name": "test_prog$MyGame$_player_characters"
1368         }, {
1369                 "full_name": "test_prog$MyGame$computer_characters="
1370         }, {
1371                 "full_name": "test_prog$MyGame$player_characters="
1372         }],
1373         "redef_mpropdefs": [{
1374                 "full_name": "test_prog$MyGame$Game::computer_characters"
1375         }, {
1376                 "full_name": "test_prog$MyGame$Game::pause_game"
1377         }, {
1378                 "full_name": "test_prog$MyGame$Game::player_characters"
1379         }, {
1380                 "full_name": "test_prog$MyGame$Game::start_game"
1381         }, {
1382                 "full_name": "test_prog$MyGame$Game::stop_game"
1383         }]
1384 }
1385 {
1386         "name": "Starter",
1387         "class_name": "MClassDef",
1388         "full_name": "test_prog$Starter",
1389         "mdoc": null,
1390         "visibility": "public",
1391         "modifiers": ["class"],
1392         "location": {
1393                 "column_end": 3,
1394                 "column_start": 1,
1395                 "line_end": 23,
1396                 "line_start": 21,
1397                 "file": "test_location"
1398         },
1399         "is_intro": true,
1400         "mparameters": [],
1401         "mmodule": {
1402                 "full_name": "test_prog::test_prog"
1403         },
1404         "mclass": {
1405                 "full_name": "test_prog::Starter"
1406         },
1407         "mpropdefs": [{
1408                 "full_name": "test_prog$Starter$start"
1409         }],
1410         "intro_mproperties": [{
1411                 "full_name": "test_prog::Starter::start"
1412         }],
1413         "intro": {
1414                 "full_name": "test_prog$Starter"
1415         },
1416         "mpackage": {
1417                 "full_name": "test_prog"
1418         },
1419         "intro_mpropdefs": [{
1420                 "full_name": "test_prog$Starter$start"
1421         }],
1422         "redef_mpropdefs": []
1423 }
1424 {
1425         "name": "Sys",
1426         "class_name": "MClassDef",
1427         "full_name": "test_prog$Sys",
1428         "mdoc": null,
1429         "visibility": "public",
1430         "modifiers": ["class"],
1431         "location": {
1432                 "column_end": 13,
1433                 "column_start": 1,
1434                 "line_end": 26,
1435                 "line_start": 25,
1436                 "file": "test_location"
1437         },
1438         "is_intro": true,
1439         "mparameters": [],
1440         "mmodule": {
1441                 "full_name": "test_prog::test_prog"
1442         },
1443         "mclass": {
1444                 "full_name": "test_prog::Sys"
1445         },
1446         "mpropdefs": [{
1447                 "full_name": "test_prog$Sys$main"
1448         }],
1449         "intro_mproperties": [{
1450                 "full_name": "test_prog::Sys::main"
1451         }],
1452         "intro": {
1453                 "full_name": "test_prog$Sys"
1454         },
1455         "mpackage": {
1456                 "full_name": "test_prog"
1457         },
1458         "intro_mpropdefs": [{
1459                 "full_name": "test_prog$Sys$main"
1460         }],
1461         "redef_mpropdefs": []
1462 }