1 /* This C file is generated by NIT to compile module syntax. */
2 #include "syntax._sep.h"
3 val_t
syntax___SrcModuleLoader___file_type(val_t self
) {
4 struct trace_t trace
= {NULL
, NULL
, 31, LOCATE_syntax___SrcModuleLoader___file_type
};
6 trace
.prev
= tracehead
; tracehead
= &trace
;
7 trace
.file
= LOCATE_syntax
;
8 variable0
= NEW_String_string___String___with_native(BOX_NativeString("nit"), TAG_Int(3)); /*new String*/
10 return_label0
: while(false);
11 tracehead
= trace
.prev
;
14 val_t
syntax___SrcModuleLoader___parse_file(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
, val_t param4
) {
15 struct trace_t trace
= {NULL
, NULL
, 33, LOCATE_syntax___SrcModuleLoader___parse_file
};
36 trace
.prev
= tracehead
; tracehead
= &trace
;
37 trace
.file
= LOCATE_syntax
;
43 variable6
= NEW_Lexer_lexer___Lexer___init( variable1
/*file*/, variable2
/*filename*/); /*new Lexer*/
44 variable5
= variable6
;
45 variable7
= NEW_Parser_parser___Parser___init( variable5
/*lexer*/); /*new Parser*/
46 variable6
= variable7
;
47 variable8
= ((parser___Parser___parse_t
)CALL( variable6
/*parser*/,COLOR_parser___Parser___parse
))( variable6
/*parser*/) /*Parser::parse*/;
48 variable7
= variable8
;
49 variable8
= ((parser_nodes___Start___n_base_t
)CALL( variable7
/*node_tree*/,COLOR_parser_nodes___Start___n_base
))( variable7
/*node_tree*/) /*Start::n_base*/;
50 variable8
= TAG_Bool((variable8
== NIT_NULL
/*null*/) || ((variable8
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable8
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable8
, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable8
,COLOR_kernel___Object_____eqeq
))(variable8
, NIT_NULL
/*null*/) /*Object::==*/)))));
51 if (UNTAG_Bool(variable8
)) { /*if*/
52 variable9
= ((parser_nodes___Start___n_eof_t
)CALL( variable7
/*node_tree*/,COLOR_parser_nodes___Start___n_eof
))( variable7
/*node_tree*/) /*Start::n_eof*/;
53 variable8
= variable9
;
54 variable9
= TAG_Bool(( variable8
/*err*/==NIT_NULL
) || VAL_ISA( variable8
/*err*/, COLOR_PError
, ID_PError
)) /*cast PError*/;
55 if (!UNTAG_Bool(variable9
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_syntax___SrcModuleLoader___parse_file
, LOCATE_syntax
, 40); nit_exit(1);}
56 variable9
= NEW_String_string___String___init(); /*new String*/
57 variable10
= NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
58 variable11
= variable10
;
59 ((string___String___append_t
)CALL(variable9
,COLOR_abstract_collection___IndexedCollection___append
))(variable9
, variable11
) /*String::append*/;
60 variable12
= ((parser_prod___Token___locate_t
)CALL( variable8
/*err*/,COLOR_parser_prod___PNode___locate
))( variable8
/*err*/) /*Token::locate*/;
61 variable13
= variable12
;
62 ((string___String___append_t
)CALL(variable9
,COLOR_abstract_collection___IndexedCollection___append
))(variable9
, variable13
) /*String::append*/;
63 variable14
= NEW_String_string___String___with_native(BOX_NativeString(": "), TAG_Int(2)); /*new String*/
64 variable15
= variable14
;
65 ((string___String___append_t
)CALL(variable9
,COLOR_abstract_collection___IndexedCollection___append
))(variable9
, variable15
) /*String::append*/;
66 variable16
= ((lexer___PError___message_t
)CALL( variable8
/*err*/,COLOR_lexer___PError___message
))( variable8
/*err*/) /*PError::message*/;
67 variable17
= variable16
;
68 ((string___String___append_t
)CALL(variable9
,COLOR_abstract_collection___IndexedCollection___append
))(variable9
, variable17
) /*String::append*/;
69 variable18
= NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
70 variable19
= variable18
;
71 ((string___String___append_t
)CALL(variable9
,COLOR_abstract_collection___IndexedCollection___append
))(variable9
, variable19
) /*String::append*/;
72 ((mmloader___ToolContext___error_t
)CALL( variable0
/*context*/,COLOR_mmloader___ToolContext___error
))( variable0
/*context*/, variable9
) /*ToolContext::error*/;
73 exit(UNTAG_Int( TAG_Int(1)));
75 variable9
= ((parser_nodes___Start___n_base_t
)CALL( variable7
/*node_tree*/,COLOR_parser_nodes___Start___n_base
))( variable7
/*node_tree*/) /*Start::n_base*/;
76 variable8
= variable9
;
77 variable9
= TAG_Bool(( variable8
/*node_module*/==NIT_NULL
) || VAL_ISA( variable8
/*node_module*/, COLOR_AModule
, ID_AModule
)) /*cast AModule*/;
78 if (!UNTAG_Bool(variable9
)) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_syntax___SrcModuleLoader___parse_file
, LOCATE_syntax
, 45); nit_exit(1);}
79 variable10
= NEW_MMSrcModule_syntax_base___MMSrcModule___init( variable0
/*context*/, variable8
/*node_module*/, variable4
/*dir*/, variable3
/*name*/); /*new MMSrcModule*/
80 variable9
= variable10
;
81 variable5
= variable9
/*module*/;
83 return_label1
: while(false);
84 tracehead
= trace
.prev
;
87 void syntax___SrcModuleLoader___process_metamodel(val_t self
, val_t param0
, val_t param1
) {
88 struct trace_t trace
= {NULL
, NULL
, 52, LOCATE_syntax___SrcModuleLoader___process_metamodel
};
91 trace
.prev
= tracehead
; tracehead
= &trace
;
92 trace
.file
= LOCATE_syntax
;
95 ((syntax___MMSrcModule___process_supermodules_t
)CALL( variable1
/*module*/,COLOR_syntax___MMSrcModule___process_supermodules
))( variable1
/*module*/, variable0
/*context*/) /*MMSrcModule::process_supermodules*/;
96 ((syntax___MMSrcModule___process_syntax_t
)CALL( variable1
/*module*/,COLOR_syntax___MMSrcModule___process_syntax
))( variable1
/*module*/, variable0
/*context*/) /*MMSrcModule::process_syntax*/;
97 tracehead
= trace
.prev
;
100 void syntax___SrcModuleLoader___init(val_t self
, int* init_table
) {
101 struct trace_t trace
= {NULL
, NULL
, 58, LOCATE_syntax___SrcModuleLoader___init
};
102 trace
.prev
= tracehead
; tracehead
= &trace
;
103 trace
.file
= LOCATE_syntax
;
104 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_SrcModuleLoader
].i
]) return;
105 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_SrcModuleLoader
].i
] = 1;
106 tracehead
= trace
.prev
;
109 void syntax___MMSrcModule___process_supermodules(val_t self
, val_t param0
) {
110 struct trace_t trace
= {NULL
, NULL
, 62, LOCATE_syntax___MMSrcModule___process_supermodules
};
113 trace
.prev
= tracehead
; tracehead
= &trace
;
114 trace
.file
= LOCATE_syntax
;
116 variable1
= ((syntax_base___MMSrcModule___node_t
)CALL( self
,COLOR_syntax_base___MMSrcModule___node
))( self
) /*MMSrcModule::node*/;
117 ((mmbuilder___AModule___import_super_modules_t
)CALL(variable1
,COLOR_mmbuilder___AModule___import_super_modules
))(variable1
, variable0
/*tc*/, self
) /*AModule::import_super_modules*/;
118 tracehead
= trace
.prev
;
121 void syntax___MMSrcModule___process_syntax(val_t self
, val_t param0
) {
122 struct trace_t trace
= {NULL
, NULL
, 69, LOCATE_syntax___MMSrcModule___process_syntax
};
125 trace
.prev
= tracehead
; tracehead
= &trace
;
126 trace
.file
= LOCATE_syntax
;
128 ((mmbuilder___MMSrcModule___do_mmbuilder_t
)CALL( self
,COLOR_mmbuilder___MMSrcModule___do_mmbuilder
))( self
, variable0
/*tc*/) /*MMSrcModule::do_mmbuilder*/;
129 variable1
= ((mmloader___ToolContext___error_count_t
)CALL( variable0
/*tc*/,COLOR_mmloader___ToolContext___error_count
))( variable0
/*tc*/) /*ToolContext::error_count*/;
130 variable1
= TAG_Bool(UNTAG_Int(variable1
)>UNTAG_Int( TAG_Int(0)));
131 if (UNTAG_Bool(variable1
)) { /*if*/
132 exit(UNTAG_Int( TAG_Int(1)));
134 ((typing___MMSrcModule___do_typing_t
)CALL( self
,COLOR_typing___MMSrcModule___do_typing
))( self
, variable0
/*tc*/) /*MMSrcModule::do_typing*/;
135 variable1
= ((mmloader___ToolContext___error_count_t
)CALL( variable0
/*tc*/,COLOR_mmloader___ToolContext___error_count
))( variable0
/*tc*/) /*ToolContext::error_count*/;
136 variable1
= TAG_Bool(UNTAG_Int(variable1
)>UNTAG_Int( TAG_Int(0)));
137 if (UNTAG_Bool(variable1
)) { /*if*/
138 exit(UNTAG_Int( TAG_Int(1)));
140 ((control_flow___MMSrcModule___do_control_flow_t
)CALL( self
,COLOR_control_flow___MMSrcModule___do_control_flow
))( self
, variable0
/*tc*/) /*MMSrcModule::do_control_flow*/;
141 variable1
= ((mmloader___ToolContext___error_count_t
)CALL( variable0
/*tc*/,COLOR_mmloader___ToolContext___error_count
))( variable0
/*tc*/) /*ToolContext::error_count*/;
142 variable1
= TAG_Bool(UNTAG_Int(variable1
)>UNTAG_Int( TAG_Int(0)));
143 if (UNTAG_Bool(variable1
)) { /*if*/
144 exit(UNTAG_Int( TAG_Int(1)));
146 tracehead
= trace
.prev
;