+/* method c_tools#CCompilationUnit#header_c_base for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___header_c_base(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_base].val; /* _header_c_base on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_base");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 24);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#header_custom for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___header_custom(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#header_c_types for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___header_c_types(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_types].val; /* _header_c_types on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_types");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 31);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#header_decl for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___header_decl(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_decl].val; /* _header_decl on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_decl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 34);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#body_decl for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___body_decl(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 37);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#body_custom for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___body_custom(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_custom].val; /* _body_custom on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_custom");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 41);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#body_impl for (self: CCompilationUnit): Template */
+val* nit___nit__CCompilationUnit___body_impl(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#files for (self: CCompilationUnit): Array[String] */
+val* nit___nit__CCompilationUnit___files(val* self) {
+val* var /* : Array[String] */;
+val* var1 /* : Array[String] */;
+var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___files].val; /* _files on <self:CCompilationUnit> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 47);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CCompilationUnit#add_exported_function for (self: CCompilationUnit, CFunction) */
+void nit___nit__CCompilationUnit___add_exported_function(val* self, val* p0) {
+val* var_c_function /* var c_function: CFunction */;
+val* var /* : Template */;
+val* var2 /* : Template */;
+val* var3 /* : NativeArray[String] */;
+static val* varonce;
+static val* varonce4;
+val* var5 /* : String */;
+char* var6 /* : NativeString */;
+val* var7 /* : FlatString */;
+val* var8 /* : String */;
+val* var10 /* : String */;
+val* var11 /* : String */;
+val* var12 /* : Template */;
+val* var14 /* : Template */;
+static val* varonce15;
+val* var16 /* : String */;
+char* var17 /* : NativeString */;
+val* var18 /* : FlatString */;
+val* var19 /* : Template */;
+val* var21 /* : Template */;
+val* var22 /* : Template */;
+var_c_function = p0;
+{
+{ /* Inline c_tools#CCompilationUnit#body_decl (self) on <self:CCompilationUnit> */
+var2 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <self:CCompilationUnit> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 37);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+if (unlikely(varonce==NULL)) {
+var3 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
+if (likely(varonce4!=NULL)) {
+var5 = varonce4;
+} else {
+var6 = ";\n";
+var7 = standard___standard__NativeString___to_s_with_length(var6, 2l);
+var5 = var7;
+varonce4 = var5;
+}
+((struct instance_standard__NativeArray*)var3)->values[1]=var5;
+} else {
+var3 = varonce;
+varonce = NULL;
+}
+{
+{ /* Inline c_tools#CFunction#signature (var_c_function) on <var_c_function:CFunction> */
+var10 = var_c_function->attrs[COLOR_nit__c_tools__CFunction___signature].val; /* _signature on <var_c_function:CFunction> */
+if (unlikely(var10 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _signature");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 86);
+fatal_exit(1);
+}
+var8 = var10;
+RET_LABEL9:(void)0;
+}
+}
+((struct instance_standard__NativeArray*)var3)->values[0]=var8;
+{
+var11 = ((val*(*)(val* self))(var3->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var3); /* native_to_s on <var3:NativeArray[String]>*/
+}
+varonce = var3;
+{
+template___template__Template___add(var, var11); /* Direct call template#Template#add on <var:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#body_impl (self) on <self:CCompilationUnit> */
+var14 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
+if (unlikely(var14 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
+fatal_exit(1);
+}
+var12 = var14;
+RET_LABEL13:(void)0;
+}
+}
+if (likely(varonce15!=NULL)) {
+var16 = varonce15;
+} else {
+var17 = "\n";
+var18 = standard___standard__NativeString___to_s_with_length(var17, 1l);
+var16 = var18;
+varonce15 = var16;
+}
+{
+template___template__Template___add(var12, var16); /* Direct call template#Template#add on <var12:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#body_impl (self) on <self:CCompilationUnit> */
+var21 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
+if (unlikely(var21 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
+fatal_exit(1);
+}
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+{
+var22 = nit___nit__CFunction___to_writer(var_c_function);
+}
+{
+template___template__Template___add(var19, var22); /* Direct call template#Template#add on <var19:Template>*/
+}
+RET_LABEL:;
+}
+/* method c_tools#CCompilationUnit#compile_header_core for (self: CCompilationUnit, Writer) */
+void nit___nit__CCompilationUnit___compile_header_core(val* self, val* p0) {
+val* var_stream /* var stream: Writer */;
+val* var /* : Template */;
+val* var2 /* : Template */;
+val* var3 /* : Template */;
+val* var5 /* : Template */;
+val* var6 /* : Template */;
+val* var8 /* : Template */;
+val* var9 /* : Template */;
+val* var11 /* : Template */;
+var_stream = p0;
+{
+{ /* Inline c_tools#CCompilationUnit#header_c_base (self) on <self:CCompilationUnit> */
+var2 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_base].val; /* _header_c_base on <self:CCompilationUnit> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_base");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 24);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var, var_stream); /* Direct call template#Template#write_to on <var:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#header_custom (self) on <self:CCompilationUnit> */
+var5 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <self:CCompilationUnit> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
+fatal_exit(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var3, var_stream); /* Direct call template#Template#write_to on <var3:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#header_c_types (self) on <self:CCompilationUnit> */
+var8 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_types].val; /* _header_c_types on <self:CCompilationUnit> */
+if (unlikely(var8 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_types");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 31);
+fatal_exit(1);
+}
+var6 = var8;
+RET_LABEL7:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var6, var_stream); /* Direct call template#Template#write_to on <var6:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#header_decl (self) on <self:CCompilationUnit> */
+var11 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_decl].val; /* _header_decl on <self:CCompilationUnit> */
+if (unlikely(var11 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_decl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 34);
+fatal_exit(1);
+}
+var9 = var11;
+RET_LABEL10:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var9, var_stream); /* Direct call template#Template#write_to on <var9:Template>*/
+}
+RET_LABEL:;
+}
+/* method c_tools#CCompilationUnit#compile_body_core for (self: CCompilationUnit, Writer) */
+void nit___nit__CCompilationUnit___compile_body_core(val* self, val* p0) {
+val* var_stream /* var stream: Writer */;
+val* var /* : Template */;
+val* var2 /* : Template */;
+val* var3 /* : Template */;
+val* var5 /* : Template */;
+val* var6 /* : Template */;
+val* var8 /* : Template */;
+var_stream = p0;
+{
+{ /* Inline c_tools#CCompilationUnit#body_decl (self) on <self:CCompilationUnit> */
+var2 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <self:CCompilationUnit> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 37);
+fatal_exit(1);
+}
+var = var2;
+RET_LABEL1:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var, var_stream); /* Direct call template#Template#write_to on <var:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#body_custom (self) on <self:CCompilationUnit> */
+var5 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_custom].val; /* _body_custom on <self:CCompilationUnit> */
+if (unlikely(var5 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_custom");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 41);
+fatal_exit(1);
+}
+var3 = var5;
+RET_LABEL4:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var3, var_stream); /* Direct call template#Template#write_to on <var3:Template>*/
+}
+{
+{ /* Inline c_tools#CCompilationUnit#body_impl (self) on <self:CCompilationUnit> */
+var8 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
+if (unlikely(var8 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
+fatal_exit(1);
+}
+var6 = var8;
+RET_LABEL7:(void)0;
+}
+}
+{
+template___template__Template___standard__stream__Writable__write_to(var6, var_stream); /* Direct call template#Template#write_to on <var6:Template>*/
+}
+RET_LABEL:;
+}
+/* method c_tools#CFunction#signature for (self: CFunction): String */
+val* nit___nit__CFunction___signature(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = self->attrs[COLOR_nit__c_tools__CFunction___signature].val; /* _signature on <self:CFunction> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _signature");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 86);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CFunction#signature= for (self: CFunction, String) */
+void nit___nit__CFunction___signature_61d(val* self, val* p0) {
+self->attrs[COLOR_nit__c_tools__CFunction___signature].val = p0; /* _signature on <self:CFunction> */
+RET_LABEL:;
+}
+/* method c_tools#CFunction#decls for (self: CFunction): Template */
+val* nit___nit__CFunction___decls(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CFunction___decls].val; /* _decls on <self:CFunction> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decls");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 88);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CFunction#exprs for (self: CFunction): Template */
+val* nit___nit__CFunction___exprs(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+var1 = self->attrs[COLOR_nit__c_tools__CFunction___exprs].val; /* _exprs on <self:CFunction> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _exprs");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 89);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CFunction#to_writer for (self: CFunction): Template */
+val* nit___nit__CFunction___to_writer(val* self) {
+val* var /* : Template */;
+val* var1 /* : Template */;
+val* var_w /* var w: Template */;
+val* var2 /* : String */;
+val* var4 /* : String */;
+static val* varonce;
+val* var5 /* : String */;
+char* var6 /* : NativeString */;
+val* var7 /* : FlatString */;
+val* var8 /* : Template */;
+val* var10 /* : Template */;
+static val* varonce11;
+val* var12 /* : String */;
+char* var13 /* : NativeString */;
+val* var14 /* : FlatString */;
+val* var15 /* : Template */;
+val* var17 /* : Template */;
+static val* varonce18;
+val* var19 /* : String */;
+char* var20 /* : NativeString */;
+val* var21 /* : FlatString */;
+var1 = NEW_template__Template(&type_template__Template);
+{
+((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:Template>*/
+}
+var_w = var1;
+{
+{ /* Inline c_tools#CFunction#signature (self) on <self:CFunction> */
+var4 = self->attrs[COLOR_nit__c_tools__CFunction___signature].val; /* _signature on <self:CFunction> */
+if (unlikely(var4 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _signature");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 86);
+fatal_exit(1);
+}
+var2 = var4;
+RET_LABEL3:(void)0;
+}
+}
+{
+template___template__Template___add(var_w, var2); /* Direct call template#Template#add on <var_w:Template>*/
+}
+if (likely(varonce!=NULL)) {
+var5 = varonce;
+} else {
+var6 = "\n{\n";
+var7 = standard___standard__NativeString___to_s_with_length(var6, 3l);
+var5 = var7;
+varonce = var5;
+}
+{
+template___template__Template___add(var_w, var5); /* Direct call template#Template#add on <var_w:Template>*/
+}
+{
+{ /* Inline c_tools#CFunction#decls (self) on <self:CFunction> */
+var10 = self->attrs[COLOR_nit__c_tools__CFunction___decls].val; /* _decls on <self:CFunction> */
+if (unlikely(var10 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decls");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 88);
+fatal_exit(1);
+}
+var8 = var10;
+RET_LABEL9:(void)0;
+}
+}
+{
+template___template__Template___add(var_w, var8); /* Direct call template#Template#add on <var_w:Template>*/
+}
+if (likely(varonce11!=NULL)) {
+var12 = varonce11;
+} else {
+var13 = "\n";
+var14 = standard___standard__NativeString___to_s_with_length(var13, 1l);
+var12 = var14;
+varonce11 = var12;
+}
+{
+template___template__Template___add(var_w, var12); /* Direct call template#Template#add on <var_w:Template>*/
+}
+{
+{ /* Inline c_tools#CFunction#exprs (self) on <self:CFunction> */
+var17 = self->attrs[COLOR_nit__c_tools__CFunction___exprs].val; /* _exprs on <self:CFunction> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _exprs");
+PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 89);
+fatal_exit(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
+}
+}
+{
+template___template__Template___add(var_w, var15); /* Direct call template#Template#add on <var_w:Template>*/
+}
+if (likely(varonce18!=NULL)) {
+var19 = varonce18;
+} else {
+var20 = "}\n";
+var21 = standard___standard__NativeString___to_s_with_length(var20, 2l);
+var19 = var21;
+varonce18 = var19;
+}
+{
+template___template__Template___add(var_w, var19); /* Direct call template#Template#add on <var_w:Template>*/
+}
+var = var_w;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method c_tools#CFunction#init for (self: CFunction) */
+void nit___nit__CFunction___standard__kernel__Object__init(val* self) {
+{
+((void(*)(val* self))(self->class->vft[COLOR_nit___nit__CFunction___standard__kernel__Object__init]))(self); /* init on <self:CFunction>*/
+}
+RET_LABEL:;
+}