Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__nith.sep.1.c
1 #include "nitc__nith.sep.0.h"
2 /* method nith$ToolContext$process_options for (self: ToolContext, Sequence[String]) */
3 void nitc__nith___ToolContext___process_options(val* self, val* p0) {
4 val* var_args /* var args: Sequence[String] */;
5 val* var /* : OptionBool */;
6 val* var2 /* : OptionBool */;
7 val* var3 /* : nullable Object */;
8 val* var5 /* : nullable Object */;
9 long var6 /* : Int */;
10 short int var7 /* : Bool */;
11 val* var8 /* : OptionBool */;
12 val* var10 /* : OptionBool */;
13 val* var11 /* : nullable Object */;
14 val* var13 /* : nullable Object */;
15 long var14 /* : Int */;
16 short int var15 /* : Bool */;
17 long var16 /* : Int */;
18 short int var18 /* : Bool */;
19 int cltype;
20 int idtype;
21 const char* var_class_name;
22 long var19 /* : Int */;
23 long var_sum /* var sum: Int */;
24 short int var20 /* : Bool */;
25 short int var22 /* : Bool */;
26 int cltype23;
27 int idtype24;
28 const char* var_class_name25;
29 short int var26 /* : Bool */;
30 val* var27 /* : Sys */;
31 static val* varonce;
32 val* var28 /* : String */;
33 char* var29 /* : CString */;
34 val* var30 /* : String */;
35 val* var31 /* : nullable Int */;
36 val* var32 /* : nullable Int */;
37 val* var33 /* : nullable Bool */;
38 val* var34 /* : nullable Bool */;
39 val* var35 /* : Sys */;
40 short int var37 /* : Bool */;
41 short int var39 /* : Bool */;
42 val* var40 /* : OptionBool */;
43 val* var42 /* : OptionBool */;
44 short int var44 /* : Bool */;
45 int cltype45;
46 int idtype46;
47 const struct type* type_struct;
48 const char* var_class_name47;
49 val* var48 /* : nullable Object */;
50 var_args = p0;
51 {
52 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__nith___ToolContext___process_options]))(self, p0); /* process_options on <self:ToolContext>*/
53 }
54 {
55 { /* Inline separate_compiler$ToolContext$opt_separate (self) on <self:ToolContext> */
56 var2 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on <self:ToolContext> */
57 if (unlikely(var2 == NULL)) {
58 if(catchStack.cursor >= 0){
59 longjmp(catchStack.envs[catchStack.cursor], 1);
60 }
61 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
62 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 24);
63 fatal_exit(1);
64 }
65 var = var2;
66 RET_LABEL1:(void)0;
67 }
68 }
69 {
70 { /* Inline opts$Option$value (var) on <var:OptionBool> */
71 var5 = var->attrs[COLOR_opts__Option___value].val; /* _value on <var:OptionBool> */
72 var3 = var5;
73 RET_LABEL4:(void)0;
74 }
75 }
76 {
77 var7 = (short int)((long)(var3)>>2);
78 var6 = core___core__Bool___to_i(var7);
79 }
80 {
81 { /* Inline separate_erasure_compiler$ToolContext$opt_erasure (self) on <self:ToolContext> */
82 var10 = self->attrs[COLOR_nitc__separate_erasure_compiler__ToolContext___opt_erasure].val; /* _opt_erasure on <self:ToolContext> */
83 if (unlikely(var10 == NULL)) {
84 if(catchStack.cursor >= 0){
85 longjmp(catchStack.envs[catchStack.cursor], 1);
86 }
87 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_erasure");
88 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_erasure_compiler, 22);
89 fatal_exit(1);
90 }
91 var8 = var10;
92 RET_LABEL9:(void)0;
93 }
94 }
95 {
96 { /* Inline opts$Option$value (var8) on <var8:OptionBool> */
97 var13 = var8->attrs[COLOR_opts__Option___value].val; /* _value on <var8:OptionBool> */
98 var11 = var13;
99 RET_LABEL12:(void)0;
100 }
101 }
102 {
103 var15 = (short int)((long)(var11)>>2);
104 var14 = core___core__Bool___to_i(var15);
105 }
106 {
107 { /* Inline kernel$Int$+ (var6,var14) on <var6:Int> */
108 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
109 /* <var14:Int> isa OTHER */
110 var18 = 1; /* easy <var14:Int> isa OTHER*/
111 if (unlikely(!var18)) {
112 var_class_name = type_core__Int.name;
113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
114 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
115 fatal_exit(1);
116 }
117 var19 = var6 + var14;
118 var16 = var19;
119 goto RET_LABEL17;
120 RET_LABEL17:(void)0;
121 }
122 }
123 var_sum = var16;
124 {
125 { /* Inline kernel$Int$> (var_sum,1l) on <var_sum:Int> */
126 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
127 /* <1l:Int> isa OTHER */
128 var22 = 1; /* easy <1l:Int> isa OTHER*/
129 if (unlikely(!var22)) {
130 var_class_name25 = type_core__Int.name;
131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
132 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
133 fatal_exit(1);
134 }
135 var26 = var_sum > 1l;
136 var20 = var26;
137 goto RET_LABEL21;
138 RET_LABEL21:(void)0;
139 }
140 }
141 if (var20){
142 var27 = glob_sys;
143 if (likely(varonce!=NULL)) {
144 var28 = varonce;
145 } else {
146 var29 = "Options --separate and --erasure are exclusive";
147 var31 = (val*)(46l<<2|1);
148 var32 = (val*)(46l<<2|1);
149 var33 = (val*)((long)(0)<<2|3);
150 var34 = (val*)((long)(0)<<2|3);
151 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
152 var28 = var30;
153 varonce = var28;
154 }
155 {
156 core__file___Sys___print(var27, var28); /* Direct call file$Sys$print on <var27:Sys>*/
157 }
158 var35 = glob_sys;
159 {
160 { /* Inline kernel$Sys$exit (var35,1l) on <var35:Sys> */
161 exit((int)1l);
162 RET_LABEL36:(void)0;
163 }
164 }
165 } else {
166 {
167 { /* Inline kernel$Int$== (var_sum,0l) on <var_sum:Int> */
168 var39 = var_sum == 0l;
169 var37 = var39;
170 goto RET_LABEL38;
171 RET_LABEL38:(void)0;
172 }
173 }
174 if (var37){
175 {
176 { /* Inline separate_compiler$ToolContext$opt_separate (self) on <self:ToolContext> */
177 var42 = self->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_separate].val; /* _opt_separate on <self:ToolContext> */
178 if (unlikely(var42 == NULL)) {
179 if(catchStack.cursor >= 0){
180 longjmp(catchStack.envs[catchStack.cursor], 1);
181 }
182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_separate");
183 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 24);
184 fatal_exit(1);
185 }
186 var40 = var42;
187 RET_LABEL41:(void)0;
188 }
189 }
190 {
191 { /* Inline opts$Option$value= (var40,1) on <var40:OptionBool> */
192 /* Covariant cast for argument 0 (value) <1:Bool> isa VALUE */
193 /* <1:Bool> isa VALUE */
194 type_struct = var40->type->resolution_table->types[COLOR_opts__Option__VALUE];
195 cltype45 = type_struct->color;
196 idtype46 = type_struct->id;
197 if(cltype45 >= (&type_core__Bool)->table_size) {
198 var44 = 0;
199 } else {
200 var44 = (&type_core__Bool)->type_table[cltype45] == idtype46;
201 }
202 if (unlikely(!var44)) {
203 var_class_name47 = type_core__Bool.name;
204 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VALUE", var_class_name47);
205 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 40);
206 fatal_exit(1);
207 }
208 var48 = (val*)((long)(1)<<2|3);
209 var40->attrs[COLOR_opts__Option___value].val = var48; /* _value on <var40:OptionBool> */
210 RET_LABEL43:(void)0;
211 }
212 }
213 } else {
214 }
215 }
216 RET_LABEL:;
217 }