-/* method abstract_compiler#AbstractCompiler#compile_main_function for (self: AbstractCompiler) */
-void abstract_compiler__AbstractCompiler__compile_main_function(val* self) {
-val* var /* : AbstractCompilerVisitor */;
-val* var_v /* var v: AbstractCompilerVisitor */;
-static val* varonce;
-val* var1 /* : String */;
-char* var2 /* : NativeString */;
-long var3 /* : Int */;
-val* var4 /* : String */;
-static val* varonce5;
-val* var6 /* : String */;
-char* var7 /* : NativeString */;
-long var8 /* : Int */;
-val* var9 /* : String */;
-static val* varonce10;
-val* var11 /* : String */;
-char* var12 /* : NativeString */;
-long var13 /* : Int */;
-val* var14 /* : String */;
-val* var15 /* : ModelBuilder */;
-val* var16 /* : ToolContext */;
-val* var17 /* : OptionBool */;
-val* var18 /* : nullable Object */;
-short int var19 /* : Bool */;
-val* var20 /* : Array[String] */;
-val* var21 /* : Iterator[nullable Object] */;
-short int var22 /* : Bool */;
-val* var23 /* : nullable Object */;
-val* var_tag /* var tag: String */;
-static val* varonce24;
-val* var25 /* : String */;
-char* var26 /* : NativeString */;
-long var27 /* : Int */;
-val* var28 /* : String */;
-static val* varonce29;
-val* var30 /* : String */;
-char* var31 /* : NativeString */;
-long var32 /* : Int */;
-val* var33 /* : String */;
-val* var34 /* : Array[Object] */;
-long var35 /* : Int */;
-val* var36 /* : NativeArray[Object] */;
-val* var37 /* : String */;
-static val* varonce38;
-val* var39 /* : String */;
-char* var40 /* : NativeString */;
-long var41 /* : Int */;
-val* var42 /* : String */;
-static val* varonce43;
-val* var44 /* : String */;
-char* var45 /* : NativeString */;
-long var46 /* : Int */;
-val* var47 /* : String */;
-val* var48 /* : Array[Object] */;
-long var49 /* : Int */;
-val* var50 /* : NativeArray[Object] */;
-val* var51 /* : String */;
-static val* varonce52;
-val* var53 /* : String */;
-char* var54 /* : NativeString */;
-long var55 /* : Int */;
-val* var56 /* : String */;
-static val* varonce57;
-val* var58 /* : String */;
-char* var59 /* : NativeString */;
-long var60 /* : Int */;
-val* var61 /* : String */;
-val* var62 /* : Array[Object] */;
-long var63 /* : Int */;
-val* var64 /* : NativeArray[Object] */;
-val* var65 /* : String */;
-val* var66 /* : AbstractCompiler */;
-val* var67 /* : CodeWriter */;
-static val* varonce68;
-val* var69 /* : String */;
-char* var70 /* : NativeString */;
-long var71 /* : Int */;
-val* var72 /* : String */;
-static val* varonce73;
-val* var74 /* : String */;
-char* var75 /* : NativeString */;
-long var76 /* : Int */;
-val* var77 /* : String */;
-val* var78 /* : Array[Object] */;
-long var79 /* : Int */;
-val* var80 /* : NativeArray[Object] */;
-val* var81 /* : String */;
-val* var82 /* : AbstractCompiler */;
-val* var83 /* : CodeWriter */;
-static val* varonce84;
-val* var85 /* : String */;
-char* var86 /* : NativeString */;
-long var87 /* : Int */;
-val* var88 /* : String */;
-static val* varonce89;
-val* var90 /* : String */;
-char* var91 /* : NativeString */;
-long var92 /* : Int */;
-val* var93 /* : String */;
-val* var94 /* : Array[Object] */;
-long var95 /* : Int */;
-val* var96 /* : NativeArray[Object] */;
-val* var97 /* : String */;
-val* var98 /* : AbstractCompiler */;
-val* var99 /* : CodeWriter */;
-static val* varonce100;
-val* var101 /* : String */;
-char* var102 /* : NativeString */;
-long var103 /* : Int */;
-val* var104 /* : String */;
-static val* varonce105;
-val* var106 /* : String */;
-char* var107 /* : NativeString */;
-long var108 /* : Int */;
-val* var109 /* : String */;
-val* var110 /* : Array[Object] */;
-long var111 /* : Int */;
-val* var112 /* : NativeArray[Object] */;
-val* var113 /* : String */;
-static val* varonce114;
-val* var115 /* : String */;
-char* var116 /* : NativeString */;
-long var117 /* : Int */;
-val* var118 /* : String */;
-static val* varonce119;
-val* var120 /* : String */;
-char* var121 /* : NativeString */;
-long var122 /* : Int */;
-val* var123 /* : String */;
-static val* varonce124;
-val* var125 /* : String */;
-char* var126 /* : NativeString */;
-long var127 /* : Int */;
-val* var128 /* : String */;
-val* var129 /* : MModule */;
-val* var130 /* : nullable MClassType */;
-val* var_main_type /* var main_type: nullable MClassType */;
-val* var131 /* : null */;
-short int var132 /* : Bool */;
-val* var133 /* : AbstractCompiler */;
-val* var134 /* : MModule */;
-val* var_mainmodule /* var mainmodule: MModule */;
-val* var135 /* : RuntimeVariable */;
-val* var_glob_sys /* var glob_sys: RuntimeVariable */;
-static val* varonce136;
-val* var137 /* : String */;
-char* var138 /* : NativeString */;
-long var139 /* : Int */;
-val* var140 /* : String */;
-static val* varonce141;
-val* var142 /* : String */;
-char* var143 /* : NativeString */;
-long var144 /* : Int */;
-val* var145 /* : String */;
-val* var146 /* : Array[Object] */;
-long var147 /* : Int */;
-val* var148 /* : NativeArray[Object] */;
-val* var149 /* : String */;
-static val* varonce150;
-val* var151 /* : String */;
-char* var152 /* : NativeString */;
-long var153 /* : Int */;
-val* var154 /* : String */;
-val* var155 /* : MClass */;
-val* var156 /* : nullable MMethod */;
-val* var_main_init /* var main_init: nullable MMethod */;
-val* var157 /* : null */;
-short int var158 /* : Bool */;
-val* var159 /* : Array[RuntimeVariable] */;
-long var160 /* : Int */;
-val* var161 /* : NativeArray[RuntimeVariable] */;
-val* var162 /* : nullable RuntimeVariable */;
-static val* varonce163;
-val* var164 /* : String */;
-char* var165 /* : NativeString */;
-long var166 /* : Int */;
-val* var167 /* : String */;
-val* var168 /* : MClass */;
-val* var169 /* : nullable MMethod */;
-val* var_main_method /* var main_method: nullable MMethod */;
-val* var170 /* : null */;
-short int var171 /* : Bool */;
-val* var172 /* : Array[RuntimeVariable] */;
-long var173 /* : Int */;
-val* var174 /* : NativeArray[RuntimeVariable] */;
-val* var175 /* : nullable RuntimeVariable */;
-val* var176 /* : ModelBuilder */;
-val* var177 /* : ToolContext */;
-val* var178 /* : OptionBool */;
-val* var179 /* : nullable Object */;
-short int var180 /* : Bool */;
-static val* varonce181;
-val* var182 /* : String */;
-char* var183 /* : NativeString */;
-long var184 /* : Int */;
-val* var185 /* : String */;
-static val* varonce186;
-val* var187 /* : String */;
-char* var188 /* : NativeString */;
-long var189 /* : Int */;
-val* var190 /* : String */;
-static val* varonce191;
-val* var192 /* : String */;
-char* var193 /* : NativeString */;
-long var194 /* : Int */;
-val* var195 /* : String */;
-static val* varonce196;
-val* var197 /* : String */;
-char* var198 /* : NativeString */;
-long var199 /* : Int */;
-val* var200 /* : String */;
-val* var201 /* : Array[String] */;
-val* var202 /* : Iterator[nullable Object] */;
-short int var203 /* : Bool */;
-val* var204 /* : nullable Object */;
-val* var_tag205 /* var tag: String */;
-static val* varonce206;
-val* var207 /* : String */;
-char* var208 /* : NativeString */;
-long var209 /* : Int */;
-val* var210 /* : String */;
-static val* varonce211;
-val* var212 /* : String */;
-char* var213 /* : NativeString */;
-long var214 /* : Int */;
-val* var215 /* : String */;
-val* var216 /* : Array[Object] */;
-long var217 /* : Int */;
-val* var218 /* : NativeArray[Object] */;
-val* var219 /* : String */;
-static val* varonce220;
-val* var221 /* : String */;
-char* var222 /* : NativeString */;
-long var223 /* : Int */;
-val* var224 /* : String */;
-static val* varonce225;
-val* var226 /* : String */;
-char* var227 /* : NativeString */;
-long var228 /* : Int */;
-val* var229 /* : String */;
-static val* varonce230;
-val* var231 /* : String */;
-char* var232 /* : NativeString */;
-long var233 /* : Int */;
-val* var234 /* : String */;
-static val* varonce235;
-val* var236 /* : String */;
-char* var237 /* : NativeString */;
-long var238 /* : Int */;
-val* var239 /* : String */;
-static val* varonce240;
-val* var241 /* : String */;
-char* var242 /* : NativeString */;
-long var243 /* : Int */;
-val* var244 /* : String */;
-val* var245 /* : Array[Object] */;
-long var246 /* : Int */;
-val* var247 /* : NativeArray[Object] */;
-val* var248 /* : String */;
-static val* varonce249;
-val* var250 /* : String */;
-char* var251 /* : NativeString */;
-long var252 /* : Int */;
-val* var253 /* : String */;
-static val* varonce254;
-val* var255 /* : String */;
-char* var256 /* : NativeString */;
-long var257 /* : Int */;
-val* var258 /* : String */;
-val* var259 /* : Array[Object] */;
-long var260 /* : Int */;
-val* var261 /* : NativeArray[Object] */;
-val* var262 /* : String */;
-static val* varonce263;
-val* var264 /* : String */;
-char* var265 /* : NativeString */;
-long var266 /* : Int */;
-val* var267 /* : String */;
-static val* varonce268;
-val* var269 /* : String */;
-char* var270 /* : NativeString */;
-long var271 /* : Int */;
-val* var272 /* : String */;
-val* var273 /* : Array[Object] */;
-long var274 /* : Int */;
-val* var275 /* : NativeArray[Object] */;
-val* var276 /* : String */;
-static val* varonce277;
-val* var278 /* : String */;
-char* var279 /* : NativeString */;
-long var280 /* : Int */;
-val* var281 /* : String */;
-static val* varonce282;
-val* var283 /* : String */;
-char* var284 /* : NativeString */;
-long var285 /* : Int */;
-val* var286 /* : String */;
-val* var287 /* : Array[Object] */;
-long var288 /* : Int */;
-val* var289 /* : NativeArray[Object] */;
-val* var290 /* : String */;
-static val* varonce291;
-val* var292 /* : String */;
-char* var293 /* : NativeString */;
-long var294 /* : Int */;
-val* var295 /* : String */;
-static val* varonce296;
-val* var297 /* : String */;
-char* var298 /* : NativeString */;
-long var299 /* : Int */;
-val* var300 /* : String */;
-val* var301 /* : Array[Object] */;
-long var302 /* : Int */;
-val* var303 /* : NativeArray[Object] */;
-val* var304 /* : String */;
-static val* varonce306;
-val* var307 /* : String */;
-char* var308 /* : NativeString */;
-long var309 /* : Int */;
-val* var310 /* : String */;
-static val* varonce311;
-val* var312 /* : String */;
-char* var313 /* : NativeString */;
-long var314 /* : Int */;
-val* var315 /* : String */;
-val* var316 /* : Array[String] */;
-val* var317 /* : Array[nullable Object] */;
-val* var_tags /* var tags: Array[String] */;
-static val* varonce318;
-val* var319 /* : String */;
-char* var320 /* : NativeString */;
-long var321 /* : Int */;
-val* var322 /* : String */;
-val* var323 /* : Iterator[nullable Object] */;
-short int var324 /* : Bool */;
-val* var325 /* : nullable Object */;
-val* var_tag326 /* var tag: String */;
-static val* varonce327;
-val* var328 /* : String */;
-char* var329 /* : NativeString */;
-long var330 /* : Int */;
-val* var331 /* : String */;
-static val* varonce332;
-val* var333 /* : String */;
-char* var334 /* : NativeString */;
-long var335 /* : Int */;
-val* var336 /* : String */;
-val* var337 /* : Array[Object] */;
-long var338 /* : Int */;
-val* var339 /* : NativeArray[Object] */;
-val* var340 /* : String */;
-static val* varonce341;
-val* var342 /* : String */;
-char* var343 /* : NativeString */;
-long var344 /* : Int */;
-val* var345 /* : String */;
-static val* varonce346;
-val* var347 /* : String */;
-char* var348 /* : NativeString */;
-long var349 /* : Int */;
-val* var350 /* : String */;
-static val* varonce351;
-val* var352 /* : String */;
-char* var353 /* : NativeString */;
-long var354 /* : Int */;
-val* var355 /* : String */;
-val* var356 /* : Array[Object] */;
-long var357 /* : Int */;
-val* var358 /* : NativeArray[Object] */;
-val* var359 /* : String */;
-static val* varonce360;
-val* var361 /* : String */;
-char* var362 /* : NativeString */;
-long var363 /* : Int */;
-val* var364 /* : String */;
-static val* varonce365;
-val* var366 /* : String */;
-char* var367 /* : NativeString */;
-long var368 /* : Int */;
-val* var369 /* : String */;
-static val* varonce370;
-val* var371 /* : String */;
-char* var372 /* : NativeString */;
-long var373 /* : Int */;
-val* var374 /* : String */;
-val* var375 /* : Array[Object] */;
-long var376 /* : Int */;
-val* var377 /* : NativeArray[Object] */;
-val* var378 /* : String */;
-static val* varonce379;
-val* var380 /* : String */;
-char* var381 /* : NativeString */;
-long var382 /* : Int */;
-val* var383 /* : String */;
-static val* varonce384;
-val* var385 /* : String */;
-char* var386 /* : NativeString */;
-long var387 /* : Int */;
-val* var388 /* : String */;
-static val* varonce389;
-val* var390 /* : String */;
-char* var391 /* : NativeString */;
-long var392 /* : Int */;
-val* var393 /* : String */;
-val* var394 /* : Array[Object] */;
-long var395 /* : Int */;
-val* var396 /* : NativeArray[Object] */;
-val* var397 /* : String */;
-static val* varonce398;
-val* var399 /* : String */;
-char* var400 /* : NativeString */;
-long var401 /* : Int */;
-val* var402 /* : String */;
-static val* varonce403;
-val* var404 /* : String */;
-char* var405 /* : NativeString */;
-long var406 /* : Int */;
-val* var407 /* : String */;
-static val* varonce408;
-val* var409 /* : String */;
-char* var410 /* : NativeString */;
-long var411 /* : Int */;
-val* var412 /* : String */;
-val* var413 /* : Array[Object] */;
-long var414 /* : Int */;
-val* var415 /* : NativeArray[Object] */;
-val* var416 /* : String */;
-static val* varonce418;
-val* var419 /* : String */;
-char* var420 /* : NativeString */;
-long var421 /* : Int */;
-val* var422 /* : String */;
-static val* varonce423;
-val* var424 /* : String */;
-char* var425 /* : NativeString */;
-long var426 /* : Int */;
-val* var427 /* : String */;
-var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on <self:AbstractCompiler>*/;
-var_v = var;
-if (varonce) {
-var1 = varonce;
-} else {
-var2 = "int glob_argc;";
-var3 = 14;
-var4 = string__NativeString__to_s_with_length(var2, var3);
-var1 = var4;
-varonce = var1;