1 #include <OOC/IR.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4
OOC_IR__AppendContext(ADT_StringBuffer__StringBuffer buffer,OOC_SymbolTable__Item item)5 static void OOC_IR__AppendContext(ADT_StringBuffer__StringBuffer buffer, OOC_SymbolTable__Item item) {
6 register OOC_INT64 i0,i1,i2;
7
8 i0 = (OOC_INT64)item;
9 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40092)))), &_td_OOC_SymbolTable__DeclarationDesc);
10 if (i1) goto l7;
11 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40289)))), &_td_OOC_SymbolTable__TypeParsDesc);
12 if (i1) goto l5;
13 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40283)))), 40283);
14 goto l11;
15 l5:
16 i0 = (OOC_INT64)buffer;
17 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40319)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)"(TypePars)", 11);
18 goto l11;
19 l7:
20 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40126))+8);
21 i1 = i1!=(OOC_INT64)0;
22 if (!i1) goto l10;
23 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40179))+8);
24 i2 = (OOC_INT64)buffer;
25 OOC_IR__AppendContext((ADT_StringBuffer__StringBuffer)i2, (OOC_SymbolTable__Item)i1);
26 l10:
27 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40230))+40);
28 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40235))+16);
29 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40230))+40);
30 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 40235))+16);
31 i2 = (OOC_INT64)buffer;
32 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 40239)), 0);
33 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 40212)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i2, (void*)(_check_pointer(i0, 40239)), i1);
34 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 40255)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1Char)),ADT_StringBuffer__StringBufferDesc_AppendLatin1Char)((ADT_StringBuffer__StringBuffer)i2, 46u);
35 l11:
36 return;
37 ;
38 }
39
OOC_IR__TypeName(OOC_SymbolTable__Type type)40 Object__String OOC_IR__TypeName(OOC_SymbolTable__Type type) {
41 register OOC_INT64 i0,i1,i2;
42 ADT_StringBuffer__StringBuffer name;
43
44 i0 = (OOC_INT64)ADT_StringBuffer__New((Object__String)((OOC_INT64)_c0));
45 name = (ADT_StringBuffer__StringBuffer)i0;
46 i1 = (OOC_INT64)type;
47 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40720))+8);
48 i2 = i2!=(OOC_INT64)0;
49 if (!i2) goto l3;
50 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40767))+8);
51 OOC_IR__AppendContext((ADT_StringBuffer__StringBuffer)i0, (OOC_SymbolTable__Item)i2);
52 l3:
53 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40793))+48);
54 i2 = i2!=(OOC_INT64)0;
55 if (i2) goto l26;
56 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 40894)))), &_td_OOC_SymbolTable__PredefTypeDesc);
57 if (i2) goto l24;
58 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41089)))), &_td_OOC_SymbolTable__PointerDesc);
59 if (i2) goto l22;
60 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41152)))), &_td_OOC_SymbolTable__FormalParsDesc);
61 if (i2) goto l20;
62 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41220)))), &_td_OOC_SymbolTable__ArrayDesc);
63 if (i2) goto l18;
64 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41279)))), &_td_OOC_SymbolTable__RecordDesc);
65 if (i2) goto l16;
66 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 41272)))), 41272);
67 goto l27;
68 l16:
69 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41305)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)"RECORD", 7);
70 goto l27;
71 l18:
72 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41245)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)"ARRAY", 6);
73 goto l27;
74 l20:
75 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41182)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)"PROCEDURE", 10);
76 goto l27;
77 l22:
78 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41116)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)"POINTER", 8);
79 goto l27;
80 l24:
81 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40988)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)"PredefType(", 12);
82 i1 = *(OOC_INT16*)((_check_pointer(i1, 41043))+72);
83 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41028)))), ADT_StringBuffer__StringBufferDesc_AppendInt)),ADT_StringBuffer__StringBufferDesc_AppendInt)((ADT_StringBuffer__StringBuffer)i0, i1);
84 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41059)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (OOC_CHAR8*)")", 2);
85 goto l27;
86 l26:
87 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40842))+48);
88 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 40853))+40);
89 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 40858))+16);
90 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40842))+48);
91 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40853))+40);
92 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 40858))+16);
93 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 40862)), 0);
94 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 40824)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (void*)(_check_pointer(i1, 40862)), i2);
95 l27:
96 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 41357)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i0);
97 return (Object__String)i0;
98 ;
99 }
100
OOC_IR__LogTypeName(const OOC_CHAR8 message__ref[],OOC_LEN message_0d,OOC_SymbolTable__Type type)101 static void OOC_IR__LogTypeName(const OOC_CHAR8 message__ref[], OOC_LEN message_0d, OOC_SymbolTable__Type type) {
102 register OOC_INT64 i0;
103 OOC_ALLOCATE_VPAR(message,OOC_CHAR8 ,message_0d)
104
105 OOC_INITIALIZE_VPAR(message__ref,message,OOC_CHAR8 ,message_0d)
106 i0 = (OOC_INT64)type;
107 i0 = (OOC_INT64)OOC_IR__TypeName((OOC_SymbolTable__Type)i0);
108 Log__Object((void*)(OOC_INT64)message, message_0d, (Object__Object)i0);
109 return;
110 ;
111 }
112
OOC_IR__ErrorContextDesc_GetTemplate(OOC_IR__ErrorContext context,Msg__Msg msg,Msg__LString templ,OOC_LEN templ_0d)113 void OOC_IR__ErrorContextDesc_GetTemplate(OOC_IR__ErrorContext context, Msg__Msg msg, Msg__LString templ, OOC_LEN templ_0d) {
114 register OOC_INT64 i0,i1;
115 OOC_CHAR16 t[128];
116
117 i0 = (OOC_INT64)msg;
118 i1 = *(OOC_INT32*)((_check_pointer(i0, 41697))+16);
119 switch (i1) {
120 case 1:
121 _copy_16((const void*)((OOC_CHAR16[]){85,110,100,101,99,108,97,114,101,100,32,105,100,101,110,116,105,102,105,101,114,0}),(void*)(OOC_INT64)t,128);
122 goto l82;
123 case 2:
124 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,101,99,116,101,100,32,105,100,101,110,116,105,102,105,101,114,0}),(void*)(OOC_INT64)t,128);
125 goto l82;
126 case 3:
127 _copy_16((const void*)((OOC_CHAR16[]){78,117,109,98,101,114,32,111,117,116,32,111,102,32,114,97,110,103,101,0}),(void*)(OOC_INT64)t,128);
128 goto l82;
129 case 4:
130 _copy_16((const void*)((OOC_CHAR16[]){67,104,97,114,97,99,116,101,114,32,118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0}),(void*)(OOC_INT64)t,128);
131 goto l82;
132 case 5:
133 _copy_16((const void*)((OOC_CHAR16[]){73,110,118,97,108,105,100,32,116,121,112,101,32,102,111,114,32,111,112,101,114,97,116,111,114,0}),(void*)(OOC_INT64)t,128);
134 goto l82;
135 case 6:
136 _copy_16((const void*)((OOC_CHAR16[]){85,110,107,110,111,119,110,32,111,112,101,114,97,116,111,114,0}),(void*)(OOC_INT64)t,128);
137 goto l82;
138 case 7:
139 _copy_16((const void*)((OOC_CHAR16[]){73,110,99,111,109,112,97,116,105,98,108,101,32,116,121,112,101,115,32,102,111,114,32,111,112,101,114,97,116,111,114,0}),(void*)(OOC_INT64)t,128);
140 goto l82;
141 case 8:
142 _copy_16((const void*)((OOC_CHAR16[]){68,105,118,105,115,111,114,32,105,115,32,122,101,114,111,0}),(void*)(OOC_INT64)t,128);
143 goto l82;
144 case 9:
145 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,105,115,32,110,111,116,32,99,111,110,115,116,97,110,116,0}),(void*)(OOC_INT64)t,128);
146 goto l82;
147 case 10:
148 _copy_16((const void*)((OOC_CHAR16[]){86,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0}),(void*)(OOC_INT64)t,128);
149 goto l82;
150 case 11:
151 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,97,121,32,110,111,116,32,98,101,32,112,97,115,115,101,100,32,98,121,32,114,101,102,101,114,101,110,99,101,0}),(void*)(OOC_INT64)t,128);
152 goto l82;
153 case 12:
154 _copy_16((const void*)((OOC_CHAR16[]){65,114,103,117,109,101,110,116,32,110,111,116,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,102,111,114,109,97,108,32,116,121,112,101,32,96,36,123,110,97,109,101,125,39,0}),(void*)(OOC_INT64)t,128);
155 goto l82;
156 case 24:
157 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,110,111,116,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,118,97,114,105,97,98,108,101,32,116,121,112,101,32,96,36,123,110,97,109,101,125,39,0}),(void*)(OOC_INT64)t,128);
158 goto l82;
159 case 13:
160 _copy_16((const void*)((OOC_CHAR16[]){87,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT64)t,128);
161 goto l82;
162 case 14:
163 _copy_16((const void*)((OOC_CHAR16[]){73,110,116,101,103,101,114,32,99,111,110,115,116,97,110,116,32,105,110,32,116,104,101,32,114,97,110,103,101,32,96,36,123,115,116,97,114,116,125,32,60,61,32,120,32,60,32,36,123,101,110,100,125,39,32,114,101,113,117,105,114,101,100,0}),(void*)(OOC_INT64)t,128);
164 goto l82;
165 case 15:
166 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,97,110,32,97,114,114,97,121,32,118,97,108,117,101,0}),(void*)(OOC_INT64)t,128);
167 goto l82;
168 case 16:
169 _copy_16((const void*)((OOC_CHAR16[]){84,121,112,101,32,110,97,109,101,32,101,120,112,101,99,116,101,100,0}),(void*)(OOC_INT64)t,128);
170 goto l82;
171 case 17:
172 _copy_16((const void*)((OOC_CHAR16[]){84,121,112,101,32,109,117,115,116,32,98,101,32,97,110,32,101,120,116,101,110,115,105,111,110,32,111,102,32,116,104,101,32,108,101,102,116,32,111,112,101,114,97,110,100,39,115,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
173 goto l82;
174 case 18:
175 _copy_16((const void*)((OOC_CHAR16[]){77,73,78,47,77,65,88,32,105,115,32,110,111,116,32,97,112,112,108,105,99,97,98,108,101,32,116,111,32,116,104,105,115,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
176 goto l82;
177 case 19:
178 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,111,102,32,105,110,116,101,103,101,114,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
179 goto l82;
180 case 20:
181 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,111,102,32,114,101,99,111,114,100,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
182 goto l82;
183 case 21:
184 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,111,102,32,112,111,105,110,116,101,114,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
185 goto l82;
186 case 22:
187 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,111,102,32,116,121,112,101,32,66,79,79,76,69,65,78,0}),(void*)(OOC_INT64)t,128);
188 goto l82;
189 case 23:
190 _copy_16((const void*)((OOC_CHAR16[]){79,112,101,114,97,116,111,114,32,109,97,121,32,110,111,116,32,98,101,32,97,112,112,108,105,101,100,32,116,111,32,102,117,110,99,116,105,111,110,32,114,101,115,117,108,116,0}),(void*)(OOC_INT64)t,128);
191 goto l82;
192 case 25:
193 _copy_16((const void*)((OOC_CHAR16[]){69,88,73,84,32,111,117,116,115,105,100,101,32,111,102,32,76,79,79,80,0}),(void*)(OOC_INT64)t,128);
194 goto l82;
195 case 26:
196 _copy_16((const void*)((OOC_CHAR16[]){83,101,108,101,99,116,32,101,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,105,110,116,101,103,101,114,32,111,114,32,99,104,97,114,97,99,116,101,114,0}),(void*)(OOC_INT64)t,128);
197 goto l82;
198 case 27:
199 _copy_16((const void*)((OOC_CHAR16[]){76,97,98,101,108,32,110,111,116,32,105,110,32,116,121,112,101,32,111,102,32,115,101,108,101,99,116,32,101,120,112,114,101,115,115,105,111,110,0}),(void*)(OOC_INT64)t,128);
200 goto l82;
201 case 28:
202 _copy_16((const void*)((OOC_CHAR16[]){76,97,98,101,108,32,97,108,114,101,97,100,121,32,105,110,32,117,115,101,0}),(void*)(OOC_INT64)t,128);
203 goto l82;
204 case 29:
205 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,109,117,115,116,32,98,101,32,97,32,118,97,114,105,97,98,108,101,0}),(void*)(OOC_INT64)t,128);
206 goto l82;
207 case 30:
208 _copy_16((const void*)((OOC_CHAR16[]){83,116,101,112,32,118,97,108,117,101,32,110,111,116,32,105,110,32,116,121,112,101,32,111,102,32,108,111,111,112,32,118,97,114,105,97,98,108,101,0}),(void*)(OOC_INT64)t,128);
209 goto l82;
210 case 31:
211 _copy_16((const void*)((OOC_CHAR16[]){83,116,101,112,32,118,97,108,117,101,32,109,117,115,116,32,110,111,116,32,98,101,32,122,101,114,111,0}),(void*)(OOC_INT64)t,128);
212 goto l82;
213 case 32:
214 _copy_16((const void*)((OOC_CHAR16[]){82,69,84,85,82,78,32,109,117,115,116,32,110,111,116,32,112,114,111,118,105,100,101,32,97,32,114,101,115,117,108,116,32,118,97,108,117,101,0}),(void*)(OOC_INT64)t,128);
215 goto l82;
216 case 33:
217 _copy_16((const void*)((OOC_CHAR16[]){82,69,84,85,82,78,32,109,117,115,116,32,112,114,111,118,105,100,101,32,97,32,114,101,115,117,108,116,32,118,97,108,117,101,0}),(void*)(OOC_INT64)t,128);
218 goto l82;
219 case 34:
220 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,118,97,114,105,97,98,108,101,32,105,115,32,114,101,97,100,45,111,110,108,121,0}),(void*)(OOC_INT64)t,128);
221 goto l82;
222 case 35:
223 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,109,117,115,116,32,98,101,32,97,32,112,114,111,99,101,100,117,114,101,32,100,101,115,105,103,110,97,116,111,114,0}),(void*)(OOC_INT64)t,128);
224 goto l82;
225 case 36:
226 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,97,32,102,117,110,99,116,105,111,110,32,112,114,111,99,101,100,117,114,101,0}),(void*)(OOC_INT64)t,128);
227 goto l82;
228 case 37:
229 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,110,111,116,32,97,32,102,117,110,99,116,105,111,110,32,112,114,111,99,101,100,117,114,101,0}),(void*)(OOC_INT64)t,128);
230 goto l82;
231 case 38:
232 _copy_16((const void*)((OOC_CHAR16[]){84,111,111,32,102,101,119,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT64)t,128);
233 goto l82;
234 case 39:
235 _copy_16((const void*)((OOC_CHAR16[]){84,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT64)t,128);
236 goto l82;
237 case 40:
238 _copy_16((const void*)((OOC_CHAR16[]){65,114,103,117,109,101,110,116,32,110,111,116,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,102,111,114,109,97,108,32,86,65,82,32,112,97,114,97,109,101,116,101,114,32,96,36,123,110,97,109,101,125,39,0}),(void*)(OOC_INT64)t,128);
239 goto l82;
240 case 41:
241 _copy_16((const void*)((OOC_CHAR16[]){73,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,78,97,109,101,32,114,101,100,105,114,101,99,116,105,111,110,32,102,97,105,108,101,100,0}),(void*)(OOC_INT64)t,128);
242 goto l82;
243 case 42:
244 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,112,97,114,97,109,101,116,101,114,32,105,115,32,114,101,97,100,45,111,110,108,121,0}),(void*)(OOC_INT64)t,128);
245 goto l82;
246 case 43:
247 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,118,97,114,105,97,98,108,101,32,104,97,115,32,110,111,32,100,121,110,97,109,105,99,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
248 goto l82;
249 case 44:
250 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,110,117,109,101,114,105,99,0}),(void*)(OOC_INT64)t,128);
251 goto l82;
252 case 45:
253 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,97,32,99,104,97,114,97,99,116,101,114,0}),(void*)(OOC_INT64)t,128);
254 goto l82;
255 case 46:
256 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,111,102,32,114,101,97,108,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
257 goto l82;
258 case 47:
259 _copy_16((const void*)((OOC_CHAR16[]){84,121,112,101,32,104,97,115,32,110,111,32,102,105,120,101,100,32,115,105,122,101,0}),(void*)(OOC_INT64)t,128);
260 goto l82;
261 case 48:
262 _copy_16((const void*)((OOC_CHAR16[]){65,114,103,117,109,101,110,116,32,109,117,115,116,32,98,101,32,97,32,99,104,97,114,97,99,116,101,114,32,97,114,114,97,121,0}),(void*)(OOC_INT64)t,128);
263 goto l82;
264 case 49:
265 _copy_16((const void*)((OOC_CHAR16[]){69,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,111,102,32,115,101,116,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
266 goto l82;
267 case 50:
268 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,109,117,115,116,32,98,101,32,97,32,112,111,105,110,116,101,114,32,118,97,114,105,97,98,108,101,0}),(void*)(OOC_INT64)t,128);
269 goto l82;
270 case 51:
271 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,101,120,112,114,101,115,115,105,111,110,32,104,97,115,32,110,111,32,97,100,100,114,101,115,115,0}),(void*)(OOC_INT64)t,128);
272 goto l82;
273 case 52:
274 _copy_16((const void*)((OOC_CHAR16[]){83,105,122,101,32,109,105,115,109,97,116,99,104,32,98,101,116,119,101,101,110,32,116,121,112,101,32,97,110,100,32,101,120,112,114,101,115,115,105,111,110,0}),(void*)(OOC_INT64)t,128);
275 goto l82;
276 case 53:
277 _copy_16((const void*)((OOC_CHAR16[]){87,97,114,110,105,110,103,58,32,85,110,117,115,101,100,32,111,98,106,101,99,116,0}),(void*)(OOC_INT64)t,128);
278 goto l82;
279 case 54:
280 _copy_16((const void*)((OOC_CHAR16[]){76,101,110,103,116,104,32,111,102,32,116,104,105,115,32,97,114,114,97,121,32,118,97,108,117,101,32,99,97,110,110,111,116,32,98,101,32,100,101,116,101,114,109,105,110,101,100,0}),(void*)(OOC_INT64)t,128);
281 goto l82;
282 case 55:
283 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,118,97,114,105,97,98,108,101,32,104,97,115,32,110,111,32,116,121,112,101,32,116,97,103,0}),(void*)(OOC_INT64)t,128);
284 goto l82;
285 case 56:
286 _copy_16((const void*)((OOC_CHAR16[]){67,97,110,110,111,116,32,99,114,101,97,116,101,32,105,110,115,116,97,110,99,101,32,111,102,32,97,98,115,116,114,97,99,116,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
287 goto l82;
288 case 57:
289 _copy_16((const void*)((OOC_CHAR16[]){65,98,115,116,114,97,99,116,32,112,114,111,99,101,100,117,114,101,32,99,97,110,110,111,116,32,104,97,118,101,32,97,32,66,69,71,73,78,32,112,97,114,116,0}),(void*)(OOC_INT64)t,128);
290 goto l82;
291 case 58:
292 _copy_16((const void*)((OOC_CHAR16[]){67,97,108,108,101,100,32,112,114,111,99,101,100,117,114,101,32,105,115,32,100,101,99,108,97,114,101,100,32,97,98,115,116,114,97,99,116,0}),(void*)(OOC_INT64)t,128);
293 goto l82;
294 case 59:
295 _copy_16((const void*)((OOC_CHAR16[]){67,97,108,108,101,100,32,112,114,111,99,101,100,117,114,101,32,110,111,116,32,100,101,102,105,110,101,100,32,105,110,32,98,97,115,101,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
296 goto l82;
297 case 60:
298 _copy_16((const void*)((OOC_CHAR16[]){83,117,112,101,114,32,99,97,108,108,32,99,97,110,32,111,110,108,121,32,97,112,112,108,121,32,116,111,32,116,104,101,32,100,105,114,101,99,116,32,98,97,115,101,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
299 goto l82;
300 case 61:
301 _copy_16((const void*)((OOC_CHAR16[]){87,97,114,110,105,110,103,58,32,82,101,100,117,110,100,97,110,116,32,116,121,112,101,32,116,101,115,116,0}),(void*)(OOC_INT64)t,128);
302 goto l82;
303 case 62:
304 _copy_16((const void*)((OOC_CHAR16[]){84,121,112,101,32,105,115,32,110,111,116,32,97,110,32,101,120,116,101,110,115,105,111,110,32,111,102,32,96,69,120,99,101,112,116,105,111,110,46,69,120,99,101,112,116,105,111,110,39,0}),(void*)(OOC_INT64)t,128);
305 goto l82;
306 case 63:
307 _copy_16((const void*)((OOC_CHAR16[]){69,120,99,101,112,116,105,111,110,32,96,36,123,109,111,100,117,108,101,125,46,36,123,110,97,109,101,125,39,32,110,101,105,116,104,101,114,32,99,97,117,103,104,116,32,110,111,114,32,112,97,115,115,101,100,32,117,112,0}),(void*)(OOC_INT64)t,128);
308 goto l82;
309 case 64:
310 _copy_16((const void*)((OOC_CHAR16[]){87,97,114,110,105,110,103,58,32,69,120,99,101,112,116,105,111,110,32,96,36,123,109,111,100,117,108,101,125,46,36,123,110,97,109,101,125,39,32,110,111,116,32,99,97,117,103,104,116,0}),(void*)(OOC_INT64)t,128);
311 goto l82;
312 case 65:
313 _copy_16((const void*)((OOC_CHAR16[]){87,97,114,110,105,110,103,58,32,85,110,114,101,97,99,104,97,98,108,101,32,103,117,97,114,100,0}),(void*)(OOC_INT64)t,128);
314 goto l82;
315 case 66:
316 _copy_16((const void*)((OOC_CHAR16[]){87,97,114,110,105,110,103,58,32,84,121,112,101,32,109,97,116,99,104,101,115,32,110,111,110,101,32,111,102,32,116,104,101,32,114,97,105,115,101,100,32,101,120,99,101,112,116,105,111,110,115,0}),(void*)(OOC_INT64)t,128);
317 goto l82;
318 case 67:
319 _copy_16((const void*)((OOC_CHAR16[]){84,121,112,101,32,116,101,115,116,32,114,101,113,117,105,114,101,115,32,115,116,97,116,105,99,32,116,121,112,101,32,105,110,115,116,97,110,99,101,0}),(void*)(OOC_INT64)t,128);
320 goto l82;
321 case 69:
322 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,110,111,116,32,97,32,112,97,114,97,109,101,116,114,105,99,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
323 goto l82;
324 case 70:
325 _copy_16((const void*)((OOC_CHAR16[]){84,111,111,32,102,101,119,32,116,121,112,101,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT64)t,128);
326 goto l82;
327 case 71:
328 _copy_16((const void*)((OOC_CHAR16[]){84,111,111,32,109,97,110,121,32,116,121,112,101,32,97,114,103,117,109,101,110,116,115,0}),(void*)(OOC_INT64)t,128);
329 goto l82;
330 case 72:
331 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,105,115,32,110,111,116,32,97,110,32,101,120,116,101,110,115,105,111,110,32,111,102,32,116,104,101,32,116,121,112,101,32,98,111,117,110,100,0}),(void*)(OOC_INT64)t,128);
332 goto l82;
333 case 73:
334 _copy_16((const void*)((OOC_CHAR16[]){78,111,116,32,97,32,114,101,99,111,114,100,32,112,111,105,110,116,101,114,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
335 goto l82;
336 case 74:
337 _copy_16((const void*)((OOC_CHAR16[]){87,97,114,110,105,110,103,58,32,78,111,32,99,97,108,108,32,116,111,32,116,104,101,32,98,97,115,101,32,116,121,112,101,39,115,32,73,78,73,84,32,112,114,111,99,101,100,117,114,101,0}),(void*)(OOC_INT64)t,128);
338 goto l82;
339 case 75:
340 _copy_16((const void*)((OOC_CHAR16[]){84,104,101,32,116,121,112,101,39,115,32,73,78,73,84,32,112,114,111,99,101,100,117,114,101,32,109,117,115,116,32,98,101,32,100,101,102,105,110,101,100,32,98,101,102,111,114,101,32,105,116,115,32,117,115,101,0}),(void*)(OOC_INT64)t,128);
341 goto l82;
342 case 76:
343 _copy_16((const void*)((OOC_CHAR16[]){73,116,101,114,97,116,111,114,32,114,101,113,117,105,114,101,115,32,97,114,114,97,121,32,101,108,101,109,101,110,116,115,32,111,102,32,115,99,97,108,97,114,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
344 goto l82;
345 case 77:
346 _copy_16((const void*)((OOC_CHAR16[]){84,104,105,115,32,101,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,112,114,111,100,117,99,101,32,97,110,32,105,116,101,114,97,116,111,114,32,111,98,106,101,99,116,0}),(void*)(OOC_INT64)t,128);
347 goto l82;
348 case 78:
349 _copy_16((const void*)((OOC_CHAR16[]){84,104,101,32,105,116,101,114,97,116,111,114,32,111,98,106,101,99,116,32,104,97,115,32,110,111,32,78,101,120,116,40,41,32,109,101,116,104,111,100,32,119,105,116,104,32,97,32,118,97,108,105,100,32,115,105,103,110,97,116,117,114,101,0}),(void*)(OOC_INT64)t,128);
350 goto l82;
351 case 79:
352 _copy_16((const void*)((OOC_CHAR16[]){78,111,116,32,97,32,115,101,116,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
353 goto l82;
354 case 80:
355 _copy_16((const void*)((OOC_CHAR16[]){66,117,105,108,116,105,110,32,78,69,87,40,41,32,105,115,32,110,111,116,32,97,112,112,108,105,99,97,98,108,101,32,116,111,32,116,104,105,115,32,112,111,105,110,116,101,114,32,116,121,112,101,0}),(void*)(OOC_INT64)t,128);
356 goto l82;
357 default:
358 _failed_case(i1, 41689);
359 goto l82;
360 }
361 l82:
362 i1 = (OOC_INT64)context;
363 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 47456)))), OOC_Error__ContextDesc_BaseTemplate)),OOC_Error__ContextDesc_BaseTemplate)((OOC_Error__Context)i1, (Msg__Msg)i0, (void*)(OOC_INT64)t, 128, (void*)(OOC_INT64)templ, templ_0d);
364 return;
365 ;
366 }
367
OOC_IR__InitGuardedVar(OOC_IR__GuardedVar gv,OOC_SymbolTable__VarDecl var,OOC_SymbolTable__Name name,OOC_SymbolTable__Type type)368 static void OOC_IR__InitGuardedVar(OOC_IR__GuardedVar gv, OOC_SymbolTable__VarDecl var, OOC_SymbolTable__Name name, OOC_SymbolTable__Type type) {
369 register OOC_INT64 i0,i1,i2,i3,i4,i5;
370 OOC_INT8 exportMark;
371
372 i0 = (OOC_INT64)var;
373 i1 = *(OOC_INT8*)((_check_pointer(i0, 47806))+52);
374 exportMark = i1;
375 i2 = i1==0;
376 if (!i2) goto l4;
377 exportMark = 2;
378 i1=2;
379 l4:
380 i2 = *(OOC_INT32*)((_check_pointer(i0, 47958))+48);
381 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48012))+56);
382 i4 = (OOC_INT64)gv;
383 i5 = (OOC_INT64)name;
384 OOC_SymbolTable__InitDeclaration((OOC_SymbolTable__Declaration)i4, (OOC_SymbolTable__Item)(OOC_INT64)0, (OOC_SymbolTable__Name)i5, i2, i1, (OOC_Doc__Document)i3);
385 *(OOC_INT64*)((_check_pointer(i4, 48031))+88) = i0;
386 i0 = (OOC_INT64)type;
387 *(OOC_INT64*)((_check_pointer(i4, 48050))+96) = i0;
388 return;
389 ;
390 }
391
OOC_IR__NewGuardedVar(OOC_SymbolTable__VarDecl var,OOC_SymbolTable__Name name,OOC_SymbolTable__Type type)392 static OOC_IR__GuardedVar OOC_IR__NewGuardedVar(OOC_SymbolTable__VarDecl var, OOC_SymbolTable__Name name, OOC_SymbolTable__Type type) {
393 register OOC_INT64 i0,i1,i2,i3;
394
395 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__GuardedVar.baseTypes[0]);
396 i1 = (OOC_INT64)type;
397 i2 = (OOC_INT64)name;
398 i3 = (OOC_INT64)var;
399 OOC_IR__InitGuardedVar((OOC_IR__GuardedVar)i0, (OOC_SymbolTable__VarDecl)i3, (OOC_SymbolTable__Name)i2, (OOC_SymbolTable__Type)i1);
400 return (OOC_IR__GuardedVar)i0;
401 ;
402 }
403
OOC_IR__GuardedVarDesc_Module(OOC_IR__GuardedVar gv)404 OOC_SymbolTable__Module OOC_IR__GuardedVarDesc_Module(OOC_IR__GuardedVar gv) {
405 register OOC_INT64 i0,i1;
406
407 i0 = (OOC_INT64)gv;
408 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48399))+88);
409 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 48399))+88);
410 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 48404)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
411 return (OOC_SymbolTable__Module)i0;
412 ;
413 }
414
OOC_IR__InitNode(OOC_IR__Node n,OOC_Scanner_SymList__Symbol sym)415 void OOC_IR__InitNode(OOC_IR__Node n, OOC_Scanner_SymList__Symbol sym) {
416 register OOC_INT64 i0,i1;
417
418 i0 = (OOC_INT64)n;
419 i1 = (OOC_INT64)sym;
420 *(OOC_INT64*)(_check_pointer(i0, 48590)) = i1;
421 return;
422 ;
423 }
424
OOC_IR__NodeDesc_Accept(OOC_IR__Node node,OOC_IR__Visitor v)425 void OOC_IR__NodeDesc_Accept(OOC_IR__Node node, OOC_IR__Visitor v) {
426
427 return;
428 ;
429 }
430
OOC_IR__ConstFoldDesc_TryConstFold(OOC_IR__ConstFold c,OOC_IR__Expression expr)431 OOC_IR__Expression OOC_IR__ConstFoldDesc_TryConstFold(OOC_IR__ConstFold c, OOC_IR__Expression expr) {
432 register OOC_INT64 i0,i1,i2;
433
434 i0 = (OOC_INT64)c;
435 *(OOC_INT64*)((_check_pointer(i0, 49003))+8) = (OOC_INT64)0;
436 i1 = (OOC_INT64)expr;
437 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 49027)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i1, (OOC_IR__Visitor)i0);
438 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 49047))+8);
439 i2 = i2==(OOC_INT64)0;
440 if (i2) goto l3;
441 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 49107))+8);
442 return (OOC_IR__Expression)i0;
443 goto l4;
444 l3:
445 return (OOC_IR__Expression)i1;
446 l4:
447 _failed_function(48718); return 0;
448 ;
449 }
450
OOC_IR__BuilderDesc_ErrSym(OOC_IR__Builder b,OOC_INT32 code,OOC_Scanner_SymList__Symbol sym)451 void OOC_IR__BuilderDesc_ErrSym(OOC_IR__Builder b, OOC_INT32 code, OOC_Scanner_SymList__Symbol sym) {
452 register OOC_INT64 i0,i1,i2,i3;
453 Msg__Msg e;
454
455 i0 = code;
456 i1 = (OOC_INT64)OOC_IR__irContext;
457 i0 = (OOC_INT64)OOC_Error__New((OOC_Error__Context)i1, i0);
458 e = (Msg__Msg)i0;
459 i1 = (OOC_INT64)b;
460 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 49295))+48);
461 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 49306));
462 i3 = (OOC_INT64)sym;
463 i2 = i3!=i2;
464 if (!i2) goto l4;
465 i2 = *(OOC_INT32*)((_check_pointer(i3, 49392))+28);
466 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 49366)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"pos", 4, i2);
467 i2 = *(OOC_INT32*)((_check_pointer(i3, 49434))+32);
468 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 49407)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"line", 5, i2);
469 i2 = *(OOC_INT32*)((_check_pointer(i3, 49479))+36);
470 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 49450)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"column", 7, i2);
471 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 49497))+24);
472 OOC_Error__ListDesc_Append((OOC_Error__List)i2, (Msg__Msg)i0);
473 l4:
474 *(OOC_INT64*)((_check_pointer(i1, 49534))+80) = i0;
475 return;
476 ;
477 }
478
OOC_IR__BuilderDesc_SetNameToType(OOC_IR__Builder b,OOC_SymbolTable__Type type)479 void OOC_IR__BuilderDesc_SetNameToType(OOC_IR__Builder b, OOC_SymbolTable__Type type) {
480 register OOC_INT64 i0,i1,i2,i3;
481 OOC_SymbolTable__Module module;
482 OOC_CHAR8 name[256];
483
484 i0 = (OOC_INT64)type;
485 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 49819))+48);
486 i1 = i1!=(OOC_INT64)0;
487 if (i1) goto l31;
488 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50275)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
489 type = (OOC_SymbolTable__Type)i0;
490 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50302)))), &_td_OOC_SymbolTable__TypeNameDesc);
491 if (i1) goto l29;
492 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50452)))), &_td_OOC_SymbolTable__PointerDesc);
493 if (i1) goto l27;
494 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50508)))), &_td_OOC_SymbolTable__FormalParsDesc);
495 if (i1) goto l25;
496 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50569)))), &_td_OOC_SymbolTable__ArrayDesc);
497 if (i1) goto l23;
498 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50621)))), &_td_OOC_SymbolTable__RecordDesc);
499 if (i1) goto l21;
500 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50675)))), &_td_OOC_SymbolTable__TypeVarDesc);
501 if (i1) goto l19;
502 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 50732)))), &_td_OOC_SymbolTable__PredefTypeDesc);
503 if (i0) goto l17;
504 _copy_8((const void*)(OOC_CHAR8*)"unknown",(void*)(OOC_INT64)name,256);
505 goto l40;
506 l17:
507 _copy_8((const void*)(OOC_CHAR8*)"unknown",(void*)(OOC_INT64)name,256);
508 goto l40;
509 l19:
510 _copy_8((const void*)(OOC_CHAR8*)"TYPE_VAR",(void*)(OOC_INT64)name,256);
511 goto l40;
512 l21:
513 _copy_8((const void*)(OOC_CHAR8*)"RECORD",(void*)(OOC_INT64)name,256);
514 goto l40;
515 l23:
516 _copy_8((const void*)(OOC_CHAR8*)"ARRAY",(void*)(OOC_INT64)name,256);
517 goto l40;
518 l25:
519 _copy_8((const void*)(OOC_CHAR8*)"PROCEDURE",(void*)(OOC_INT64)name,256);
520 goto l40;
521 l27:
522 _copy_8((const void*)(OOC_CHAR8*)"POINTER",(void*)(OOC_INT64)name,256);
523 goto l40;
524 l29:
525 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50337))+72);
526 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50344))+16);
527 _copy_8((const void*)(_check_pointer(i1, 50348)),(void*)(OOC_INT64)name,256);
528 Strings__Append((OOC_CHAR8*)".", 2, (void*)(OOC_INT64)name, 256);
529 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50420))+80);
530 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50426))+16);
531 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50420))+80);
532 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50426))+16);
533 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 50430)), 0);
534 Strings__Append((void*)(_check_pointer(i0, 50430)), i1, (void*)(OOC_INT64)name, 256);
535 goto l40;
536 l31:
537 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 49863))+48);
538 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 49863))+48);
539 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 49874)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i2);
540 module = (OOC_SymbolTable__Module)i1;
541 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 49901))+40);
542 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 49906))+16);
543 i2 = _check_pointer(i2, 49910);
544 i3 = OOC_ARRAY_LENGTH(i2, 0);
545 i2 = *(OOC_UINT8*)(i2+(_check_index(0, i3, OOC_UINT8, 49910)));
546 i2 = i2==35u;
547 if (i2) goto l34;
548 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 49930)))), &_td_OOC_SymbolTable__TypeVarDesc);
549
550 goto l36;
551 l34:
552 i2=1u;
553 l36:
554 if (i2) goto l38;
555 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50128))+40);
556 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50133))+16);
557 _copy_8((const void*)(_check_pointer(i1, 50137)),(void*)(OOC_INT64)name,256);
558 Strings__Append((OOC_CHAR8*)".", 2, (void*)(OOC_INT64)name, 256);
559 goto l39;
560 l38:
561 _copy_8((const void*)(OOC_CHAR8*)"",(void*)(OOC_INT64)name,256);
562 l39:
563 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50218))+48);
564 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50229))+40);
565 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50234))+16);
566 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50218))+48);
567 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50229))+40);
568 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 50234))+16);
569 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 50238)), 0);
570 Strings__Append((void*)(_check_pointer(i0, 50238)), i1, (void*)(OOC_INT64)name, 256);
571 l40:
572 i0 = (OOC_INT64)Msg__GetStringPtr((void*)(OOC_INT64)name, 256);
573 i1 = (OOC_INT64)b;
574 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50902))+80);
575 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 50902))+80);
576 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 50912)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__StringPtr)i0);
577 return;
578 ;
579 }
580
OOC_IR__GetPragmaValue(OOC_IR__Builder b,Config_Section_Options__Option pragma,OOC_INT32 charPos)581 static OOC_CHAR8 OOC_IR__GetPragmaValue(OOC_IR__Builder b, Config_Section_Options__Option pragma, OOC_INT32 charPos) {
582 register OOC_INT64 i0,i1,i2;
583 Config__Variable value;
584
585 i0 = (OOC_INT64)pragma;
586 i1 = (OOC_INT64)b;
587 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 51138))+16);
588 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51169))+8);
589 i2 = charPos;
590 i0 = (OOC_INT64)OOC_Config_Pragmas__HistoryDesc_GetValue((OOC_Config_Pragmas__History)i1, (Object__String)i0, i2);
591 value = (Config__Variable)i0;
592 i0 = *(OOC_UINT8*)(_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 51210)))), &_td_Config__BooleanVarDesc, 51210)), 51221));
593 return i0;
594 ;
595 }
596
OOC_IR__BuilderDesc_WarnSym(OOC_IR__Builder b,OOC_INT32 code,OOC_Scanner_SymList__Symbol sym)597 void OOC_IR__BuilderDesc_WarnSym(OOC_IR__Builder b, OOC_INT32 code, OOC_Scanner_SymList__Symbol sym) {
598 register OOC_INT64 i0,i1,i2,i3;
599 Msg__Msg e;
600
601 i0 = code;
602 i1 = (OOC_INT64)OOC_IR__irContext;
603 i0 = (OOC_INT64)OOC_Error__New((OOC_Error__Context)i1, i0);
604 e = (Msg__Msg)i0;
605 i1 = (OOC_INT64)sym;
606 i2 = *(OOC_INT32*)((_check_pointer(i1, 51419))+28);
607 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 51393)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"pos", 4, i2);
608 i2 = *(OOC_INT32*)((_check_pointer(i1, 51459))+32);
609 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 51432)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"line", 5, i2);
610 i2 = *(OOC_INT32*)((_check_pointer(i1, 51502))+36);
611 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 51473)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"column", 7, i2);
612 i2 = (OOC_INT64)b;
613 *(OOC_INT64*)((_check_pointer(i2, 51644))+80) = i0;
614 i1 = *(OOC_INT32*)((_check_pointer(i1, 51716))+28);
615 i3 = (OOC_INT64)OOC_Config_StdPragmas__warnings;
616 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i3, i1);
617 if (!i1) goto l4;
618 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 51734))+24);
619 OOC_Error__ListDesc_Append((OOC_Error__List)i1, (Msg__Msg)i0);
620 l4:
621 return;
622 ;
623 }
624
OOC_IR__BuilderDesc_WarnName(OOC_IR__Builder b,OOC_INT32 code,OOC_SymbolTable__Name name)625 void OOC_IR__BuilderDesc_WarnName(OOC_IR__Builder b, OOC_INT32 code, OOC_SymbolTable__Name name) {
626 register OOC_INT64 i0,i1,i2,i3;
627 Msg__Msg e;
628
629 i0 = (OOC_INT64)name;
630 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 51894))+16);
631 i1 = _check_pointer(i1, 51898);
632 i2 = OOC_ARRAY_LENGTH(i1, 0);
633 i1 = *(OOC_UINT8*)(i1+(_check_index(0, i2, OOC_UINT8, 51898)));
634 i1 = i1!=45u;
635 if (i1) goto l3;
636 i1=0u;
637 goto l5;
638 l3:
639 i1 = *(OOC_INT32*)(_check_pointer(i0, 51961));
640 i2 = (OOC_INT64)OOC_Config_StdPragmas__warnings;
641 i3 = (OOC_INT64)b;
642 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i3, (Config_Section_Options__Option)i2, i1);
643
644 l5:
645 if (!i1) goto l7;
646 i1 = (OOC_INT64)OOC_IR__irContext;
647 i2 = code;
648 i1 = (OOC_INT64)OOC_Error__New((OOC_Error__Context)i1, i2);
649 e = (Msg__Msg)i1;
650 i2 = *(OOC_INT32*)(_check_pointer(i0, 52153));
651 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 52126)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"pos", 4, i2);
652 i2 = *(OOC_INT32*)((_check_pointer(i0, 52196))+4);
653 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 52168)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"line", 5, i2);
654 i0 = *(OOC_INT32*)((_check_pointer(i0, 52242))+8);
655 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 52212)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"column", 7, i0);
656 i0 = (OOC_INT64)b;
657 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52260))+24);
658 OOC_Error__ListDesc_Append((OOC_Error__List)i2, (Msg__Msg)i1);
659 *(OOC_INT64*)((_check_pointer(i0, 52290))+80) = i1;
660 l7:
661 return;
662 ;
663 }
664
OOC_IR__BuilderDesc_ErrExpr(OOC_IR__Builder b,OOC_INT32 code,OOC_Scanner_SymList__Symbol sym)665 OOC_IR__Const OOC_IR__BuilderDesc_ErrExpr(OOC_IR__Builder b, OOC_INT32 code, OOC_Scanner_SymList__Symbol sym) {
666 register OOC_INT64 i0,i1,i2;
667
668 i0 = (OOC_INT64)b;
669 i1 = code;
670 i2 = (OOC_INT64)sym;
671 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 52423)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, i1, (OOC_Scanner_SymList__Symbol)i2);
672 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 52455))+48);
673 return (OOC_IR__Const)i0;
674 ;
675 }
676
OOC_IR__BuilderDesc_GetName(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)677 OOC_SymbolTable__Name OOC_IR__BuilderDesc_GetName(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
678 register OOC_INT64 i0,i1,i2,i3,i4;
679 OOC_SymbolTable__Name name;
680
681 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__Name.baseTypes[0]);
682 name = (OOC_SymbolTable__Name)i0;
683 i1 = (OOC_INT64)sym;
684 i2 = *(OOC_INT32*)((_check_pointer(i1, 52649))+36);
685 i3 = *(OOC_INT32*)((_check_pointer(i1, 52638))+32);
686 i4 = *(OOC_INT32*)((_check_pointer(i1, 52628))+28);
687 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 52618))+16);
688 OOC_SymbolTable__InitName((OOC_SymbolTable__Name)i0, (OOC_Scanner_InputBuffer__CharArray)i1, i4, i3, i2);
689 return (OOC_SymbolTable__Name)i0;
690 ;
691 }
692
OOC_IR__BuilderDesc_GetName2(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,const OOC_CHAR8 str__ref[],OOC_LEN str_0d)693 OOC_SymbolTable__Name OOC_IR__BuilderDesc_GetName2(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, const OOC_CHAR8 str__ref[], OOC_LEN str_0d) {
694 register OOC_INT64 i0,i1,i2,i3,i4;
695 OOC_ALLOCATE_VPAR(str,OOC_CHAR8 ,str_0d)
696 OOC_Scanner_InputBuffer__CharArray s;
697 OOC_SymbolTable__Name name;
698
699 OOC_INITIALIZE_VPAR(str__ref,str,OOC_CHAR8 ,str_0d)
700 i0 = Strings__Length((void*)(OOC_INT64)str, str_0d);
701 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_Scanner_InputBuffer__CharArray.baseTypes[0], (i0+1));
702 s = (OOC_Scanner_InputBuffer__CharArray)i0;
703 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 52877)), 0);
704 _copy_8((const void*)(OOC_INT64)str,(void*)(_check_pointer(i0, 52877)),i1);
705 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__Name.baseTypes[0]);
706 name = (OOC_SymbolTable__Name)i1;
707 i2 = (OOC_INT64)sym;
708 i3 = *(OOC_INT32*)((_check_pointer(i2, 52953))+36);
709 i4 = *(OOC_INT32*)((_check_pointer(i2, 52942))+32);
710 i2 = *(OOC_INT32*)((_check_pointer(i2, 52932))+28);
711 OOC_SymbolTable__InitName((OOC_SymbolTable__Name)i1, (OOC_Scanner_InputBuffer__CharArray)i0, i2, i4, i3);
712 return (OOC_SymbolTable__Name)i1;
713 ;
714 }
715
OOC_IR__BuilderDesc_AssertType(OOC_IR__Builder b,OOC_IR__Expression expr)716 OOC_SymbolTable__Type OOC_IR__BuilderDesc_AssertType(OOC_IR__Builder b, OOC_IR__Expression expr) {
717 register OOC_INT64 i0,i1,i2;
718
719 i0 = (OOC_INT64)expr;
720 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 53254)))), &_td_OOC_IR__TypeRefDesc);
721 if (i1) goto l3;
722 i1 = (OOC_INT64)b;
723 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 53374));
724 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 53343)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 16, (OOC_Scanner_SymList__Symbol)i2);
725 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53398))+8);
726 return (OOC_SymbolTable__Type)i0;
727 goto l4;
728 l3:
729 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53284))+24);
730 return (OOC_SymbolTable__Type)i0;
731 l4:
732 _failed_function(53020); return 0;
733 ;
734 }
735
OOC_IR__BuilderDesc_AssertBoolean(OOC_IR__Builder b,OOC_IR__Expression expr)736 OOC_IR__Expression OOC_IR__BuilderDesc_AssertBoolean(OOC_IR__Builder b, OOC_IR__Expression expr) {
737 register OOC_INT64 i0,i1;
738
739 i0 = (OOC_INT64)expr;
740 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53682))+8);
741 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 53689)))), &_td_OOC_SymbolTable__PredefTypeDesc);
742 if (i1) goto l3;
743 i1=0u;
744 goto l5;
745 l3:
746 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53722))+8);
747 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 53733)))), &_td_OOC_SymbolTable__PredefTypeDesc, 53733)), 53744))+72);
748 i1 = i1==0;
749
750 l5:
751 if (i1) goto l7;
752 i1 = (OOC_INT64)b;
753 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 53841));
754 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 53814)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 22, (OOC_Scanner_SymList__Symbol)i0);
755 return (OOC_IR__Expression)i0;
756 goto l8;
757 l7:
758 return (OOC_IR__Expression)i0;
759 l8:
760 _failed_function(53456); return 0;
761 ;
762 }
763
OOC_IR__BuilderDesc_Fold(OOC_IR__Builder b,OOC_IR__Expression expr)764 OOC_IR__Expression OOC_IR__BuilderDesc_Fold(OOC_IR__Builder b, OOC_IR__Expression expr) {
765 register OOC_INT64 i0,i1,i2;
766
767 i0 = (OOC_INT64)b;
768 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53960))+32);
769 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 53960))+32);
770 i2 = (OOC_INT64)expr;
771 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 53970)))), OOC_IR__ConstFoldDesc_TryConstFold)),OOC_IR__ConstFoldDesc_TryConstFold)((OOC_IR__ConstFold)i0, (OOC_IR__Expression)i2);
772 return (OOC_IR__Expression)i0;
773 ;
774 }
775
OOC_IR__IsPredefType(OOC_SymbolTable__Type type,OOC_INT16 id)776 static OOC_CHAR8 OOC_IR__IsPredefType(OOC_SymbolTable__Type type, OOC_INT16 id) {
777 register OOC_INT64 i0,i1;
778
779 i0 = (OOC_INT64)type;
780 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 54093)))), &_td_OOC_SymbolTable__PredefTypeDesc);
781 if (i1) goto l3;
782 i0=0u;
783 goto l4;
784 l3:
785 i0 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 54124)))), &_td_OOC_SymbolTable__PredefTypeDesc, 54124)), 54135))+72);
786 i1 = id;
787 i0 = i0==i1;
788
789 l4:
790 return i0;
791 ;
792 }
793
OOC_IR__BuilderDesc_CheckFunctionOp(OOC_IR__Builder b,OOC_IR__Expression expr,OOC_Scanner_SymList__Symbol op)794 void OOC_IR__BuilderDesc_CheckFunctionOp(OOC_IR__Builder b, OOC_IR__Expression expr, OOC_Scanner_SymList__Symbol op) {
795 register OOC_INT64 i0,i1;
796
797 i0 = (OOC_INT64)expr;
798 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 55490)))), &_td_OOC_IR__PredefProcDesc);
799 if (i1) goto l3;
800 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 55514)))), &_td_OOC_IR__CallDesc);
801
802 goto l5;
803 l3:
804 i1=1u;
805 l5:
806 if (i1) goto l7;
807 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 55532)))), &_td_OOC_IR__ConstructorDesc);
808
809 goto l9;
810 l7:
811 i0=1u;
812 l9:
813 if (!i0) goto l11;
814 i0 = (OOC_INT64)b;
815 i1 = (OOC_INT64)op;
816 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 55558)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 23, (OOC_Scanner_SymList__Symbol)i1);
817 l11:
818 return;
819 ;
820 }
821
OOC_IR__InitExpression(OOC_IR__Expression expr,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type)822 void OOC_IR__InitExpression(OOC_IR__Expression expr, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type) {
823 register OOC_INT64 i0,i1;
824
825 i0 = (OOC_INT64)sym;
826 i1 = (OOC_INT64)expr;
827 OOC_IR__InitNode((OOC_IR__Node)i1, (OOC_Scanner_SymList__Symbol)i0);
828 i0 = (OOC_INT64)type;
829 *(OOC_INT64*)((_check_pointer(i1, 55848))+8) = i0;
830 return;
831 ;
832 }
833
OOC_IR__InitConst(OOC_IR__Const _const,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,Object_Boxed__Object value)834 static void OOC_IR__InitConst(OOC_IR__Const _const, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, Object_Boxed__Object value) {
835 register OOC_INT64 i0,i1,i2;
836
837 i0 = (OOC_INT64)type;
838 i1 = (OOC_INT64)sym;
839 i2 = (OOC_INT64)_const;
840 OOC_IR__InitExpression((OOC_IR__Expression)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
841 i0 = (OOC_INT64)value;
842 *(OOC_INT64*)((_check_pointer(i2, 56157))+16) = i0;
843 return;
844 ;
845 }
846
OOC_IR__NewConst(OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,Object_Boxed__Object value)847 static OOC_IR__Const OOC_IR__NewConst(OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, Object_Boxed__Object value) {
848 register OOC_INT64 i0,i1,i2,i3;
849
850 i0 = (OOC_INT64)type;
851 _assert((i0!=(OOC_INT64)0), 127, 56327);
852 i1 = (OOC_INT64)sym;
853 i2 = (OOC_INT64)value;
854 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Const.baseTypes[0]);
855 OOC_IR__InitConst((OOC_IR__Const)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i2);
856 return (OOC_IR__Const)i3;
857 ;
858 }
859
OOC_IR__VisitorDesc_VisitConst(OOC_IR__Visitor v,OOC_IR__Const _const)860 void OOC_IR__VisitorDesc_VisitConst(OOC_IR__Visitor v, OOC_IR__Const _const) {
861
862 return;
863 ;
864 }
865
OOC_IR__ConstDesc_Accept(OOC_IR__Const _const,OOC_IR__Visitor v)866 void OOC_IR__ConstDesc_Accept(OOC_IR__Const _const, OOC_IR__Visitor v) {
867 register OOC_INT64 i0,i1;
868
869 i0 = (OOC_INT64)v;
870 i1 = (OOC_INT64)_const;
871 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 56581)))), OOC_IR__VisitorDesc_VisitConst)),OOC_IR__VisitorDesc_VisitConst)((OOC_IR__Visitor)i0, (OOC_IR__Const)i1);
872 return;
873 ;
874 }
875
OOC_IR__ConstDesc_ToString(OOC_IR__Const _const)876 Object__String OOC_IR__ConstDesc_ToString(OOC_IR__Const _const) {
877 register OOC_INT64 i0,i1;
878
879 i0 = (OOC_INT64)_const;
880 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 56684))+16);
881 i1 = i1==(OOC_INT64)0;
882 if (i1) goto l3;
883 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 56751))+16);
884 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 56751))+16);
885 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 56758)))), Object_Boxed__ObjectDesc_ToString)),Object_Boxed__ObjectDesc_ToString)((Object_Boxed__Object)i0);
886 return (Object__String)i0;
887 goto l4;
888 l3:
889 return (Object__String)((OOC_INT64)_c1);
890 l4:
891 _failed_function(56642); return 0;
892 ;
893 }
894
OOC_IR__BuilderDesc_NewConst(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,Object_Boxed__Object value)895 OOC_IR__Const OOC_IR__BuilderDesc_NewConst(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, Object_Boxed__Object value) {
896 register OOC_INT64 i0,i1,i2;
897
898 i0 = (OOC_INT64)value;
899 i1 = (OOC_INT64)type;
900 i2 = (OOC_INT64)sym;
901 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i0);
902 return (OOC_IR__Const)i0;
903 ;
904 }
905
OOC_IR__BuilderDesc_NewStringConst(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)906 OOC_IR__Expression OOC_IR__BuilderDesc_NewStringConst(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
907 register OOC_INT64 i0,i1,i2;
908
909 i0 = (OOC_INT64)sym;
910 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57060))+16);
911 i1 = _check_pointer(i1, 57065);
912 i2 = OOC_ARRAY_LENGTH(i1, 0);
913 i1 = *(OOC_UINT8*)(i1+(_check_index(2, i2, OOC_UINT8, 57065)));
914 i1 = i1!=0u;
915 if (i1) goto l3;
916 i1=0u;
917 goto l5;
918 l3:
919 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57081))+16);
920 i1 = _check_pointer(i1, 57086);
921 i2 = OOC_ARRAY_LENGTH(i1, 0);
922 i1 = *(OOC_UINT8*)(i1+(_check_index(3, i2, OOC_UINT8, 57086)));
923 i1 = i1==0u;
924
925 l5:
926 if (i1) goto l7;
927 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57527))+16);
928 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57527))+16);
929 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 57532)), 0);
930 i1 = (OOC_INT64)Object_Boxed__ParseString((void*)(_check_pointer(i2, 57532)), i1);
931 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(13);
932 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
933 return (OOC_IR__Expression)i0;
934 goto l8;
935 l7:
936 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57400))+16);
937 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57400))+16);
938 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 57405)), 0);
939 i1 = (OOC_INT64)Object_Boxed__ParseString((void*)(_check_pointer(i2, 57405)), i1);
940 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
941 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
942 return (OOC_IR__Expression)i0;
943 l8:
944 _failed_function(56998); return 0;
945 ;
946 }
947
OOC_IR__BuilderDesc_NewIntConst10(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)948 OOC_IR__Expression OOC_IR__BuilderDesc_NewIntConst10(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
949 register OOC_INT64 i0,i1,i2;
950 Object_BigInt__BigInt v;
951
952 i0 = (OOC_INT64)sym;
953 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57699))+16);
954 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 57699))+16);
955 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 57704)), 0);
956 i1 = (OOC_INT64)Object_BigInt__NewLatin1((void*)(_check_pointer(i2, 57704)), i1, 10);
957 v = (Object_BigInt__BigInt)i1;
958 i2 = i1==(OOC_INT64)0;
959 if (i2) goto l3;
960 i2 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i1);
961 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
962 return (OOC_IR__Expression)i0;
963 goto l4;
964 l3:
965 i1 = (OOC_INT64)b;
966 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 57741)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 3, (OOC_Scanner_SymList__Symbol)i0);
967 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 57789))+48);
968 return (OOC_IR__Expression)i0;
969 l4:
970 _failed_function(57592); return 0;
971 ;
972 }
973
OOC_IR__BuilderDesc_NewIntConst16(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)974 OOC_IR__Expression OOC_IR__BuilderDesc_NewIntConst16(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
975 register OOC_INT64 i0,i1,i2,i3;
976 OOC_INT32 epos;
977
978 epos = 0;
979 i0 = (OOC_INT64)sym;
980 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 58048))+16);
981 i1 = _check_pointer(i1, 58052);
982 i2 = OOC_ARRAY_LENGTH(i1, 0);
983 i1 = *(OOC_UINT8*)(i1+(_check_index(0, i2, OOC_UINT32, 58052)));
984 i1 = i1!=72u;
985 if (i1) goto l3;
986 i1=0;
987 goto l9;
988 l3:
989 i1=0;
990 l4_loop:
991 i1 = i1+1;
992 epos = i1;
993 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 58048))+16);
994 i2 = _check_pointer(i2, 58052);
995 i3 = OOC_ARRAY_LENGTH(i2, 0);
996 i2 = *(OOC_UINT8*)(i2+(_check_index(i1, i3, OOC_UINT32, 58052)));
997 i2 = i2!=72u;
998 if (i2) goto l4_loop;
999 l9:
1000 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 58130))+16);
1001 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 58130))+16);
1002 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 58134)), 0);
1003 i1 = (OOC_INT64)Object_BigInt__NewLatin1Region((void*)(_check_pointer(i3, 58134)), i2, 0, i1, 16);
1004 i2 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i1);
1005 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1006 return (OOC_IR__Expression)i0;
1007 ;
1008 }
1009
OOC_IR__BuilderDesc_AssertConst(OOC_IR__Builder b,OOC_IR__Expression expr)1010 OOC_IR__Const OOC_IR__BuilderDesc_AssertConst(OOC_IR__Builder b, OOC_IR__Expression expr) {
1011 register OOC_INT64 i0,i1;
1012
1013 i0 = (OOC_INT64)expr;
1014 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 58533)))), &_td_OOC_IR__ConstDesc);
1015 if (i1) goto l3;
1016 i1 = (OOC_INT64)b;
1017 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 58654));
1018 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 58622)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 9, (OOC_Scanner_SymList__Symbol)i0);
1019 return (OOC_IR__Const)i0;
1020 goto l4;
1021 l3:
1022 return (OOC_IR__Const)i0;
1023 l4:
1024 _failed_function(58252); return 0;
1025 ;
1026 }
1027
OOC_IR__BuilderDesc_AssertIntConst(OOC_IR__Builder b,OOC_IR__Expression expr,OOC_INT32 start,OOC_INT32 end)1028 OOC_INT32 OOC_IR__BuilderDesc_AssertIntConst(OOC_IR__Builder b, OOC_IR__Expression expr, OOC_INT32 start, OOC_INT32 end) {
1029 register OOC_INT64 i0,i1,i2,i3,i4;
1030 OOC_IR__Const _const;
1031 OOC_INT32 v;
1032
1033 i0 = (OOC_INT64)b;
1034 i1 = (OOC_INT64)expr;
1035 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 59220)))), OOC_IR__BuilderDesc_AssertConst)),OOC_IR__BuilderDesc_AssertConst)((OOC_IR__Builder)i0, (OOC_IR__Expression)i1);
1036 _const = (OOC_IR__Const)i1;
1037 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 59259))+48);
1038 i2 = i1!=i2;
1039 if (!i2) goto l20;
1040 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 59309))+8);
1041 i2 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i2);
1042 if (!i2) goto l16;
1043 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 59340))+16);
1044 i2 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 59355)))), &_td_Object_BigInt__BigIntDesc, 59355)));
1045 v = i2;
1046 i3 = start;
1047 i3 = i3<=i2;
1048 if (i3) goto l7;
1049 i3=0u;
1050 goto l13;
1051 l7:
1052 i3 = end;
1053 i4 = i3==(-2147483647-1);
1054 if (i4) goto l10;
1055 i3 = i2<i3;
1056
1057 goto l13;
1058 l10:
1059 i3=1u;
1060 l13:
1061 if (!i3) goto l16;
1062 return i2;
1063 l16:
1064 i2 = start;
1065 i3 = end;
1066 i4 = i2<i3;
1067 if (!i4) goto l20;
1068 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 59614));
1069 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 59578)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 14, (OOC_Scanner_SymList__Symbol)i1);
1070 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 59631))+80);
1071 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 59631))+80);
1072 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 59642)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i4, (OOC_CHAR8*)"start", 6, i2);
1073 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 59684))+80);
1074 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 59684))+80);
1075 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 59695)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i0, (OOC_CHAR8*)"end", 4, i3);
1076 l20:
1077 i0 = start;
1078 return i0;
1079 ;
1080 }
1081
OOC_IR__BuilderDesc_AssertInteger(OOC_IR__Builder b,OOC_IR__Expression expr)1082 OOC_IR__Expression OOC_IR__BuilderDesc_AssertInteger(OOC_IR__Builder b, OOC_IR__Expression expr) {
1083 register OOC_INT64 i0,i1,i2,i3;
1084 Object_BigInt__BigInt v;
1085
1086 i0 = (OOC_INT64)expr;
1087 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 60068))+8);
1088 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
1089 i1 = !i1;
1090 if (!i1) goto l6;
1091 i1 = (OOC_INT64)b;
1092 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 60098))+48);
1093 i2 = i0!=i2;
1094 if (!i2) goto l5;
1095 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 60148));
1096 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 60124)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 19, (OOC_Scanner_SymList__Symbol)i2);
1097 l5:
1098 i1 = (OOC_INT64)Object_BigInt__NewInt(1);
1099 v = (Object_BigInt__BigInt)i1;
1100 i2 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i1);
1101 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 60221));
1102 i1 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1103 return (OOC_IR__Expression)i1;
1104 l6:
1105 return (OOC_IR__Expression)i0;
1106 ;
1107 }
1108
OOC_IR__BuilderDesc_AssertReal(OOC_IR__Builder b,OOC_IR__Expression expr)1109 OOC_IR__Expression OOC_IR__BuilderDesc_AssertReal(OOC_IR__Builder b, OOC_IR__Expression expr) {
1110 register OOC_INT64 i0,i1,i2,i3;
1111 Object_Boxed__LongReal v;
1112
1113 i0 = (OOC_INT64)expr;
1114 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 60588))+8);
1115 i1 = OOC_SymbolTable_TypeRules__IsRealType((OOC_SymbolTable__Type)i1);
1116 i1 = !i1;
1117 if (!i1) goto l6;
1118 i1 = (OOC_INT64)b;
1119 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 60618))+48);
1120 i2 = i0!=i2;
1121 if (!i2) goto l5;
1122 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 60665));
1123 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 60644)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 46, (OOC_Scanner_SymList__Symbol)i2);
1124 l5:
1125 i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__LongReal.baseTypes[0]);
1126 Object_Boxed__LongRealDesc_INIT((Object_Boxed__LongReal)i1, 1.0000000000000000);
1127 v = (Object_Boxed__LongReal)i1;
1128 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(8);
1129 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 60744));
1130 i1 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1131 return (OOC_IR__Expression)i1;
1132 l6:
1133 return (OOC_IR__Expression)i0;
1134 ;
1135 }
1136
OOC_IR__BuilderDesc_AssertNumeric(OOC_IR__Builder b,OOC_IR__Expression expr)1137 OOC_IR__Expression OOC_IR__BuilderDesc_AssertNumeric(OOC_IR__Builder b, OOC_IR__Expression expr) {
1138 register OOC_INT64 i0,i1,i2,i3;
1139 Object_BigInt__BigInt v;
1140
1141 i0 = (OOC_INT64)expr;
1142 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 61120))+8);
1143 i1 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i1);
1144 i1 = !i1;
1145 if (!i1) goto l6;
1146 i1 = (OOC_INT64)b;
1147 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 61150))+48);
1148 i2 = i0!=i2;
1149 if (!i2) goto l5;
1150 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 61200));
1151 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 61176)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 44, (OOC_Scanner_SymList__Symbol)i2);
1152 l5:
1153 i1 = (OOC_INT64)Object_BigInt__NewInt(1);
1154 v = (Object_BigInt__BigInt)i1;
1155 i2 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i1);
1156 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 61273));
1157 i1 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1158 return (OOC_IR__Expression)i1;
1159 l6:
1160 return (OOC_IR__Expression)i0;
1161 ;
1162 }
1163
OOC_IR__BuilderDesc_AssertChar(OOC_IR__Builder b,OOC_IR__Expression expr)1164 OOC_IR__Expression OOC_IR__BuilderDesc_AssertChar(OOC_IR__Builder b, OOC_IR__Expression expr) {
1165 register OOC_INT64 i0,i1,i2,i3;
1166 Object_Boxed__String v;
1167
1168 i0 = (OOC_INT64)expr;
1169 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 61634))+8);
1170 i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1171 i1 = !i1;
1172 if (!i1) goto l6;
1173 i1 = (OOC_INT64)b;
1174 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 61664))+48);
1175 i2 = i0!=i2;
1176 if (!i2) goto l5;
1177 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 61716));
1178 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 61690)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 45, (OOC_Scanner_SymList__Symbol)i2);
1179 l5:
1180 i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
1181 Object_Boxed__StringDesc_INIT((Object_Boxed__String)i1, (Object__String)((OOC_INT64)_c2));
1182 v = (Object_Boxed__String)i1;
1183 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
1184 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 61795));
1185 i1 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1186 return (OOC_IR__Expression)i1;
1187 l6:
1188 return (OOC_IR__Expression)i0;
1189 ;
1190 }
1191
OOC_IR__BuilderDesc_AssertSet(OOC_IR__Builder b,OOC_IR__Expression expr)1192 OOC_IR__Expression OOC_IR__BuilderDesc_AssertSet(OOC_IR__Builder b, OOC_IR__Expression expr) {
1193 register OOC_INT64 i0,i1,i2,i3;
1194 Object_Boxed__Set v;
1195
1196 i0 = (OOC_INT64)expr;
1197 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 62121))+8);
1198 i1 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i1);
1199 i1 = !i1;
1200 if (!i1) goto l6;
1201 i1 = (OOC_INT64)b;
1202 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 62151))+48);
1203 i2 = i0!=i2;
1204 if (!i2) goto l5;
1205 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 62197));
1206 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 62177)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 49, (OOC_Scanner_SymList__Symbol)i2);
1207 l5:
1208 i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Set.baseTypes[0]);
1209 Object_Boxed__SetDesc_INIT((Object_Boxed__Set)i1, 0u);
1210 v = (Object_Boxed__Set)i1;
1211 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(10);
1212 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 62272));
1213 i1 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1214 return (OOC_IR__Expression)i1;
1215 l6:
1216 return (OOC_IR__Expression)i0;
1217 ;
1218 }
1219
OOC_IR__BuilderDesc_NewRealConst(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_INT16 type)1220 OOC_IR__Expression OOC_IR__BuilderDesc_NewRealConst(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_INT16 type) {
1221 register OOC_INT64 i0,i1,i2;
1222 Object_Boxed__Object v;
1223
1224 i0 = (OOC_INT64)sym;
1225 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 62513))+16);
1226 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 62513))+16);
1227 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 62518)), 0);
1228 i1 = (OOC_INT64)Object_Boxed__ParseLongRealLiteral((void*)(_check_pointer(i2, 62518)), i1);
1229 v = (Object_Boxed__Object)i1;
1230 i2 = i1==(OOC_INT64)0;
1231 if (i2) goto l3;
1232 i2 = type;
1233 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i2);
1234 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1235 return (OOC_IR__Expression)i0;
1236 goto l4;
1237 l3:
1238 i1 = (OOC_INT64)b;
1239 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 62551)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 3, (OOC_Scanner_SymList__Symbol)i0);
1240 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 62599))+48);
1241 return (OOC_IR__Expression)i0;
1242 l4:
1243 _failed_function(62377); return 0;
1244 ;
1245 }
1246
OOC_IR__BuilderDesc_NewCharConst16(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)1247 OOC_IR__Expression OOC_IR__BuilderDesc_NewCharConst16(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
1248 register OOC_INT64 i0,i1,i2;
1249 OOC_INT32 v;
1250 auto OOC_INT32 OOC_IR__BuilderDesc_NewCharConst16_ValueOf(const OOC_CHAR8 str[], OOC_LEN str_0d);
1251
1252 OOC_INT32 OOC_IR__BuilderDesc_NewCharConst16_ValueOf(const OOC_CHAR8 str[], OOC_LEN str_0d) {
1253 register OOC_INT64 i0,i1,i2,i3;
1254 OOC_INT32 i;
1255 OOC_INT32 hexCount;
1256 OOC_INT32 ord;
1257 auto OOC_INT32 OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexDigit(OOC_CHAR8 ch);
1258 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexToInt(const OOC_CHAR8 str__ref[], OOC_LEN str_0d, OOC_CHAR8 end, OOC_INT32 *result);
1259
1260 OOC_INT32 OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexDigit(OOC_CHAR8 ch) {
1261 register OOC_INT64 i0;
1262
1263 i0 = ch;
1264 i0 = _cap(i0);
1265 switch (i0) {
1266 case 48u ... 57u:
1267 return (i0-48);
1268 goto l5;
1269 case 65u ... 70u:
1270 return (i0+(-55));
1271 goto l5;
1272 default:
1273 return (-1);
1274 goto l5;
1275 }
1276 l5:
1277 _failed_function(62949); return 0;
1278 ;
1279 }
1280
1281
1282 OOC_CHAR8 OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexToInt(const OOC_CHAR8 str__ref[], OOC_LEN str_0d, OOC_CHAR8 end, OOC_INT32 *result) {
1283 register OOC_INT64 i0,i1,i2,i3;
1284 OOC_ALLOCATE_VPAR(str,OOC_CHAR8 ,str_0d)
1285
1286 OOC_INITIALIZE_VPAR(str__ref,str,OOC_CHAR8 ,str_0d)
1287 *result = 0;
1288 i = 0;
1289 i0 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, str_0d, OOC_UINT32, 63343)));
1290 i1 = end;
1291 i0 = i0!=i1;
1292 if (!i0) goto l11;
1293 i0=0;
1294 l3_loop:
1295 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT32, 63399)));
1296 i2 = OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexDigit(i2);
1297 i3 = *result;
1298 i2 = ((2147483647-i2)>>4)<i3;
1299 if (!i2) goto l6;
1300 return 0u;
1301 l6:
1302 i0 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT32, 63510)));
1303 i0 = OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexDigit(i0);
1304 *result = ((i3*16)+i0);
1305 i0 = i;
1306 i0 = i0+1;
1307 i = i0;
1308 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT32, 63343)));
1309 i2 = i2!=i1;
1310 if (i2) goto l3_loop;
1311 l11:
1312 return 1u;
1313 ;
1314 }
1315
1316
1317 i = 0;
1318 hexCount = 0;
1319 i0 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, str_0d, OOC_UINT32, 63647)));
1320 i0 = i0!=0u;
1321 if (i0) goto l3;
1322 i0=0;i1=0;
1323 goto l13;
1324 l3:
1325 i0=0;i1=0;
1326 l4_loop:
1327 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT32, 63685)));
1328 i2 = OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexDigit(i2);
1329 i2 = i2>=0;
1330 if (!i2) goto l8;
1331 i1 = i1+1;
1332 hexCount = i1;
1333
1334 l8:
1335 i0 = i0+1;
1336 i = i0;
1337 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(i0, str_0d, OOC_UINT32, 63647)));
1338 i2 = i2!=0u;
1339 if (i2) goto l4_loop;
1340 l13:
1341 i2 = i0==3;
1342 if (i2) goto l16;
1343 i2=0u;
1344 goto l18;
1345 l16:
1346 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, str_0d, OOC_UINT8, 63789)));
1347 i3 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index((i0-1), str_0d, OOC_UINT32, 63798)));
1348 i2 = i2==i3;
1349
1350 l18:
1351 if (i2) goto l20;
1352 i2=0u;
1353 goto l26;
1354 l20:
1355 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, str_0d, OOC_UINT8, 63812)));
1356 i2 = i2==34u;
1357 if (i2) goto l23;
1358 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, str_0d, OOC_UINT8, 63830)));
1359 i2 = i2==39u;
1360
1361 goto l26;
1362 l23:
1363 i2=1u;
1364 l26:
1365 if (i2) goto l52;
1366 i2 = i0>=2;
1367 if (i2) goto l30;
1368 i2=0u;
1369 goto l32;
1370 l30:
1371 i2 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index((i0-1), str_0d, OOC_UINT32, 63960)));
1372 i2 = i2==88u;
1373
1374 l32:
1375 if (i2) goto l34;
1376 i0=0u;
1377 goto l36;
1378 l34:
1379 i0 = (i1+1)==i0;
1380
1381 l36:
1382 if (i0) goto l38;
1383 return (-1);
1384 goto l53;
1385 l38:
1386 i0 = OOC_IR__BuilderDesc_NewCharConst16_ValueOf_HexToInt((void*)(OOC_INT64)str, str_0d, 88u, (void*)(OOC_INT64)&ord);
1387 if (i0) goto l41;
1388 i0=0u;
1389 goto l43;
1390 l41:
1391 i0 = ord;
1392 i0 = 0<=i0;
1393
1394 l43:
1395 if (i0) goto l45;
1396 i0=0u;
1397 goto l47;
1398 l45:
1399 i0 = ord;
1400 i0 = i0<=1114111;
1401
1402 l47:
1403 if (i0) goto l49;
1404 return (-1);
1405 goto l53;
1406 l49:
1407 i0 = ord;
1408 return i0;
1409 goto l53;
1410 l52:
1411 i0 = *(OOC_UINT8*)((OOC_INT64)str+(_check_index(1, str_0d, OOC_UINT8, 63928)));
1412 return i0;
1413 l53:
1414 _failed_function(62840); return 0;
1415 ;
1416 }
1417
1418
1419 i0 = (OOC_INT64)sym;
1420 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 64427))+16);
1421 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 64427))+16);
1422 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 64432)), 0);
1423 i0 = OOC_IR__BuilderDesc_NewCharConst16_ValueOf((void*)(_check_pointer(i0, 64432)), i1);
1424 v = i0;
1425 i1 = i0<0;
1426 if (i1) goto l11;
1427 i1 = i0<=255;
1428 if (i1) goto l9;
1429 i1 = i0<=65535;
1430 if (i1) goto l7;
1431 i0 = (OOC_INT64)Object__NewUCS4Char(i0);
1432 i1=3;
1433 goto l10;
1434 l7:
1435 i0 = (OOC_INT64)Object__NewUCS4Char(i0);
1436 i1=2;
1437 goto l10;
1438 l9:
1439 i0 = (OOC_INT64)Object__NewLatin1Char(i0);
1440 i1=1;
1441 l10:
1442 i2 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
1443 Object_Boxed__StringDesc_INIT((Object_Boxed__String)i2, (Object__String)i0);
1444 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i1);
1445 i1 = (OOC_INT64)sym;
1446 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i2);
1447 return (OOC_IR__Expression)i0;
1448 goto l12;
1449 l11:
1450 i0 = (OOC_INT64)b;
1451 i1 = (OOC_INT64)sym;
1452 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 64463)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 4, (OOC_Scanner_SymList__Symbol)i1);
1453 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 64514))+48);
1454 return (OOC_IR__Expression)i0;
1455 l12:
1456 _failed_function(62726); return 0;
1457 ;
1458 }
1459
OOC_IR__BuilderDesc_NewNil(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)1460 OOC_IR__Expression OOC_IR__BuilderDesc_NewNil(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
1461 register OOC_INT64 i0,i1;
1462
1463 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(16);
1464 i1 = (OOC_INT64)sym;
1465 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)(OOC_INT64)0);
1466 return (OOC_IR__Expression)i0;
1467 ;
1468 }
1469
OOC_IR__BuilderDesc_NewSize(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression type)1470 OOC_IR__Expression OOC_IR__BuilderDesc_NewSize(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression type) {
1471 register OOC_INT64 i0,i1,i2,i3;
1472 OOC_SymbolTable__Type t;
1473 OOC_INT32 size;
1474
1475 i0 = (OOC_INT64)b;
1476 i1 = (OOC_INT64)type;
1477 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 65265)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i0, (OOC_IR__Expression)i1);
1478 t = (OOC_SymbolTable__Type)i2;
1479 i3 = *(OOC_INT32*)((_check_pointer(i2, 65293))+64);
1480 i3 = i3<0;
1481 if (i3) goto l3;
1482 i1 = *(OOC_INT32*)((_check_pointer(i2, 65389))+64);
1483 size = i1;
1484
1485 goto l4;
1486 l3:
1487 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 65341));
1488 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 65316)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 47, (OOC_Scanner_SymList__Symbol)i1);
1489 size = 1;
1490 i1=1;
1491 l4:
1492 i1 = (OOC_INT64)Object_BigInt__NewInt(i1);
1493 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
1494 i3 = (OOC_INT64)sym;
1495 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 65417)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i1);
1496 return (OOC_IR__Expression)i0;
1497 ;
1498 }
1499
OOC_IR__BuilderDesc_GetOne(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type)1500 OOC_IR__Const OOC_IR__BuilderDesc_GetOne(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type) {
1501 register OOC_INT64 i0,i1,i2,i3;
1502
1503 i0 = (OOC_INT64)Object_BigInt__NewInt(1);
1504 i1 = (OOC_INT64)b;
1505 i2 = (OOC_INT64)sym;
1506 i3 = (OOC_INT64)type;
1507 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 65604)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i0);
1508 return (OOC_IR__Const)i0;
1509 ;
1510 }
1511
OOC_IR__BuilderDesc_ValidSetElement(OOC_IR__Builder b,OOC_IR__Expression expr,OOC_SymbolTable__Type set)1512 OOC_IR__Expression OOC_IR__BuilderDesc_ValidSetElement(OOC_IR__Builder b, OOC_IR__Expression expr, OOC_SymbolTable__Type set) {
1513 register OOC_INT64 i0,i1,i2,i3,i4,i5;
1514 Object_Boxed__Object val;
1515 Object_BigInt__BigInt min;
1516 Object_BigInt__BigInt max;
1517 Object_BigInt__BigInt element;
1518 auto OOC_IR__Expression OOC_IR__BuilderDesc_ValidSetElement_MinElement(void);
1519
1520 OOC_IR__Expression OOC_IR__BuilderDesc_ValidSetElement_MinElement(void) {
1521 register OOC_INT64 i0,i1,i2,i3;
1522
1523 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(4);
1524 i1 = (OOC_INT64)expr;
1525 i2 = (OOC_INT64)b;
1526 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 66358));
1527 i3 = (OOC_INT64)min;
1528 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 66344)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i3);
1529 return (OOC_IR__Expression)i0;
1530 ;
1531 }
1532
1533
1534 i0 = (OOC_INT64)set;
1535 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetMin((OOC_SymbolTable__Type)i0);
1536 val = (Object_Boxed__Object)i1;
1537 i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 66479)))), &_td_Object_BigInt__BigIntDesc, 66479);
1538 min = (Object_BigInt__BigInt)i1;
1539 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetMax((OOC_SymbolTable__Type)i0);
1540 val = (Object_Boxed__Object)i0;
1541 i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 66537)))), &_td_Object_BigInt__BigIntDesc, 66537);
1542 max = (Object_BigInt__BigInt)i0;
1543 i2 = (OOC_INT64)b;
1544 i3 = (OOC_INT64)expr;
1545 i3 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i3);
1546 expr = (OOC_IR__Expression)i3;
1547 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 66596)))), &_td_OOC_IR__ConstDesc);
1548 if (!i4) goto l10;
1549 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 66628))+16);
1550 i4 = _type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 66642)))), &_td_Object_BigInt__BigIntDesc, 66642);
1551 element = (Object_BigInt__BigInt)i4;
1552 i5 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i4, (Object__Object)i1);
1553 i5 = i5<0;
1554 if (i5) goto l5;
1555 i4 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i4, (Object__Object)i0);
1556 i4 = i4>0;
1557
1558 goto l7;
1559 l5:
1560 i4=1u;
1561 l7:
1562 if (!i4) goto l10;
1563 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 66758));
1564 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 66723)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i2, 14, (OOC_Scanner_SymList__Symbol)i3);
1565 i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)i1);
1566 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 66775))+80);
1567 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 66775))+80);
1568 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 66786)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i4, (OOC_CHAR8*)"start", 6, i1);
1569 i0 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)i0);
1570 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 66838))+80);
1571 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 66838))+80);
1572 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 66849)))), Msg__MsgDesc_SetIntAttrib)),Msg__MsgDesc_SetIntAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"end", 4, (i0+1));
1573 i0 = (OOC_INT64)OOC_IR__BuilderDesc_ValidSetElement_MinElement();
1574 return (OOC_IR__Expression)i0;
1575 l10:
1576 i0 = (OOC_INT64)expr;
1577 return (OOC_IR__Expression)i0;
1578 ;
1579 }
1580
OOC_IR__InitOperator(OOC_IR__Operator op,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type)1581 void OOC_IR__InitOperator(OOC_IR__Operator op, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type) {
1582 register OOC_INT64 i0,i1,i2;
1583
1584 i0 = (OOC_INT64)type;
1585 i1 = (OOC_INT64)sym;
1586 i2 = (OOC_INT64)op;
1587 OOC_IR__InitExpression((OOC_IR__Expression)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
1588 return;
1589 ;
1590 }
1591
OOC_IR__InitAbs(OOC_IR__Abs abs,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression operand)1592 static void OOC_IR__InitAbs(OOC_IR__Abs abs, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression operand) {
1593 register OOC_INT64 i0,i1,i2,i3;
1594
1595 i0 = (OOC_INT64)operand;
1596 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 67442))+8);
1597 i2 = (OOC_INT64)abs;
1598 i3 = (OOC_INT64)sym;
1599 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
1600 *(OOC_INT64*)((_check_pointer(i2, 67458))+16) = i0;
1601 return;
1602 ;
1603 }
1604
OOC_IR__BuilderDesc_NewAbs(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression operand)1605 OOC_IR__Expression OOC_IR__BuilderDesc_NewAbs(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression operand) {
1606 register OOC_INT64 i0,i1,i2;
1607
1608 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Abs.baseTypes[0]);
1609 i1 = (OOC_INT64)operand;
1610 i2 = (OOC_INT64)b;
1611 i1 = (OOC_INT64)OOC_IR__BuilderDesc_AssertNumeric((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
1612 i2 = (OOC_INT64)sym;
1613 OOC_IR__InitAbs((OOC_IR__Abs)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
1614 return (OOC_IR__Expression)i0;
1615 ;
1616 }
1617
OOC_IR__VisitorDesc_VisitAbs(OOC_IR__Visitor v,OOC_IR__Abs abs)1618 void OOC_IR__VisitorDesc_VisitAbs(OOC_IR__Visitor v, OOC_IR__Abs abs) {
1619
1620 return;
1621 ;
1622 }
1623
OOC_IR__AbsDesc_Accept(OOC_IR__Abs abs,OOC_IR__Visitor v)1624 void OOC_IR__AbsDesc_Accept(OOC_IR__Abs abs, OOC_IR__Visitor v) {
1625 register OOC_INT64 i0,i1;
1626
1627 i0 = (OOC_INT64)v;
1628 i1 = (OOC_INT64)abs;
1629 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 67827)))), OOC_IR__VisitorDesc_VisitAbs)),OOC_IR__VisitorDesc_VisitAbs)((OOC_IR__Visitor)i0, (OOC_IR__Abs)i1);
1630 return;
1631 ;
1632 }
1633
OOC_IR__InitAdr(OOC_IR__Adr adr,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression design)1634 static void OOC_IR__InitAdr(OOC_IR__Adr adr, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression design) {
1635 register OOC_INT64 i0,i1,i2;
1636
1637 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(12);
1638 i1 = (OOC_INT64)adr;
1639 i2 = (OOC_INT64)sym;
1640 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
1641 i0 = (OOC_INT64)design;
1642 *(OOC_INT64*)((_check_pointer(i1, 68098))+16) = i0;
1643 return;
1644 ;
1645 }
1646
OOC_IR__BuilderDesc_NewAdr(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression design)1647 OOC_IR__Adr OOC_IR__BuilderDesc_NewAdr(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression design) {
1648 register OOC_INT64 i0,i1,i2;
1649 OOC_IR__Adr adr;
1650 auto OOC_IR__Expression OOC_IR__BuilderDesc_NewAdr_AssertAddressable(OOC_IR__Expression expr);
1651
1652 OOC_IR__Expression OOC_IR__BuilderDesc_NewAdr_AssertAddressable(OOC_IR__Expression expr) {
1653 register OOC_INT64 i0,i1;
1654 OOC_IR__Expression e;
1655 OOC_CHAR8 hasAddress;
1656 OOC_CHAR8 dummy;
1657
1658 i0 = (OOC_INT64)expr;
1659 e = (OOC_IR__Expression)i0;
1660 hasAddress = 1u;
1661 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68416)))), &_td_OOC_IR__VarDesc);
1662 if (i1) goto l30;
1663 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68434)))), &_td_OOC_IR__DerefDesc);
1664 if (i1) goto l28;
1665 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68454)))), &_td_OOC_IR__IndexDesc);
1666 if (i1) goto l26;
1667 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68474)))), &_td_OOC_IR__SelectFieldDesc);
1668 if (i1) goto l24;
1669 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68500)))), &_td_OOC_IR__TypeGuardDesc);
1670 if (i1) goto l22;
1671 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68524)))), &_td_OOC_IR__ProcedureRefDesc);
1672 if (i1) goto l20;
1673 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 68551)))), &_td_OOC_IR__ConstDesc);
1674 if (i1) goto l15;
1675 hasAddress = 0u;
1676 i0=0u;
1677 goto l31;
1678 l15:
1679 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 68591))+8);
1680 i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1681 if (!i1) goto l18;
1682 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 68663))+8);
1683 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__MatchingStringConst((OOC_SymbolTable__Type)i0);
1684 i1 = (OOC_INT64)b;
1685 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)&expr, (OOC_SymbolTable__Type)i0);
1686 dummy = i0;
1687 l18:
1688 i0 = (OOC_INT64)expr;
1689 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 68728))+8);
1690 i0 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i0);
1691 hasAddress = i0;
1692
1693 goto l31;
1694 l20:
1695 i0=1u;
1696 goto l31;
1697 l22:
1698 i0=1u;
1699 goto l31;
1700 l24:
1701 i0=1u;
1702 goto l31;
1703 l26:
1704 i0=1u;
1705 goto l31;
1706 l28:
1707 i0=1u;
1708 goto l31;
1709 l30:
1710 i0=1u;
1711 l31:
1712 i0 = !i0;
1713 if (!i0) goto l34;
1714 i0 = (OOC_INT64)expr;
1715 i1 = (OOC_INT64)b;
1716 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 68850));
1717 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 68822)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 51, (OOC_Scanner_SymList__Symbol)i0);
1718 l34:
1719 i0 = (OOC_INT64)expr;
1720 return (OOC_IR__Expression)i0;
1721 ;
1722 }
1723
1724
1725 adr = (OOC_IR__Adr)((OOC_INT64)RT0__NewObject(_td_OOC_IR__Adr.baseTypes[0]));
1726 i0 = (OOC_INT64)design;
1727 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAdr_AssertAddressable((OOC_IR__Expression)i0);
1728 i1 = (OOC_INT64)sym;
1729 i2 = (OOC_INT64)adr;
1730 OOC_IR__InitAdr((OOC_IR__Adr)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
1731 return (OOC_IR__Adr)i2;
1732 ;
1733 }
1734
OOC_IR__VisitorDesc_VisitAdr(OOC_IR__Visitor v,OOC_IR__Adr adr)1735 void OOC_IR__VisitorDesc_VisitAdr(OOC_IR__Visitor v, OOC_IR__Adr adr) {
1736
1737 return;
1738 ;
1739 }
1740
OOC_IR__AdrDesc_Accept(OOC_IR__Adr adr,OOC_IR__Visitor v)1741 void OOC_IR__AdrDesc_Accept(OOC_IR__Adr adr, OOC_IR__Visitor v) {
1742 register OOC_INT64 i0,i1;
1743
1744 i0 = (OOC_INT64)v;
1745 i1 = (OOC_INT64)adr;
1746 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 69150)))), OOC_IR__VisitorDesc_VisitAdr)),OOC_IR__VisitorDesc_VisitAdr)((OOC_IR__Visitor)i0, (OOC_IR__Adr)i1);
1747 return;
1748 ;
1749 }
1750
OOC_IR__InitAsh(OOC_IR__Ash ash,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression value,OOC_IR__Expression exp)1751 static void OOC_IR__InitAsh(OOC_IR__Ash ash, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression value, OOC_IR__Expression exp) {
1752 register OOC_INT64 i0,i1,i2;
1753
1754 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
1755 i1 = (OOC_INT64)ash;
1756 i2 = (OOC_INT64)sym;
1757 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
1758 i0 = (OOC_INT64)value;
1759 *(OOC_INT64*)((_check_pointer(i1, 69429))+16) = i0;
1760 i0 = (OOC_INT64)exp;
1761 *(OOC_INT64*)((_check_pointer(i1, 69454))+24) = i0;
1762 return;
1763 ;
1764 }
1765
OOC_IR__BuilderDesc_NewAsh(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression value,OOC_IR__Expression exp)1766 OOC_IR__Expression OOC_IR__BuilderDesc_NewAsh(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression value, OOC_IR__Expression exp) {
1767 register OOC_INT64 i0,i1,i2,i3;
1768
1769 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Ash.baseTypes[0]);
1770 i1 = (OOC_INT64)exp;
1771 i2 = (OOC_INT64)b;
1772 i1 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
1773 i3 = (OOC_INT64)value;
1774 i2 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i3);
1775 i3 = (OOC_INT64)sym;
1776 OOC_IR__InitAsh((OOC_IR__Ash)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
1777 return (OOC_IR__Expression)i0;
1778 ;
1779 }
1780
OOC_IR__VisitorDesc_VisitAsh(OOC_IR__Visitor v,OOC_IR__Ash ash)1781 void OOC_IR__VisitorDesc_VisitAsh(OOC_IR__Visitor v, OOC_IR__Ash ash) {
1782
1783 return;
1784 ;
1785 }
1786
OOC_IR__AshDesc_Accept(OOC_IR__Ash ash,OOC_IR__Visitor v)1787 void OOC_IR__AshDesc_Accept(OOC_IR__Ash ash, OOC_IR__Visitor v) {
1788 register OOC_INT64 i0,i1;
1789
1790 i0 = (OOC_INT64)v;
1791 i1 = (OOC_INT64)ash;
1792 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 69838)))), OOC_IR__VisitorDesc_VisitAsh)),OOC_IR__VisitorDesc_VisitAsh)((OOC_IR__Visitor)i0, (OOC_IR__Ash)i1);
1793 return;
1794 ;
1795 }
1796
OOC_IR__InitBinaryArith(OOC_IR__BinaryArith op,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right,OOC_SymbolTable__Type type)1797 static void OOC_IR__InitBinaryArith(OOC_IR__BinaryArith op, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right, OOC_SymbolTable__Type type) {
1798 register OOC_INT64 i0,i1,i2;
1799
1800 i0 = (OOC_INT64)type;
1801 i1 = (OOC_INT64)sym;
1802 i2 = (OOC_INT64)op;
1803 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
1804 i0 = variant;
1805 *(OOC_INT8*)((_check_pointer(i2, 70148))+16) = i0;
1806 i0 = (OOC_INT64)left;
1807 *(OOC_INT64*)((_check_pointer(i2, 70175))+24) = i0;
1808 i0 = (OOC_INT64)right;
1809 *(OOC_INT64*)((_check_pointer(i2, 70196))+32) = i0;
1810 return;
1811 ;
1812 }
1813
OOC_IR__BuilderDesc_NewBinaryArith(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right)1814 OOC_IR__Expression OOC_IR__BuilderDesc_NewBinaryArith(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right) {
1815 register OOC_INT64 i0,i1,i2,i3,i4,i5;
1816 OOC_IR__BinaryArith op;
1817
1818 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__BinaryArith.baseTypes[0]);
1819 op = (OOC_IR__BinaryArith)i0;
1820 i1 = (OOC_INT64)right;
1821 i2 = (OOC_INT64)left;
1822 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 70434))+8);
1823 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 70422))+8);
1824 i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__Type)i3);
1825 _assert(i3, 127, 70399);
1826 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 70499))+8);
1827 i4 = (OOC_INT64)sym;
1828 i5 = variant;
1829 OOC_IR__InitBinaryArith((OOC_IR__BinaryArith)i0, (OOC_Scanner_SymList__Symbol)i4, i5, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1, (OOC_SymbolTable__Type)i3);
1830 return (OOC_IR__Expression)i0;
1831 ;
1832 }
1833
OOC_IR__VisitorDesc_VisitBinaryArith(OOC_IR__Visitor v,OOC_IR__BinaryArith op)1834 void OOC_IR__VisitorDesc_VisitBinaryArith(OOC_IR__Visitor v, OOC_IR__BinaryArith op) {
1835
1836 return;
1837 ;
1838 }
1839
OOC_IR__BinaryArithDesc_Accept(OOC_IR__BinaryArith op,OOC_IR__Visitor v)1840 void OOC_IR__BinaryArithDesc_Accept(OOC_IR__BinaryArith op, OOC_IR__Visitor v) {
1841 register OOC_INT64 i0,i1;
1842
1843 i0 = (OOC_INT64)v;
1844 i1 = (OOC_INT64)op;
1845 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 70704)))), OOC_IR__VisitorDesc_VisitBinaryArith)),OOC_IR__VisitorDesc_VisitBinaryArith)((OOC_IR__Visitor)i0, (OOC_IR__BinaryArith)i1);
1846 return;
1847 ;
1848 }
1849
OOC_IR__InitBooleanOp(OOC_IR__BooleanOp op,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right,OOC_SymbolTable__Type type)1850 static void OOC_IR__InitBooleanOp(OOC_IR__BooleanOp op, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right, OOC_SymbolTable__Type type) {
1851 register OOC_INT64 i0,i1,i2;
1852
1853 i0 = (OOC_INT64)type;
1854 i1 = (OOC_INT64)sym;
1855 i2 = (OOC_INT64)op;
1856 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
1857 i0 = variant;
1858 *(OOC_INT8*)((_check_pointer(i2, 71015))+16) = i0;
1859 i0 = (OOC_INT64)left;
1860 *(OOC_INT64*)((_check_pointer(i2, 71042))+24) = i0;
1861 i0 = (OOC_INT64)right;
1862 *(OOC_INT64*)((_check_pointer(i2, 71063))+32) = i0;
1863 return;
1864 ;
1865 }
1866
OOC_IR__BuilderDesc_NewBooleanOp(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right)1867 OOC_IR__Expression OOC_IR__BuilderDesc_NewBooleanOp(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right) {
1868 register OOC_INT64 i0,i1,i2,i3,i4,i5;
1869 OOC_IR__BooleanOp op;
1870
1871 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__BooleanOp.baseTypes[0]);
1872 op = (OOC_IR__BooleanOp)i0;
1873 i1 = (OOC_INT64)left;
1874 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 71272))+8);
1875 i2 = *(OOC_INT16*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 71283)))), &_td_OOC_SymbolTable__PredefTypeDesc, 71283)), 71294))+72);
1876 _assert((i2==0), 127, 71260);
1877 i2 = (OOC_INT64)right;
1878 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 71335))+8);
1879 i3 = *(OOC_INT16*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 71346)))), &_td_OOC_SymbolTable__PredefTypeDesc, 71346)), 71357))+72);
1880 _assert((i3==0), 127, 71322);
1881 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 71435))+8);
1882 i4 = (OOC_INT64)sym;
1883 i5 = variant;
1884 OOC_IR__InitBooleanOp((OOC_IR__BooleanOp)i0, (OOC_Scanner_SymList__Symbol)i4, i5, (OOC_IR__Expression)i1, (OOC_IR__Expression)i2, (OOC_SymbolTable__Type)i3);
1885 return (OOC_IR__Expression)i0;
1886 ;
1887 }
1888
OOC_IR__VisitorDesc_VisitBooleanOp(OOC_IR__Visitor v,OOC_IR__BooleanOp op)1889 void OOC_IR__VisitorDesc_VisitBooleanOp(OOC_IR__Visitor v, OOC_IR__BooleanOp op) {
1890
1891 return;
1892 ;
1893 }
1894
OOC_IR__BooleanOpDesc_Accept(OOC_IR__BooleanOp op,OOC_IR__Visitor v)1895 void OOC_IR__BooleanOpDesc_Accept(OOC_IR__BooleanOp op, OOC_IR__Visitor v) {
1896 register OOC_INT64 i0,i1;
1897
1898 i0 = (OOC_INT64)v;
1899 i1 = (OOC_INT64)op;
1900 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 71630)))), OOC_IR__VisitorDesc_VisitBooleanOp)),OOC_IR__VisitorDesc_VisitBooleanOp)((OOC_IR__Visitor)i0, (OOC_IR__BooleanOp)i1);
1901 return;
1902 ;
1903 }
1904
OOC_IR__InitCap(OOC_IR__Cap cap,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)1905 static void OOC_IR__InitCap(OOC_IR__Cap cap, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
1906 register OOC_INT64 i0,i1,i2,i3;
1907
1908 i0 = (OOC_INT64)expr;
1909 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 71871))+8);
1910 i2 = (OOC_INT64)cap;
1911 i3 = (OOC_INT64)sym;
1912 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
1913 *(OOC_INT64*)((_check_pointer(i2, 71887))+16) = i0;
1914 return;
1915 ;
1916 }
1917
OOC_IR__BuilderDesc_NewCap(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)1918 OOC_IR__Expression OOC_IR__BuilderDesc_NewCap(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
1919 register OOC_INT64 i0,i1,i2;
1920
1921 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Cap.baseTypes[0]);
1922 i1 = (OOC_INT64)expr;
1923 i2 = (OOC_INT64)b;
1924 i1 = (OOC_INT64)OOC_IR__BuilderDesc_AssertChar((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
1925 i2 = (OOC_INT64)sym;
1926 OOC_IR__InitCap((OOC_IR__Cap)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
1927 return (OOC_IR__Expression)i0;
1928 ;
1929 }
1930
OOC_IR__VisitorDesc_VisitCap(OOC_IR__Visitor v,OOC_IR__Cap cap)1931 void OOC_IR__VisitorDesc_VisitCap(OOC_IR__Visitor v, OOC_IR__Cap cap) {
1932
1933 return;
1934 ;
1935 }
1936
OOC_IR__CapDesc_Accept(OOC_IR__Cap cap,OOC_IR__Visitor v)1937 void OOC_IR__CapDesc_Accept(OOC_IR__Cap cap, OOC_IR__Visitor v) {
1938 register OOC_INT64 i0,i1;
1939
1940 i0 = (OOC_INT64)v;
1941 i1 = (OOC_INT64)cap;
1942 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 72244)))), OOC_IR__VisitorDesc_VisitCap)),OOC_IR__VisitorDesc_VisitCap)((OOC_IR__Visitor)i0, (OOC_IR__Cap)i1);
1943 return;
1944 ;
1945 }
1946
OOC_IR__InitChangeElement(OOC_IR__ChangeElement ch,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression set,OOC_IR__Expression element)1947 static void OOC_IR__InitChangeElement(OOC_IR__ChangeElement ch, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression set, OOC_IR__Expression element) {
1948 register OOC_INT64 i0,i1,i2,i3;
1949
1950 i0 = (OOC_INT64)set;
1951 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 72562))+8);
1952 i2 = (OOC_INT64)ch;
1953 i3 = (OOC_INT64)sym;
1954 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
1955 i1 = variant;
1956 *(OOC_INT8*)((_check_pointer(i2, 72577))+16) = i1;
1957 *(OOC_INT64*)((_check_pointer(i2, 72605))+24) = i0;
1958 i0 = (OOC_INT64)element;
1959 *(OOC_INT64*)((_check_pointer(i2, 72625))+32) = i0;
1960 return;
1961 ;
1962 }
1963
OOC_IR__BuilderDesc_NewChangeElement(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression set,OOC_IR__Expression element)1964 OOC_IR__Expression OOC_IR__BuilderDesc_NewChangeElement(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression set, OOC_IR__Expression element) {
1965 register OOC_INT64 i0,i1,i2,i3,i4;
1966
1967 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ChangeElement.baseTypes[0]);
1968 i1 = (OOC_INT64)element;
1969 i2 = (OOC_INT64)set;
1970 i3 = variant;
1971 i4 = (OOC_INT64)sym;
1972 OOC_IR__InitChangeElement((OOC_IR__ChangeElement)i0, (OOC_Scanner_SymList__Symbol)i4, i3, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
1973 return (OOC_IR__Expression)i0;
1974 ;
1975 }
1976
OOC_IR__VisitorDesc_VisitChangeElement(OOC_IR__Visitor v,OOC_IR__ChangeElement ch)1977 void OOC_IR__VisitorDesc_VisitChangeElement(OOC_IR__Visitor v, OOC_IR__ChangeElement ch) {
1978
1979 return;
1980 ;
1981 }
1982
OOC_IR__ChangeElementDesc_Accept(OOC_IR__ChangeElement ch,OOC_IR__Visitor v)1983 void OOC_IR__ChangeElementDesc_Accept(OOC_IR__ChangeElement ch, OOC_IR__Visitor v) {
1984 register OOC_INT64 i0,i1;
1985
1986 i0 = (OOC_INT64)v;
1987 i1 = (OOC_INT64)ch;
1988 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 73142)))), OOC_IR__VisitorDesc_VisitChangeElement)),OOC_IR__VisitorDesc_VisitChangeElement)((OOC_IR__Visitor)i0, (OOC_IR__ChangeElement)i1);
1989 return;
1990 ;
1991 }
1992
OOC_IR__InitCompare(OOC_IR__Compare op,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right)1993 static void OOC_IR__InitCompare(OOC_IR__Compare op, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right) {
1994 register OOC_INT64 i0,i1,i2;
1995
1996 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(0);
1997 i1 = (OOC_INT64)op;
1998 i2 = (OOC_INT64)sym;
1999 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
2000 i0 = (OOC_INT64)left;
2001 *(OOC_INT64*)((_check_pointer(i1, 73458))+24) = i0;
2002 i0 = (OOC_INT64)right;
2003 *(OOC_INT64*)((_check_pointer(i1, 73479))+32) = i0;
2004 i0 = variant;
2005 *(OOC_INT8*)((_check_pointer(i1, 73502))+16) = i0;
2006 return;
2007 ;
2008 }
2009
OOC_IR__BuilderDesc_NewCompare(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression left,OOC_IR__Expression right)2010 OOC_IR__Compare OOC_IR__BuilderDesc_NewCompare(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression left, OOC_IR__Expression right) {
2011 register OOC_INT64 i0,i1,i2,i3,i4;
2012 OOC_INT8 variant;
2013
2014 i0 = (OOC_INT64)sym;
2015 i1 = *(OOC_INT8*)((_check_pointer(i0, 73745))+8);
2016 switch (i1) {
2017 case 9:
2018 variant = 10;
2019 goto l9;
2020 case 10:
2021 variant = 11;
2022 goto l9;
2023 case 11:
2024 variant = 12;
2025 goto l9;
2026 case 12:
2027 variant = 13;
2028 goto l9;
2029 case 13:
2030 variant = 14;
2031 goto l9;
2032 case 14:
2033 variant = 15;
2034 goto l9;
2035 default:
2036 _failed_case(i1, 73737);
2037 goto l9;
2038 }
2039 l9:
2040 i1 = (OOC_INT64)left;
2041 i2 = (OOC_INT64)right;
2042 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Compare.baseTypes[0]);
2043 i4 = variant;
2044 OOC_IR__InitCompare((OOC_IR__Compare)i3, (OOC_Scanner_SymList__Symbol)i0, i4, (OOC_IR__Expression)i1, (OOC_IR__Expression)i2);
2045 return (OOC_IR__Compare)i3;
2046 ;
2047 }
2048
OOC_IR__VisitorDesc_VisitCompare(OOC_IR__Visitor v,OOC_IR__Compare op)2049 void OOC_IR__VisitorDesc_VisitCompare(OOC_IR__Visitor v, OOC_IR__Compare op) {
2050
2051 return;
2052 ;
2053 }
2054
OOC_IR__CompareDesc_Accept(OOC_IR__Compare op,OOC_IR__Visitor v)2055 void OOC_IR__CompareDesc_Accept(OOC_IR__Compare op, OOC_IR__Visitor v) {
2056 register OOC_INT64 i0,i1;
2057
2058 i0 = (OOC_INT64)v;
2059 i1 = (OOC_INT64)op;
2060 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 74214)))), OOC_IR__VisitorDesc_VisitCompare)),OOC_IR__VisitorDesc_VisitCompare)((OOC_IR__Visitor)i0, (OOC_IR__Compare)i1);
2061 return;
2062 ;
2063 }
2064
OOC_IR__InitConcat(OOC_IR__Concat op,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__ExpressionList strings)2065 static void OOC_IR__InitConcat(OOC_IR__Concat op, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__ExpressionList strings) {
2066 register OOC_INT64 i0,i1,i2;
2067
2068 i0 = (OOC_INT64)type;
2069 i1 = (OOC_INT64)sym;
2070 i2 = (OOC_INT64)op;
2071 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
2072 i0 = (OOC_INT64)strings;
2073 *(OOC_INT64*)((_check_pointer(i2, 74514))+16) = i0;
2074 return;
2075 ;
2076 }
2077
OOC_IR__BuilderDesc_NewConcat(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__ExpressionList strings)2078 OOC_IR__Concat OOC_IR__BuilderDesc_NewConcat(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__ExpressionList strings) {
2079 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
2080 OOC_INT16 id;
2081 OOC_INT32 i;
2082 OOC_SymbolTable__Type type;
2083 OOC_INT16 tid;
2084 OOC_CHAR8 dummy;
2085
2086 id = (-1);
2087 i0 = (OOC_INT64)strings;
2088 i = 0;
2089 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 74786)), 0);
2090 i2 = (OOC_INT64)sym;
2091 i3 = 0<i1;
2092 if (i3) goto l3;
2093 i1=(-1);
2094 goto l28;
2095 l3:
2096 i3 = (OOC_INT64)b;
2097 i4=0;i5=(-1);
2098 l4_loop:
2099 i6 = _check_pointer(i0, 74815);
2100 i7 = OOC_ARRAY_LENGTH(i6, 0);
2101 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i4, i7, OOC_UINT32, 74815))*8);
2102 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 74818))+8);
2103 type = (OOC_SymbolTable__Type)i6;
2104 tid = 32767;
2105 i7 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i6);
2106 if (i7) goto l18;
2107 i7 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i6);
2108 if (i7) goto l12;
2109 i6 = OOC_SymbolTable_TypeRules__IsSTRING((OOC_SymbolTable__Type)i6);
2110 i6 = !i6;
2111 if (!i6) goto l11;
2112 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 75309)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 7, (OOC_Scanner_SymList__Symbol)i2);
2113 l11:
2114 i6=32767;
2115 goto l19;
2116 l12:
2117 i6 = (OOC_INT64)OOC_SymbolTable_TypeRules__MatchingStringConst((OOC_SymbolTable__Type)i6);
2118 i7 = _check_pointer(i0, 75067);
2119 i8 = OOC_ARRAY_LENGTH(i7, 0);
2120 i6 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i3, (void*)(i7+(_check_index(i4, i8, OOC_UINT32, 75067))*8), (OOC_SymbolTable__Type)i6);
2121 if (i6) goto l15;
2122 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 75184)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 7, (OOC_Scanner_SymList__Symbol)i2);
2123 i6=32767;
2124 goto l19;
2125 l15:
2126 i6 = _check_pointer(i0, 75131);
2127 i7 = OOC_ARRAY_LENGTH(i6, 0);
2128 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i4, i7, OOC_UINT32, 75131))*8);
2129 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 75134))+8);
2130 i6 = *(OOC_INT16*)((_check_pointer((_type_guard(i6, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 75144)))), &_td_OOC_SymbolTable__PredefTypeDesc, 75144)), 75155))+72);
2131 tid = i6;
2132
2133 goto l19;
2134 l18:
2135 i6 = *(OOC_INT16*)((_check_pointer((_type_guard(i6, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 74946)))), &_td_OOC_SymbolTable__PredefTypeDesc, 74946)), 74957))+72);
2136 tid = i6;
2137
2138 l19:
2139 i7 = i6>i5;
2140 if (!i7) goto l23;
2141 id = i6;
2142 i5=i6;
2143 l23:
2144 i4 = i4+1;
2145 i = i4;
2146 i6 = i4<i1;
2147 if (i6) goto l4_loop;
2148 l27:
2149 i1=i5;
2150 l28:
2151 i3 = i1<32767;
2152 if (i3) goto l42;
2153 i1 = (OOC_INT64)b;
2154 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 75624))+72);
2155 type = (OOC_SymbolTable__Type)i3;
2156 i = 0;
2157 i4 = OOC_ARRAY_LENGTH((_check_pointer(i0, 75668)), 0);
2158 i5 = 0<i4;
2159 if (!i5) goto l41;
2160 i5=0;
2161 l33_loop:
2162 i6 = _check_pointer(i0, 75711);
2163 i7 = OOC_ARRAY_LENGTH(i6, 0);
2164 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i5, i7, OOC_UINT32, 75711))*8);
2165 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 75714))+8);
2166 i6 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i6);
2167 if (!i6) goto l36;
2168 i6 = _check_pointer(i0, 75819);
2169 i7 = OOC_ARRAY_LENGTH(i6, 0);
2170 i6 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(i6+(_check_index(i5, i7, OOC_UINT32, 75819))*8), (OOC_SymbolTable__Type)i3);
2171 dummy = i6;
2172 _assert(i6, 127, 75841);
2173 l36:
2174 i5 = i5+1;
2175 i = i5;
2176 i6 = i5<i4;
2177 if (i6) goto l33_loop;
2178 l41:
2179 i1=i3;
2180 goto l51;
2181 l42:
2182 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i1);
2183 type = (OOC_SymbolTable__Type)i1;
2184 i = 0;
2185 i3 = OOC_ARRAY_LENGTH((_check_pointer(i0, 75514)), 0);
2186 i4 = 0<i3;
2187 if (!i4) goto l51;
2188 i4 = (OOC_INT64)b;
2189 i5=0;
2190 l45_loop:
2191 i6 = _check_pointer(i0, 75554);
2192 i7 = OOC_ARRAY_LENGTH(i6, 0);
2193 i6 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i4, (void*)(i6+(_check_index(i5, i7, OOC_UINT32, 75554))*8), (OOC_SymbolTable__Type)i1);
2194 dummy = i6;
2195 _assert(i6, 127, 75574);
2196 i5 = i5+1;
2197 i = i5;
2198 i6 = i5<i3;
2199 if (i6) goto l45_loop;
2200 l51:
2201 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Concat.baseTypes[0]);
2202 OOC_IR__InitConcat((OOC_IR__Concat)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (OOC_IR__ExpressionList)i0);
2203 return (OOC_IR__Concat)i3;
2204 ;
2205 }
2206
OOC_IR__VisitorDesc_VisitConcat(OOC_IR__Visitor v,OOC_IR__Concat op)2207 void OOC_IR__VisitorDesc_VisitConcat(OOC_IR__Visitor v, OOC_IR__Concat op) {
2208
2209 return;
2210 ;
2211 }
2212
OOC_IR__ConcatDesc_Accept(OOC_IR__Concat op,OOC_IR__Visitor v)2213 void OOC_IR__ConcatDesc_Accept(OOC_IR__Concat op, OOC_IR__Visitor v) {
2214 register OOC_INT64 i0,i1;
2215
2216 i0 = (OOC_INT64)v;
2217 i1 = (OOC_INT64)op;
2218 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 76121)))), OOC_IR__VisitorDesc_VisitConcat)),OOC_IR__VisitorDesc_VisitConcat)((OOC_IR__Visitor)i0, (OOC_IR__Concat)i1);
2219 return;
2220 ;
2221 }
2222
OOC_IR__InitConstructor(OOC_IR__Constructor cons,OOC_Scanner_SymList__Symbol sym,OOC_IR__NewObject alloc,OOC_IR__Call init)2223 static void OOC_IR__InitConstructor(OOC_IR__Constructor cons, OOC_Scanner_SymList__Symbol sym, OOC_IR__NewObject alloc, OOC_IR__Call init) {
2224 register OOC_INT64 i0,i1,i2,i3;
2225
2226 i0 = (OOC_INT64)alloc;
2227 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 76424))+8);
2228 i2 = (OOC_INT64)cons;
2229 i3 = (OOC_INT64)sym;
2230 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
2231 *(OOC_INT64*)((_check_pointer(i2, 76440))+16) = i0;
2232 i0 = (OOC_INT64)init;
2233 *(OOC_INT64*)((_check_pointer(i2, 76465))+24) = i0;
2234 return;
2235 ;
2236 }
2237
OOC_IR__BuilderDesc_NewConstructor(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression type,OOC_IR__ExpressionList arguments,OOC_SymbolTable__Item context,OOC_Scanner_SymList__Symbol endOfArgsSym)2238 OOC_IR__Expression OOC_IR__BuilderDesc_NewConstructor(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression type, OOC_IR__ExpressionList arguments, OOC_SymbolTable__Item context, OOC_Scanner_SymList__Symbol endOfArgsSym) {
2239 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
2240 OOC_SymbolTable__Type consType;
2241 OOC_SymbolTable__Type ptr;
2242 OOC_SymbolTable__Type qualRecord;
2243 OOC_SymbolTable__Record consClass;
2244 OOC_SymbolTable__Name n;
2245 OOC_SymbolTable__Declaration initDecl;
2246 OOC_IR__Call init;
2247 OOC_IR__Expression pseudoDesign;
2248 OOC_IR__Expression expr;
2249
2250 i0 = (OOC_INT64)type;
2251 i1 = (OOC_INT64)b;
2252 i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 77030)))), &_td_OOC_IR__TypeRefDesc));
2253 if (i2) goto l3;
2254 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 77070)))), &_td_OOC_IR__TypeRefDesc, 77070)), 77078))+24);
2255 i2 = OOC_SymbolTable_TypeRules__IsRecordPointer((OOC_SymbolTable__Type)i2);
2256 i2 = !i2;
2257
2258 goto l5;
2259 l3:
2260 i2=1u;
2261 l5:
2262 if (!i2) goto l7;
2263 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 77143));
2264 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77108)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 73, (OOC_Scanner_SymList__Symbol)i2);
2265 return (OOC_IR__Expression)i2;
2266 l7:
2267 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 77180)))), &_td_OOC_IR__TypeRefDesc, 77180)), 77188))+24);
2268 i2 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i2);
2269 consType = (OOC_SymbolTable__Type)i2;
2270 i3 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i2);
2271 ptr = (OOC_SymbolTable__Type)i3;
2272 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 77304)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i3);
2273 qualRecord = (OOC_SymbolTable__Type)i4;
2274 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 77333)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i3);
2275 ptr = (OOC_SymbolTable__Type)i3;
2276 i3 = _type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 77370)))), &_td_OOC_SymbolTable__RecordDesc, 77370);
2277 consClass = (OOC_SymbolTable__Record)i3;
2278 i5 = (OOC_INT64)sym;
2279 i6 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77438)))), OOC_IR__BuilderDesc_GetName2)),OOC_IR__BuilderDesc_GetName2)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i5, (OOC_CHAR8*)"INIT", 5);
2280 n = (OOC_SymbolTable__Name)i6;
2281 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 77498))+96);
2282 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 77498))+96);
2283 i8 = (OOC_INT64)context;
2284 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 77501)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i3, (OOC_SymbolTable__Item)i8, (OOC_SymbolTable__Name)i6, 1u);
2285 initDecl = (OOC_SymbolTable__Declaration)i3;
2286 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 77555))+40);
2287 OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i3, (OOC_SymbolTable_Uses__Uses)i7, (OOC_SymbolTable__Name)i6);
2288 init = (OOC_IR__Call)(OOC_INT64)0;
2289 i6 = i3==(OOC_INT64)0;
2290 if (i6) goto l10;
2291 i6 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 77621)))), &_td_OOC_SymbolTable__ProcDeclDesc));
2292
2293 goto l12;
2294 l10:
2295 i6=1u;
2296 l12:
2297 if (i6) goto l21;
2298 i6 = *(OOC_INT32*)((_check_pointer(i3, 77779))+48);
2299 i7 = *(OOC_INT32*)((_check_pointer(i5, 77797))+28);
2300 i6 = i6>i7;
2301 if (!i6) goto l16;
2302 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 77853));
2303 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77817)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 75, (OOC_Scanner_SymList__Symbol)i0);
2304 l16:
2305 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77901)))), OOC_IR__BuilderDesc_NewNil)),OOC_IR__BuilderDesc_NewNil)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i5);
2306 pseudoDesign = (OOC_IR__Expression)i0;
2307 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewSelectProc((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i5, (OOC_IR__Expression)i0, (OOC_SymbolTable__Type)i4, (OOC_SymbolTable__ProcDecl)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 78035)))), &_td_OOC_SymbolTable__ProcDeclDesc, 78035)), (OOC_Scanner_SymList__Symbol)i5, 1u);
2308 pseudoDesign = (OOC_IR__Expression)i0;
2309 i3 = (OOC_INT64)endOfArgsSym;
2310 i4 = (OOC_INT64)arguments;
2311 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 78073)))), OOC_IR__BuilderDesc_NewCall)),OOC_IR__BuilderDesc_NewCall)((OOC_IR__Builder)i1, (OOC_IR__Expression)i0, (OOC_IR__ExpressionList)i4, 0u, (OOC_SymbolTable__Item)i8, (OOC_Scanner_SymList__Symbol)i3);
2312 expr = (OOC_IR__Expression)i0;
2313 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 78153)))), &_td_OOC_IR__CallDesc);
2314 if (i3) goto l19;
2315 i0=(OOC_INT64)0;
2316 goto l25;
2317 l19:
2318 i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 78188)))), &_td_OOC_IR__CallDesc, 78188);
2319
2320 goto l25;
2321 l21:
2322 i0 = (OOC_INT64)arguments;
2323 i3 = OOC_ARRAY_LENGTH((_check_pointer(i0, 77666)), 0);
2324 i3 = i3!=0;
2325 if (!i3) goto l24;
2326 i0 = _check_pointer(i0, 77731);
2327 i3 = OOC_ARRAY_LENGTH(i0, 0);
2328 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 77731))*8);
2329 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 77734));
2330 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 77695)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 39, (OOC_Scanner_SymList__Symbol)i0);
2331 return (OOC_IR__Expression)i0;
2332 l24:
2333 i0=(OOC_INT64)0;
2334 l25:
2335 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Constructor.baseTypes[0]);
2336 i2 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i2);
2337 i1 = (OOC_INT64)OOC_IR__BuilderDesc_NewNewObject((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i5, (OOC_SymbolTable__Type)i2, (OOC_IR__ExpressionList)(OOC_INT64)0);
2338 OOC_IR__InitConstructor((OOC_IR__Constructor)i3, (OOC_Scanner_SymList__Symbol)i5, (OOC_IR__NewObject)i1, (OOC_IR__Call)i0);
2339 return (OOC_IR__Expression)i3;
2340 ;
2341 }
2342
OOC_IR__VisitorDesc_VisitConstructor(OOC_IR__Visitor v,OOC_IR__Constructor cons)2343 void OOC_IR__VisitorDesc_VisitConstructor(OOC_IR__Visitor v, OOC_IR__Constructor cons) {
2344
2345 return;
2346 ;
2347 }
2348
OOC_IR__ConstructorDesc_Accept(OOC_IR__Constructor cons,OOC_IR__Visitor v)2349 void OOC_IR__ConstructorDesc_Accept(OOC_IR__Constructor cons, OOC_IR__Visitor v) {
2350 register OOC_INT64 i0,i1;
2351
2352 i0 = (OOC_INT64)v;
2353 i1 = (OOC_INT64)cons;
2354 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 78552)))), OOC_IR__VisitorDesc_VisitConstructor)),OOC_IR__VisitorDesc_VisitConstructor)((OOC_IR__Visitor)i0, (OOC_IR__Constructor)i1);
2355 return;
2356 ;
2357 }
2358
OOC_IR__InitCurrentException(OOC_IR__CurrentException ce,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type)2359 static void OOC_IR__InitCurrentException(OOC_IR__CurrentException ce, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type) {
2360 register OOC_INT64 i0,i1,i2;
2361
2362 i0 = (OOC_INT64)type;
2363 i1 = (OOC_INT64)sym;
2364 i2 = (OOC_INT64)ce;
2365 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
2366 *(OOC_INT64*)((_check_pointer(i2, 78870))+16) = (OOC_INT64)0;
2367 return;
2368 ;
2369 }
2370
OOC_IR__BuilderDesc_NewCurrentException(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type)2371 OOC_IR__Expression OOC_IR__BuilderDesc_NewCurrentException(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type) {
2372 register OOC_INT64 i0,i1,i2;
2373
2374 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__CurrentException.baseTypes[0]);
2375 i1 = (OOC_INT64)type;
2376 i2 = (OOC_INT64)sym;
2377 OOC_IR__InitCurrentException((OOC_IR__CurrentException)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1);
2378 return (OOC_IR__Expression)i0;
2379 ;
2380 }
2381
OOC_IR__VisitorDesc_VisitCurrentException(OOC_IR__Visitor v,OOC_IR__CurrentException ce)2382 void OOC_IR__VisitorDesc_VisitCurrentException(OOC_IR__Visitor v, OOC_IR__CurrentException ce) {
2383
2384 return;
2385 ;
2386 }
2387
OOC_IR__CurrentExceptionDesc_Accept(OOC_IR__CurrentException ce,OOC_IR__Visitor v)2388 void OOC_IR__CurrentExceptionDesc_Accept(OOC_IR__CurrentException ce, OOC_IR__Visitor v) {
2389 register OOC_INT64 i0,i1;
2390
2391 i0 = (OOC_INT64)v;
2392 i1 = (OOC_INT64)ce;
2393 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 79357)))), OOC_IR__VisitorDesc_VisitCurrentException)),OOC_IR__VisitorDesc_VisitCurrentException)((OOC_IR__Visitor)i0, (OOC_IR__CurrentException)i1);
2394 return;
2395 ;
2396 }
2397
OOC_IR__InitDeref(OOC_IR__Deref d,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression pointer,OOC_CHAR8 checkPointer)2398 static void OOC_IR__InitDeref(OOC_IR__Deref d, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression pointer, OOC_CHAR8 checkPointer) {
2399 register OOC_INT64 i0,i1,i2,i3;
2400 OOC_SymbolTable__Type baseType;
2401
2402 i0 = (OOC_INT64)pointer;
2403 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 79714))+8);
2404 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 79714))+8);
2405 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 79719)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
2406 baseType = (OOC_SymbolTable__Type)i1;
2407 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 79755)))), OOC_SymbolTable__TypeDesc_Bound)),OOC_SymbolTable__TypeDesc_Bound)((OOC_SymbolTable__Type)i1);
2408 baseType = (OOC_SymbolTable__Type)i1;
2409 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 79794)))), &_td_OOC_SymbolTable__PointerDesc, 79794)), 79802))+72);
2410 baseType = (OOC_SymbolTable__Type)i1;
2411 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 79851))+8);
2412 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 79851))+8);
2413 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 79856)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i1);
2414 i2 = (OOC_INT64)d;
2415 i3 = (OOC_INT64)sym;
2416 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
2417 *(OOC_INT64*)((_check_pointer(i2, 79882))+16) = i0;
2418 i0 = checkPointer;
2419 *(OOC_UINT8*)((_check_pointer(i2, 79909))+24) = i0;
2420 return;
2421 ;
2422 }
2423
OOC_IR__BuilderDesc_NewDeref(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression design)2424 OOC_IR__Expression OOC_IR__BuilderDesc_NewDeref(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression design) {
2425 register OOC_INT64 i0,i1,i2,i3,i4,i5;
2426 OOC_SymbolTable__Type type;
2427 OOC_SymbolTable__Record _class;
2428 OOC_IR__Deref i;
2429
2430 i0 = (OOC_INT64)design;
2431 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 80125)))), &_td_OOC_IR__SelectProcDesc);
2432 if (i1) goto l7;
2433 i1 = (OOC_INT64)sym;
2434 i2 = (OOC_INT64)b;
2435 OOC_IR__BuilderDesc_CheckFunctionOp((OOC_IR__Builder)i2, (OOC_IR__Expression)i0, (OOC_Scanner_SymList__Symbol)i1);
2436 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80884))+8);
2437 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80884))+8);
2438 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 80889)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i4);
2439 type = (OOC_SymbolTable__Type)i3;
2440 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 80916)))), OOC_SymbolTable__TypeDesc_Bound)),OOC_SymbolTable__TypeDesc_Bound)((OOC_SymbolTable__Type)i3);
2441 i3 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 80925)))), &_td_OOC_SymbolTable__PointerDesc));
2442 if (i3) goto l5;
2443 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Deref.baseTypes[0]);
2444 i = (OOC_IR__Deref)i3;
2445 i4 = *(OOC_INT32*)((_check_pointer(i1, 81123))+28);
2446 i5 = (OOC_INT64)OOC_Config_StdPragmas__derefCheck;
2447 i2 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i5, i4);
2448 OOC_IR__InitDeref((OOC_IR__Deref)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0, i2);
2449 return (OOC_IR__Expression)i3;
2450 goto l19;
2451 l5:
2452 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 80989));
2453 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 80962)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 21, (OOC_Scanner_SymList__Symbol)i0);
2454 return (OOC_IR__Expression)i0;
2455 goto l19;
2456 l7:
2457 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80202))+24);
2458 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80202))+24);
2459 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 80213)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
2460 type = (OOC_SymbolTable__Type)i1;
2461 i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 80249)))), &_td_OOC_SymbolTable__RecordDesc, 80249);
2462 _class = (OOC_SymbolTable__Record)i1;
2463 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80348))+40);
2464 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 80287))+96);
2465 i2 = *(OOC_INT32*)((_check_pointer(i2, 80355))+96);
2466 i1 = (OOC_INT64)OOC_SymbolTable_Namespace__ExtendedDesc_GetSuperProcByIndex((OOC_SymbolTable_Namespace__Extended)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 80301)))), &_td_OOC_SymbolTable_Namespace__ExtendedDesc, 80301)), i2);
2467 *(OOC_INT64*)((_check_pointer(i0, 80270))+40) = i1;
2468 i1 = *(OOC_UINT8*)((_check_pointer(i0, 80385))+57);
2469 if (i1) goto l17;
2470 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80473))+40);
2471 i1 = i1==(OOC_INT64)0;
2472 if (i1) goto l15;
2473 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80587))+40);
2474 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 80595))+112);
2475 *(OOC_INT64*)((_check_pointer(i0, 80571))+8) = i1;
2476 *(OOC_UINT8*)((_check_pointer(i0, 80623))+56) = 1u;
2477 *(OOC_UINT8*)((_check_pointer(i0, 80661))+57) = 1u;
2478 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 80701))+40);
2479 i1 = *(OOC_UINT8*)((_check_pointer(i1, 80708))+90);
2480 if (!i1) goto l14;
2481 i1 = (OOC_INT64)b;
2482 i2 = (OOC_INT64)sym;
2483 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 80736)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 58, (OOC_Scanner_SymList__Symbol)i2);
2484 l14:
2485 return (OOC_IR__Expression)i0;
2486 goto l19;
2487 l15:
2488 i0 = (OOC_INT64)b;
2489 i1 = (OOC_INT64)sym;
2490 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 80509)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 59, (OOC_Scanner_SymList__Symbol)i1);
2491 return (OOC_IR__Expression)i0;
2492 goto l19;
2493 l17:
2494 i0 = (OOC_INT64)b;
2495 i1 = (OOC_INT64)sym;
2496 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 80419)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 60, (OOC_Scanner_SymList__Symbol)i1);
2497 return (OOC_IR__Expression)i0;
2498 l19:
2499 _failed_function(79982); return 0;
2500 ;
2501 }
2502
OOC_IR__VisitorDesc_VisitDeref(OOC_IR__Visitor v,OOC_IR__Deref index)2503 void OOC_IR__VisitorDesc_VisitDeref(OOC_IR__Visitor v, OOC_IR__Deref index) {
2504
2505 return;
2506 ;
2507 }
2508
OOC_IR__DerefDesc_Accept(OOC_IR__Deref index,OOC_IR__Visitor v)2509 void OOC_IR__DerefDesc_Accept(OOC_IR__Deref index, OOC_IR__Visitor v) {
2510 register OOC_INT64 i0,i1;
2511
2512 i0 = (OOC_INT64)v;
2513 i1 = (OOC_INT64)index;
2514 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 81326)))), OOC_IR__VisitorDesc_VisitDeref)),OOC_IR__VisitorDesc_VisitDeref)((OOC_IR__Visitor)i0, (OOC_IR__Deref)i1);
2515 return;
2516 ;
2517 }
2518
OOC_IR__InitEntier(OOC_IR__Entier entier,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)2519 static void OOC_IR__InitEntier(OOC_IR__Entier entier, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
2520 register OOC_INT64 i0,i1,i2;
2521
2522 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
2523 i1 = (OOC_INT64)entier;
2524 i2 = (OOC_INT64)sym;
2525 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
2526 i0 = (OOC_INT64)expr;
2527 *(OOC_INT64*)((_check_pointer(i1, 81621))+16) = i0;
2528 return;
2529 ;
2530 }
2531
OOC_IR__BuilderDesc_NewEntier(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)2532 OOC_IR__Expression OOC_IR__BuilderDesc_NewEntier(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
2533 register OOC_INT64 i0,i1,i2;
2534
2535 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Entier.baseTypes[0]);
2536 i1 = (OOC_INT64)expr;
2537 i2 = (OOC_INT64)b;
2538 i1 = (OOC_INT64)OOC_IR__BuilderDesc_AssertReal((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
2539 i2 = (OOC_INT64)sym;
2540 OOC_IR__InitEntier((OOC_IR__Entier)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
2541 return (OOC_IR__Expression)i0;
2542 ;
2543 }
2544
OOC_IR__VisitorDesc_VisitEntier(OOC_IR__Visitor v,OOC_IR__Entier entier)2545 void OOC_IR__VisitorDesc_VisitEntier(OOC_IR__Visitor v, OOC_IR__Entier entier) {
2546
2547 return;
2548 ;
2549 }
2550
OOC_IR__EntierDesc_Accept(OOC_IR__Entier entier,OOC_IR__Visitor v)2551 void OOC_IR__EntierDesc_Accept(OOC_IR__Entier entier, OOC_IR__Visitor v) {
2552 register OOC_INT64 i0,i1;
2553
2554 i0 = (OOC_INT64)v;
2555 i1 = (OOC_INT64)entier;
2556 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 82023)))), OOC_IR__VisitorDesc_VisitEntier)),OOC_IR__VisitorDesc_VisitEntier)((OOC_IR__Visitor)i0, (OOC_IR__Entier)i1);
2557 return;
2558 ;
2559 }
2560
OOC_IR__InitIndex(OOC_IR__Index i,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression array,OOC_IR__Expression index,OOC_CHAR8 checkIndex)2561 static void OOC_IR__InitIndex(OOC_IR__Index i, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression array, OOC_IR__Expression index, OOC_CHAR8 checkIndex) {
2562 register OOC_INT64 i0,i1,i2,i3;
2563 OOC_SymbolTable__Type elementType;
2564
2565 i0 = (OOC_INT64)array;
2566 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 82382))+8);
2567 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 82382))+8);
2568 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 82387)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
2569 elementType = (OOC_SymbolTable__Type)i1;
2570 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 82434)))), &_td_OOC_SymbolTable__ArrayDesc, 82434)), 82440))+80);
2571 elementType = (OOC_SymbolTable__Type)i1;
2572 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 82490))+8);
2573 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 82490))+8);
2574 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 82495)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i1);
2575 i2 = (OOC_INT64)i;
2576 i3 = (OOC_INT64)sym;
2577 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
2578 *(OOC_INT64*)((_check_pointer(i2, 82524))+16) = i0;
2579 i0 = (OOC_INT64)index;
2580 *(OOC_INT64*)((_check_pointer(i2, 82546))+24) = i0;
2581 i0 = checkIndex;
2582 *(OOC_UINT8*)((_check_pointer(i2, 82568))+32) = i0;
2583 return;
2584 ;
2585 }
2586
OOC_IR__BuilderDesc_NewIndex(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression array,OOC_IR__Expression index)2587 OOC_IR__Expression OOC_IR__BuilderDesc_NewIndex(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression array, OOC_IR__Expression index) {
2588 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
2589 OOC_CHAR8 checkIndex;
2590 OOC_SymbolTable__Type type;
2591 OOC_SymbolTable__Array a;
2592
2593 i0 = (OOC_INT64)sym;
2594 i1 = *(OOC_INT32*)((_check_pointer(i0, 82871))+28);
2595 i2 = (OOC_INT64)b;
2596 i3 = (OOC_INT64)OOC_Config_StdPragmas__indexCheck;
2597 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i3, i1);
2598 checkIndex = i1;
2599 i3 = (OOC_INT64)array;
2600 OOC_IR__BuilderDesc_CheckFunctionOp((OOC_IR__Builder)i2, (OOC_IR__Expression)i3, (OOC_Scanner_SymList__Symbol)i0);
2601 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 82936))+8);
2602 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 82936))+8);
2603 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 82941)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i5);
2604 type = (OOC_SymbolTable__Type)i4;
2605 i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 82966)))), &_td_OOC_SymbolTable__PointerDesc);
2606 if (i5) goto l3;
2607 {register OOC_INT64 h0=i3;i3=i4;i4=h0;}
2608 goto l4;
2609 l3:
2610 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 83003)))), OOC_IR__BuilderDesc_NewDeref)),OOC_IR__BuilderDesc_NewDeref)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i3);
2611 array = (OOC_IR__Expression)i3;
2612 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 83047))+8);
2613 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 83047))+8);
2614 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 83052)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i5);
2615 type = (OOC_SymbolTable__Type)i4;
2616 {register OOC_INT64 h0=i3;i3=i4;i4=h0;}
2617 l4:
2618 i5 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 83087)))), &_td_OOC_SymbolTable__ArrayDesc));
2619 if (i5) goto l18;
2620 i3 = _type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 83176)))), &_td_OOC_SymbolTable__ArrayDesc, 83176);
2621 a = (OOC_SymbolTable__Array)i3;
2622 if (i1) goto l9;
2623 i1=0u;
2624 goto l10;
2625 l9:
2626 i1 = *(OOC_UINT8*)((_check_pointer(i3, 83218))+73);
2627
2628 l10:
2629 checkIndex = i1;
2630 i5 = (OOC_INT64)index;
2631 i5 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i5);
2632 index = (OOC_IR__Expression)i5;
2633 i6 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 83288)))), &_td_OOC_IR__ConstDesc);
2634 if (!i6) goto l17;
2635 i6 = *(OOC_UINT8*)((_check_pointer(i3, 83314))+72);
2636 if (i6) goto l15;
2637 i3 = *(OOC_INT32*)((_check_pointer(i3, 83607))+96);
2638 i2 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i2, (OOC_IR__Expression)i5, 0, i3);
2639 goto l17;
2640 l15:
2641 i2 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i2, (OOC_IR__Expression)i5, 0, 2147483647);
2642 l17:
2643 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Index.baseTypes[0]);
2644 OOC_IR__InitIndex((OOC_IR__Index)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i4, (OOC_IR__Expression)i5, i1);
2645 return (OOC_IR__Expression)i2;
2646 goto l19;
2647 l18:
2648 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 83120)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 15, (OOC_Scanner_SymList__Symbol)i0);
2649 return (OOC_IR__Expression)i0;
2650 l19:
2651 _failed_function(82636); return 0;
2652 ;
2653 }
2654
OOC_IR__VisitorDesc_VisitIndex(OOC_IR__Visitor v,OOC_IR__Index index)2655 void OOC_IR__VisitorDesc_VisitIndex(OOC_IR__Visitor v, OOC_IR__Index index) {
2656
2657 return;
2658 ;
2659 }
2660
OOC_IR__IndexDesc_Accept(OOC_IR__Index index,OOC_IR__Visitor v)2661 void OOC_IR__IndexDesc_Accept(OOC_IR__Index index, OOC_IR__Visitor v) {
2662 register OOC_INT64 i0,i1;
2663
2664 i0 = (OOC_INT64)v;
2665 i1 = (OOC_INT64)index;
2666 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 83889)))), OOC_IR__VisitorDesc_VisitIndex)),OOC_IR__VisitorDesc_VisitIndex)((OOC_IR__Visitor)i0, (OOC_IR__Index)i1);
2667 return;
2668 ;
2669 }
2670
OOC_IR__InitLen(OOC_IR__Len len,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression array,OOC_IR__Expression arrayVariable,OOC_INT32 dim)2671 static void OOC_IR__InitLen(OOC_IR__Len len, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression array, OOC_IR__Expression arrayVariable, OOC_INT32 dim) {
2672 register OOC_INT64 i0,i1,i2;
2673
2674 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
2675 i1 = (OOC_INT64)len;
2676 i2 = (OOC_INT64)sym;
2677 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
2678 i0 = variant;
2679 *(OOC_INT8*)((_check_pointer(i1, 84236))+16) = i0;
2680 i0 = (OOC_INT64)array;
2681 *(OOC_INT64*)((_check_pointer(i1, 84265))+24) = i0;
2682 i0 = (OOC_INT64)arrayVariable;
2683 *(OOC_INT64*)((_check_pointer(i1, 84290))+40) = i0;
2684 i0 = dim;
2685 *(OOC_INT32*)((_check_pointer(i1, 84331))+32) = i0;
2686 return;
2687 ;
2688 }
2689
OOC_IR__BuilderDesc_NewLen(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression array,OOC_INT32 dim)2690 OOC_IR__Expression OOC_IR__BuilderDesc_NewLen(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression array, OOC_INT32 dim) {
2691 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
2692 OOC_IR__Len len;
2693 OOC_IR__Expression arrayVariable;
2694 OOC_SymbolTable__Type type;
2695 OOC_INT8 variant;
2696
2697 i0 = (OOC_INT64)array;
2698 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 84609))+8);
2699 i1 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i1);
2700 i1 = !i1;
2701 if (i1) goto l3;
2702 i1=0u;
2703 goto l5;
2704 l3:
2705 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 84641))+8);
2706 i1 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i1);
2707 i1 = !i1;
2708
2709 l5:
2710 if (!i1) goto l7;
2711 i1 = (OOC_INT64)b;
2712 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 84683));
2713 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 84660)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 15, (OOC_Scanner_SymList__Symbol)i2);
2714 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 84704))+48);
2715 return (OOC_IR__Expression)i1;
2716 l7:
2717 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Len.baseTypes[0]);
2718 len = (OOC_IR__Len)i1;
2719 arrayVariable = (OOC_IR__Expression)i0;
2720 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 84799)))), &_td_OOC_IR__IndexDesc);
2721 if (i2) goto l10;
2722 i2=i0;
2723 goto l16;
2724 l10:
2725 i2=i0;
2726 l11_loop:
2727 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 84849)))), &_td_OOC_IR__IndexDesc, 84849)), 84855))+16);
2728 i3 = dim;
2729 arrayVariable = (OOC_IR__Expression)i2;
2730 dim = (i3+1);
2731 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 84799)))), &_td_OOC_IR__IndexDesc);
2732 if (i3) goto l11_loop;
2733 l16:
2734 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 84916))+8);
2735 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 84916))+8);
2736 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 84921)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i4);
2737 type = (OOC_SymbolTable__Type)i3;
2738 i4 = dim;
2739 i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 84946)))), &_td_OOC_SymbolTable__PredefTypeDesc);
2740 if (i5) goto l31;
2741 i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 85018)))), &_td_OOC_SymbolTable__ArrayDesc);
2742 if (i5) goto l21;
2743 i5=0u;
2744 goto l23;
2745 l21:
2746 i5 = OOC_SymbolTable__ArrayDesc_GetOpenDimensions((OOC_SymbolTable__Array)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 85061)))), &_td_OOC_SymbolTable__ArrayDesc, 85061)));
2747 i5 = i4>=i5;
2748
2749 l23:
2750 if (i5) goto l29;
2751 i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 85151)))), &_td_OOC_IR__VarDesc);
2752 if (i5) goto l27;
2753 variant = 19;
2754 i5=19;
2755 goto l32;
2756 l27:
2757 variant = 18;
2758 i5=18;
2759 goto l32;
2760 l29:
2761 variant = 17;
2762 i5=17;
2763 goto l32;
2764 l31:
2765 variant = 16;
2766 i5=16;
2767 l32:
2768 i6 = i5==19;
2769 if (!i6) goto l37;
2770 i6=1u;
2771 l37:
2772 if (i6) goto l39;
2773 i3=0u;
2774 goto l41;
2775 l39:
2776 i3 = *(OOC_UINT8*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 85346)))), &_td_OOC_SymbolTable__ArrayDesc, 85346)), 85352))+73);
2777 i3 = !i3;
2778
2779 l41:
2780 if (!i3) goto l43;
2781 i3 = (OOC_INT64)b;
2782 i6 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 85416));
2783 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 85386)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i3, 54, (OOC_Scanner_SymList__Symbol)i6);
2784 return (OOC_IR__Expression)i3;
2785 l43:
2786 i3 = (OOC_INT64)sym;
2787 OOC_IR__InitLen((OOC_IR__Len)i1, (OOC_Scanner_SymList__Symbol)i3, i5, (OOC_IR__Expression)i0, (OOC_IR__Expression)i2, i4);
2788 return (OOC_IR__Expression)i1;
2789 ;
2790 }
2791
OOC_IR__VisitorDesc_VisitLen(OOC_IR__Visitor v,OOC_IR__Len len)2792 void OOC_IR__VisitorDesc_VisitLen(OOC_IR__Visitor v, OOC_IR__Len len) {
2793
2794 return;
2795 ;
2796 }
2797
OOC_IR__LenDesc_Accept(OOC_IR__Len len,OOC_IR__Visitor v)2798 void OOC_IR__LenDesc_Accept(OOC_IR__Len len, OOC_IR__Visitor v) {
2799 register OOC_INT64 i0,i1;
2800
2801 i0 = (OOC_INT64)v;
2802 i1 = (OOC_INT64)len;
2803 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 85657)))), OOC_IR__VisitorDesc_VisitLen)),OOC_IR__VisitorDesc_VisitLen)((OOC_IR__Visitor)i0, (OOC_IR__Len)i1);
2804 return;
2805 ;
2806 }
2807
OOC_IR__InitNegate(OOC_IR__Negate neg,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)2808 static void OOC_IR__InitNegate(OOC_IR__Negate neg, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
2809 register OOC_INT64 i0,i1,i2,i3;
2810
2811 i0 = (OOC_INT64)expr;
2812 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 85902))+8);
2813 i2 = (OOC_INT64)neg;
2814 i3 = (OOC_INT64)sym;
2815 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
2816 *(OOC_INT64*)((_check_pointer(i2, 85918))+16) = i0;
2817 return;
2818 ;
2819 }
2820
OOC_IR__BuilderDesc_NewNegate(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)2821 OOC_IR__Expression OOC_IR__BuilderDesc_NewNegate(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
2822 register OOC_INT64 i0,i1,i2;
2823
2824 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Negate.baseTypes[0]);
2825 i1 = (OOC_INT64)expr;
2826 i2 = (OOC_INT64)sym;
2827 OOC_IR__InitNegate((OOC_IR__Negate)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
2828 return (OOC_IR__Expression)i0;
2829 ;
2830 }
2831
OOC_IR__VisitorDesc_VisitNegate(OOC_IR__Visitor v,OOC_IR__Negate neg)2832 void OOC_IR__VisitorDesc_VisitNegate(OOC_IR__Visitor v, OOC_IR__Negate neg) {
2833
2834 return;
2835 ;
2836 }
2837
OOC_IR__NegateDesc_Accept(OOC_IR__Negate neg,OOC_IR__Visitor v)2838 void OOC_IR__NegateDesc_Accept(OOC_IR__Negate neg, OOC_IR__Visitor v) {
2839 register OOC_INT64 i0,i1;
2840
2841 i0 = (OOC_INT64)v;
2842 i1 = (OOC_INT64)neg;
2843 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 86287)))), OOC_IR__VisitorDesc_VisitNegate)),OOC_IR__VisitorDesc_VisitNegate)((OOC_IR__Visitor)i0, (OOC_IR__Negate)i1);
2844 return;
2845 ;
2846 }
2847
OOC_IR__InitNewBlock(OOC_IR__NewBlock _new,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__Expression size)2848 static void OOC_IR__InitNewBlock(OOC_IR__NewBlock _new, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__Expression size) {
2849 register OOC_INT64 i0,i1,i2;
2850
2851 i0 = (OOC_INT64)type;
2852 i1 = (OOC_INT64)sym;
2853 i2 = (OOC_INT64)_new;
2854 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
2855 i0 = (OOC_INT64)size;
2856 *(OOC_INT64*)((_check_pointer(i2, 86591))+16) = i0;
2857 return;
2858 ;
2859 }
2860
OOC_IR__BuilderDesc_NewNewBlock(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__Expression size)2861 OOC_IR__Expression OOC_IR__BuilderDesc_NewNewBlock(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__Expression size) {
2862 register OOC_INT64 i0,i1,i2,i3;
2863
2864 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__NewBlock.baseTypes[0]);
2865 i1 = (OOC_INT64)size;
2866 i2 = (OOC_INT64)type;
2867 i3 = (OOC_INT64)sym;
2868 OOC_IR__InitNewBlock((OOC_IR__NewBlock)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i1);
2869 return (OOC_IR__Expression)i0;
2870 ;
2871 }
2872
OOC_IR__VisitorDesc_VisitNewBlock(OOC_IR__Visitor v,OOC_IR__NewBlock _new)2873 void OOC_IR__VisitorDesc_VisitNewBlock(OOC_IR__Visitor v, OOC_IR__NewBlock _new) {
2874
2875 return;
2876 ;
2877 }
2878
OOC_IR__NewBlockDesc_Accept(OOC_IR__NewBlock _new,OOC_IR__Visitor v)2879 void OOC_IR__NewBlockDesc_Accept(OOC_IR__NewBlock _new, OOC_IR__Visitor v) {
2880 register OOC_INT64 i0,i1;
2881
2882 i0 = (OOC_INT64)v;
2883 i1 = (OOC_INT64)_new;
2884 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 87034)))), OOC_IR__VisitorDesc_VisitNewBlock)),OOC_IR__VisitorDesc_VisitNewBlock)((OOC_IR__Visitor)i0, (OOC_IR__NewBlock)i1);
2885 return;
2886 ;
2887 }
2888
OOC_IR__InitNewObject(OOC_IR__NewObject _new,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__ExpressionList length)2889 static void OOC_IR__InitNewObject(OOC_IR__NewObject _new, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__ExpressionList length) {
2890 register OOC_INT64 i0,i1,i2;
2891
2892 i0 = (OOC_INT64)type;
2893 i1 = (OOC_INT64)sym;
2894 i2 = (OOC_INT64)_new;
2895 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
2896 i0 = (OOC_INT64)length;
2897 *(OOC_INT64*)((_check_pointer(i2, 87349))+16) = i0;
2898 return;
2899 ;
2900 }
2901
OOC_IR__BuilderDesc_NewNewObject(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__ExpressionList args)2902 OOC_IR__NewObject OOC_IR__BuilderDesc_NewNewObject(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__ExpressionList args) {
2903 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
2904 OOC_IR__ExpressionList length;
2905 OOC_INT32 i;
2906
2907 i0 = (OOC_INT64)args;
2908 i1 = i0==(OOC_INT64)0;
2909 if (i1) goto l11;
2910 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 87689)), 0);
2911 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ExpressionList.baseTypes[0], (i1-1));
2912 length = (OOC_IR__ExpressionList)i1;
2913 i = 0;
2914 i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 87727)), 0);
2915 i3 = 0<i2;
2916 if (!i3) goto l10;
2917 i3 = (OOC_INT64)b;
2918 i4=0;
2919 l5_loop:
2920 i5 = _check_pointer(i1, 87749);
2921 i6 = OOC_ARRAY_LENGTH(i5, 0);
2922 i7 = _check_pointer(i0, 87776);
2923 i8 = OOC_ARRAY_LENGTH(i7, 0);
2924 i9 = i4+1;
2925 i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i9, i8, OOC_UINT32, 87776))*8);
2926 i7 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i3, (OOC_IR__Expression)i7);
2927 *(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 87749))*8) = i7;
2928 i = i9;
2929 i4 = i9<i2;
2930 if (!i4) goto l10;
2931 i4=i9;
2932 goto l5_loop;
2933 l10:
2934 i0=i1;
2935 goto l12;
2936 l11:
2937 i0=(OOC_INT64)0;
2938 l12:
2939 i1 = (OOC_INT64)sym;
2940 i2 = (OOC_INT64)type;
2941 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__NewObject.baseTypes[0]);
2942 OOC_IR__InitNewObject((OOC_IR__NewObject)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i2, (OOC_IR__ExpressionList)i0);
2943 return (OOC_IR__NewObject)i3;
2944 ;
2945 }
2946
OOC_IR__VisitorDesc_VisitNewObject(OOC_IR__Visitor v,OOC_IR__NewObject _new)2947 void OOC_IR__VisitorDesc_VisitNewObject(OOC_IR__Visitor v, OOC_IR__NewObject _new) {
2948
2949 return;
2950 ;
2951 }
2952
OOC_IR__NewObjectDesc_Accept(OOC_IR__NewObject _new,OOC_IR__Visitor v)2953 void OOC_IR__NewObjectDesc_Accept(OOC_IR__NewObject _new, OOC_IR__Visitor v) {
2954 register OOC_INT64 i0,i1;
2955
2956 i0 = (OOC_INT64)v;
2957 i1 = (OOC_INT64)_new;
2958 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 88058)))), OOC_IR__VisitorDesc_VisitNewObject)),OOC_IR__VisitorDesc_VisitNewObject)((OOC_IR__Visitor)i0, (OOC_IR__NewObject)i1);
2959 return;
2960 ;
2961 }
2962
OOC_IR__InitNot(OOC_IR__Not neg,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)2963 static void OOC_IR__InitNot(OOC_IR__Not neg, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
2964 register OOC_INT64 i0,i1,i2,i3;
2965
2966 i0 = (OOC_INT64)expr;
2967 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 88300))+8);
2968 i2 = (OOC_INT64)neg;
2969 i3 = (OOC_INT64)sym;
2970 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
2971 *(OOC_INT64*)((_check_pointer(i2, 88316))+16) = i0;
2972 return;
2973 ;
2974 }
2975
OOC_IR__BuilderDesc_NewNot(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)2976 OOC_IR__Expression OOC_IR__BuilderDesc_NewNot(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
2977 register OOC_INT64 i0,i1,i2;
2978
2979 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Not.baseTypes[0]);
2980 i1 = (OOC_INT64)expr;
2981 i2 = (OOC_INT64)sym;
2982 OOC_IR__InitNot((OOC_IR__Not)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
2983 return (OOC_IR__Expression)i0;
2984 ;
2985 }
2986
OOC_IR__VisitorDesc_VisitNot(OOC_IR__Visitor v,OOC_IR__Not neg)2987 void OOC_IR__VisitorDesc_VisitNot(OOC_IR__Visitor v, OOC_IR__Not neg) {
2988
2989 return;
2990 ;
2991 }
2992
OOC_IR__NotDesc_Accept(OOC_IR__Not neg,OOC_IR__Visitor v)2993 void OOC_IR__NotDesc_Accept(OOC_IR__Not neg, OOC_IR__Visitor v) {
2994 register OOC_INT64 i0,i1;
2995
2996 i0 = (OOC_INT64)v;
2997 i1 = (OOC_INT64)neg;
2998 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 88658)))), OOC_IR__VisitorDesc_VisitNot)),OOC_IR__VisitorDesc_VisitNot)((OOC_IR__Visitor)i0, (OOC_IR__Not)i1);
2999 return;
3000 ;
3001 }
3002
OOC_IR__InitOdd(OOC_IR__Odd odd,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)3003 static void OOC_IR__InitOdd(OOC_IR__Odd odd, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
3004 register OOC_INT64 i0,i1,i2;
3005
3006 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(0);
3007 i1 = (OOC_INT64)odd;
3008 i2 = (OOC_INT64)sym;
3009 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
3010 i0 = (OOC_INT64)expr;
3011 *(OOC_INT64*)((_check_pointer(i1, 88931))+16) = i0;
3012 return;
3013 ;
3014 }
3015
OOC_IR__BuilderDesc_NewOdd(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr)3016 OOC_IR__Expression OOC_IR__BuilderDesc_NewOdd(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr) {
3017 register OOC_INT64 i0,i1,i2;
3018
3019 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Odd.baseTypes[0]);
3020 i1 = (OOC_INT64)expr;
3021 i2 = (OOC_INT64)b;
3022 i1 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
3023 i2 = (OOC_INT64)sym;
3024 OOC_IR__InitOdd((OOC_IR__Odd)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
3025 return (OOC_IR__Expression)i0;
3026 ;
3027 }
3028
OOC_IR__VisitorDesc_VisitOdd(OOC_IR__Visitor v,OOC_IR__Odd odd)3029 void OOC_IR__VisitorDesc_VisitOdd(OOC_IR__Visitor v, OOC_IR__Odd odd) {
3030
3031 return;
3032 ;
3033 }
3034
OOC_IR__OddDesc_Accept(OOC_IR__Odd odd,OOC_IR__Visitor v)3035 void OOC_IR__OddDesc_Accept(OOC_IR__Odd odd, OOC_IR__Visitor v) {
3036 register OOC_INT64 i0,i1;
3037
3038 i0 = (OOC_INT64)v;
3039 i1 = (OOC_INT64)odd;
3040 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 89291)))), OOC_IR__VisitorDesc_VisitOdd)),OOC_IR__VisitorDesc_VisitOdd)((OOC_IR__Visitor)i0, (OOC_IR__Odd)i1);
3041 return;
3042 ;
3043 }
3044
OOC_IR__InitSelectField(OOC_IR__SelectField sf,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression record,OOC_SymbolTable__FieldDecl field,OOC_Scanner_SymList__Symbol fieldSym)3045 static void OOC_IR__InitSelectField(OOC_IR__SelectField sf, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression record, OOC_SymbolTable__FieldDecl field, OOC_Scanner_SymList__Symbol fieldSym) {
3046 register OOC_INT64 i0,i1,i2,i3,i4;
3047 OOC_SymbolTable__Type recordType;
3048 OOC_SymbolTable__Type ptr;
3049
3050 i0 = (OOC_INT64)record;
3051 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 89705))+8);
3052 recordType = (OOC_SymbolTable__Type)i1;
3053 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 89733)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
3054 i3 = (OOC_INT64)field;
3055 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 89751))+8);
3056 i2 = i2!=i4;
3057 if (!i2) goto l9;
3058 l4_loop:
3059 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 89786)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
3060 ptr = (OOC_SymbolTable__Type)i2;
3061 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 89845)))), &_td_OOC_SymbolTable__RecordDesc, 89845)), 89852))+72);
3062 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 89828)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
3063 recordType = (OOC_SymbolTable__Type)i1;
3064 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 89733)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
3065 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 89751))+8);
3066 i2 = i2!=i4;
3067 if (i2) goto l4_loop;
3068 l9:
3069 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 89929))+88);
3070 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 89915)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
3071 i2 = (OOC_INT64)sf;
3072 i4 = (OOC_INT64)sym;
3073 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i1);
3074 *(OOC_INT64*)((_check_pointer(i2, 89944))+16) = i0;
3075 *(OOC_INT64*)((_check_pointer(i2, 89969))+24) = i3;
3076 i0 = (OOC_INT64)fieldSym;
3077 *(OOC_INT64*)((_check_pointer(i2, 89992))+32) = i0;
3078 return;
3079 ;
3080 }
3081
OOC_IR__BuilderDesc_NewSelectField(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression record,OOC_SymbolTable__FieldDecl field,OOC_Scanner_SymList__Symbol fieldSym)3082 OOC_IR__SelectField OOC_IR__BuilderDesc_NewSelectField(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression record, OOC_SymbolTable__FieldDecl field, OOC_Scanner_SymList__Symbol fieldSym) {
3083 register OOC_INT64 i0,i1,i2,i3,i4;
3084
3085 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__SelectField.baseTypes[0]);
3086 i1 = (OOC_INT64)fieldSym;
3087 i2 = (OOC_INT64)field;
3088 i3 = (OOC_INT64)record;
3089 i4 = (OOC_INT64)sym;
3090 OOC_IR__InitSelectField((OOC_IR__SelectField)i0, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i3, (OOC_SymbolTable__FieldDecl)i2, (OOC_Scanner_SymList__Symbol)i1);
3091 return (OOC_IR__SelectField)i0;
3092 ;
3093 }
3094
OOC_IR__VisitorDesc_VisitSelectField(OOC_IR__Visitor v,OOC_IR__SelectField sf)3095 void OOC_IR__VisitorDesc_VisitSelectField(OOC_IR__Visitor v, OOC_IR__SelectField sf) {
3096
3097 return;
3098 ;
3099 }
3100
OOC_IR__SelectFieldDesc_Accept(OOC_IR__SelectField sf,OOC_IR__Visitor v)3101 void OOC_IR__SelectFieldDesc_Accept(OOC_IR__SelectField sf, OOC_IR__Visitor v) {
3102 register OOC_INT64 i0,i1;
3103
3104 i0 = (OOC_INT64)v;
3105 i1 = (OOC_INT64)sf;
3106 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 90501)))), OOC_IR__VisitorDesc_VisitSelectField)),OOC_IR__VisitorDesc_VisitSelectField)((OOC_IR__Visitor)i0, (OOC_IR__SelectField)i1);
3107 return;
3108 ;
3109 }
3110
OOC_IR__InitSelectProc(OOC_IR__SelectProc sp,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression receiver,OOC_CHAR8 checkPointer,OOC_SymbolTable__Type recordType,OOC_SymbolTable__ProcDecl tbProc,OOC_Scanner_SymList__Symbol tbProcSym,OOC_CHAR8 isStaticCall)3111 static void OOC_IR__InitSelectProc(OOC_IR__SelectProc sp, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression receiver, OOC_CHAR8 checkPointer, OOC_SymbolTable__Type recordType, OOC_SymbolTable__ProcDecl tbProc, OOC_Scanner_SymList__Symbol tbProcSym, OOC_CHAR8 isStaticCall) {
3112 register OOC_INT64 i0,i1,i2,i3,i4;
3113 OOC_SymbolTable__Type _class;
3114 OOC_SymbolTable__Type baseRecord;
3115 OOC_SymbolTable__Type ptr;
3116
3117 i0 = (OOC_INT64)sp;
3118 i1 = (OOC_INT64)recordType;
3119 *(OOC_INT64*)((_check_pointer(i0, 90973))+24) = i1;
3120 i2 = (OOC_INT64)tbProc;
3121 i3 = (OOC_INT64)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i2);
3122 _class = (OOC_SymbolTable__Type)i3;
3123 baseRecord = (OOC_SymbolTable__Type)i1;
3124 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 91143)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
3125 i4 = i4!=i3;
3126 if (!i4) goto l9;
3127 l4_loop:
3128 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 91189)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
3129 ptr = (OOC_SymbolTable__Type)i4;
3130 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 91248)))), &_td_OOC_SymbolTable__RecordDesc, 91248)), 91255))+72);
3131 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 91231)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i4);
3132 baseRecord = (OOC_SymbolTable__Type)i1;
3133 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 91143)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
3134 i4 = i4!=i3;
3135 if (i4) goto l4_loop;
3136 l9:
3137 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 91329))+112);
3138 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 91314)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i3);
3139 i3 = (OOC_INT64)sym;
3140 OOC_IR__InitOperator((OOC_IR__Operator)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
3141 i1 = (OOC_INT64)receiver;
3142 *(OOC_INT64*)((_check_pointer(i0, 91350))+16) = i1;
3143 i1 = checkPointer;
3144 *(OOC_UINT8*)((_check_pointer(i0, 91380))+32) = i1;
3145 *(OOC_INT64*)((_check_pointer(i0, 91418))+40) = i2;
3146 i1 = (OOC_INT64)tbProcSym;
3147 *(OOC_INT64*)((_check_pointer(i0, 91444))+48) = i1;
3148 i1 = isStaticCall;
3149 *(OOC_UINT8*)((_check_pointer(i0, 91476))+56) = i1;
3150 *(OOC_UINT8*)((_check_pointer(i0, 91514))+57) = 0u;
3151 return;
3152 ;
3153 }
3154
OOC_IR__BuilderDesc_NewSelectProc(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression receiver,OOC_SymbolTable__Type recordType,OOC_SymbolTable__ProcDecl tbProc,OOC_Scanner_SymList__Symbol tbProcSym,OOC_CHAR8 isStaticCall)3155 OOC_IR__SelectProc OOC_IR__BuilderDesc_NewSelectProc(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression receiver, OOC_SymbolTable__Type recordType, OOC_SymbolTable__ProcDecl tbProc, OOC_Scanner_SymList__Symbol tbProcSym, OOC_CHAR8 isStaticCall) {
3156 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
3157
3158 i0 = (OOC_INT64)sym;
3159 i1 = *(OOC_INT32*)((_check_pointer(i0, 92010))+28);
3160 i2 = (OOC_INT64)b;
3161 i3 = (OOC_INT64)OOC_Config_StdPragmas__derefCheck;
3162 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i3, i1);
3163 i2 = (OOC_INT64)receiver;
3164 i3 = (OOC_INT64)recordType;
3165 i4 = (OOC_INT64)tbProc;
3166 i5 = (OOC_INT64)tbProcSym;
3167 i6 = isStaticCall;
3168 i7 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__SelectProc.baseTypes[0]);
3169 OOC_IR__InitSelectProc((OOC_IR__SelectProc)i7, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i2, i1, (OOC_SymbolTable__Type)i3, (OOC_SymbolTable__ProcDecl)i4, (OOC_Scanner_SymList__Symbol)i5, i6);
3170 return (OOC_IR__SelectProc)i7;
3171 ;
3172 }
3173
OOC_IR__VisitorDesc_VisitSelectProc(OOC_IR__Visitor v,OOC_IR__SelectProc sp)3174 void OOC_IR__VisitorDesc_VisitSelectProc(OOC_IR__Visitor v, OOC_IR__SelectProc sp) {
3175
3176 return;
3177 ;
3178 }
3179
OOC_IR__SelectProcDesc_Accept(OOC_IR__SelectProc sp,OOC_IR__Visitor v)3180 void OOC_IR__SelectProcDesc_Accept(OOC_IR__SelectProc sp, OOC_IR__Visitor v) {
3181 register OOC_INT64 i0,i1;
3182
3183 i0 = (OOC_INT64)v;
3184 i1 = (OOC_INT64)sp;
3185 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 92344)))), OOC_IR__VisitorDesc_VisitSelectProc)),OOC_IR__VisitorDesc_VisitSelectProc)((OOC_IR__Visitor)i0, (OOC_IR__SelectProc)i1);
3186 return;
3187 ;
3188 }
3189
OOC_IR__InitSetMember(OOC_IR__SetMember op,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression element,OOC_IR__Expression set)3190 static void OOC_IR__InitSetMember(OOC_IR__SetMember op, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression element, OOC_IR__Expression set) {
3191 register OOC_INT64 i0,i1,i2;
3192
3193 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(0);
3194 i1 = (OOC_INT64)op;
3195 i2 = (OOC_INT64)sym;
3196 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
3197 i0 = (OOC_INT64)element;
3198 *(OOC_INT64*)((_check_pointer(i1, 92646))+16) = i0;
3199 i0 = (OOC_INT64)set;
3200 *(OOC_INT64*)((_check_pointer(i1, 92673))+24) = i0;
3201 return;
3202 ;
3203 }
3204
OOC_IR__BuilderDesc_NewSetMember(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression element,OOC_IR__Expression set)3205 OOC_IR__Expression OOC_IR__BuilderDesc_NewSetMember(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression element, OOC_IR__Expression set) {
3206 register OOC_INT64 i0,i1,i2,i3,i4;
3207 OOC_IR__SetMember op;
3208
3209 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__SetMember.baseTypes[0]);
3210 op = (OOC_IR__SetMember)i0;
3211 i1 = (OOC_INT64)set;
3212 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 92905))+8);
3213 i3 = (OOC_INT64)b;
3214 i4 = (OOC_INT64)element;
3215 i2 = (OOC_INT64)OOC_IR__BuilderDesc_ValidSetElement((OOC_IR__Builder)i3, (OOC_IR__Expression)i4, (OOC_SymbolTable__Type)i2);
3216 i3 = (OOC_INT64)sym;
3217 OOC_IR__InitSetMember((OOC_IR__SetMember)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
3218 return (OOC_IR__Expression)i0;
3219 ;
3220 }
3221
OOC_IR__VisitorDesc_VisitSetMember(OOC_IR__Visitor v,OOC_IR__SetMember op)3222 void OOC_IR__VisitorDesc_VisitSetMember(OOC_IR__Visitor v, OOC_IR__SetMember op) {
3223
3224 return;
3225 ;
3226 }
3227
OOC_IR__SetMemberDesc_Accept(OOC_IR__SetMember op,OOC_IR__Visitor v)3228 void OOC_IR__SetMemberDesc_Accept(OOC_IR__SetMember op, OOC_IR__Visitor v) {
3229 register OOC_INT64 i0,i1;
3230
3231 i0 = (OOC_INT64)v;
3232 i1 = (OOC_INT64)op;
3233 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 93105)))), OOC_IR__VisitorDesc_VisitSetMember)),OOC_IR__VisitorDesc_VisitSetMember)((OOC_IR__Visitor)i0, (OOC_IR__SetMember)i1);
3234 return;
3235 ;
3236 }
3237
OOC_IR__InitSetOp(OOC_IR__SetOp op,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right,OOC_SymbolTable__Type type)3238 static void OOC_IR__InitSetOp(OOC_IR__SetOp op, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right, OOC_SymbolTable__Type type) {
3239 register OOC_INT64 i0,i1,i2;
3240
3241 i0 = (OOC_INT64)type;
3242 i1 = (OOC_INT64)sym;
3243 i2 = (OOC_INT64)op;
3244 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
3245 i0 = variant;
3246 *(OOC_INT8*)((_check_pointer(i2, 93402))+16) = i0;
3247 i0 = (OOC_INT64)left;
3248 *(OOC_INT64*)((_check_pointer(i2, 93429))+24) = i0;
3249 i0 = (OOC_INT64)right;
3250 *(OOC_INT64*)((_check_pointer(i2, 93450))+32) = i0;
3251 return;
3252 ;
3253 }
3254
OOC_IR__BuilderDesc_NewSetOp(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_INT8 variant,OOC_IR__Expression left,OOC_IR__Expression right)3255 OOC_IR__Expression OOC_IR__BuilderDesc_NewSetOp(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_INT8 variant, OOC_IR__Expression left, OOC_IR__Expression right) {
3256 register OOC_INT64 i0,i1,i2,i3,i4,i5;
3257 OOC_IR__SetOp op;
3258
3259 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__SetOp.baseTypes[0]);
3260 op = (OOC_IR__SetOp)i0;
3261 i1 = (OOC_INT64)right;
3262 i2 = (OOC_INT64)left;
3263 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 93671))+8);
3264 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 93659))+8);
3265 i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__Type)i3);
3266 _assert(i3, 127, 93636);
3267 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 93730))+8);
3268 i4 = (OOC_INT64)sym;
3269 i5 = variant;
3270 OOC_IR__InitSetOp((OOC_IR__SetOp)i0, (OOC_Scanner_SymList__Symbol)i4, i5, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1, (OOC_SymbolTable__Type)i3);
3271 return (OOC_IR__Expression)i0;
3272 ;
3273 }
3274
OOC_IR__VisitorDesc_VisitSetOp(OOC_IR__Visitor v,OOC_IR__SetOp op)3275 void OOC_IR__VisitorDesc_VisitSetOp(OOC_IR__Visitor v, OOC_IR__SetOp op) {
3276
3277 return;
3278 ;
3279 }
3280
OOC_IR__SetOpDesc_Accept(OOC_IR__SetOp op,OOC_IR__Visitor v)3281 void OOC_IR__SetOpDesc_Accept(OOC_IR__SetOp op, OOC_IR__Visitor v) {
3282 register OOC_INT64 i0,i1;
3283
3284 i0 = (OOC_INT64)v;
3285 i1 = (OOC_INT64)op;
3286 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 93905)))), OOC_IR__VisitorDesc_VisitSetOp)),OOC_IR__VisitorDesc_VisitSetOp)((OOC_IR__Visitor)i0, (OOC_IR__SetOp)i1);
3287 return;
3288 ;
3289 }
3290
OOC_IR__InitSetRange(OOC_IR__SetRange range,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression from,OOC_IR__Expression to)3291 static void OOC_IR__InitSetRange(OOC_IR__SetRange range, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression from, OOC_IR__Expression to) {
3292 register OOC_INT64 i0,i1,i2;
3293
3294 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(10);
3295 i1 = (OOC_INT64)range;
3296 i2 = (OOC_INT64)sym;
3297 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
3298 i0 = (OOC_INT64)from;
3299 *(OOC_INT64*)((_check_pointer(i1, 94225))+16) = i0;
3300 i0 = (OOC_INT64)to;
3301 *(OOC_INT64*)((_check_pointer(i1, 94249))+24) = i0;
3302 return;
3303 ;
3304 }
3305
OOC_IR__BuilderDesc_NewSetRange(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression type,OOC_IR__Expression from,OOC_IR__Expression to,OOC_CHAR8 isSet)3306 OOC_IR__Expression OOC_IR__BuilderDesc_NewSetRange(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression type, OOC_IR__Expression from, OOC_IR__Expression to, OOC_CHAR8 isSet) {
3307 register OOC_INT64 i0,i1,i2,i3,i4;
3308 OOC_SymbolTable__Type set;
3309 OOC_SymbolTable__Type t;
3310
3311 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(10);
3312 set = (OOC_SymbolTable__Type)i0;
3313 i1 = (OOC_INT64)type;
3314 i2 = i1!=(OOC_INT64)0;
3315 if (!i2) goto l8;
3316 i2 = (OOC_INT64)b;
3317 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 94559)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
3318 t = (OOC_SymbolTable__Type)i3;
3319 i4 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i3);
3320 if (i4) goto l6;
3321 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 94678));
3322 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 94653)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 79, (OOC_Scanner_SymList__Symbol)i1);
3323 return (OOC_IR__Expression)i1;
3324
3325 goto l8;
3326 l6:
3327 set = (OOC_SymbolTable__Type)i3;
3328 i0=i3;
3329 l8:
3330 i1 = (OOC_INT64)from;
3331 i2 = i1==(OOC_INT64)0;
3332 if (i2) goto l11;
3333 i2=0u;
3334 goto l13;
3335 l11:
3336 i2 = (OOC_INT64)to;
3337 i2 = i2==(OOC_INT64)0;
3338
3339 l13:
3340 if (i2) goto l18;
3341 i2 = isSet;
3342 if (!i2) goto l17;
3343 i2 = (OOC_INT64)b;
3344 i1 = (OOC_INT64)OOC_IR__BuilderDesc_ValidSetElement((OOC_IR__Builder)i2, (OOC_IR__Expression)i1, (OOC_SymbolTable__Type)i0);
3345 from = (OOC_IR__Expression)i1;
3346 i1 = (OOC_INT64)to;
3347 i0 = (OOC_INT64)OOC_IR__BuilderDesc_ValidSetElement((OOC_IR__Builder)i2, (OOC_IR__Expression)i1, (OOC_SymbolTable__Type)i0);
3348 to = (OOC_IR__Expression)i0;
3349 l17:
3350 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__SetRange.baseTypes[0]);
3351 i1 = (OOC_INT64)to;
3352 i2 = (OOC_INT64)from;
3353 i3 = (OOC_INT64)sym;
3354 OOC_IR__InitSetRange((OOC_IR__SetRange)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
3355 return (OOC_IR__Expression)i0;
3356 goto l19;
3357 l18:
3358 i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Set.baseTypes[0]);
3359 Object_Boxed__SetDesc_INIT((Object_Boxed__Set)i1, 0u);
3360 i2 = (OOC_INT64)b;
3361 i3 = (OOC_INT64)sym;
3362 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 94774)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i1);
3363 return (OOC_IR__Expression)i0;
3364 l19:
3365 _failed_function(94304); return 0;
3366 ;
3367 }
3368
OOC_IR__VisitorDesc_VisitSetRange(OOC_IR__Visitor v,OOC_IR__SetRange range)3369 void OOC_IR__VisitorDesc_VisitSetRange(OOC_IR__Visitor v, OOC_IR__SetRange range) {
3370
3371 return;
3372 ;
3373 }
3374
OOC_IR__SetRangeDesc_Accept(OOC_IR__SetRange range,OOC_IR__Visitor v)3375 void OOC_IR__SetRangeDesc_Accept(OOC_IR__SetRange range, OOC_IR__Visitor v) {
3376 register OOC_INT64 i0,i1;
3377
3378 i0 = (OOC_INT64)v;
3379 i1 = (OOC_INT64)range;
3380 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 95271)))), OOC_IR__VisitorDesc_VisitSetRange)),OOC_IR__VisitorDesc_VisitSetRange)((OOC_IR__Visitor)i0, (OOC_IR__SetRange)i1);
3381 return;
3382 ;
3383 }
3384
OOC_IR__SetRangeDesc_IsEmpty(OOC_IR__SetRange range)3385 OOC_CHAR8 OOC_IR__SetRangeDesc_IsEmpty(OOC_IR__SetRange range) {
3386 register OOC_INT64 i0,i1,i2;
3387
3388 i0 = (OOC_INT64)range;
3389 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 95463))+24);
3390 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 95431))+16);
3391 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 95431))+16);
3392 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 95438)))), &_td_OOC_IR__ConstDesc, 95438)), 95444))+16);
3393 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 95468)))), &_td_OOC_IR__ConstDesc, 95468)), 95474))+16);
3394 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 95438)))), &_td_OOC_IR__ConstDesc, 95438)), 95444))+16);
3395 i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 95451)))), Object_Boxed__ObjectDesc_Cmp)),Object_Boxed__ObjectDesc_Cmp)((Object_Boxed__Object)i2, (Object__Object)i1);
3396 return (i0>0);
3397 ;
3398 }
3399
OOC_IR__SetRangeDesc_IntersectsWith(OOC_IR__SetRange range,OOC_IR__SetRange range2)3400 OOC_CHAR8 OOC_IR__SetRangeDesc_IntersectsWith(OOC_IR__SetRange range, OOC_IR__SetRange range2) {
3401 register OOC_INT64 i0,i1,i2,i3,i4;
3402
3403 i0 = (OOC_INT64)range2;
3404 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 95730))+16);
3405 i2 = (OOC_INT64)range;
3406 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 95701))+24);
3407 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 95701))+24);
3408 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 95705)))), &_td_OOC_IR__ConstDesc, 95705)), 95711))+16);
3409 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 95736)))), &_td_OOC_IR__ConstDesc, 95736)), 95742))+16);
3410 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 95705)))), &_td_OOC_IR__ConstDesc, 95705)), 95711))+16);
3411 i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 95717)))), Object_Boxed__ObjectDesc_Cmp)),Object_Boxed__ObjectDesc_Cmp)((Object_Boxed__Object)i3, (Object__Object)i1);
3412 i1 = i1<0;
3413 if (i1) goto l3;
3414 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 95805))+24);
3415 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 95774))+16);
3416 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 95774))+16);
3417 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 95780)))), &_td_OOC_IR__ConstDesc, 95780)), 95786))+16);
3418 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 95809)))), &_td_OOC_IR__ConstDesc, 95809)), 95815))+16);
3419 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 95780)))), &_td_OOC_IR__ConstDesc, 95780)), 95786))+16);
3420 i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 95792)))), Object_Boxed__ObjectDesc_Cmp)),Object_Boxed__ObjectDesc_Cmp)((Object_Boxed__Object)i1, (Object__Object)i0);
3421 i0 = i0>0;
3422
3423 goto l4;
3424 l3:
3425 i0=1u;
3426 l4:
3427 return (!i0);
3428 ;
3429 }
3430
OOC_IR__InitShift(OOC_IR__Shift shift,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression value,OOC_IR__Expression by,OOC_CHAR8 rotate)3431 static void OOC_IR__InitShift(OOC_IR__Shift shift, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression value, OOC_IR__Expression by, OOC_CHAR8 rotate) {
3432 register OOC_INT64 i0,i1,i2,i3;
3433
3434 i0 = (OOC_INT64)value;
3435 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 96110))+8);
3436 i2 = (OOC_INT64)shift;
3437 i3 = (OOC_INT64)sym;
3438 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1);
3439 *(OOC_INT64*)((_check_pointer(i2, 96128))+16) = i0;
3440 i0 = (OOC_INT64)by;
3441 *(OOC_INT64*)((_check_pointer(i2, 96155))+24) = i0;
3442 i0 = rotate;
3443 *(OOC_UINT8*)((_check_pointer(i2, 96176))+32) = i0;
3444 return;
3445 ;
3446 }
3447
OOC_IR__BuilderDesc_NewShift(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression value,OOC_IR__Expression by,OOC_CHAR8 rotate)3448 OOC_IR__Expression OOC_IR__BuilderDesc_NewShift(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression value, OOC_IR__Expression by, OOC_CHAR8 rotate) {
3449 register OOC_INT64 i0,i1,i2,i3,i4;
3450 OOC_IR__Shift shift;
3451 auto OOC_IR__Expression OOC_IR__BuilderDesc_NewShift_AssertShiftable(OOC_IR__Expression expr);
3452
3453 OOC_IR__Expression OOC_IR__BuilderDesc_NewShift_AssertShiftable(OOC_IR__Expression expr) {
3454 register OOC_INT64 i0,i1,i2,i3;
3455 Object_BigInt__BigInt v;
3456
3457 i0 = (OOC_INT64)b;
3458 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 96495))+48);
3459 i2 = (OOC_INT64)expr;
3460 i1 = i2!=i1;
3461 if (!i1) goto l18;
3462 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 96546))+8);
3463 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
3464 if (i1) goto l5;
3465 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 96587))+8);
3466 i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
3467
3468 goto l7;
3469 l5:
3470 i1=1u;
3471 l7:
3472 if (i1) goto l9;
3473 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 96630))+8);
3474 i1 = OOC_SymbolTable_TypeRules__IsPredefType((OOC_SymbolTable__Type)i1, 11);
3475
3476 goto l11;
3477 l9:
3478 i1=1u;
3479 l11:
3480 if (i1) goto l13;
3481 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 96683))+8);
3482 i1 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i1);
3483
3484 goto l14;
3485 l13:
3486 i1=1u;
3487 l14:
3488 i1 = !i1;
3489 if (!i1) goto l18;
3490 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 96734));
3491 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 96707)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 5, (OOC_Scanner_SymList__Symbol)i1);
3492 i0 = (OOC_INT64)Object_BigInt__NewInt(1);
3493 v = (Object_BigInt__BigInt)i0;
3494 i1 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i0);
3495 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 96804));
3496 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i0);
3497 return (OOC_IR__Expression)i0;
3498 l18:
3499 return (OOC_IR__Expression)i2;
3500 ;
3501 }
3502
3503
3504 shift = (OOC_IR__Shift)((OOC_INT64)RT0__NewObject(_td_OOC_IR__Shift.baseTypes[0]));
3505 i0 = (OOC_INT64)b;
3506 i1 = (OOC_INT64)by;
3507 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i0, (OOC_IR__Expression)i1);
3508 i1 = (OOC_INT64)value;
3509 i1 = (OOC_INT64)OOC_IR__BuilderDesc_NewShift_AssertShiftable((OOC_IR__Expression)i1);
3510 i2 = (OOC_INT64)sym;
3511 i3 = rotate;
3512 i4 = (OOC_INT64)shift;
3513 OOC_IR__InitShift((OOC_IR__Shift)i4, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0, i3);
3514 return (OOC_IR__Expression)i4;
3515 ;
3516 }
3517
OOC_IR__VisitorDesc_VisitShift(OOC_IR__Visitor v,OOC_IR__Shift shift)3518 void OOC_IR__VisitorDesc_VisitShift(OOC_IR__Visitor v, OOC_IR__Shift shift) {
3519
3520 return;
3521 ;
3522 }
3523
OOC_IR__ShiftDesc_Accept(OOC_IR__Shift shift,OOC_IR__Visitor v)3524 void OOC_IR__ShiftDesc_Accept(OOC_IR__Shift shift, OOC_IR__Visitor v) {
3525 register OOC_INT64 i0,i1;
3526
3527 i0 = (OOC_INT64)v;
3528 i1 = (OOC_INT64)shift;
3529 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 97209)))), OOC_IR__VisitorDesc_VisitShift)),OOC_IR__VisitorDesc_VisitShift)((OOC_IR__Visitor)i0, (OOC_IR__Shift)i1);
3530 return;
3531 ;
3532 }
3533
OOC_IR__InitTypeCast(OOC_IR__TypeCast cast,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__Expression expr)3534 static void OOC_IR__InitTypeCast(OOC_IR__TypeCast cast, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__Expression expr) {
3535 register OOC_INT64 i0,i1,i2;
3536
3537 i0 = (OOC_INT64)type;
3538 i1 = (OOC_INT64)sym;
3539 i2 = (OOC_INT64)cast;
3540 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
3541 i0 = (OOC_INT64)expr;
3542 *(OOC_INT64*)((_check_pointer(i2, 97517))+16) = i0;
3543 return;
3544 ;
3545 }
3546
OOC_IR__BuilderDesc_NewTypeCast(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression typeExpr,OOC_IR__Expression expr)3547 OOC_IR__TypeCast OOC_IR__BuilderDesc_NewTypeCast(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression typeExpr, OOC_IR__Expression expr) {
3548 register OOC_INT64 i0,i1,i2,i3,i4;
3549 OOC_SymbolTable__Type type;
3550
3551 i0 = (OOC_INT64)b;
3552 i1 = (OOC_INT64)typeExpr;
3553 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 97756)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i0, (OOC_IR__Expression)i1);
3554 i1 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i1);
3555 type = (OOC_SymbolTable__Type)i1;
3556 i2 = *(OOC_INT32*)((_check_pointer(i1, 97792))+64);
3557 i2 = i2<0;
3558 if (i2) goto l3;
3559 i2 = (OOC_INT64)expr;
3560 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 97811))+8);
3561 i2 = *(OOC_INT32*)((_check_pointer(i2, 97816))+64);
3562 i2 = i2<0;
3563
3564 goto l4;
3565 l3:
3566 i2=1u;
3567 l4:
3568 i3 = (OOC_INT64)expr;
3569 if (i2) goto l7;
3570 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 97854))+8);
3571 i4 = *(OOC_INT32*)((_check_pointer(i1, 97842))+64);
3572 i2 = *(OOC_INT32*)((_check_pointer(i2, 97859))+64);
3573 i2 = i4!=i2;
3574
3575 goto l9;
3576 l7:
3577 i2=1u;
3578 l9:
3579 if (!i2) goto l11;
3580 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 97910));
3581 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 97878)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 52, (OOC_Scanner_SymList__Symbol)i2);
3582 l11:
3583 i0 = (OOC_INT64)sym;
3584 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeCast.baseTypes[0]);
3585 OOC_IR__InitTypeCast((OOC_IR__TypeCast)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i1, (OOC_IR__Expression)i3);
3586 return (OOC_IR__TypeCast)i2;
3587 ;
3588 }
3589
OOC_IR__VisitorDesc_VisitTypeCast(OOC_IR__Visitor v,OOC_IR__TypeCast cast)3590 void OOC_IR__VisitorDesc_VisitTypeCast(OOC_IR__Visitor v, OOC_IR__TypeCast cast) {
3591
3592 return;
3593 ;
3594 }
3595
OOC_IR__TypeCastDesc_Accept(OOC_IR__TypeCast cast,OOC_IR__Visitor v)3596 void OOC_IR__TypeCastDesc_Accept(OOC_IR__TypeCast cast, OOC_IR__Visitor v) {
3597 register OOC_INT64 i0,i1;
3598
3599 i0 = (OOC_INT64)v;
3600 i1 = (OOC_INT64)cast;
3601 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 98171)))), OOC_IR__VisitorDesc_VisitTypeCast)),OOC_IR__VisitorDesc_VisitTypeCast)((OOC_IR__Visitor)i0, (OOC_IR__TypeCast)i1);
3602 return;
3603 ;
3604 }
3605
OOC_IR__InitTypeConv(OOC_IR__TypeConv conv,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__Expression expr)3606 static void OOC_IR__InitTypeConv(OOC_IR__TypeConv conv, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__Expression expr) {
3607 register OOC_INT64 i0,i1,i2;
3608
3609 i0 = (OOC_INT64)type;
3610 i1 = (OOC_INT64)sym;
3611 i2 = (OOC_INT64)conv;
3612 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
3613 i0 = (OOC_INT64)expr;
3614 *(OOC_INT64*)((_check_pointer(i2, 98478))+16) = i0;
3615 return;
3616 ;
3617 }
3618
OOC_IR__BuilderDesc_NewTypeConv(OOC_IR__Builder b,OOC_SymbolTable__Type type,OOC_IR__Expression expr)3619 OOC_IR__Expression OOC_IR__BuilderDesc_NewTypeConv(OOC_IR__Builder b, OOC_SymbolTable__Type type, OOC_IR__Expression expr) {
3620 register OOC_INT64 i0,i1,i2,i3;
3621 OOC_IR__TypeConv conv;
3622
3623 i0 = (OOC_INT64)expr;
3624 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 98645))+8);
3625 i2 = (OOC_INT64)type;
3626 i1 = i1==i2;
3627 if (i1) goto l11;
3628 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 98760)))), &_td_OOC_IR__TypeConvDesc);
3629 if (i1) goto l5;
3630 i1=0u;
3631 goto l7;
3632 l5:
3633 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 98801))+8);
3634 i1 = OOC_SymbolTable_TypeRules__IncludesType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
3635
3636 l7:
3637 if (!i1) goto l10;
3638 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 98868)))), &_td_OOC_IR__TypeConvDesc, 98868)), 98877))+16);
3639 expr = (OOC_IR__Expression)i0;
3640
3641 l10:
3642 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeConv.baseTypes[0]);
3643 conv = (OOC_IR__TypeConv)i1;
3644 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 98943));
3645 OOC_IR__InitTypeConv((OOC_IR__TypeConv)i1, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i0);
3646 return (OOC_IR__Expression)i1;
3647 goto l12;
3648 l11:
3649 return (OOC_IR__Expression)i0;
3650 l12:
3651 _failed_function(98539); return 0;
3652 ;
3653 }
3654
OOC_IR__VisitorDesc_VisitTypeConv(OOC_IR__Visitor v,OOC_IR__TypeConv conv)3655 void OOC_IR__VisitorDesc_VisitTypeConv(OOC_IR__Visitor v, OOC_IR__TypeConv conv) {
3656
3657 return;
3658 ;
3659 }
3660
OOC_IR__TypeConvDesc_Accept(OOC_IR__TypeConv conv,OOC_IR__Visitor v)3661 void OOC_IR__TypeConvDesc_Accept(OOC_IR__TypeConv conv, OOC_IR__Visitor v) {
3662 register OOC_INT64 i0,i1;
3663
3664 i0 = (OOC_INT64)v;
3665 i1 = (OOC_INT64)conv;
3666 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 99160)))), OOC_IR__VisitorDesc_VisitTypeConv)),OOC_IR__VisitorDesc_VisitTypeConv)((OOC_IR__Visitor)i0, (OOC_IR__TypeConv)i1);
3667 return;
3668 ;
3669 }
3670
OOC_IR__BuilderDesc_Widen(OOC_IR__Builder b,OOC_IR__Expression * expr,OOC_SymbolTable__Type type)3671 OOC_CHAR8 OOC_IR__BuilderDesc_Widen(OOC_IR__Builder b, OOC_IR__Expression *expr, OOC_SymbolTable__Type type) {
3672 register OOC_INT64 i0,i1,i2;
3673
3674 i0 = (OOC_INT64)type;
3675 _assert((i0!=(OOC_INT64)0), 127, 100632);
3676 i1 = (OOC_INT64)*expr;
3677 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 100666))+8);
3678 i2 = i2==(OOC_INT64)0;
3679 if (i2) goto l107;
3680 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 100870))+8);
3681 i1 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
3682 if (i1) goto l105;
3683 i1 = (OOC_INT64)*expr;
3684 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 100989))+8);
3685 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 100996)))), &_td_OOC_SymbolTable__FormalParsDesc);
3686 if (i2) goto l99;
3687 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 101326))+8);
3688 i1 = OOC_SymbolTable_TypeRules__IncludesType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
3689 if (i1) goto l97;
3690 i1 = (OOC_INT64)*expr;
3691 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 101575))+8);
3692 i1 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
3693 if (i1) goto l95;
3694 i1 = (OOC_INT64)*expr;
3695 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 101737))+8);
3696 i1 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i1, 16);
3697 if (i1) goto l13;
3698 i1=0u;
3699 goto l15;
3700 l13:
3701 i1 = OOC_SymbolTable_TypeRules__IsNilCompatible((OOC_SymbolTable__Type)i0);
3702
3703 l15:
3704 if (i1) goto l93;
3705 i1 = OOC_SymbolTable_TypeRules__IsPredefType((OOC_SymbolTable__Type)i0, 12);
3706 if (i1) goto l19;
3707 i1=0u;
3708 goto l21;
3709 l19:
3710 i1 = (OOC_INT64)*expr;
3711 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 101967))+8);
3712 i1 = OOC_SymbolTable_TypeRules__IsPtrCompatible((OOC_SymbolTable__Type)i1);
3713
3714 l21:
3715 if (i1) goto l91;
3716 i1 = (OOC_INT64)*expr;
3717 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 102068)))), &_td_OOC_IR__ConstDesc);
3718 if (i2) goto l25;
3719 i2=0u;
3720 goto l27;
3721 l25:
3722 i2 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i0);
3723
3724 l27:
3725 if (i2) goto l29;
3726 i1=0u;
3727 goto l31;
3728 l29:
3729 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 102148))+8);
3730 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i1);
3731 i1 = i1!=(OOC_INT64)0;
3732
3733 l31:
3734 if (i1) goto l33;
3735 i1=0u;
3736 goto l35;
3737 l33:
3738 i1 = (OOC_INT64)*expr;
3739 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 102263))+8);
3740 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i1);
3741 i2 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i0);
3742 i1 = OOC_SymbolTable_TypeRules__IncludesType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
3743
3744 l35:
3745 if (i1) goto l89;
3746 i1 = (OOC_INT64)*expr;
3747 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 102429)))), &_td_OOC_IR__ConstDesc);
3748 if (i2) goto l39;
3749 i1=0u;
3750 goto l41;
3751 l39:
3752 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 102473))+8);
3753 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i1);
3754 i1 = i1!=(OOC_INT64)0;
3755
3756 l41:
3757 if (i1) goto l43;
3758 i1=0u;
3759 goto l45;
3760 l43:
3761 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 102506)))), &_td_OOC_SymbolTable__ArrayDesc);
3762
3763 l45:
3764 if (i1) goto l47;
3765 i1=0u;
3766 goto l49;
3767 l47:
3768 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 102556)))), &_td_OOC_SymbolTable__ArrayDesc, 102556)), 102562))+80);
3769 i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
3770
3771 l49:
3772 if (i1) goto l87;
3773 i1 = (OOC_INT64)*expr;
3774 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 102735)))), &_td_OOC_IR__ConstDesc);
3775 if (i2) goto l53;
3776 i2=0u;
3777 goto l59;
3778 l53:
3779 i2 = OOC_SymbolTable_TypeRules__IsSTRING((OOC_SymbolTable__Type)i0);
3780 if (i2) goto l56;
3781 i2 = OOC_SymbolTable_TypeRules__IsObjectType((OOC_SymbolTable__Type)i0);
3782
3783 goto l59;
3784 l56:
3785 i2=1u;
3786 l59:
3787 if (i2) goto l61;
3788 i1=0u;
3789 goto l63;
3790 l61:
3791 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 102835))+8);
3792 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i1);
3793 i1 = i1!=(OOC_INT64)0;
3794
3795 l63:
3796 if (i1) goto l85;
3797 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 103145)))), &_td_OOC_SymbolTable__PointerDesc);
3798 if (i1) goto l67;
3799 i1=0u;
3800 goto l69;
3801 l67:
3802 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
3803 i1 = OOC_SymbolTable_TypeRules__IsArrayOfChar((OOC_SymbolTable__Type)i1, 0u);
3804
3805 l69:
3806 if (i1) goto l71;
3807 i1=0u;
3808 goto l73;
3809 l71:
3810 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 103244)))), &_td_OOC_SymbolTable__PointerDesc, 103244)), 103252))+88);
3811
3812 l73:
3813 if (i1) goto l75;
3814 i0=0u;
3815 goto l81;
3816 l75:
3817 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
3818 i2 = (OOC_INT64)b;
3819 i1 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i2, (void*)(OOC_INT64)expr, (OOC_SymbolTable__Type)i1);
3820 if (i1) goto l78;
3821 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
3822 i1 = (OOC_INT64)*expr;
3823 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 103364))+8);
3824 i0 = OOC_SymbolTable_TypeRules__IsArrayCompatible((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
3825
3826 goto l81;
3827 l78:
3828 i0=1u;
3829 l81:
3830 if (i0) goto l83;
3831 return 0u;
3832 goto l108;
3833 l83:
3834 i0 = (OOC_INT64)*expr;
3835 i1 = (OOC_INT64)b;
3836 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 103622));
3837 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 103609)))), OOC_IR__BuilderDesc_NewAdr)),OOC_IR__BuilderDesc_NewAdr)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0);
3838 *expr = (OOC_IR__Expression)i0;
3839 return 1u;
3840 goto l108;
3841 l85:
3842 i0 = (OOC_INT64)b;
3843 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 103087))+72);
3844 i2 = (OOC_INT64)*expr;
3845 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i0, (OOC_SymbolTable__Type)i1, (OOC_IR__Expression)i2);
3846 *expr = (OOC_IR__Expression)i0;
3847 return 1u;
3848 goto l108;
3849 l87:
3850 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 102695)))), &_td_OOC_SymbolTable__ArrayDesc, 102695)), 102701))+80);
3851 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__MatchingStringConst((OOC_SymbolTable__Type)i0);
3852 i1 = (OOC_INT64)b;
3853 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)expr, (OOC_SymbolTable__Type)i0);
3854 return i0;
3855 goto l108;
3856 l89:
3857 i1 = (OOC_INT64)*expr;
3858 i2 = (OOC_INT64)b;
3859 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i2, (OOC_SymbolTable__Type)i0, (OOC_IR__Expression)i1);
3860 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 102355)))), OOC_IR__BuilderDesc_Fold)),OOC_IR__BuilderDesc_Fold)((OOC_IR__Builder)i2, (OOC_IR__Expression)i0);
3861 *expr = (OOC_IR__Expression)i0;
3862 return 1u;
3863 goto l108;
3864 l91:
3865 return 1u;
3866 goto l108;
3867 l93:
3868 return 1u;
3869 goto l108;
3870 l95:
3871 return 1u;
3872 goto l108;
3873 l97:
3874 i1 = (OOC_INT64)*expr;
3875 i2 = (OOC_INT64)b;
3876 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i2, (OOC_SymbolTable__Type)i0, (OOC_IR__Expression)i1);
3877 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 101480)))), OOC_IR__BuilderDesc_Fold)),OOC_IR__BuilderDesc_Fold)((OOC_IR__Builder)i2, (OOC_IR__Expression)i0);
3878 *expr = (OOC_IR__Expression)i0;
3879 return 1u;
3880 goto l108;
3881 l99:
3882 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 101145)))), &_td_OOC_SymbolTable__FormalParsDesc);
3883 if (i2) goto l102;
3884 i0=0u;
3885 goto l103;
3886 l102:
3887 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 101257))+8);
3888 i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 101207)))), &_td_OOC_SymbolTable__FormalParsDesc, 101207)), (OOC_SymbolTable__FormalPars)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 101268)))), &_td_OOC_SymbolTable__FormalParsDesc, 101268)), 0u);
3889
3890 l103:
3891 return i0;
3892 goto l108;
3893 l105:
3894 return 1u;
3895 goto l108;
3896 l107:
3897 return 0u;
3898 l108:
3899 _failed_function(99221); return 0;
3900 ;
3901 }
3902
OOC_IR__BuilderDesc_WidenForAssign(OOC_IR__Builder b,OOC_IR__Expression * expr,OOC_SymbolTable__Type type)3903 OOC_CHAR8 OOC_IR__BuilderDesc_WidenForAssign(OOC_IR__Builder b, OOC_IR__Expression *expr, OOC_SymbolTable__Type type) {
3904 register OOC_INT64 i0,i1,i2;
3905 OOC_IR__Expression oldExpr;
3906 auto OOC_CHAR8 OOC_IR__BuilderDesc_WidenForAssign_LengthOk(void);
3907
3908 OOC_CHAR8 OOC_IR__BuilderDesc_WidenForAssign_LengthOk(void) {
3909 register OOC_INT64 i0,i1,i2;
3910
3911 i0 = (OOC_INT64)*expr;
3912 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104233))+8);
3913 i1 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i1);
3914 if (i1) goto l3;
3915 return 1u;
3916 goto l8;
3917 l3:
3918 i1 = (OOC_INT64)type;
3919 i2 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 104266)))), &_td_OOC_SymbolTable__ArrayDesc, 104266)), 104272))+72);
3920 if (i2) goto l6;
3921 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 104351)))), &_td_OOC_IR__ConstDesc, 104351)), 104357))+16);
3922 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 104371)))), &_td_Object_Boxed__StringDesc, 104371)), 104378));
3923 i0 = *(OOC_INT32*)(_check_pointer(i0, 104385));
3924 i1 = *(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 104423)))), &_td_OOC_SymbolTable__ArrayDesc, 104423)), 104429))+96);
3925 return (i0<i1);
3926 goto l8;
3927 l6:
3928 return 0u;
3929 l8:
3930 _failed_function(104170); return 0;
3931 ;
3932 }
3933
3934
3935 i0 = (OOC_INT64)*expr;
3936 oldExpr = (OOC_IR__Expression)i0;
3937 i1 = (OOC_INT64)type;
3938 i2 = i1==(OOC_INT64)0;
3939 if (i2) goto l31;
3940 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 104634)))), &_td_OOC_SymbolTable__TypeVarDesc);
3941 if (i2) goto l5;
3942 i2=0u;
3943 goto l11;
3944 l5:
3945 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104673))+8);
3946 i2 = i1==i2;
3947 if (i2) goto l8;
3948 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104701))+8);
3949 i2 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i2, 16);
3950
3951 goto l9;
3952 l8:
3953 i2=1u;
3954 l9:
3955 i2 = !i2;
3956
3957 l11:
3958 if (i2) goto l29;
3959 i2 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i1, 11);
3960 if (i2) goto l15;
3961 i2=0u;
3962 goto l17;
3963 l15:
3964 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104964))+8);
3965 i2 = OOC_SymbolTable_TypeRules__IsByteCompatible((OOC_SymbolTable__Type)i2);
3966
3967 l17:
3968 if (i2) goto l23;
3969 i2 = (OOC_INT64)b;
3970 i1 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i2, (void*)(OOC_INT64)expr, (OOC_SymbolTable__Type)i1);
3971 if (i1) goto l21;
3972 i1=0u;
3973 goto l25;
3974 l21:
3975 i1 = OOC_IR__BuilderDesc_WidenForAssign_LengthOk();
3976
3977 goto l25;
3978 l23:
3979 i1=1u;
3980 l25:
3981 if (i1) goto l27;
3982 *expr = (OOC_IR__Expression)i0;
3983 return 0u;
3984 goto l32;
3985 l27:
3986 return 1u;
3987 goto l32;
3988 l29:
3989 return 0u;
3990 goto l32;
3991 l31:
3992 i0 = (OOC_INT64)b;
3993 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 104586))+48);
3994 *expr = (OOC_IR__Expression)i0;
3995 return 0u;
3996 l32:
3997 _failed_function(103730); return 0;
3998 ;
3999 }
4000
OOC_IR__BuilderDesc_WidenToCommon(OOC_IR__Builder b,OOC_IR__Expression * left,OOC_IR__Expression * right)4001 OOC_CHAR8 OOC_IR__BuilderDesc_WidenToCommon(OOC_IR__Builder b, OOC_IR__Expression *left, OOC_IR__Expression *right) {
4002 register OOC_INT64 i0,i1,i2;
4003 auto OOC_SymbolTable__Type OOC_IR__BuilderDesc_WidenToCommon_CommonBase(OOC_SymbolTable__Type t1, OOC_SymbolTable__Type t2);
4004
4005 OOC_SymbolTable__Type OOC_IR__BuilderDesc_WidenToCommon_CommonBase(OOC_SymbolTable__Type t1, OOC_SymbolTable__Type t2) {
4006 register OOC_INT64 i0,i1,i2;
4007
4008 i0 = (OOC_INT64)t1;
4009 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i0);
4010 i1 = (OOC_INT64)t2;
4011 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i1);
4012 i2 = i0!=(OOC_INT64)0;
4013 if (i2) goto l3;
4014 i2=0u;
4015 goto l5;
4016 l3:
4017 i2 = i1!=(OOC_INT64)0;
4018
4019 l5:
4020 if (i2) goto l7;
4021 return (OOC_SymbolTable__Type)(OOC_INT64)0;
4022 goto l12;
4023 l7:
4024 i2 = OOC_SymbolTable_TypeRules__IncludesType((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
4025 if (!i2) goto l11;
4026 i0=i1;
4027 l11:
4028 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__MatchingStringConst((OOC_SymbolTable__Type)i0);
4029 return (OOC_SymbolTable__Type)i0;
4030 l12:
4031 _failed_function(105707); return 0;
4032 ;
4033 }
4034
4035
4036 i0 = (OOC_INT64)*right;
4037 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 106242))+8);
4038 i1 = (OOC_INT64)b;
4039 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)left, (OOC_SymbolTable__Type)i0);
4040 if (i0) goto l3;
4041 i0 = (OOC_INT64)*left;
4042 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 106271))+8);
4043 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)right, (OOC_SymbolTable__Type)i0);
4044
4045 goto l5;
4046 l3:
4047 i0=1u;
4048 l5:
4049 if (i0) goto l21;
4050 i0 = (OOC_INT64)*left;
4051 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 106314)))), &_td_OOC_IR__ConstDesc);
4052 if (i1) goto l9;
4053 i1=0u;
4054 goto l11;
4055 l9:
4056 i1 = (OOC_INT64)*right;
4057 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 106333)))), &_td_OOC_IR__ConstDesc);
4058
4059 l11:
4060 if (!i1) goto l22;
4061 i1 = (OOC_INT64)*right;
4062 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 106387))+8);
4063 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 106375))+8);
4064 i0 = (OOC_INT64)OOC_IR__BuilderDesc_WidenToCommon_CommonBase((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
4065 i1 = i0!=(OOC_INT64)0;
4066 if (!i1) goto l22;
4067 i1 = (OOC_INT64)b;
4068 i2 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)left, (OOC_SymbolTable__Type)i0);
4069 if (i2) goto l17;
4070 i0=0u;
4071 goto l18;
4072 l17:
4073 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)right, (OOC_SymbolTable__Type)i0);
4074
4075 l18:
4076 _assert(i0, 127, 106480);
4077 return 1u;
4078 goto l22;
4079 l21:
4080 return 1u;
4081 l22:
4082 return 0u;
4083 ;
4084 }
4085
OOC_IR__MakeAssignmentCompatible(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression * expr,OOC_SymbolTable__Type type)4086 static void OOC_IR__MakeAssignmentCompatible(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression *expr, OOC_SymbolTable__Type type) {
4087 register OOC_INT64 i0,i1,i2,i3;
4088
4089 i0 = (OOC_INT64)type;
4090 i1 = (OOC_INT64)b;
4091 i2 = OOC_IR__BuilderDesc_WidenForAssign((OOC_IR__Builder)i1, (void*)(OOC_INT64)expr, (OOC_SymbolTable__Type)i0);
4092 i2 = !i2;
4093 if (i2) goto l3;
4094 i2=0u;
4095 goto l5;
4096 l3:
4097 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 107001))+48);
4098 i3 = (OOC_INT64)*expr;
4099 i2 = i3!=i2;
4100
4101 l5:
4102 if (!i2) goto l10;
4103 i2 = (OOC_INT64)sym;
4104 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 107025)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 24, (OOC_Scanner_SymList__Symbol)i2);
4105 OOC_IR__BuilderDesc_SetNameToType((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i0);
4106 i0 = (OOC_INT64)*expr;
4107 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 107113))+8);
4108 i0 = i0==(OOC_INT64)0;
4109 if (!i0) goto l10;
4110 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 107186))+48);
4111 *expr = (OOC_IR__Expression)i0;
4112 l10:
4113 return;
4114 ;
4115 }
4116
OOC_IR__InitTypeTag(OOC_IR__TypeTag tag,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression design)4117 static void OOC_IR__InitTypeTag(OOC_IR__TypeTag tag, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression design) {
4118 register OOC_INT64 i0,i1,i2;
4119
4120 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(7);
4121 i1 = (OOC_INT64)tag;
4122 i2 = (OOC_INT64)sym;
4123 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
4124 i0 = (OOC_INT64)design;
4125 *(OOC_INT64*)((_check_pointer(i1, 107505))+16) = i0;
4126 return;
4127 ;
4128 }
4129
OOC_IR__BuilderDesc_NewTypeTag(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression design)4130 OOC_IR__TypeTag OOC_IR__BuilderDesc_NewTypeTag(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression design) {
4131 register OOC_INT64 i0,i1,i2;
4132 OOC_SymbolTable__Type type;
4133
4134 i0 = (OOC_INT64)design;
4135 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 107693))+8);
4136 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 107693))+8);
4137 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 107698)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
4138 type = (OOC_SymbolTable__Type)i1;
4139 i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 107724)))), &_td_OOC_SymbolTable__RecordDesc));
4140 if (i2) goto l3;
4141 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 107752)))), &_td_OOC_SymbolTable__RecordDesc, 107752)), 107759))+70);
4142 i1 = !i1;
4143
4144 goto l5;
4145 l3:
4146 i1=1u;
4147 l5:
4148 if (!i1) goto l7;
4149 i1 = (OOC_INT64)b;
4150 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 107811));
4151 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 107786)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 55, (OOC_Scanner_SymList__Symbol)i2);
4152 l7:
4153 i1 = (OOC_INT64)sym;
4154 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeTag.baseTypes[0]);
4155 OOC_IR__InitTypeTag((OOC_IR__TypeTag)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
4156 return (OOC_IR__TypeTag)i2;
4157 ;
4158 }
4159
OOC_IR__VisitorDesc_VisitTypeTag(OOC_IR__Visitor v,OOC_IR__TypeTag tag)4160 void OOC_IR__VisitorDesc_VisitTypeTag(OOC_IR__Visitor v, OOC_IR__TypeTag tag) {
4161
4162 return;
4163 ;
4164 }
4165
OOC_IR__TypeTagDesc_Accept(OOC_IR__TypeTag tag,OOC_IR__Visitor v)4166 void OOC_IR__TypeTagDesc_Accept(OOC_IR__TypeTag tag, OOC_IR__Visitor v) {
4167 register OOC_INT64 i0,i1;
4168
4169 i0 = (OOC_INT64)v;
4170 i1 = (OOC_INT64)tag;
4171 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 108063)))), OOC_IR__VisitorDesc_VisitTypeTag)),OOC_IR__VisitorDesc_VisitTypeTag)((OOC_IR__Visitor)i0, (OOC_IR__TypeTag)i1);
4172 return;
4173 ;
4174 }
4175
OOC_IR__InitTypeTest(OOC_IR__TypeTest test,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr,OOC_SymbolTable__Type referenceType,OOC_CHAR8 checkPointer,OOC_IR__Expression receiver,OOC_IR__Expression origExpr,OOC_IR__TypeRef origType)4176 static void OOC_IR__InitTypeTest(OOC_IR__TypeTest test, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr, OOC_SymbolTable__Type referenceType, OOC_CHAR8 checkPointer, OOC_IR__Expression receiver, OOC_IR__Expression origExpr, OOC_IR__TypeRef origType) {
4177 register OOC_INT64 i0,i1,i2;
4178
4179 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(0);
4180 i1 = (OOC_INT64)test;
4181 i2 = (OOC_INT64)sym;
4182 OOC_IR__InitOperator((OOC_IR__Operator)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
4183 i0 = (OOC_INT64)expr;
4184 *(OOC_INT64*)((_check_pointer(i1, 108564))+16) = i0;
4185 i0 = (OOC_INT64)referenceType;
4186 *(OOC_INT64*)((_check_pointer(i1, 108588))+24) = i0;
4187 i0 = checkPointer;
4188 *(OOC_UINT8*)((_check_pointer(i1, 108630))+32) = i0;
4189 i0 = (OOC_INT64)receiver;
4190 *(OOC_INT64*)((_check_pointer(i1, 108670))+40) = i0;
4191 i0 = (OOC_INT64)origExpr;
4192 *(OOC_INT64*)((_check_pointer(i1, 108702))+48) = i0;
4193 i0 = (OOC_INT64)origType;
4194 *(OOC_INT64*)((_check_pointer(i1, 108734))+56) = i0;
4195 return;
4196 ;
4197 }
4198
OOC_IR__BuilderDesc_NewTypeTest(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression expr,OOC_IR__Expression referenceType)4199 OOC_IR__Expression OOC_IR__BuilderDesc_NewTypeTest(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression expr, OOC_IR__Expression referenceType) {
4200 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
4201 OOC_SymbolTable__Type refType;
4202 OOC_IR__Expression origExpr;
4203 OOC_CHAR8 checkPointer;
4204 OOC_IR__TypeTest test;
4205 OOC_IR__TypeRef typeRef;
4206 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewTypeTest_HasDynamicType(OOC_IR__Expression expr);
4207
4208 OOC_CHAR8 OOC_IR__BuilderDesc_NewTypeTest_HasDynamicType(OOC_IR__Expression expr) {
4209 register OOC_INT64 i0,i1,i2;
4210 OOC_SymbolTable__Type type;
4211
4212 i0 = (OOC_INT64)expr;
4213 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 109151))+8);
4214 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 109151))+8);
4215 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 109156)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
4216 type = (OOC_SymbolTable__Type)i1;
4217 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 109183)))), &_td_OOC_SymbolTable__RecordDesc);
4218 if (i2) goto l15;
4219 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 109356)))), &_td_OOC_SymbolTable__PointerDesc);
4220 if (i0) goto l9;
4221 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 109445)))), &_td_OOC_SymbolTable__TypeVarDesc);
4222 if (i0) goto l7;
4223 return 0u;
4224 goto l24;
4225 l7:
4226 return 1u;
4227 goto l24;
4228 l9:
4229 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 109404))+72);
4230 i0 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
4231 if (i0) goto l12;
4232 i0=0u;
4233 goto l13;
4234 l12:
4235 i0 = *(OOC_UINT8*)((_check_pointer(i1, 109422))+89);
4236 i0 = !i0;
4237
4238 l13:
4239 return i0;
4240 goto l24;
4241 l15:
4242 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 109221)))), &_td_OOC_IR__VarDesc));
4243 if (i1) goto l22;
4244 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 109250)))), &_td_OOC_IR__VarDesc, 109250)), 109254))+16);
4245 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 109264)))), &_td_OOC_SymbolTable__VarDeclDesc, 109264)), 109272))+107);
4246 if (i1) goto l20;
4247 i0=0u;
4248 goto l23;
4249 l20:
4250 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 109304)))), &_td_OOC_IR__VarDesc, 109304)), 109308))+16);
4251 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 109318)))), &_td_OOC_SymbolTable__VarDeclDesc, 109318)), 109326))+112);
4252
4253 goto l23;
4254 l22:
4255 i0=1u;
4256 l23:
4257 return i0;
4258 l24:
4259 _failed_function(109049); return 0;
4260 ;
4261 }
4262
4263
4264 i0 = (OOC_INT64)b;
4265 i1 = (OOC_INT64)referenceType;
4266 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 109641)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i0, (OOC_IR__Expression)i1);
4267 i2 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i2);
4268 refType = (OOC_SymbolTable__Type)i2;
4269 i3 = i2==(OOC_INT64)0;
4270 if (i3) goto l34;
4271 i3 = (OOC_INT64)expr;
4272 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 109766))+8);
4273 i2 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i4);
4274 i2 = !i2;
4275 if (i2) goto l32;
4276 i0 = OOC_IR__BuilderDesc_NewTypeTest_HasDynamicType((OOC_IR__Expression)i3);
4277 i0 = !i0;
4278 if (i0) goto l30;
4279 i0 = (OOC_INT64)expr;
4280 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 110191))+8);
4281 i2 = (OOC_INT64)refType;
4282 i1 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i1);
4283 if (!i1) goto l9;
4284 i1 = (OOC_INT64)referenceType;
4285 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 110253));
4286 i3 = (OOC_INT64)b;
4287 OOC_IR__BuilderDesc_WarnSym((OOC_IR__Builder)i3, 61, (OOC_Scanner_SymList__Symbol)i1);
4288 l9:
4289 origExpr = (OOC_IR__Expression)i0;
4290 i1 = (OOC_INT64)sym;
4291 i3 = *(OOC_INT32*)((_check_pointer(i1, 110369))+28);
4292 i4 = (OOC_INT64)OOC_Config_StdPragmas__derefCheck;
4293 i5 = (OOC_INT64)b;
4294 i3 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i5, (Config_Section_Options__Option)i4, i3);
4295 checkPointer = i3;
4296 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 110392)))), &_td_OOC_IR__DerefDesc);
4297 if (i4) goto l24;
4298 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 110462))+8);
4299 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 110468)))), &_td_OOC_SymbolTable__PointerDesc);
4300 if (i4) goto l14;
4301 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 110492))+8);
4302 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 110498)))), &_td_OOC_SymbolTable__TypeVarDesc);
4303
4304 goto l16;
4305 l14:
4306 i4=1u;
4307 l16:
4308 if (!i4) goto l23;
4309 i4 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 110540)))), &_td_OOC_SymbolTable__TypeVarDesc));
4310 if (!i4) goto l23;
4311 i2 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i2);
4312 refType = (OOC_SymbolTable__Type)i2;
4313
4314 l23:
4315 i4=i0;
4316 goto l25;
4317 l24:
4318 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 110428)))), &_td_OOC_IR__DerefDesc, 110428)), 110434))+16);
4319 expr = (OOC_IR__Expression)i4;
4320
4321 l25:
4322 i6 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeTest.baseTypes[0]);
4323 test = (OOC_IR__TypeTest)i6;
4324 i7 = (OOC_INT64)referenceType;
4325 i8 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 110799)))), &_td_OOC_IR__TypeRefDesc);
4326 if (i8) goto l28;
4327 typeRef = (OOC_IR__TypeRef)(OOC_INT64)0;
4328 i7=(OOC_INT64)0;
4329 goto l29;
4330 l28:
4331 i7 = _type_guard(i7, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 110849)))), &_td_OOC_IR__TypeRefDesc, 110849);
4332 typeRef = (OOC_IR__TypeRef)i7;
4333
4334 l29:
4335 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 110984))+8);
4336 OOC_IR__InitTypeTest((OOC_IR__TypeTest)i6, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i4, (OOC_SymbolTable__Type)i2, i3, (OOC_IR__Expression)i5, (OOC_IR__Expression)i0, (OOC_IR__TypeRef)i7);
4337 return (OOC_IR__Expression)i6;
4338 goto l35;
4339 l30:
4340 i0 = (OOC_INT64)expr;
4341 i1 = (OOC_INT64)b;
4342 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 110141));
4343 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 110111)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 43, (OOC_Scanner_SymList__Symbol)i0);
4344 return (OOC_IR__Expression)i0;
4345 goto l35;
4346 l32:
4347 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 109835));
4348 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 109792)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 17, (OOC_Scanner_SymList__Symbol)i1);
4349 return (OOC_IR__Expression)i0;
4350 goto l35;
4351 l34:
4352 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 109712))+48);
4353 return (OOC_IR__Expression)i0;
4354 l35:
4355 _failed_function(108802); return 0;
4356 ;
4357 }
4358
OOC_IR__VisitorDesc_VisitTypeTest(OOC_IR__Visitor v,OOC_IR__TypeTest test)4359 void OOC_IR__VisitorDesc_VisitTypeTest(OOC_IR__Visitor v, OOC_IR__TypeTest test) {
4360
4361 return;
4362 ;
4363 }
4364
OOC_IR__TypeTestDesc_Accept(OOC_IR__TypeTest test,OOC_IR__Visitor v)4365 void OOC_IR__TypeTestDesc_Accept(OOC_IR__TypeTest test, OOC_IR__Visitor v) {
4366 register OOC_INT64 i0,i1;
4367
4368 i0 = (OOC_INT64)v;
4369 i1 = (OOC_INT64)test;
4370 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 111221)))), OOC_IR__VisitorDesc_VisitTypeTest)),OOC_IR__VisitorDesc_VisitTypeTest)((OOC_IR__Visitor)i0, (OOC_IR__TypeTest)i1);
4371 return;
4372 ;
4373 }
4374
OOC_IR__InitTypeGuard(OOC_IR__TypeGuard guard,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type type,OOC_IR__TypeTest test,OOC_CHAR8 checkPointer,OOC_CHAR8 checkType)4375 static void OOC_IR__InitTypeGuard(OOC_IR__TypeGuard guard, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type type, OOC_IR__TypeTest test, OOC_CHAR8 checkPointer, OOC_CHAR8 checkType) {
4376 register OOC_INT64 i0,i1,i2;
4377
4378 i0 = (OOC_INT64)type;
4379 i1 = (OOC_INT64)sym;
4380 i2 = (OOC_INT64)guard;
4381 OOC_IR__InitOperator((OOC_IR__Operator)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
4382 i0 = (OOC_INT64)test;
4383 *(OOC_INT64*)((_check_pointer(i2, 111595))+16) = i0;
4384 i0 = checkPointer;
4385 *(OOC_UINT8*)((_check_pointer(i2, 111620))+24) = i0;
4386 i0 = checkType;
4387 *(OOC_UINT8*)((_check_pointer(i2, 111661))+25) = i0;
4388 return;
4389 ;
4390 }
4391
OOC_IR__BuilderDesc_NewTypeGuard(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression design,OOC_IR__TypeRef ref)4392 OOC_IR__Expression OOC_IR__BuilderDesc_NewTypeGuard(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression design, OOC_IR__TypeRef ref) {
4393 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
4394 OOC_SymbolTable__Type guardType;
4395 OOC_IR__Expression test;
4396 OOC_IR__TypeGuard guard;
4397
4398 i0 = (OOC_INT64)ref;
4399 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 111938))+24);
4400 guardType = (OOC_SymbolTable__Type)i1;
4401 i2 = (OOC_INT64)b;
4402 i3 = (OOC_INT64)design;
4403 i4 = (OOC_INT64)sym;
4404 OOC_IR__BuilderDesc_CheckFunctionOp((OOC_IR__Builder)i2, (OOC_IR__Expression)i3, (OOC_Scanner_SymList__Symbol)i4);
4405 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 111994)))), OOC_IR__BuilderDesc_NewTypeTest)),OOC_IR__BuilderDesc_NewTypeTest)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i3, (OOC_IR__Expression)i0);
4406 test = (OOC_IR__Expression)i0;
4407 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 112036)))), &_td_OOC_IR__TypeTestDesc);
4408 if (i3) goto l3;
4409 return (OOC_IR__Expression)i0;
4410 goto l4;
4411 l3:
4412 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeGuard.baseTypes[0]);
4413 guard = (OOC_IR__TypeGuard)i3;
4414 i5 = *(OOC_INT32*)((_check_pointer(i4, 112268))+28);
4415 i6 = (OOC_INT64)OOC_Config_StdPragmas__typeGuard;
4416 i5 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i6, i5);
4417 i6 = *(OOC_INT32*)((_check_pointer(i4, 112200))+28);
4418 i7 = (OOC_INT64)OOC_Config_StdPragmas__derefCheck;
4419 i2 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i7, i6);
4420 i1 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i1);
4421 OOC_IR__InitTypeGuard((OOC_IR__TypeGuard)i3, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i1, (OOC_IR__TypeTest)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 112127)))), &_td_OOC_IR__TypeTestDesc, 112127)), i2, i5);
4422 return (OOC_IR__Expression)i3;
4423 l4:
4424 _failed_function(111733); return 0;
4425 ;
4426 }
4427
OOC_IR__VisitorDesc_VisitTypeGuard(OOC_IR__Visitor v,OOC_IR__TypeGuard test)4428 void OOC_IR__VisitorDesc_VisitTypeGuard(OOC_IR__Visitor v, OOC_IR__TypeGuard test) {
4429
4430 return;
4431 ;
4432 }
4433
OOC_IR__TypeGuardDesc_Accept(OOC_IR__TypeGuard test,OOC_IR__Visitor v)4434 void OOC_IR__TypeGuardDesc_Accept(OOC_IR__TypeGuard test, OOC_IR__Visitor v) {
4435 register OOC_INT64 i0,i1;
4436
4437 i0 = (OOC_INT64)v;
4438 i1 = (OOC_INT64)test;
4439 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 112499)))), OOC_IR__VisitorDesc_VisitTypeGuard)),OOC_IR__VisitorDesc_VisitTypeGuard)((OOC_IR__Visitor)i0, (OOC_IR__TypeGuard)i1);
4440 return;
4441 ;
4442 }
4443
OOC_IR__InitReference(OOC_IR__Reference ref,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__Type type,OOC_SymbolTable__Declaration decl)4444 static void OOC_IR__InitReference(OOC_IR__Reference ref, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__Type type, OOC_SymbolTable__Declaration decl) {
4445 register OOC_INT64 i0,i1,i2;
4446
4447 i0 = (OOC_INT64)type;
4448 i1 = (OOC_INT64)name;
4449 i2 = (OOC_INT64)ref;
4450 OOC_IR__InitExpression((OOC_IR__Expression)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
4451 i0 = (OOC_INT64)decl;
4452 *(OOC_INT64*)((_check_pointer(i2, 112823))+16) = i0;
4453 return;
4454 ;
4455 }
4456
OOC_IR__InitModuleRef(OOC_IR__ModuleRef modRef,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__Type type,OOC_SymbolTable__Module decl)4457 static void OOC_IR__InitModuleRef(OOC_IR__ModuleRef modRef, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__Type type, OOC_SymbolTable__Module decl) {
4458 register OOC_INT64 i0,i1,i2,i3;
4459
4460 i0 = (OOC_INT64)decl;
4461 i1 = (OOC_INT64)type;
4462 i2 = (OOC_INT64)name;
4463 i3 = (OOC_INT64)modRef;
4464 OOC_IR__InitReference((OOC_IR__Reference)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Declaration)i0);
4465 return;
4466 ;
4467 }
4468
OOC_IR__BuilderDesc_NewModuleRef(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__Module decl)4469 OOC_IR__ModuleRef OOC_IR__BuilderDesc_NewModuleRef(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__Module decl) {
4470 register OOC_INT64 i0,i1,i2,i3;
4471 OOC_IR__ModuleRef modRef;
4472
4473 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ModuleRef.baseTypes[0]);
4474 modRef = (OOC_IR__ModuleRef)i0;
4475 i1 = (OOC_INT64)b;
4476 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 113336))+64);
4477 i2 = (OOC_INT64)name;
4478 i3 = (OOC_INT64)decl;
4479 OOC_IR__InitModuleRef((OOC_IR__ModuleRef)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Module)i3);
4480 return (OOC_IR__ModuleRef)i0;
4481 ;
4482 }
4483
OOC_IR__VisitorDesc_VisitModuleRef(OOC_IR__Visitor v,OOC_IR__ModuleRef modRef)4484 void OOC_IR__VisitorDesc_VisitModuleRef(OOC_IR__Visitor v, OOC_IR__ModuleRef modRef) {
4485
4486 return;
4487 ;
4488 }
4489
OOC_IR__ModuleRefDesc_Accept(OOC_IR__ModuleRef modRef,OOC_IR__Visitor v)4490 void OOC_IR__ModuleRefDesc_Accept(OOC_IR__ModuleRef modRef, OOC_IR__Visitor v) {
4491 register OOC_INT64 i0,i1;
4492
4493 i0 = (OOC_INT64)v;
4494 i1 = (OOC_INT64)modRef;
4495 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 113555)))), OOC_IR__VisitorDesc_VisitModuleRef)),OOC_IR__VisitorDesc_VisitModuleRef)((OOC_IR__Visitor)i0, (OOC_IR__ModuleRef)i1);
4496 return;
4497 ;
4498 }
4499
OOC_IR__InitPredefProc(OOC_IR__PredefProc pproc,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__Type type,OOC_SymbolTable__PredefProc decl)4500 static void OOC_IR__InitPredefProc(OOC_IR__PredefProc pproc, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__Type type, OOC_SymbolTable__PredefProc decl) {
4501 register OOC_INT64 i0,i1,i2,i3;
4502
4503 i0 = (OOC_INT64)decl;
4504 i1 = (OOC_INT64)type;
4505 i2 = (OOC_INT64)name;
4506 i3 = (OOC_INT64)pproc;
4507 OOC_IR__InitReference((OOC_IR__Reference)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Declaration)i0);
4508 return;
4509 ;
4510 }
4511
OOC_IR__NewPredefProc(OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__PredefProc decl)4512 static OOC_IR__PredefProc OOC_IR__NewPredefProc(OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__PredefProc decl) {
4513 register OOC_INT64 i0,i1,i2;
4514
4515 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__PredefProc.baseTypes[0]);
4516 i1 = (OOC_INT64)decl;
4517 i2 = (OOC_INT64)name;
4518 OOC_IR__InitPredefProc((OOC_IR__PredefProc)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)(OOC_INT64)0, (OOC_SymbolTable__PredefProc)i1);
4519 return (OOC_IR__PredefProc)i0;
4520 ;
4521 }
4522
OOC_IR__VisitorDesc_VisitPredefProc(OOC_IR__Visitor v,OOC_IR__PredefProc pproc)4523 void OOC_IR__VisitorDesc_VisitPredefProc(OOC_IR__Visitor v, OOC_IR__PredefProc pproc) {
4524
4525 return;
4526 ;
4527 }
4528
OOC_IR__PredefProcDesc_Accept(OOC_IR__PredefProc pproc,OOC_IR__Visitor v)4529 void OOC_IR__PredefProcDesc_Accept(OOC_IR__PredefProc pproc, OOC_IR__Visitor v) {
4530 register OOC_INT64 i0,i1;
4531
4532 i0 = (OOC_INT64)v;
4533 i1 = (OOC_INT64)pproc;
4534 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 114281)))), OOC_IR__VisitorDesc_VisitPredefProc)),OOC_IR__VisitorDesc_VisitPredefProc)((OOC_IR__Visitor)i0, (OOC_IR__PredefProc)i1);
4535 return;
4536 ;
4537 }
4538
OOC_IR__InitProcedureRef(OOC_IR__ProcedureRef procRef,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__ProcDecl decl)4539 static void OOC_IR__InitProcedureRef(OOC_IR__ProcedureRef procRef, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__ProcDecl decl) {
4540 register OOC_INT64 i0,i1,i2,i3;
4541
4542 i0 = (OOC_INT64)decl;
4543 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 114568))+112);
4544 i2 = (OOC_INT64)procRef;
4545 i3 = (OOC_INT64)name;
4546 OOC_IR__InitReference((OOC_IR__Reference)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Declaration)i0);
4547 return;
4548 ;
4549 }
4550
OOC_IR__NewProcedureRef(OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__ProcDecl decl)4551 static OOC_IR__ProcedureRef OOC_IR__NewProcedureRef(OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__ProcDecl decl) {
4552 register OOC_INT64 i0,i1,i2;
4553
4554 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ProcedureRef.baseTypes[0]);
4555 i1 = (OOC_INT64)decl;
4556 i2 = (OOC_INT64)name;
4557 OOC_IR__InitProcedureRef((OOC_IR__ProcedureRef)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__ProcDecl)i1);
4558 return (OOC_IR__ProcedureRef)i0;
4559 ;
4560 }
4561
OOC_IR__VisitorDesc_VisitProcedureRef(OOC_IR__Visitor v,OOC_IR__ProcedureRef procRef)4562 void OOC_IR__VisitorDesc_VisitProcedureRef(OOC_IR__Visitor v, OOC_IR__ProcedureRef procRef) {
4563
4564 return;
4565 ;
4566 }
4567
OOC_IR__ProcedureRefDesc_Accept(OOC_IR__ProcedureRef procRef,OOC_IR__Visitor v)4568 void OOC_IR__ProcedureRefDesc_Accept(OOC_IR__ProcedureRef procRef, OOC_IR__Visitor v) {
4569 register OOC_INT64 i0,i1;
4570
4571 i0 = (OOC_INT64)v;
4572 i1 = (OOC_INT64)procRef;
4573 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 115010)))), OOC_IR__VisitorDesc_VisitProcedureRef)),OOC_IR__VisitorDesc_VisitProcedureRef)((OOC_IR__Visitor)i0, (OOC_IR__ProcedureRef)i1);
4574 return;
4575 ;
4576 }
4577
OOC_IR__InitTypeRef(OOC_IR__TypeRef typeRef,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__Type type,OOC_SymbolTable__TypeDecl decl,OOC_SymbolTable__Type qualType)4578 static void OOC_IR__InitTypeRef(OOC_IR__TypeRef typeRef, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__Type type, OOC_SymbolTable__TypeDecl decl, OOC_SymbolTable__Type qualType) {
4579 register OOC_INT64 i0,i1,i2,i3;
4580
4581 i0 = (OOC_INT64)decl;
4582 i1 = (OOC_INT64)type;
4583 i2 = (OOC_INT64)name;
4584 i3 = (OOC_INT64)typeRef;
4585 OOC_IR__InitReference((OOC_IR__Reference)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Declaration)i0);
4586 i0 = (OOC_INT64)qualType;
4587 *(OOC_INT64*)((_check_pointer(i3, 115364))+24) = i0;
4588 return;
4589 ;
4590 }
4591
OOC_IR__BuilderDesc_NewTypeRef(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__TypeDecl decl)4592 OOC_IR__TypeRef OOC_IR__BuilderDesc_NewTypeRef(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__TypeDecl decl) {
4593 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
4594 OOC_SymbolTable__Type qualType;
4595 OOC_SymbolTable__TypeRefArray arguments;
4596 OOC_INT32 i;
4597 OOC_IR__TypeRef typeRef;
4598
4599 i0 = (OOC_INT64)decl;
4600 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 115615))+88);
4601 qualType = (OOC_SymbolTable__Type)i1;
4602 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 115638))+56);
4603 i2 = i2!=(OOC_INT64)0;
4604 if (i2) goto l3;
4605 i2=0u;
4606 goto l5;
4607 l3:
4608 i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 115668)))), &_td_OOC_SymbolTable__TypeVarDesc));
4609
4610 l5:
4611 if (!i2) goto l16;
4612 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 115792))+56);
4613 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 115801))+40);
4614 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 115808)), 0);
4615 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypeRefArray.baseTypes[0], i2);
4616 arguments = (OOC_SymbolTable__TypeRefArray)i2;
4617 i = 0;
4618 i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 115846)), 0);
4619 i4 = 0<i3;
4620 if (!i4) goto l15;
4621 i4 = (OOC_INT64)&_td_OOC_SymbolTable__TypeRef;
4622 i5=0;
4623 l10_loop:
4624 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 115900))+56);
4625 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 115909))+40);
4626 i6 = _check_pointer(i6, 115916);
4627 i7 = OOC_ARRAY_LENGTH(i6, 0);
4628 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i5, i7, OOC_UINT32, 115916))*8);
4629 i7 = OOC_ARRAY_LENGTH((_check_pointer(i2, 115887)), 0);
4630 i7 = _check_index(i5, i7, OOC_UINT32, 115887);
4631 i7 = _check_pointer(i2, 115887);
4632 i8 = OOC_ARRAY_LENGTH(i7, 0);
4633 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 115919))+72);
4634 OOC_SymbolTable__InitTypeRef((void*)(i7+((_check_index(i5, i8, OOC_UINT32, 115887))*16)), (RT0__Struct)i4, (OOC_SymbolTable__Type)i6);
4635 i5 = i5+1;
4636 i = i5;
4637 i6 = i5<i3;
4638 if (i6) goto l10_loop;
4639 l15:
4640 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 115986))+40);
4641 i1 = (OOC_INT64)OOC_SymbolTable__NewQualType((OOC_SymbolTable__Item)(OOC_INT64)0, (OOC_SymbolTable__Position)i3, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__TypeRefArray)i2);
4642 qualType = (OOC_SymbolTable__Type)i1;
4643
4644 l16:
4645 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeRef.baseTypes[0]);
4646 typeRef = (OOC_IR__TypeRef)i2;
4647 i3 = (OOC_INT64)b;
4648 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 116117))+56);
4649 i4 = (OOC_INT64)name;
4650 OOC_IR__InitTypeRef((OOC_IR__TypeRef)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i3, (OOC_SymbolTable__TypeDecl)i0, (OOC_SymbolTable__Type)i1);
4651 return (OOC_IR__TypeRef)i2;
4652 ;
4653 }
4654
OOC_IR__VisitorDesc_VisitTypeRef(OOC_IR__Visitor v,OOC_IR__TypeRef typeRef)4655 void OOC_IR__VisitorDesc_VisitTypeRef(OOC_IR__Visitor v, OOC_IR__TypeRef typeRef) {
4656
4657 return;
4658 ;
4659 }
4660
OOC_IR__TypeRefDesc_Accept(OOC_IR__TypeRef typeRef,OOC_IR__Visitor v)4661 void OOC_IR__TypeRefDesc_Accept(OOC_IR__TypeRef typeRef, OOC_IR__Visitor v) {
4662 register OOC_INT64 i0,i1;
4663
4664 i0 = (OOC_INT64)v;
4665 i1 = (OOC_INT64)typeRef;
4666 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 116336)))), OOC_IR__VisitorDesc_VisitTypeRef)),OOC_IR__VisitorDesc_VisitTypeRef)((OOC_IR__Visitor)i0, (OOC_IR__TypeRef)i1);
4667 return;
4668 ;
4669 }
4670
OOC_IR__InitVar(OOC_IR__Var var,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__Type type,OOC_SymbolTable__VarDecl decl)4671 static void OOC_IR__InitVar(OOC_IR__Var var, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__Type type, OOC_SymbolTable__VarDecl decl) {
4672 register OOC_INT64 i0,i1,i2,i3;
4673
4674 i0 = (OOC_INT64)decl;
4675 i1 = (OOC_INT64)type;
4676 i2 = (OOC_INT64)name;
4677 i3 = (OOC_INT64)var;
4678 OOC_IR__InitReference((OOC_IR__Reference)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Declaration)i0);
4679 return;
4680 ;
4681 }
4682
OOC_IR__BuilderDesc_NewVar(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol name,OOC_SymbolTable__VarDecl decl)4683 OOC_IR__Var OOC_IR__BuilderDesc_NewVar(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol name, OOC_SymbolTable__VarDecl decl) {
4684 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12;
4685 OOC_IR__Var var;
4686 OOC_SymbolTable__TypeRefArray args;
4687 OOC_SymbolTable__TypeVarArray params;
4688 OOC_SymbolTable__TypeRefArray recordArgs;
4689 OOC_INT32 i;
4690 OOC_INT32 j;
4691
4692 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Var.baseTypes[0]);
4693 var = (OOC_IR__Var)i0;
4694 i1 = (OOC_INT64)decl;
4695 i2 = *(OOC_UINT8*)((_check_pointer(i1, 116902))+105);
4696 if (i2) goto l3;
4697 i2=0u;
4698 goto l5;
4699 l3:
4700 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 116921))+88);
4701 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 116926))+56);
4702 i2 = i2!=(OOC_INT64)0;
4703
4704 l5:
4705 if (i2) goto l7;
4706 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 118548))+88);
4707 i2 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i2);
4708
4709 goto l53;
4710 l7:
4711 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117193))+88);
4712 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 117198))+56);
4713 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 117207))+40);
4714 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 117214)), 0);
4715 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__TypeRefArray.baseTypes[0], i2);
4716 args = (OOC_SymbolTable__TypeRefArray)i2;
4717 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117233))+88);
4718 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 117239)))), &_td_OOC_SymbolTable__PointerDesc);
4719 if (i3) goto l10;
4720 i3=0u;
4721 goto l12;
4722 l10:
4723 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117271))+88);
4724 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 117281)))), &_td_OOC_SymbolTable__PointerDesc, 117281)), 117289))+72);
4725 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 117299)))), &_td_OOC_SymbolTable__QualTypeDesc);
4726
4727 l12:
4728 if (i3) goto l22;
4729 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 118246))+88);
4730 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 118251))+56);
4731 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 118260))+40);
4732 params = (OOC_SymbolTable__TypeVarArray)i3;
4733 i = 0;
4734 i4 = OOC_ARRAY_LENGTH((_check_pointer(i2, 118299)), 0);
4735 i5 = 0<i4;
4736 if (!i5) goto l52;
4737 i5 = (OOC_INT64)&_td_OOC_SymbolTable__TypeRef;
4738 i6=0;
4739 l16_loop:
4740 i7 = _check_pointer(i3, 118348);
4741 i8 = OOC_ARRAY_LENGTH(i7, 0);
4742 i9 = OOC_ARRAY_LENGTH((_check_pointer(i2, 118337)), 0);
4743 i9 = _check_index(i6, i9, OOC_UINT32, 118337);
4744 i9 = _check_pointer(i2, 118337);
4745 i10 = OOC_ARRAY_LENGTH(i9, 0);
4746 i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i6, i8, OOC_UINT32, 118348))*8);
4747 OOC_SymbolTable__InitTypeRef((void*)(i9+((_check_index(i6, i10, OOC_UINT32, 118337))*16)), (RT0__Struct)i5, (OOC_SymbolTable__Type)i7);
4748 i6 = i6+1;
4749 i = i6;
4750 i7 = i6<i4;
4751 if (i7) goto l16_loop;
4752 goto l52;
4753 l22:
4754 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117637))+88);
4755 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 117647)))), &_td_OOC_SymbolTable__PointerDesc, 117647)), 117655))+72);
4756 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 117682)))), &_td_OOC_SymbolTable__QualTypeDesc, 117682)), 117691))+72);
4757 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 117705)))), &_td_OOC_SymbolTable__RecordDesc, 117705)), 117712))+56);
4758 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 117721))+40);
4759 params = (OOC_SymbolTable__TypeVarArray)i3;
4760 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117756))+88);
4761 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 117766)))), &_td_OOC_SymbolTable__PointerDesc, 117766)), 117774))+72);
4762 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 117788)))), &_td_OOC_SymbolTable__QualTypeDesc, 117788)), 117797))+88);
4763 recordArgs = (OOC_SymbolTable__TypeRefArray)i4;
4764 i = 0;
4765 i5 = OOC_ARRAY_LENGTH((_check_pointer(i2, 117839)), 0);
4766 i6 = 0<i5;
4767 if (!i6) goto l52;
4768 i6 = (OOC_INT64)&_td_OOC_SymbolTable__TypeRef;
4769 i7=0;
4770 l25_loop:
4771 j = 0;
4772 i8 = OOC_ARRAY_LENGTH((_check_pointer(i4, 117900)), 0);
4773 i8 = 0!=i8;
4774 if (i8) goto l28;
4775 i8=0u;
4776 goto l30;
4777 l28:
4778 i8 = _check_pointer(i4, 117933);
4779 i9 = OOC_ARRAY_LENGTH(i8, 0);
4780 i10 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117948))+88);
4781 i10 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i10, 117953))+56);
4782 i10 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i10, 117962))+40);
4783 i10 = _check_pointer(i10, 117969);
4784 i11 = OOC_ARRAY_LENGTH(i10, 0);
4785 i10 = (OOC_INT64)*(OOC_INT64*)(i10+(_check_index(i7, i11, OOC_UINT32, 117969))*8);
4786 i8 = (OOC_INT64)*(OOC_INT64*)(i8+((_check_index(0, i9, OOC_UINT32, 117933))*16));
4787 i8 = i8!=i10;
4788
4789 l30:
4790 if (i8) goto l32;
4791 i8=0;
4792 goto l42;
4793 l32:
4794 i8=0;
4795 l33_loop:
4796 i8 = i8+1;
4797 j = i8;
4798 i9 = OOC_ARRAY_LENGTH((_check_pointer(i4, 117900)), 0);
4799 i9 = i8!=i9;
4800 if (i9) goto l36;
4801 i9=0u;
4802 goto l38;
4803 l36:
4804 i9 = _check_pointer(i4, 117933);
4805 i10 = OOC_ARRAY_LENGTH(i9, 0);
4806 i11 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 117948))+88);
4807 i11 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i11, 117953))+56);
4808 i11 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i11, 117962))+40);
4809 i11 = _check_pointer(i11, 117969);
4810 i12 = OOC_ARRAY_LENGTH(i11, 0);
4811 i11 = (OOC_INT64)*(OOC_INT64*)(i11+(_check_index(i7, i12, OOC_UINT32, 117969))*8);
4812 i9 = (OOC_INT64)*(OOC_INT64*)(i9+((_check_index(i8, i10, OOC_UINT32, 117933))*16));
4813 i9 = i9!=i11;
4814
4815 l38:
4816 if (i9) goto l33_loop;
4817 l42:
4818 i9 = OOC_ARRAY_LENGTH((_check_pointer(i4, 118044)), 0);
4819 i9 = i8==i9;
4820 if (i9) goto l45;
4821 i9 = _check_pointer(i3, 118179);
4822 i10 = OOC_ARRAY_LENGTH(i9, 0);
4823 i11 = OOC_ARRAY_LENGTH((_check_pointer(i2, 118168)), 0);
4824 i11 = _check_index(i7, i11, OOC_UINT32, 118168);
4825 i11 = _check_pointer(i2, 118168);
4826 i12 = OOC_ARRAY_LENGTH(i11, 0);
4827 i8 = (OOC_INT64)*(OOC_INT64*)(i9+(_check_index(i8, i10, OOC_UINT32, 118179))*8);
4828 OOC_SymbolTable__InitTypeRef((void*)(i11+((_check_index(i7, i12, OOC_UINT32, 118168))*16)), (RT0__Struct)i6, (OOC_SymbolTable__Type)i8);
4829 goto l46;
4830 l45:
4831 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 118094))+88);
4832 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i8, 118099))+56);
4833 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i8, 118108))+40);
4834 i8 = _check_pointer(i8, 118115);
4835 i9 = OOC_ARRAY_LENGTH(i8, 0);
4836 i10 = OOC_ARRAY_LENGTH((_check_pointer(i2, 118085)), 0);
4837 i10 = _check_index(i7, i10, OOC_UINT32, 118085);
4838 i10 = _check_pointer(i2, 118085);
4839 i11 = OOC_ARRAY_LENGTH(i10, 0);
4840 i8 = (OOC_INT64)*(OOC_INT64*)(i8+(_check_index(i7, i9, OOC_UINT32, 118115))*8);
4841 OOC_SymbolTable__InitTypeRef((void*)(i10+((_check_index(i7, i11, OOC_UINT32, 118085))*16)), (RT0__Struct)i6, (OOC_SymbolTable__Type)i8);
4842 l46:
4843 i7 = i7+1;
4844 i = i7;
4845 i8 = i7<i5;
4846 if (i8) goto l25_loop;
4847 l52:
4848 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 118480))+88);
4849 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 118485))+56);
4850 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 118416))+88);
4851 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 118421))+40);
4852 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 118494))+40);
4853 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 118436))+88);
4854 i2 = (OOC_INT64)OOC_SymbolTable__NewTypeClosure((OOC_SymbolTable__Position)i4, (OOC_SymbolTable__Type)i5, (OOC_SymbolTable__TypeVarArray)i3, (OOC_SymbolTable__TypeRefArray)i2);
4855
4856 l53:
4857 i2 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i2);
4858 i3 = (OOC_INT64)name;
4859 OOC_IR__InitVar((OOC_IR__Var)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (OOC_SymbolTable__VarDecl)i1);
4860 return (OOC_IR__Var)i0;
4861 ;
4862 }
4863
OOC_IR__VisitorDesc_VisitVar(OOC_IR__Visitor v,OOC_IR__Var var)4864 void OOC_IR__VisitorDesc_VisitVar(OOC_IR__Visitor v, OOC_IR__Var var) {
4865
4866 return;
4867 ;
4868 }
4869
OOC_IR__VarDesc_Accept(OOC_IR__Var var,OOC_IR__Visitor v)4870 void OOC_IR__VarDesc_Accept(OOC_IR__Var var, OOC_IR__Visitor v) {
4871 register OOC_INT64 i0,i1;
4872
4873 i0 = (OOC_INT64)v;
4874 i1 = (OOC_INT64)var;
4875 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 118773)))), OOC_IR__VisitorDesc_VisitVar)),OOC_IR__VisitorDesc_VisitVar)((OOC_IR__Visitor)i0, (OOC_IR__Var)i1);
4876 return;
4877 ;
4878 }
4879
OOC_IR__InitStatement(OOC_IR__Statement statm,OOC_Scanner_SymList__Symbol sym)4880 void OOC_IR__InitStatement(OOC_IR__Statement statm, OOC_Scanner_SymList__Symbol sym) {
4881 register OOC_INT64 i0,i1,i2;
4882
4883 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(17);
4884 i1 = (OOC_INT64)statm;
4885 i2 = (OOC_INT64)sym;
4886 OOC_IR__InitExpression((OOC_IR__Expression)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0);
4887 return;
4888 ;
4889 }
4890
OOC_IR__InitAssert(OOC_IR__Assert assert,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression predicate,OOC_INT32 code,OOC_CHAR8 disabled)4891 static void OOC_IR__InitAssert(OOC_IR__Assert assert, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression predicate, OOC_INT32 code, OOC_CHAR8 disabled) {
4892 register OOC_INT64 i0,i1;
4893
4894 i0 = (OOC_INT64)sym;
4895 i1 = (OOC_INT64)assert;
4896 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
4897 i0 = (OOC_INT64)predicate;
4898 *(OOC_INT64*)((_check_pointer(i1, 119356))+16) = i0;
4899 i0 = code;
4900 *(OOC_INT32*)((_check_pointer(i1, 119392))+24) = i0;
4901 i0 = disabled;
4902 *(OOC_UINT8*)((_check_pointer(i1, 119418))+28) = i0;
4903 return;
4904 ;
4905 }
4906
OOC_IR__BuilderDesc_NewAssert(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression predicate,OOC_IR__Expression code,OOC_CHAR8 disabled)4907 OOC_IR__Assert OOC_IR__BuilderDesc_NewAssert(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression predicate, OOC_IR__Expression code, OOC_CHAR8 disabled) {
4908 register OOC_INT64 i0,i1,i2,i3,i4;
4909 OOC_IR__Assert assert;
4910
4911 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Assert.baseTypes[0]);
4912 assert = (OOC_IR__Assert)i0;
4913 i1 = (OOC_INT64)predicate;
4914 i2 = i1!=(OOC_INT64)0;
4915 if (!i2) goto l4;
4916 i2 = (OOC_INT64)b;
4917 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 119717)))), OOC_IR__BuilderDesc_AssertBoolean)),OOC_IR__BuilderDesc_AssertBoolean)((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
4918
4919 l4:
4920 i2 = (OOC_INT64)code;
4921 i3 = i2==(OOC_INT64)0;
4922 if (i3) goto l7;
4923 i3 = (OOC_INT64)b;
4924 i2 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i3, (OOC_IR__Expression)i2, 0, 128);
4925
4926 goto l8;
4927 l7:
4928 i2=127;
4929 l8:
4930 i3 = (OOC_INT64)sym;
4931 i4 = disabled;
4932 OOC_IR__InitAssert((OOC_IR__Assert)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i1, i2, i4);
4933 return (OOC_IR__Assert)i0;
4934 ;
4935 }
4936
OOC_IR__VisitorDesc_VisitAssert(OOC_IR__Visitor v,OOC_IR__Assert assert)4937 void OOC_IR__VisitorDesc_VisitAssert(OOC_IR__Visitor v, OOC_IR__Assert assert) {
4938
4939 return;
4940 ;
4941 }
4942
OOC_IR__AssertDesc_Accept(OOC_IR__Assert assert,OOC_IR__Visitor v)4943 void OOC_IR__AssertDesc_Accept(OOC_IR__Assert assert, OOC_IR__Visitor v) {
4944 register OOC_INT64 i0,i1;
4945
4946 i0 = (OOC_INT64)v;
4947 i1 = (OOC_INT64)assert;
4948 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 120145)))), OOC_IR__VisitorDesc_VisitAssert)),OOC_IR__VisitorDesc_VisitAssert)((OOC_IR__Visitor)i0, (OOC_IR__Assert)i1);
4949 return;
4950 ;
4951 }
4952
OOC_IR__InitAssignment(OOC_IR__Assignment assignment,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression variable,OOC_IR__Expression value)4953 void OOC_IR__InitAssignment(OOC_IR__Assignment assignment, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression variable, OOC_IR__Expression value) {
4954 register OOC_INT64 i0,i1;
4955
4956 i0 = (OOC_INT64)sym;
4957 i1 = (OOC_INT64)assignment;
4958 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
4959 i0 = (OOC_INT64)variable;
4960 *(OOC_INT64*)((_check_pointer(i1, 120474))+16) = i0;
4961 i0 = (OOC_INT64)value;
4962 *(OOC_INT64*)((_check_pointer(i1, 120512))+24) = i0;
4963 return;
4964 ;
4965 }
4966
OOC_IR__BuilderDesc_AssertVar(OOC_IR__Builder b,OOC_IR__Expression expr)4967 void OOC_IR__BuilderDesc_AssertVar(OOC_IR__Builder b, OOC_IR__Expression expr) {
4968 register OOC_INT64 i0,i1,i2,i3;
4969
4970 i0 = (OOC_INT64)expr;
4971 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 120626))+8);
4972 i1 = i1==(OOC_INT64)0;
4973 if (i1) goto l40;
4974 i1 = (OOC_INT64)b;
4975 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 120715));
4976 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 120728))+8);
4977 i2 = OOC_SymbolTable_TypeRules__IsReadOnlyType((OOC_SymbolTable__Module)i2, (OOC_SymbolTable__Type)i3);
4978 if (i2) goto l38;
4979 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 120811)))), &_td_OOC_IR__VarDesc);
4980 if (i2) goto l25;
4981 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 121081)))), &_td_OOC_IR__DerefDesc);
4982 if (i2) goto l41;
4983 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 121161)))), &_td_OOC_IR__IndexDesc);
4984 if (i2) goto l22;
4985 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 121257)))), &_td_OOC_IR__SelectFieldDesc);
4986 if (i2) goto l17;
4987 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 121483)))), &_td_OOC_IR__TypeGuardDesc);
4988 if (i2) goto l15;
4989 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 121620));
4990 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 121593)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 29, (OOC_Scanner_SymList__Symbol)i0);
4991 goto l41;
4992 l15:
4993 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121523))+16);
4994 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121529))+16);
4995 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
4996 goto l41;
4997 l17:
4998 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121300))+16);
4999 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i2);
5000 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121388))+24);
5001 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 121374));
5002 i2 = OOC_SymbolTable_TypeRules__IsReadOnly((OOC_SymbolTable__Module)i3, (OOC_SymbolTable__Declaration)i2);
5003 if (!i2) goto l41;
5004 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121445))+32);
5005 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 121413)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 34, (OOC_Scanner_SymList__Symbol)i0);
5006 goto l41;
5007 l22:
5008 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121198))+16);
5009 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
5010 goto l41;
5011 l25:
5012 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 120861))+16);
5013 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 120847));
5014 i2 = OOC_SymbolTable_TypeRules__IsReadOnly((OOC_SymbolTable__Module)i3, (OOC_SymbolTable__Declaration)i2);
5015 if (i2) goto l35;
5016 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 120944))+16);
5017 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 120950)))), &_td_OOC_SymbolTable__VarDeclDesc);
5018 if (i2) goto l30;
5019 i2=0u;
5020 goto l32;
5021 l30:
5022 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 120972))+16);
5023 i2 = *(OOC_UINT8*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 120982)))), &_td_OOC_SymbolTable__VarDeclDesc, 120982)), 120990))+110);
5024
5025 l32:
5026 if (!i2) goto l41;
5027 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 121049));
5028 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 121018)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 42, (OOC_Scanner_SymList__Symbol)i0);
5029 goto l41;
5030 l35:
5031 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 120917));
5032 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 120885)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 34, (OOC_Scanner_SymList__Symbol)i0);
5033 goto l41;
5034 l38:
5035 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 120779));
5036 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 120747)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 34, (OOC_Scanner_SymList__Symbol)i0);
5037 goto l41;
5038 l40:
5039 i1 = (OOC_INT64)b;
5040 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 120678));
5041 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 120651)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 29, (OOC_Scanner_SymList__Symbol)i0);
5042 l41:
5043 return;
5044 ;
5045 }
5046
OOC_IR__BuilderDesc_NewAssignment(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression variable,OOC_IR__Expression value)5047 OOC_IR__Statement OOC_IR__BuilderDesc_NewAssignment(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression variable, OOC_IR__Expression value) {
5048 register OOC_INT64 i0,i1,i2,i3,i4;
5049 OOC_SymbolTable__Type valueType;
5050
5051 i0 = (OOC_INT64)variable;
5052 i1 = (OOC_INT64)b;
5053 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
5054 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 121947))+8);
5055 i3 = (OOC_INT64)sym;
5056 OOC_IR__MakeAssignmentCompatible((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i3, (void*)(OOC_INT64)&value, (OOC_SymbolTable__Type)i2);
5057 i2 = (OOC_INT64)value;
5058 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 121978))+8);
5059 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 121978))+8);
5060 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 121983)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
5061 valueType = (OOC_SymbolTable__Type)i2;
5062 i4 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i2);
5063 if (i4) goto l11;
5064 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 122248)))), &_td_OOC_SymbolTable__ArrayDesc);
5065 if (i4) goto l5;
5066 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 122276)))), &_td_OOC_SymbolTable__RecordDesc);
5067
5068 goto l7;
5069 l5:
5070 i2=1u;
5071 l7:
5072 if (i2) goto l9;
5073 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Assignment.baseTypes[0]);
5074 i2 = (OOC_INT64)value;
5075 OOC_IR__InitAssignment((OOC_IR__Assignment)i1, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i0, (OOC_IR__Expression)i2);
5076 return (OOC_IR__Statement)i1;
5077 goto l12;
5078 l9:
5079 i2 = (OOC_INT64)value;
5080 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 122371)))), OOC_IR__BuilderDesc_NewCopy)),OOC_IR__BuilderDesc_NewCopy)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i2, (OOC_IR__Expression)i0);
5081 return (OOC_IR__Statement)i0;
5082 goto l12;
5083 l11:
5084 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 122196)))), OOC_IR__BuilderDesc_NewLen)),OOC_IR__BuilderDesc_NewLen)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i0, 0);
5085 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 122187)))), OOC_IR__BuilderDesc_Fold)),OOC_IR__BuilderDesc_Fold)((OOC_IR__Builder)i1, (OOC_IR__Expression)i2);
5086 i4 = (OOC_INT64)value;
5087 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 122116)))), OOC_IR__BuilderDesc_NewCopyString)),OOC_IR__BuilderDesc_NewCopyString)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i4, (OOC_IR__Expression)i0, (OOC_IR__Expression)i2);
5088 return (OOC_IR__Statement)i0;
5089 l12:
5090 _failed_function(121689); return 0;
5091 ;
5092 }
5093
OOC_IR__VisitorDesc_VisitAssignment(OOC_IR__Visitor v,OOC_IR__Assignment assignment)5094 void OOC_IR__VisitorDesc_VisitAssignment(OOC_IR__Visitor v, OOC_IR__Assignment assignment) {
5095
5096 return;
5097 ;
5098 }
5099
OOC_IR__AssignmentDesc_Accept(OOC_IR__Assignment assignment,OOC_IR__Visitor v)5100 void OOC_IR__AssignmentDesc_Accept(OOC_IR__Assignment assignment, OOC_IR__Visitor v) {
5101 register OOC_INT64 i0,i1;
5102
5103 i0 = (OOC_INT64)v;
5104 i1 = (OOC_INT64)assignment;
5105 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 122721)))), OOC_IR__VisitorDesc_VisitAssignment)),OOC_IR__VisitorDesc_VisitAssignment)((OOC_IR__Visitor)i0, (OOC_IR__Assignment)i1);
5106 return;
5107 ;
5108 }
5109
OOC_IR__InitAssignOp(OOC_IR__AssignOp ao,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression op)5110 static void OOC_IR__InitAssignOp(OOC_IR__AssignOp ao, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression op) {
5111 register OOC_INT64 i0,i1,i2,i3;
5112
5113 i0 = (OOC_INT64)op;
5114 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 122963)))), &_td_OOC_IR__BinaryArithDesc);
5115 if (i1) goto l7;
5116 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 123034)))), &_td_OOC_IR__ChangeElementDesc);
5117 if (i1) goto l5;
5118 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 123030)))), 123030);
5119 goto l8;
5120 l5:
5121 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 123086))+24);
5122 i2 = (OOC_INT64)sym;
5123 i3 = (OOC_INT64)ao;
5124 OOC_IR__InitAssignment((OOC_IR__Assignment)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
5125 goto l8;
5126 l7:
5127 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 123013))+24);
5128 i2 = (OOC_INT64)sym;
5129 i3 = (OOC_INT64)ao;
5130 OOC_IR__InitAssignment((OOC_IR__Assignment)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
5131 l8:
5132 return;
5133 ;
5134 }
5135
OOC_IR__BuilderDesc_NewAssignOp(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression op)5136 OOC_IR__Expression OOC_IR__BuilderDesc_NewAssignOp(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression op) {
5137 register OOC_INT64 i0,i1,i2;
5138
5139 i0 = (OOC_INT64)op;
5140 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 123248)))), &_td_OOC_IR__ConstDesc);
5141 if (i1) goto l3;
5142 i1 = (OOC_INT64)sym;
5143 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__AssignOp.baseTypes[0]);
5144 OOC_IR__InitAssignOp((OOC_IR__AssignOp)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
5145 return (OOC_IR__Expression)i2;
5146 goto l4;
5147 l3:
5148 i0 = (OOC_INT64)b;
5149 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 123273))+48);
5150 return (OOC_IR__Expression)i0;
5151 l4:
5152 _failed_function(123151); return 0;
5153 ;
5154 }
5155
OOC_IR__VisitorDesc_VisitAssignOp(OOC_IR__Visitor v,OOC_IR__AssignOp ao)5156 void OOC_IR__VisitorDesc_VisitAssignOp(OOC_IR__Visitor v, OOC_IR__AssignOp ao) {
5157
5158 return;
5159 ;
5160 }
5161
OOC_IR__AssignOpDesc_Accept(OOC_IR__AssignOp ao,OOC_IR__Visitor v)5162 void OOC_IR__AssignOpDesc_Accept(OOC_IR__AssignOp ao, OOC_IR__Visitor v) {
5163 register OOC_INT64 i0,i1;
5164
5165 i0 = (OOC_INT64)v;
5166 i1 = (OOC_INT64)ao;
5167 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 123581)))), OOC_IR__VisitorDesc_VisitAssignOp)),OOC_IR__VisitorDesc_VisitAssignOp)((OOC_IR__Visitor)i0, (OOC_IR__AssignOp)i1);
5168 return;
5169 ;
5170 }
5171
OOC_IR__InitCall(OOC_IR__Call call,OOC_IR__Expression design,OOC_IR__ExpressionList arguments,OOC_SymbolTable__VarDeclArray formalPars)5172 static void OOC_IR__InitCall(OOC_IR__Call call, OOC_IR__Expression design, OOC_IR__ExpressionList arguments, OOC_SymbolTable__VarDeclArray formalPars) {
5173 register OOC_INT64 i0,i1,i2,i3;
5174 OOC_SymbolTable__Type resultType;
5175
5176 i0 = (OOC_INT64)design;
5177 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 123924));
5178 i2 = (OOC_INT64)call;
5179 OOC_IR__InitStatement((OOC_IR__Statement)i2, (OOC_Scanner_SymList__Symbol)i1);
5180 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 123989))+8);
5181 i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__FunctionResultType((OOC_SymbolTable__Type)i1);
5182 i1 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i1);
5183 resultType = (OOC_SymbolTable__Type)i1;
5184 i3 = i1!=0;
5185 if (!i3) goto l4;
5186 *(OOC_INT64*)((_check_pointer(i2, 124080))+8) = i1;
5187 l4:
5188 *(OOC_INT64*)((_check_pointer(i2, 124118))+16) = i0;
5189 i0 = (OOC_INT64)arguments;
5190 *(OOC_INT64*)((_check_pointer(i2, 124146))+24) = i0;
5191 i0 = (OOC_INT64)formalPars;
5192 *(OOC_INT64*)((_check_pointer(i2, 124180))+32) = i0;
5193 return;
5194 ;
5195 }
5196
OOC_IR__VisitorDesc_VisitCall(OOC_IR__Visitor v,OOC_IR__Call call)5197 void OOC_IR__VisitorDesc_VisitCall(OOC_IR__Visitor v, OOC_IR__Call call) {
5198
5199 return;
5200 ;
5201 }
5202
OOC_IR__CallDesc_Accept(OOC_IR__Call call,OOC_IR__Visitor v)5203 void OOC_IR__CallDesc_Accept(OOC_IR__Call call, OOC_IR__Visitor v) {
5204 register OOC_INT64 i0,i1;
5205
5206 i0 = (OOC_INT64)v;
5207 i1 = (OOC_INT64)call;
5208 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 124360)))), OOC_IR__VisitorDesc_VisitCall)),OOC_IR__VisitorDesc_VisitCall)((OOC_IR__Visitor)i0, (OOC_IR__Call)i1);
5209 return;
5210 ;
5211 }
5212
OOC_IR__InitCopy(OOC_IR__Copy cp,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression source,OOC_IR__Expression dest,OOC_CHAR8 checkDynamicType)5213 static void OOC_IR__InitCopy(OOC_IR__Copy cp, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression source, OOC_IR__Expression dest, OOC_CHAR8 checkDynamicType) {
5214 register OOC_INT64 i0,i1;
5215
5216 i0 = (OOC_INT64)sym;
5217 i1 = (OOC_INT64)cp;
5218 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5219 i0 = (OOC_INT64)source;
5220 *(OOC_INT64*)((_check_pointer(i1, 124659))+16) = i0;
5221 i0 = (OOC_INT64)dest;
5222 *(OOC_INT64*)((_check_pointer(i1, 124685))+24) = i0;
5223 i0 = checkDynamicType;
5224 *(OOC_UINT8*)((_check_pointer(i1, 124707))+32) = i0;
5225 return;
5226 ;
5227 }
5228
OOC_IR__BuilderDesc_NewCopy(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression source,OOC_IR__Expression dest)5229 OOC_IR__Copy OOC_IR__BuilderDesc_NewCopy(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression source, OOC_IR__Expression dest) {
5230 register OOC_INT64 i0,i1,i2,i3,i4;
5231 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewCopy_HasDynamicType(OOC_IR__Expression dest);
5232
5233 OOC_CHAR8 OOC_IR__BuilderDesc_NewCopy_HasDynamicType(OOC_IR__Expression dest) {
5234 register OOC_INT64 i0,i1;
5235
5236 i0 = (OOC_INT64)dest;
5237 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 124975))+8);
5238 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 124982)))), &_td_OOC_SymbolTable__RecordDesc);
5239 if (i1) goto l3;
5240 i1=0u;
5241 goto l5;
5242 l3:
5243 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 125003))+8);
5244 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 125013)))), &_td_OOC_SymbolTable__RecordDesc, 125013)), 125020))+70);
5245
5246 l5:
5247 if (!i1) goto l14;
5248 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 125057)))), &_td_OOC_IR__DerefDesc);
5249 if (i1) goto l12;
5250 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 125115)))), &_td_OOC_IR__VarDesc);
5251 if (!i1) goto l14;
5252 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 125150)))), &_td_OOC_IR__VarDesc, 125150)), 125154))+16);
5253 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 125165)))), &_td_OOC_SymbolTable__VarDeclDesc, 125165)), 125173))+107);
5254 return i0;
5255 goto l14;
5256 l12:
5257 return 1u;
5258 l14:
5259 return 0u;
5260 ;
5261 }
5262
5263
5264 i0 = (OOC_INT64)dest;
5265 i1 = OOC_IR__BuilderDesc_NewCopy_HasDynamicType((OOC_IR__Expression)i0);
5266 if (i1) goto l3;
5267 i1=0u;
5268 goto l4;
5269 l3:
5270 i1 = (OOC_INT64)sym;
5271 i1 = *(OOC_INT32*)((_check_pointer(i1, 125374))+28);
5272 i2 = (OOC_INT64)b;
5273 i3 = (OOC_INT64)OOC_Config_StdPragmas__typeGuard;
5274 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i3, i1);
5275
5276 l4:
5277 i2 = (OOC_INT64)source;
5278 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Copy.baseTypes[0]);
5279 i4 = (OOC_INT64)sym;
5280 OOC_IR__InitCopy((OOC_IR__Copy)i3, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i2, (OOC_IR__Expression)i0, i1);
5281 return (OOC_IR__Copy)i3;
5282 ;
5283 }
5284
OOC_IR__VisitorDesc_VisitCopy(OOC_IR__Visitor v,OOC_IR__Copy cp)5285 void OOC_IR__VisitorDesc_VisitCopy(OOC_IR__Visitor v, OOC_IR__Copy cp) {
5286
5287 return;
5288 ;
5289 }
5290
OOC_IR__CopyDesc_Accept(OOC_IR__Copy cp,OOC_IR__Visitor v)5291 void OOC_IR__CopyDesc_Accept(OOC_IR__Copy cp, OOC_IR__Visitor v) {
5292 register OOC_INT64 i0,i1;
5293
5294 i0 = (OOC_INT64)v;
5295 i1 = (OOC_INT64)cp;
5296 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 125618)))), OOC_IR__VisitorDesc_VisitCopy)),OOC_IR__VisitorDesc_VisitCopy)((OOC_IR__Visitor)i0, (OOC_IR__Copy)i1);
5297 return;
5298 ;
5299 }
5300
OOC_IR__InitCopyParameter(OOC_IR__CopyParameter cp,OOC_Scanner_SymList__Symbol sym,OOC_IR__Var param)5301 static void OOC_IR__InitCopyParameter(OOC_IR__CopyParameter cp, OOC_Scanner_SymList__Symbol sym, OOC_IR__Var param) {
5302 register OOC_INT64 i0,i1;
5303
5304 i0 = (OOC_INT64)sym;
5305 i1 = (OOC_INT64)cp;
5306 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5307 i0 = (OOC_INT64)param;
5308 *(OOC_INT64*)((_check_pointer(i1, 125881))+16) = i0;
5309 return;
5310 ;
5311 }
5312
OOC_IR__BuilderDesc_NewCopyParameter(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Var param)5313 OOC_IR__CopyParameter OOC_IR__BuilderDesc_NewCopyParameter(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Var param) {
5314 register OOC_INT64 i0,i1,i2;
5315
5316 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__CopyParameter.baseTypes[0]);
5317 i1 = (OOC_INT64)param;
5318 i2 = (OOC_INT64)sym;
5319 OOC_IR__InitCopyParameter((OOC_IR__CopyParameter)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Var)i1);
5320 return (OOC_IR__CopyParameter)i0;
5321 ;
5322 }
5323
OOC_IR__VisitorDesc_VisitCopyParameter(OOC_IR__Visitor v,OOC_IR__CopyParameter cp)5324 void OOC_IR__VisitorDesc_VisitCopyParameter(OOC_IR__Visitor v, OOC_IR__CopyParameter cp) {
5325
5326 return;
5327 ;
5328 }
5329
OOC_IR__CopyParameterDesc_Accept(OOC_IR__CopyParameter cp,OOC_IR__Visitor v)5330 void OOC_IR__CopyParameterDesc_Accept(OOC_IR__CopyParameter cp, OOC_IR__Visitor v) {
5331 register OOC_INT64 i0,i1;
5332
5333 i0 = (OOC_INT64)v;
5334 i1 = (OOC_INT64)cp;
5335 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 126305)))), OOC_IR__VisitorDesc_VisitCopyParameter)),OOC_IR__VisitorDesc_VisitCopyParameter)((OOC_IR__Visitor)i0, (OOC_IR__CopyParameter)i1);
5336 return;
5337 ;
5338 }
5339
OOC_IR__InitCopyString(OOC_IR__CopyString cp,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression source,OOC_IR__Expression dest,OOC_IR__Expression maxLength)5340 static void OOC_IR__InitCopyString(OOC_IR__CopyString cp, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression source, OOC_IR__Expression dest, OOC_IR__Expression maxLength) {
5341 register OOC_INT64 i0,i1;
5342
5343 i0 = (OOC_INT64)sym;
5344 i1 = (OOC_INT64)cp;
5345 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5346 i0 = (OOC_INT64)source;
5347 *(OOC_INT64*)((_check_pointer(i1, 126619))+16) = i0;
5348 i0 = (OOC_INT64)dest;
5349 *(OOC_INT64*)((_check_pointer(i1, 126645))+24) = i0;
5350 i0 = (OOC_INT64)maxLength;
5351 *(OOC_INT64*)((_check_pointer(i1, 126667))+32) = i0;
5352 return;
5353 ;
5354 }
5355
OOC_IR__BuilderDesc_NewCopyString(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression source,OOC_IR__Expression dest,OOC_IR__Expression maxLength)5356 OOC_IR__CopyString OOC_IR__BuilderDesc_NewCopyString(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression source, OOC_IR__Expression dest, OOC_IR__Expression maxLength) {
5357 register OOC_INT64 i0,i1,i2,i3,i4;
5358 OOC_SymbolTable__Type baseChar;
5359 OOC_CHAR8 ok;
5360 OOC_IR__CopyString cp;
5361
5362 i0 = (OOC_INT64)dest;
5363 i1 = (OOC_INT64)b;
5364 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
5365 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 126985))+8);
5366 i2 = OOC_SymbolTable_TypeRules__IsArrayOfChar((OOC_SymbolTable__Type)i2, 1u);
5367 i2 = !i2;
5368 if (!i2) goto l3;
5369 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 127041));
5370 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 127010)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 48, (OOC_Scanner_SymList__Symbol)i2);
5371 l3:
5372 i2 = (OOC_INT64)source;
5373 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 127077)))), &_td_OOC_IR__ConstDesc);
5374 if (i3) goto l9;
5375 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 127547))+8);
5376 i3 = OOC_SymbolTable_TypeRules__IsArrayOfChar((OOC_SymbolTable__Type)i3, 1u);
5377 i3 = !i3;
5378 if (!i3) goto l14;
5379 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 127605));
5380 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 127572)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 48, (OOC_Scanner_SymList__Symbol)i2);
5381 goto l14;
5382 l9:
5383 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 127334))+8);
5384 i2 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i2);
5385 baseChar = (OOC_SymbolTable__Type)i2;
5386 i3 = i2==0;
5387 if (i3) goto l12;
5388 i2 = (OOC_INT64)OOC_SymbolTable_TypeRules__MatchingStringConst((OOC_SymbolTable__Type)i2);
5389 i2 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)&source, (OOC_SymbolTable__Type)i2);
5390 ok = i2;
5391 goto l14;
5392 l12:
5393 i2 = (OOC_INT64)source;
5394 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 127416));
5395 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 127383)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 48, (OOC_Scanner_SymList__Symbol)i2);
5396 l14:
5397 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__CopyString.baseTypes[0]);
5398 cp = (OOC_IR__CopyString)i2;
5399 i3 = (OOC_INT64)maxLength;
5400 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 127684)))), OOC_IR__BuilderDesc_Fold)),OOC_IR__BuilderDesc_Fold)((OOC_IR__Builder)i1, (OOC_IR__Expression)i3);
5401 i3 = (OOC_INT64)sym;
5402 i4 = (OOC_INT64)source;
5403 OOC_IR__InitCopyString((OOC_IR__CopyString)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i4, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1);
5404 return (OOC_IR__CopyString)i2;
5405 ;
5406 }
5407
OOC_IR__VisitorDesc_VisitCopyString(OOC_IR__Visitor v,OOC_IR__CopyString cp)5408 void OOC_IR__VisitorDesc_VisitCopyString(OOC_IR__Visitor v, OOC_IR__CopyString cp) {
5409
5410 return;
5411 ;
5412 }
5413
OOC_IR__CopyStringDesc_Accept(OOC_IR__CopyString cp,OOC_IR__Visitor v)5414 void OOC_IR__CopyStringDesc_Accept(OOC_IR__CopyString cp, OOC_IR__Visitor v) {
5415 register OOC_INT64 i0,i1;
5416
5417 i0 = (OOC_INT64)v;
5418 i1 = (OOC_INT64)cp;
5419 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 127896)))), OOC_IR__VisitorDesc_VisitCopyString)),OOC_IR__VisitorDesc_VisitCopyString)((OOC_IR__Visitor)i0, (OOC_IR__CopyString)i1);
5420 return;
5421 ;
5422 }
5423
OOC_IR__InitExit(OOC_IR__Exit exit,OOC_Scanner_SymList__Symbol sym)5424 void OOC_IR__InitExit(OOC_IR__Exit exit, OOC_Scanner_SymList__Symbol sym) {
5425 register OOC_INT64 i0,i1;
5426
5427 i0 = (OOC_INT64)sym;
5428 i1 = (OOC_INT64)exit;
5429 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5430 *(OOC_INT64*)((_check_pointer(i1, 128133))+16) = (OOC_INT64)0;
5431 *(OOC_INT32*)((_check_pointer(i1, 128156))+24) = 0;
5432 return;
5433 ;
5434 }
5435
OOC_IR__BuilderDesc_NewExit(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym)5436 OOC_IR__Exit OOC_IR__BuilderDesc_NewExit(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym) {
5437 register OOC_INT64 i0,i1;
5438
5439 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Exit.baseTypes[0]);
5440 i1 = (OOC_INT64)sym;
5441 OOC_IR__InitExit((OOC_IR__Exit)i0, (OOC_Scanner_SymList__Symbol)i1);
5442 return (OOC_IR__Exit)i0;
5443 ;
5444 }
5445
OOC_IR__VisitorDesc_VisitExit(OOC_IR__Visitor v,OOC_IR__Exit exit)5446 void OOC_IR__VisitorDesc_VisitExit(OOC_IR__Visitor v, OOC_IR__Exit exit) {
5447
5448 return;
5449 ;
5450 }
5451
OOC_IR__ExitDesc_Accept(OOC_IR__Exit exit,OOC_IR__Visitor v)5452 void OOC_IR__ExitDesc_Accept(OOC_IR__Exit exit, OOC_IR__Visitor v) {
5453 register OOC_INT64 i0,i1;
5454
5455 i0 = (OOC_INT64)v;
5456 i1 = (OOC_INT64)exit;
5457 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 128493)))), OOC_IR__VisitorDesc_VisitExit)),OOC_IR__VisitorDesc_VisitExit)((OOC_IR__Visitor)i0, (OOC_IR__Exit)i1);
5458 return;
5459 ;
5460 }
5461
OOC_IR__InitForStatm(OOC_IR__ForStatm forStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression var,OOC_IR__Expression start,OOC_IR__Expression end,OOC_IR__Expression step,OOC_IR__StatementSeq body)5462 static void OOC_IR__InitForStatm(OOC_IR__ForStatm forStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression var, OOC_IR__Expression start, OOC_IR__Expression end, OOC_IR__Expression step, OOC_IR__StatementSeq body) {
5463 register OOC_INT64 i0,i1;
5464
5465 i0 = (OOC_INT64)sym;
5466 i1 = (OOC_INT64)forStatm;
5467 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5468 i0 = (OOC_INT64)var;
5469 *(OOC_INT64*)((_check_pointer(i1, 128852))+16) = i0;
5470 i0 = (OOC_INT64)start;
5471 *(OOC_INT64*)((_check_pointer(i1, 128878))+24) = i0;
5472 i0 = (OOC_INT64)end;
5473 *(OOC_INT64*)((_check_pointer(i1, 128908))+32) = i0;
5474 i0 = (OOC_INT64)step;
5475 *(OOC_INT64*)((_check_pointer(i1, 128934))+40) = i0;
5476 i0 = (OOC_INT64)body;
5477 *(OOC_INT64*)((_check_pointer(i1, 128962))+48) = i0;
5478 return;
5479 ;
5480 }
5481
OOC_IR__BuilderDesc_NewForStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression var,OOC_IR__Expression start,OOC_IR__Expression end,OOC_IR__Expression step,OOC_IR__StatementSeq body)5482 OOC_IR__ForStatm OOC_IR__BuilderDesc_NewForStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression var, OOC_IR__Expression start, OOC_IR__Expression end, OOC_IR__Expression step, OOC_IR__StatementSeq body) {
5483 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
5484
5485 i0 = (OOC_INT64)step;
5486 i0 = i0==(OOC_INT64)0;
5487 if (!i0) goto l3;
5488 i0 = (OOC_INT64)Object_BigInt__NewInt(1);
5489 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(4);
5490 i2 = (OOC_INT64)b;
5491 i3 = (OOC_INT64)sym;
5492 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 129266)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i0);
5493 step = (OOC_IR__Expression)i0;
5494 l3:
5495 i0 = (OOC_INT64)var;
5496 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 129369)))), &_td_OOC_IR__VarDesc));
5497 if (i1) goto l21;
5498 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 129455))+8);
5499 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
5500 i1 = !i1;
5501 if (i1) goto l19;
5502 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 129538))+8);
5503 i2 = (OOC_INT64)b;
5504 i1 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i2, (void*)(OOC_INT64)&step, (OOC_SymbolTable__Type)i1);
5505 i1 = !i1;
5506 if (i1) goto l17;
5507 i1 = (OOC_INT64)start;
5508 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 129663))+8);
5509 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 129646));
5510 OOC_IR__MakeAssignmentCompatible((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (void*)(OOC_INT64)&start, (OOC_SymbolTable__Type)i3);
5511 i1 = (OOC_INT64)end;
5512 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 129725))+8);
5513 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 129710));
5514 OOC_IR__MakeAssignmentCompatible((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (void*)(OOC_INT64)&end, (OOC_SymbolTable__Type)i3);
5515 i1 = (OOC_INT64)step;
5516 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 129749)))), OOC_IR__BuilderDesc_AssertConst)),OOC_IR__BuilderDesc_AssertConst)((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
5517 step = (OOC_IR__Expression)i1;
5518 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 129802))+8);
5519 i3 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i3);
5520 if (i3) goto l12;
5521 i3=0u;
5522 goto l14;
5523 l12:
5524 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 129844)))), &_td_OOC_IR__ConstDesc, 129844)), 129850))+16);
5525 i4 = (OOC_INT64)Object_BigInt__zero;
5526 i3 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i4, (Object__Object)i3);
5527 i3 = i3==0;
5528
5529 l14:
5530 if (!i3) goto l22;
5531 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 129904));
5532 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 129878)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i2, 31, (OOC_Scanner_SymList__Symbol)i1);
5533 goto l22;
5534 l17:
5535 i1 = (OOC_INT64)step;
5536 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 129589));
5537 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 129558)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i2, 30, (OOC_Scanner_SymList__Symbol)i1);
5538 goto l22;
5539 l19:
5540 i1 = (OOC_INT64)b;
5541 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 129500));
5542 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 129475)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 19, (OOC_Scanner_SymList__Symbol)i2);
5543 goto l22;
5544 l21:
5545 i1 = (OOC_INT64)b;
5546 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 129415));
5547 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 129389)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 29, (OOC_Scanner_SymList__Symbol)i2);
5548 l22:
5549 i1 = (OOC_INT64)body;
5550 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ForStatm.baseTypes[0]);
5551 i3 = (OOC_INT64)step;
5552 i4 = (OOC_INT64)end;
5553 i5 = (OOC_INT64)start;
5554 i6 = (OOC_INT64)sym;
5555 OOC_IR__InitForStatm((OOC_IR__ForStatm)i2, (OOC_Scanner_SymList__Symbol)i6, (OOC_IR__Expression)i0, (OOC_IR__Expression)i5, (OOC_IR__Expression)i4, (OOC_IR__Expression)i3, (OOC_IR__StatementSeq)i1);
5556 return (OOC_IR__ForStatm)i2;
5557 ;
5558 }
5559
OOC_IR__VisitorDesc_VisitForStatm(OOC_IR__Visitor v,OOC_IR__ForStatm forStatm)5560 void OOC_IR__VisitorDesc_VisitForStatm(OOC_IR__Visitor v, OOC_IR__ForStatm forStatm) {
5561
5562 return;
5563 ;
5564 }
5565
OOC_IR__ForStatmDesc_Accept(OOC_IR__ForStatm forStatm,OOC_IR__Visitor v)5566 void OOC_IR__ForStatmDesc_Accept(OOC_IR__ForStatm forStatm, OOC_IR__Visitor v) {
5567 register OOC_INT64 i0,i1;
5568
5569 i0 = (OOC_INT64)v;
5570 i1 = (OOC_INT64)forStatm;
5571 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 130219)))), OOC_IR__VisitorDesc_VisitForStatm)),OOC_IR__VisitorDesc_VisitForStatm)((OOC_IR__Visitor)i0, (OOC_IR__ForStatm)i1);
5572 return;
5573 ;
5574 }
5575
OOC_IR__ForStatmDesc_PositiveStep(OOC_IR__ForStatm forStatm)5576 OOC_CHAR8 OOC_IR__ForStatmDesc_PositiveStep(OOC_IR__ForStatm forStatm) {
5577 register OOC_INT64 i0;
5578
5579 i0 = (OOC_INT64)forStatm;
5580 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 130346))+40);
5581 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 130352)))), &_td_OOC_IR__ConstDesc, 130352)), 130358))+16);
5582 i0 = Object_BigInt__BigIntDesc_Sign((Object_BigInt__BigInt)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 130372)))), &_td_Object_BigInt__BigIntDesc, 130372)));
5583 return (i0>=0);
5584 ;
5585 }
5586
OOC_IR__InitIterateArrayStatm(OOC_IR__IterateArrayStatm iterStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression var,OOC_IR__Expression range,OOC_IR__StatementSeq body)5587 static void OOC_IR__InitIterateArrayStatm(OOC_IR__IterateArrayStatm iterStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression var, OOC_IR__Expression range, OOC_IR__StatementSeq body) {
5588 register OOC_INT64 i0,i1;
5589
5590 i0 = (OOC_INT64)sym;
5591 i1 = (OOC_INT64)iterStatm;
5592 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5593 i0 = (OOC_INT64)var;
5594 *(OOC_INT64*)((_check_pointer(i1, 130777))+16) = i0;
5595 i0 = (OOC_INT64)range;
5596 *(OOC_INT64*)((_check_pointer(i1, 130804))+24) = i0;
5597 i0 = (OOC_INT64)body;
5598 *(OOC_INT64*)((_check_pointer(i1, 130835))+32) = i0;
5599 return;
5600 ;
5601 }
5602
OOC_IR__VisitorDesc_VisitIterateArrayStatm(OOC_IR__Visitor v,OOC_IR__IterateArrayStatm iterStatm)5603 void OOC_IR__VisitorDesc_VisitIterateArrayStatm(OOC_IR__Visitor v, OOC_IR__IterateArrayStatm iterStatm) {
5604
5605 return;
5606 ;
5607 }
5608
OOC_IR__IterateArrayStatmDesc_Accept(OOC_IR__IterateArrayStatm iterStatm,OOC_IR__Visitor v)5609 void OOC_IR__IterateArrayStatmDesc_Accept(OOC_IR__IterateArrayStatm iterStatm, OOC_IR__Visitor v) {
5610 register OOC_INT64 i0,i1;
5611
5612 i0 = (OOC_INT64)v;
5613 i1 = (OOC_INT64)iterStatm;
5614 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 131078)))), OOC_IR__VisitorDesc_VisitIterateArrayStatm)),OOC_IR__VisitorDesc_VisitIterateArrayStatm)((OOC_IR__Visitor)i0, (OOC_IR__IterateArrayStatm)i1);
5615 return;
5616 ;
5617 }
5618
OOC_IR__InitIterateObjectStatm(OOC_IR__IterateObjectStatm iterStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression var,OOC_IR__Expression iteratorFactory,OOC_IR__Call stepperCall,OOC_IR__StatementSeq body)5619 static void OOC_IR__InitIterateObjectStatm(OOC_IR__IterateObjectStatm iterStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression var, OOC_IR__Expression iteratorFactory, OOC_IR__Call stepperCall, OOC_IR__StatementSeq body) {
5620 register OOC_INT64 i0,i1;
5621
5622 i0 = (OOC_INT64)sym;
5623 i1 = (OOC_INT64)iterStatm;
5624 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5625 i0 = (OOC_INT64)var;
5626 *(OOC_INT64*)((_check_pointer(i1, 131526))+16) = i0;
5627 i0 = (OOC_INT64)iteratorFactory;
5628 *(OOC_INT64*)((_check_pointer(i1, 131553))+24) = i0;
5629 i0 = (OOC_INT64)stepperCall;
5630 *(OOC_INT64*)((_check_pointer(i1, 131604))+32) = i0;
5631 i0 = (OOC_INT64)body;
5632 *(OOC_INT64*)((_check_pointer(i1, 131647))+40) = i0;
5633 return;
5634 ;
5635 }
5636
OOC_IR__VisitorDesc_VisitIterateObjectStatm(OOC_IR__Visitor v,OOC_IR__IterateObjectStatm iterStatm)5637 void OOC_IR__VisitorDesc_VisitIterateObjectStatm(OOC_IR__Visitor v, OOC_IR__IterateObjectStatm iterStatm) {
5638
5639 return;
5640 ;
5641 }
5642
OOC_IR__IterateObjectStatmDesc_Accept(OOC_IR__IterateObjectStatm iterStatm,OOC_IR__Visitor v)5643 void OOC_IR__IterateObjectStatmDesc_Accept(OOC_IR__IterateObjectStatm iterStatm, OOC_IR__Visitor v) {
5644 register OOC_INT64 i0,i1;
5645
5646 i0 = (OOC_INT64)v;
5647 i1 = (OOC_INT64)iterStatm;
5648 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 131895)))), OOC_IR__VisitorDesc_VisitIterateObjectStatm)),OOC_IR__VisitorDesc_VisitIterateObjectStatm)((OOC_IR__Visitor)i0, (OOC_IR__IterateObjectStatm)i1);
5649 return;
5650 ;
5651 }
5652
OOC_IR__BuilderDesc_NewIterateStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Item context,OOC_IR__Expression var,OOC_IR__Expression sequence,OOC_IR__StatementSeq body)5653 OOC_IR__Statement OOC_IR__BuilderDesc_NewIterateStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Item context, OOC_IR__Expression var, OOC_IR__Expression sequence, OOC_IR__StatementSeq body) {
5654 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
5655 Object_BigInt__BigInt v;
5656 OOC_IR__Expression elem;
5657 OOC_SymbolTable__ProcDecl stepper;
5658 OOC_SymbolTable__Type _class;
5659 OOC_IR__Expression pseudoDesign;
5660 OOC_IR__ExpressionList arguments;
5661 OOC_IR__Expression expr;
5662 auto OOC_SymbolTable__ProcDecl OOC_IR__BuilderDesc_NewIterateStatm_GetStepper(OOC_SymbolTable__Type type, OOC_SymbolTable__Type *_class);
5663
5664 OOC_SymbolTable__ProcDecl OOC_IR__BuilderDesc_NewIterateStatm_GetStepper(OOC_SymbolTable__Type type, OOC_SymbolTable__Type *_class) {
5665 register OOC_INT64 i0,i1,i2,i3;
5666 OOC_SymbolTable__Record record;
5667 OOC_SymbolTable__Name n;
5668 OOC_SymbolTable__Declaration decl;
5669 OOC_SymbolTable__FormalPars fp;
5670
5671 i0 = (OOC_INT64)type;
5672 i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
5673 if (!i1) goto l4;
5674 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
5675 type = (OOC_SymbolTable__Type)i0;
5676
5677 l4:
5678 *_class = (OOC_SymbolTable__Type)i0;
5679 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 132737)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
5680 type = (OOC_SymbolTable__Type)i0;
5681 i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 132774)))), &_td_OOC_SymbolTable__RecordDesc, 132774);
5682 record = (OOC_SymbolTable__Record)i0;
5683 i1 = (OOC_INT64)sequence;
5684 i2 = (OOC_INT64)b;
5685 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 132813));
5686 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 132795)))), OOC_IR__BuilderDesc_GetName2)),OOC_IR__BuilderDesc_GetName2)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_CHAR8*)"Next", 5);
5687 n = (OOC_SymbolTable__Name)i1;
5688 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 132848))+96);
5689 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 132848))+96);
5690 i3 = (OOC_INT64)context;
5691 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 132851)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i0, (OOC_SymbolTable__Item)i3, (OOC_SymbolTable__Name)i1, 0u);
5692 decl = (OOC_SymbolTable__Declaration)i0;
5693 i1 = i0!=(OOC_INT64)0;
5694 if (!i1) goto l21;
5695 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 132925)))), &_td_OOC_SymbolTable__ProcDeclDesc);
5696 if (!i1) goto l21;
5697 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 132963))+112);
5698 fp = (OOC_SymbolTable__FormalPars)i1;
5699 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(0);
5700 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 132992))+80);
5701 i2 = i3==i2;
5702 if (i2) goto l11;
5703 i2=0u;
5704 goto l13;
5705 l11:
5706 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 133060))+96);
5707 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 133067)), 0);
5708 i2 = i2==1;
5709
5710 l13:
5711 if (i2) goto l15;
5712 i1=0u;
5713 goto l17;
5714 l15:
5715 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 133092))+96);
5716 i1 = _check_pointer(i1, 133099);
5717 i2 = OOC_ARRAY_LENGTH(i1, 0);
5718 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 133099))*8);
5719 i1 = *(OOC_UINT8*)((_check_pointer(i1, 133102))+107);
5720
5721 l17:
5722 if (!i1) goto l21;
5723 return (OOC_SymbolTable__ProcDecl)i0;
5724 l21:
5725 return (OOC_SymbolTable__ProcDecl)(OOC_INT64)0;
5726 ;
5727 }
5728
5729
5730 i0 = (OOC_INT64)var;
5731 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 133270)))), &_td_OOC_IR__VarDesc));
5732 if (i1) goto l23;
5733 i1 = (OOC_INT64)sequence;
5734 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 133350))+8);
5735 i2 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i2);
5736 if (i2) goto l17;
5737 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 134061))+8);
5738 i0 = OOC_SymbolTable_TypeRules__IsRecordPointer((OOC_SymbolTable__Type)i0);
5739 i0 = !i0;
5740 if (i0) goto l15;
5741 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 134173))+8);
5742 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewIterateStatm_GetStepper((OOC_SymbolTable__Type)i0, (void*)(OOC_INT64)&_class);
5743 stepper = (OOC_SymbolTable__ProcDecl)i0;
5744 i1 = i0==(OOC_INT64)0;
5745 if (i1) goto l13;
5746 i1 = (OOC_INT64)b;
5747 i2 = (OOC_INT64)sym;
5748 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 134308)))), OOC_IR__BuilderDesc_NewNil)),OOC_IR__BuilderDesc_NewNil)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2);
5749 pseudoDesign = (OOC_IR__Expression)i3;
5750 i4 = (OOC_INT64)sequence;
5751 i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 134449));
5752 i6 = (OOC_INT64)_class;
5753 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewSelectProc((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i3, (OOC_SymbolTable__Type)i6, (OOC_SymbolTable__ProcDecl)i0, (OOC_Scanner_SymList__Symbol)i5, 0u);
5754 pseudoDesign = (OOC_IR__Expression)i0;
5755 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ExpressionList.baseTypes[0], 1);
5756 arguments = (OOC_IR__ExpressionList)i3;
5757 i5 = _check_pointer(i3, 134511);
5758 i6 = OOC_ARRAY_LENGTH(i5, 0);
5759 i7 = (OOC_INT64)var;
5760 *(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT8, 134511))*8) = i7;
5761 i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 134627));
5762 i6 = (OOC_INT64)context;
5763 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 134542)))), OOC_IR__BuilderDesc_NewCall)),OOC_IR__BuilderDesc_NewCall)((OOC_IR__Builder)i1, (OOC_IR__Expression)i0, (OOC_IR__ExpressionList)i3, 1u, (OOC_SymbolTable__Item)i6, (OOC_Scanner_SymList__Symbol)i5);
5764 expr = (OOC_IR__Expression)i0;
5765 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 134653)))), &_td_OOC_IR__CallDesc);
5766 if (i1) goto l11;
5767 i0=(OOC_INT64)0;
5768 goto l12;
5769 l11:
5770 i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 134699)))), &_td_OOC_IR__CallDesc, 134699);
5771
5772 l12:
5773 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__IterateObjectStatm.baseTypes[0]);
5774 i3 = (OOC_INT64)body;
5775 OOC_IR__InitIterateObjectStatm((OOC_IR__IterateObjectStatm)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i7, (OOC_IR__Expression)i4, (OOC_IR__Call)i0, (OOC_IR__StatementSeq)i3);
5776 return (OOC_IR__Statement)i1;
5777 goto l24;
5778 l13:
5779 i0 = (OOC_INT64)sequence;
5780 i1 = (OOC_INT64)b;
5781 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 134261));
5782 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 134231)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 78, (OOC_Scanner_SymList__Symbol)i0);
5783 goto l24;
5784 l15:
5785 i0 = (OOC_INT64)b;
5786 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 134117));
5787 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 134082)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 77, (OOC_Scanner_SymList__Symbol)i1);
5788 goto l24;
5789 l17:
5790 sequence = (OOC_IR__Expression)i1;
5791 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 133458))+8);
5792 i2 = OOC_SymbolTable_TypeRules__IsValidArrayIteratorRange((OOC_SymbolTable__Type)i2);
5793 i2 = !i2;
5794 if (i2) goto l20;
5795 i2 = (OOC_INT64)Object_BigInt__NewInt(0);
5796 v = (Object_BigInt__BigInt)i2;
5797 i3 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i2);
5798 i4 = (OOC_INT64)sym;
5799 i2 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i2);
5800 i3 = (OOC_INT64)b;
5801 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 133640)))), OOC_IR__BuilderDesc_NewIndex)),OOC_IR__BuilderDesc_NewIndex)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i1, (OOC_IR__Expression)i2);
5802 elem = (OOC_IR__Expression)i2;
5803 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 133797))+8);
5804 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 133782));
5805 OOC_IR__MakeAssignmentCompatible((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i4, (void*)(OOC_INT64)&elem, (OOC_SymbolTable__Type)i2);
5806 goto l21;
5807 l20:
5808 i2 = (OOC_INT64)b;
5809 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 133518));
5810 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 133479)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i2, 76, (OOC_Scanner_SymList__Symbol)i3);
5811 l21:
5812 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__IterateArrayStatm.baseTypes[0]);
5813 i3 = (OOC_INT64)sym;
5814 i4 = (OOC_INT64)body;
5815 OOC_IR__InitIterateArrayStatm((OOC_IR__IterateArrayStatm)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1, (OOC_IR__StatementSeq)i4);
5816 return (OOC_IR__Statement)i2;
5817 goto l24;
5818 l23:
5819 i1 = (OOC_INT64)b;
5820 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 133314));
5821 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 133290)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 29, (OOC_Scanner_SymList__Symbol)i0);
5822 l24:
5823 return (OOC_IR__Statement)(OOC_INT64)0;
5824 ;
5825 }
5826
OOC_IR__InitIfStatm(OOC_IR__IfStatm ifStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression guard,OOC_IR__StatementSeq pathTrue,OOC_IR__StatementSeq pathFalse)5827 static void OOC_IR__InitIfStatm(OOC_IR__IfStatm ifStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression guard, OOC_IR__StatementSeq pathTrue, OOC_IR__StatementSeq pathFalse) {
5828 register OOC_INT64 i0,i1;
5829
5830 i0 = (OOC_INT64)sym;
5831 i1 = (OOC_INT64)ifStatm;
5832 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5833 i0 = (OOC_INT64)guard;
5834 *(OOC_INT64*)((_check_pointer(i1, 135336))+16) = i0;
5835 i0 = (OOC_INT64)pathTrue;
5836 *(OOC_INT64*)((_check_pointer(i1, 135365))+24) = i0;
5837 i0 = (OOC_INT64)pathFalse;
5838 *(OOC_INT64*)((_check_pointer(i1, 135400))+32) = i0;
5839 return;
5840 ;
5841 }
5842
OOC_IR__BuilderDesc_NewIfStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression guard,OOC_IR__StatementSeq pathTrue,OOC_IR__StatementSeq pathFalse)5843 OOC_IR__IfStatm OOC_IR__BuilderDesc_NewIfStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression guard, OOC_IR__StatementSeq pathTrue, OOC_IR__StatementSeq pathFalse) {
5844 register OOC_INT64 i0,i1,i2,i3,i4;
5845 OOC_IR__IfStatm ifStatm;
5846
5847 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__IfStatm.baseTypes[0]);
5848 ifStatm = (OOC_IR__IfStatm)i0;
5849 i1 = (OOC_INT64)b;
5850 i2 = (OOC_INT64)guard;
5851 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 135682)))), OOC_IR__BuilderDesc_AssertBoolean)),OOC_IR__BuilderDesc_AssertBoolean)((OOC_IR__Builder)i1, (OOC_IR__Expression)i2);
5852 i2 = (OOC_INT64)sym;
5853 i3 = (OOC_INT64)pathTrue;
5854 i4 = (OOC_INT64)pathFalse;
5855 OOC_IR__InitIfStatm((OOC_IR__IfStatm)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__StatementSeq)i3, (OOC_IR__StatementSeq)i4);
5856 return (OOC_IR__IfStatm)i0;
5857 ;
5858 }
5859
OOC_IR__VisitorDesc_VisitIfStatm(OOC_IR__Visitor v,OOC_IR__IfStatm ifStatm)5860 void OOC_IR__VisitorDesc_VisitIfStatm(OOC_IR__Visitor v, OOC_IR__IfStatm ifStatm) {
5861
5862 return;
5863 ;
5864 }
5865
OOC_IR__IfStatmDesc_Accept(OOC_IR__IfStatm ifStatm,OOC_IR__Visitor v)5866 void OOC_IR__IfStatmDesc_Accept(OOC_IR__IfStatm ifStatm, OOC_IR__Visitor v) {
5867 register OOC_INT64 i0,i1;
5868
5869 i0 = (OOC_INT64)v;
5870 i1 = (OOC_INT64)ifStatm;
5871 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 135920)))), OOC_IR__VisitorDesc_VisitIfStatm)),OOC_IR__VisitorDesc_VisitIfStatm)((OOC_IR__Visitor)i0, (OOC_IR__IfStatm)i1);
5872 return;
5873 ;
5874 }
5875
OOC_IR__InitCase(OOC_IR__Case _case,OOC_Scanner_SymList__Symbol sym,OOC_IR__CaseLabels labels,OOC_IR__StatementSeq statmSeq)5876 static void OOC_IR__InitCase(OOC_IR__Case _case, OOC_Scanner_SymList__Symbol sym, OOC_IR__CaseLabels labels, OOC_IR__StatementSeq statmSeq) {
5877 register OOC_INT64 i0,i1;
5878
5879 i0 = (OOC_INT64)sym;
5880 i1 = (OOC_INT64)_case;
5881 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
5882 i0 = (OOC_INT64)labels;
5883 *(OOC_INT64*)((_check_pointer(i1, 136222))+16) = i0;
5884 i0 = (OOC_INT64)statmSeq;
5885 *(OOC_INT64*)((_check_pointer(i1, 136250))+24) = i0;
5886 return;
5887 ;
5888 }
5889
OOC_IR__BuilderDesc_NewCase(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__CaseLabels labels,OOC_IR__StatementSeq statmSeq)5890 OOC_IR__Case OOC_IR__BuilderDesc_NewCase(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__CaseLabels labels, OOC_IR__StatementSeq statmSeq) {
5891 register OOC_INT64 i0,i1,i2,i3,i4,i5;
5892 OOC_INT32 i;
5893 OOC_IR__SetRange range;
5894
5895 i0 = (OOC_INT64)labels;
5896 i = 0;
5897 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 136517)), 0);
5898 i2 = 0<i1;
5899 if (!i2) goto l8;
5900 i2 = (OOC_INT64)b;
5901 i3=0;
5902 l3_loop:
5903 i4 = _check_pointer(i0, 136546);
5904 i5 = OOC_ARRAY_LENGTH(i4, 0);
5905 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 136546))*8);
5906 i4 = _type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 136550)))), &_td_OOC_IR__SetRangeDesc, 136550);
5907 range = (OOC_IR__SetRange)i4;
5908 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 136602))+16);
5909 i5 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 136582)))), OOC_IR__BuilderDesc_AssertConst)),OOC_IR__BuilderDesc_AssertConst)((OOC_IR__Builder)i2, (OOC_IR__Expression)i5);
5910 *(OOC_INT64*)((_check_pointer(i4, 136572))+16) = i5;
5911 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 136650))+24);
5912 i5 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 136630)))), OOC_IR__BuilderDesc_AssertConst)),OOC_IR__BuilderDesc_AssertConst)((OOC_IR__Builder)i2, (OOC_IR__Expression)i5);
5913 *(OOC_INT64*)((_check_pointer(i4, 136622))+24) = i5;
5914 i3 = i3+1;
5915 i = i3;
5916 i4 = i3<i1;
5917 if (i4) goto l3_loop;
5918 l8:
5919 i1 = (OOC_INT64)sym;
5920 i2 = (OOC_INT64)statmSeq;
5921 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Case.baseTypes[0]);
5922 OOC_IR__InitCase((OOC_IR__Case)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__CaseLabels)i0, (OOC_IR__StatementSeq)i2);
5923 return (OOC_IR__Case)i3;
5924 ;
5925 }
5926
OOC_IR__VisitorDesc_VisitCase(OOC_IR__Visitor v,OOC_IR__Case _case)5927 void OOC_IR__VisitorDesc_VisitCase(OOC_IR__Visitor v, OOC_IR__Case _case) {
5928
5929 return;
5930 ;
5931 }
5932
OOC_IR__CaseDesc_Accept(OOC_IR__Case _case,OOC_IR__Visitor v)5933 void OOC_IR__CaseDesc_Accept(OOC_IR__Case _case, OOC_IR__Visitor v) {
5934 register OOC_INT64 i0,i1;
5935
5936 i0 = (OOC_INT64)v;
5937 i1 = (OOC_INT64)_case;
5938 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 136898)))), OOC_IR__VisitorDesc_VisitCase)),OOC_IR__VisitorDesc_VisitCase)((OOC_IR__Visitor)i0, (OOC_IR__Case)i1);
5939 return;
5940 ;
5941 }
5942
OOC_IR__CaseDesc_CheckLabels(OOC_IR__Case _case,OOC_IR__Builder b,OOC_SymbolTable__Type type,OOC_IR__CaseList caseList)5943 void OOC_IR__CaseDesc_CheckLabels(OOC_IR__Case _case, OOC_IR__Builder b, OOC_SymbolTable__Type type, OOC_IR__CaseList caseList) {
5944 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
5945 OOC_INT32 deleted;
5946 OOC_INT32 i;
5947 OOC_IR__SetRange range;
5948 OOC_CHAR8 inUse;
5949 OOC_INT32 j;
5950 OOC_IR__CaseLabels _new;
5951 auto OOC_CHAR8 OOC_IR__CaseDesc_CheckLabels_IntersectsWith(OOC_IR__SetRange range, OOC_IR__CaseLabels list, OOC_INT32 end);
5952
5953 OOC_CHAR8 OOC_IR__CaseDesc_CheckLabels_IntersectsWith(OOC_IR__SetRange range, OOC_IR__CaseLabels list, OOC_INT32 end) {
5954 register OOC_INT64 i0,i1,i2,i3,i4,i5;
5955 OOC_INT32 i;
5956
5957 i = 0;
5958 i0 = end;
5959 i1 = 0!=i0;
5960 if (!i1) goto l15;
5961 i1 = (OOC_INT64)list;
5962 i2 = (OOC_INT64)range;
5963 i3=0;
5964 l3_loop:
5965 i4 = _check_pointer(i1, 137356);
5966 i5 = OOC_ARRAY_LENGTH(i4, 0);
5967 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 137356))*8);
5968 i4 = i4!=(OOC_INT64)0;
5969 if (i4) goto l6;
5970 i4=0u;
5971 goto l8;
5972 l6:
5973 i4 = _check_pointer(i1, 137396);
5974 i5 = OOC_ARRAY_LENGTH(i4, 0);
5975 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 137396))*8);
5976 i4 = OOC_IR__SetRangeDesc_IntersectsWith((OOC_IR__SetRange)i2, (OOC_IR__SetRange)(_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 137400)))), &_td_OOC_IR__SetRangeDesc, 137400)));
5977
5978 l8:
5979 if (!i4) goto l10;
5980 return 1u;
5981 l10:
5982 i3 = i3+1;
5983 i = i3;
5984 i4 = i3!=i0;
5985 if (i4) goto l3_loop;
5986 l15:
5987 return 0u;
5988 ;
5989 }
5990
5991
5992 deleted = 0;
5993 i0 = (OOC_INT64)_case;
5994 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 137580))+16);
5995 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 137588)), 0);
5996 i = 0;
5997 i1 = 0<i0;
5998 if (!i1) goto l44;
5999 i1 = !0u;
6000 i2=0;
6001 l3_loop:
6002 i3 = (OOC_INT64)_case;
6003 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 137615))+16);
6004 i4 = _check_pointer(i4, 137623);
6005 i5 = OOC_ARRAY_LENGTH(i4, 0);
6006 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 137623))*8);
6007 i4 = _type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 137627)))), &_td_OOC_IR__SetRangeDesc, 137627);
6008 range = (OOC_IR__SetRange)i4;
6009 i5 = (OOC_INT64)type;
6010 i6 = (OOC_INT64)b;
6011 i7 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i6, (void*)((_check_pointer(i4, 137663))+16), (OOC_SymbolTable__Type)i5);
6012 i7 = !i7;
6013 if (i7) goto l38;
6014 i5 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i6, (void*)((_check_pointer(i4, 137842))+24), (OOC_SymbolTable__Type)i5);
6015 i5 = !i5;
6016 if (i5) goto l36;
6017 i4 = OOC_IR__SetRangeDesc_IsEmpty((OOC_IR__SetRange)i4);
6018 if (i4) goto l34;
6019 inUse = 0u;
6020 j = 0;
6021 i2 = (OOC_INT64)caseList;
6022 i2 = _check_pointer(i2, 138202);
6023 i4 = OOC_ARRAY_LENGTH(i2, 0);
6024 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i4, OOC_UINT32, 138202))*8);
6025 i2 = i2!=i3;
6026 if (i2) goto l12;
6027 i2=0u;
6028 goto l14;
6029 l12:
6030 i2=i1;
6031 l14:
6032 if (i2) goto l16;
6033 i2=0u;
6034 goto l27;
6035 l16:
6036 i2=0;
6037 l17_loop:
6038 i3 = (OOC_INT64)caseList;
6039 i4 = _check_pointer(i3, 138337);
6040 i5 = OOC_ARRAY_LENGTH(i4, 0);
6041 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 138337))*8);
6042 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 138340))+16);
6043 i3 = _check_pointer(i3, 138276);
6044 i5 = OOC_ARRAY_LENGTH(i3, 0);
6045 i2 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 138276))*8);
6046 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 138279))+16);
6047 i3 = OOC_ARRAY_LENGTH((_check_pointer(i4, 138348)), 0);
6048 i4 = (OOC_INT64)range;
6049 i2 = OOC_IR__CaseDesc_CheckLabels_IntersectsWith((OOC_IR__SetRange)i4, (OOC_IR__CaseLabels)i2, i3);
6050 i3 = j;
6051 inUse = i2;
6052 i3 = i3+1;
6053 j = i3;
6054 i4 = (OOC_INT64)caseList;
6055 i4 = _check_pointer(i4, 138202);
6056 i5 = OOC_ARRAY_LENGTH(i4, 0);
6057 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 138202))*8);
6058 i5 = (OOC_INT64)_case;
6059 i4 = i4!=i5;
6060 if (i4) goto l20;
6061 i4=0u;
6062 goto l22;
6063 l20:
6064 i4 = !i2;
6065
6066 l22:
6067 if (!i4) goto l27;
6068 i2=i3;
6069 goto l17_loop;
6070 l27:
6071 if (i2) goto l29;
6072 i2 = (OOC_INT64)_case;
6073 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 138438))+16);
6074 i3 = i;
6075 i4 = (OOC_INT64)range;
6076 i2 = OOC_IR__CaseDesc_CheckLabels_IntersectsWith((OOC_IR__SetRange)i4, (OOC_IR__CaseLabels)i2, i3);
6077
6078 goto l30;
6079 l29:
6080 i2=1u;
6081 l30:
6082 inUse = i2;
6083 if (!i2) goto l39;
6084 i2 = (OOC_INT64)range;
6085 i3 = (OOC_INT64)b;
6086 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 138516));
6087 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 138485)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 28, (OOC_Scanner_SymList__Symbol)i2);
6088 goto l39;
6089 l34:
6090 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 138093))+16);
6091 i3 = _check_pointer(i3, 138101);
6092 i4 = OOC_ARRAY_LENGTH(i3, 0);
6093 i5 = deleted;
6094 *(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 138101))*8) = (OOC_INT64)0;
6095 deleted = (i5+1);
6096 goto l39;
6097 l36:
6098 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 137901))+24);
6099 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 137905));
6100 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 137868)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i6, 27, (OOC_Scanner_SymList__Symbol)i4);
6101 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 137925))+16);
6102 i3 = _check_pointer(i3, 137933);
6103 i4 = OOC_ARRAY_LENGTH(i3, 0);
6104 i5 = deleted;
6105 *(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 137933))*8) = (OOC_INT64)0;
6106 deleted = (i5+1);
6107 goto l39;
6108 l38:
6109 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 137724))+16);
6110 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 137730));
6111 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 137691)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i6, 27, (OOC_Scanner_SymList__Symbol)i4);
6112 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 137750))+16);
6113 i3 = _check_pointer(i3, 137758);
6114 i4 = OOC_ARRAY_LENGTH(i3, 0);
6115 i5 = deleted;
6116 *(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 137758))*8) = (OOC_INT64)0;
6117 deleted = (i5+1);
6118 l39:
6119 i2 = i;
6120 i2 = i2+1;
6121 i = i2;
6122 i3 = i2<i0;
6123 if (i3) goto l3_loop;
6124 l44:
6125 i0 = deleted;
6126 i1 = i0!=0;
6127 if (!i1) goto l60;
6128 i1 = (OOC_INT64)_case;
6129 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 138609))+16);
6130 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 138617)), 0);
6131 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__CaseLabels.baseTypes[0], (i2-i0));
6132 _new = (OOC_IR__CaseLabels)i0;
6133 j = (-1);
6134 i = 0;
6135 i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 138673)), 0);
6136 i3 = 0<i2;
6137 if (!i3) goto l59;
6138 i3=(-1);i4=0;
6139 l49_loop:
6140
6141 l50_loop:
6142 i3 = i3+1;
6143 j = i3;
6144 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 138734))+16);
6145 i5 = _check_pointer(i5, 138742);
6146 i6 = OOC_ARRAY_LENGTH(i5, 0);
6147 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 138742))*8);
6148 i5 = i5!=(OOC_INT64)0;
6149 if (!i5) goto l50_loop;
6150 l54:
6151 i5 = _check_pointer(i0, 138765);
6152 i6 = OOC_ARRAY_LENGTH(i5, 0);
6153 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 138776))+16);
6154 i7 = _check_pointer(i7, 138784);
6155 i8 = OOC_ARRAY_LENGTH(i7, 0);
6156 i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i3, i8, OOC_UINT32, 138784))*8);
6157 *(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 138765))*8) = i7;
6158 i4 = i4+1;
6159 i = i4;
6160 i5 = i4<i2;
6161 if (i5) goto l49_loop;
6162 l59:
6163 *(OOC_INT64*)((_check_pointer(i1, 138810))+16) = i0;
6164 l60:
6165 return;
6166 ;
6167 }
6168
OOC_IR__InitCaseStatm(OOC_IR__CaseStatm caseStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression select,OOC_IR__CaseList caseList,OOC_IR__StatementSeq _default,OOC_CHAR8 checkMatch)6169 static void OOC_IR__InitCaseStatm(OOC_IR__CaseStatm caseStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression select, OOC_IR__CaseList caseList, OOC_IR__StatementSeq _default, OOC_CHAR8 checkMatch) {
6170 register OOC_INT64 i0,i1;
6171
6172 i0 = (OOC_INT64)sym;
6173 i1 = (OOC_INT64)caseStatm;
6174 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6175 i0 = (OOC_INT64)select;
6176 *(OOC_INT64*)((_check_pointer(i1, 139218))+16) = i0;
6177 i0 = (OOC_INT64)caseList;
6178 *(OOC_INT64*)((_check_pointer(i1, 139251))+24) = i0;
6179 i0 = (OOC_INT64)_default;
6180 *(OOC_INT64*)((_check_pointer(i1, 139288))+32) = i0;
6181 i0 = checkMatch;
6182 *(OOC_UINT8*)((_check_pointer(i1, 139323))+40) = i0;
6183 return;
6184 ;
6185 }
6186
OOC_IR__BuilderDesc_NewCaseStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression select,OOC_IR__CaseList caseList,OOC_IR__StatementSeq _default)6187 OOC_IR__CaseStatm OOC_IR__BuilderDesc_NewCaseStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression select, OOC_IR__CaseList caseList, OOC_IR__StatementSeq _default) {
6188 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
6189 OOC_IR__CaseStatm caseStatm;
6190 OOC_INT32 i;
6191
6192 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__CaseStatm.baseTypes[0]);
6193 caseStatm = (OOC_IR__CaseStatm)i0;
6194 i1 = (OOC_INT64)select;
6195 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 139652))+8);
6196 i2 = OOC_SymbolTable_TypeRules__IsValidCaseSelector((OOC_SymbolTable__Type)i2);
6197 i2 = !i2;
6198 if (i2) goto l11;
6199 i2 = (OOC_INT64)caseList;
6200 i = 0;
6201 i3 = OOC_ARRAY_LENGTH((_check_pointer(i2, 139759)), 0);
6202 i4 = 0<i3;
6203 if (!i4) goto l12;
6204 i4 = (OOC_INT64)b;
6205 i5=0;
6206 l5_loop:
6207 i6 = _check_pointer(i2, 139783);
6208 i7 = OOC_ARRAY_LENGTH(i6, 0);
6209 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 139810))+8);
6210 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i5, i7, OOC_UINT32, 139783))*8);
6211 OOC_IR__CaseDesc_CheckLabels((OOC_IR__Case)i6, (OOC_IR__Builder)i4, (OOC_SymbolTable__Type)i8, (OOC_IR__CaseList)i2);
6212 i5 = i5+1;
6213 i = i5;
6214 i6 = i5<i3;
6215 if (i6) goto l5_loop;
6216 goto l12;
6217 l11:
6218 i2 = (OOC_INT64)b;
6219 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 139709));
6220 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 139672)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i2, 26, (OOC_Scanner_SymList__Symbol)i3);
6221 l12:
6222 i2 = (OOC_INT64)sym;
6223 i3 = *(OOC_INT32*)((_check_pointer(i2, 139980))+28);
6224 i4 = (OOC_INT64)OOC_Config_StdPragmas__caseSelectCheck;
6225 i5 = (OOC_INT64)b;
6226 i3 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i5, (Config_Section_Options__Option)i4, i3);
6227 i4 = (OOC_INT64)_default;
6228 i5 = (OOC_INT64)caseList;
6229 OOC_IR__InitCaseStatm((OOC_IR__CaseStatm)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__CaseList)i5, (OOC_IR__StatementSeq)i4, i3);
6230 return (OOC_IR__CaseStatm)i0;
6231 ;
6232 }
6233
OOC_IR__VisitorDesc_VisitCaseStatm(OOC_IR__Visitor v,OOC_IR__CaseStatm caseStatm)6234 void OOC_IR__VisitorDesc_VisitCaseStatm(OOC_IR__Visitor v, OOC_IR__CaseStatm caseStatm) {
6235
6236 return;
6237 ;
6238 }
6239
OOC_IR__CaseStatmDesc_Accept(OOC_IR__CaseStatm caseStatm,OOC_IR__Visitor v)6240 void OOC_IR__CaseStatmDesc_Accept(OOC_IR__CaseStatm caseStatm, OOC_IR__Visitor v) {
6241 register OOC_INT64 i0,i1;
6242
6243 i0 = (OOC_INT64)v;
6244 i1 = (OOC_INT64)caseStatm;
6245 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 140196)))), OOC_IR__VisitorDesc_VisitCaseStatm)),OOC_IR__VisitorDesc_VisitCaseStatm)((OOC_IR__Visitor)i0, (OOC_IR__CaseStatm)i1);
6246 return;
6247 ;
6248 }
6249
OOC_IR__InitLoopStatm(OOC_IR__LoopStatm loopStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__StatementSeq body)6250 static void OOC_IR__InitLoopStatm(OOC_IR__LoopStatm loopStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__StatementSeq body) {
6251 register OOC_INT64 i0,i1;
6252
6253 i0 = (OOC_INT64)sym;
6254 i1 = (OOC_INT64)loopStatm;
6255 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6256 i0 = (OOC_INT64)body;
6257 *(OOC_INT64*)((_check_pointer(i1, 140513))+16) = i0;
6258 return;
6259 ;
6260 }
6261
OOC_IR__BuilderDesc_NewLoopStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__StatementSeq body)6262 OOC_IR__LoopStatm OOC_IR__BuilderDesc_NewLoopStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__StatementSeq body) {
6263 register OOC_INT64 i0,i1,i2;
6264
6265 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__LoopStatm.baseTypes[0]);
6266 i1 = (OOC_INT64)body;
6267 i2 = (OOC_INT64)sym;
6268 OOC_IR__InitLoopStatm((OOC_IR__LoopStatm)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__StatementSeq)i1);
6269 return (OOC_IR__LoopStatm)i0;
6270 ;
6271 }
6272
OOC_IR__VisitorDesc_VisitLoopStatm(OOC_IR__Visitor v,OOC_IR__LoopStatm loopStatm)6273 void OOC_IR__VisitorDesc_VisitLoopStatm(OOC_IR__Visitor v, OOC_IR__LoopStatm loopStatm) {
6274
6275 return;
6276 ;
6277 }
6278
OOC_IR__LoopStatmDesc_Accept(OOC_IR__LoopStatm loopStatm,OOC_IR__Visitor v)6279 void OOC_IR__LoopStatmDesc_Accept(OOC_IR__LoopStatm loopStatm, OOC_IR__Visitor v) {
6280 register OOC_INT64 i0,i1;
6281
6282 i0 = (OOC_INT64)v;
6283 i1 = (OOC_INT64)loopStatm;
6284 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 140981)))), OOC_IR__VisitorDesc_VisitLoopStatm)),OOC_IR__VisitorDesc_VisitLoopStatm)((OOC_IR__Visitor)i0, (OOC_IR__LoopStatm)i1);
6285 return;
6286 ;
6287 }
6288
OOC_IR__InitMoveBlock(OOC_IR__MoveBlock move,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression source,OOC_IR__Expression dest,OOC_IR__Expression size)6289 static void OOC_IR__InitMoveBlock(OOC_IR__MoveBlock move, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression source, OOC_IR__Expression dest, OOC_IR__Expression size) {
6290 register OOC_INT64 i0,i1;
6291
6292 i0 = (OOC_INT64)sym;
6293 i1 = (OOC_INT64)move;
6294 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6295 i0 = (OOC_INT64)source;
6296 *(OOC_INT64*)((_check_pointer(i1, 141295))+16) = i0;
6297 i0 = (OOC_INT64)dest;
6298 *(OOC_INT64*)((_check_pointer(i1, 141323))+24) = i0;
6299 i0 = (OOC_INT64)size;
6300 *(OOC_INT64*)((_check_pointer(i1, 141347))+32) = i0;
6301 return;
6302 ;
6303 }
6304
OOC_IR__BuilderDesc_NewMoveBlock(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression source,OOC_IR__Expression dest,OOC_IR__Expression size)6305 OOC_IR__MoveBlock OOC_IR__BuilderDesc_NewMoveBlock(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression source, OOC_IR__Expression dest, OOC_IR__Expression size) {
6306 register OOC_INT64 i0,i1,i2,i3,i4;
6307
6308 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__MoveBlock.baseTypes[0]);
6309 i1 = (OOC_INT64)size;
6310 i2 = (OOC_INT64)b;
6311 i1 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i1);
6312 i3 = (OOC_INT64)dest;
6313 i3 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i3);
6314 i4 = (OOC_INT64)source;
6315 i2 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i2, (OOC_IR__Expression)i4);
6316 i4 = (OOC_INT64)sym;
6317 OOC_IR__InitMoveBlock((OOC_IR__MoveBlock)i0, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i2, (OOC_IR__Expression)i3, (OOC_IR__Expression)i1);
6318 return (OOC_IR__MoveBlock)i0;
6319 ;
6320 }
6321
OOC_IR__VisitorDesc_VisitMoveBlock(OOC_IR__Visitor v,OOC_IR__MoveBlock move)6322 void OOC_IR__VisitorDesc_VisitMoveBlock(OOC_IR__Visitor v, OOC_IR__MoveBlock move) {
6323
6324 return;
6325 ;
6326 }
6327
OOC_IR__MoveBlockDesc_Accept(OOC_IR__MoveBlock move,OOC_IR__Visitor v)6328 void OOC_IR__MoveBlockDesc_Accept(OOC_IR__MoveBlock move, OOC_IR__Visitor v) {
6329 register OOC_INT64 i0,i1;
6330
6331 i0 = (OOC_INT64)v;
6332 i1 = (OOC_INT64)move;
6333 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 141932)))), OOC_IR__VisitorDesc_VisitMoveBlock)),OOC_IR__VisitorDesc_VisitMoveBlock)((OOC_IR__Visitor)i0, (OOC_IR__MoveBlock)i1);
6334 return;
6335 ;
6336 }
6337
OOC_IR__InitRaise(OOC_IR__Raise raise,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression exception)6338 static void OOC_IR__InitRaise(OOC_IR__Raise raise, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression exception) {
6339 register OOC_INT64 i0,i1;
6340
6341 i0 = (OOC_INT64)sym;
6342 i1 = (OOC_INT64)raise;
6343 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6344 i0 = (OOC_INT64)exception;
6345 *(OOC_INT64*)((_check_pointer(i1, 142198))+16) = i0;
6346 return;
6347 ;
6348 }
6349
OOC_IR__BuilderDesc_NewRaise(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression exception)6350 OOC_IR__Raise OOC_IR__BuilderDesc_NewRaise(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression exception) {
6351 register OOC_INT64 i0,i1,i2;
6352
6353 i0 = (OOC_INT64)exception;
6354 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 142383))+8);
6355 i1 = OOC_SymbolTable_TypeRules__IsException((OOC_SymbolTable__Type)i1);
6356 if (i1) goto l3;
6357 i1 = (OOC_INT64)b;
6358 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 142522));
6359 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 142491)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 62, (OOC_Scanner_SymList__Symbol)i0);
6360 return (OOC_IR__Raise)0;
6361 goto l4;
6362 l3:
6363 i1 = (OOC_INT64)sym;
6364 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Raise.baseTypes[0]);
6365 OOC_IR__InitRaise((OOC_IR__Raise)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
6366 return (OOC_IR__Raise)i2;
6367 l4:
6368 _failed_function(142265); return 0;
6369 ;
6370 }
6371
OOC_IR__VisitorDesc_VisitRaise(OOC_IR__Visitor v,OOC_IR__Raise raise)6372 void OOC_IR__VisitorDesc_VisitRaise(OOC_IR__Visitor v, OOC_IR__Raise raise) {
6373
6374 return;
6375 ;
6376 }
6377
OOC_IR__RaiseDesc_Accept(OOC_IR__Raise raise,OOC_IR__Visitor v)6378 void OOC_IR__RaiseDesc_Accept(OOC_IR__Raise raise, OOC_IR__Visitor v) {
6379 register OOC_INT64 i0,i1;
6380
6381 i0 = (OOC_INT64)v;
6382 i1 = (OOC_INT64)raise;
6383 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 142714)))), OOC_IR__VisitorDesc_VisitRaise)),OOC_IR__VisitorDesc_VisitRaise)((OOC_IR__Visitor)i0, (OOC_IR__Raise)i1);
6384 return;
6385 ;
6386 }
6387
OOC_IR__InitRepeatStatm(OOC_IR__RepeatStatm repeatStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__StatementSeq body,OOC_IR__Expression exitCondition)6388 static void OOC_IR__InitRepeatStatm(OOC_IR__RepeatStatm repeatStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__StatementSeq body, OOC_IR__Expression exitCondition) {
6389 register OOC_INT64 i0,i1;
6390
6391 i0 = (OOC_INT64)sym;
6392 i1 = (OOC_INT64)repeatStatm;
6393 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6394 i0 = (OOC_INT64)body;
6395 *(OOC_INT64*)((_check_pointer(i1, 143064))+16) = i0;
6396 i0 = (OOC_INT64)exitCondition;
6397 *(OOC_INT64*)((_check_pointer(i1, 143095))+24) = i0;
6398 return;
6399 ;
6400 }
6401
OOC_IR__BuilderDesc_NewRepeatStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__StatementSeq body,OOC_IR__Expression exitCondition)6402 OOC_IR__RepeatStatm OOC_IR__BuilderDesc_NewRepeatStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__StatementSeq body, OOC_IR__Expression exitCondition) {
6403 register OOC_INT64 i0,i1,i2,i3;
6404 OOC_IR__RepeatStatm repeatStatm;
6405
6406 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__RepeatStatm.baseTypes[0]);
6407 repeatStatm = (OOC_IR__RepeatStatm)i0;
6408 i1 = (OOC_INT64)b;
6409 i2 = (OOC_INT64)exitCondition;
6410 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 143419)))), OOC_IR__BuilderDesc_AssertBoolean)),OOC_IR__BuilderDesc_AssertBoolean)((OOC_IR__Builder)i1, (OOC_IR__Expression)i2);
6411 i2 = (OOC_INT64)sym;
6412 i3 = (OOC_INT64)body;
6413 OOC_IR__InitRepeatStatm((OOC_IR__RepeatStatm)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__StatementSeq)i3, (OOC_IR__Expression)i1);
6414 return (OOC_IR__RepeatStatm)i0;
6415 ;
6416 }
6417
OOC_IR__VisitorDesc_VisitRepeatStatm(OOC_IR__Visitor v,OOC_IR__RepeatStatm repeatStatm)6418 void OOC_IR__VisitorDesc_VisitRepeatStatm(OOC_IR__Visitor v, OOC_IR__RepeatStatm repeatStatm) {
6419
6420 return;
6421 ;
6422 }
6423
OOC_IR__RepeatStatmDesc_Accept(OOC_IR__RepeatStatm repeatStatm,OOC_IR__Visitor v)6424 void OOC_IR__RepeatStatmDesc_Accept(OOC_IR__RepeatStatm repeatStatm, OOC_IR__Visitor v) {
6425 register OOC_INT64 i0,i1;
6426
6427 i0 = (OOC_INT64)v;
6428 i1 = (OOC_INT64)repeatStatm;
6429 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 143676)))), OOC_IR__VisitorDesc_VisitRepeatStatm)),OOC_IR__VisitorDesc_VisitRepeatStatm)((OOC_IR__Visitor)i0, (OOC_IR__RepeatStatm)i1);
6430 return;
6431 ;
6432 }
6433
OOC_IR__InitReturn(OOC_IR__Return _return,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression result)6434 static void OOC_IR__InitReturn(OOC_IR__Return _return, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression result) {
6435 register OOC_INT64 i0,i1;
6436
6437 i0 = (OOC_INT64)sym;
6438 i1 = (OOC_INT64)_return;
6439 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6440 i0 = (OOC_INT64)result;
6441 *(OOC_INT64*)((_check_pointer(i1, 143954))+16) = i0;
6442 *(OOC_INT32*)((_check_pointer(i1, 143984))+24) = 0;
6443 return;
6444 ;
6445 }
6446
OOC_IR__BuilderDesc_NewReturn(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression result)6447 OOC_IR__Return OOC_IR__BuilderDesc_NewReturn(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression result) {
6448 register OOC_INT64 i0,i1,i2;
6449
6450 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Return.baseTypes[0]);
6451 i1 = (OOC_INT64)result;
6452 i2 = (OOC_INT64)sym;
6453 OOC_IR__InitReturn((OOC_IR__Return)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
6454 return (OOC_IR__Return)i0;
6455 ;
6456 }
6457
OOC_IR__VisitorDesc_VisitReturn(OOC_IR__Visitor v,OOC_IR__Return _return)6458 void OOC_IR__VisitorDesc_VisitReturn(OOC_IR__Visitor v, OOC_IR__Return _return) {
6459
6460 return;
6461 ;
6462 }
6463
OOC_IR__ReturnDesc_Accept(OOC_IR__Return _return,OOC_IR__Visitor v)6464 void OOC_IR__ReturnDesc_Accept(OOC_IR__Return _return, OOC_IR__Visitor v) {
6465 register OOC_INT64 i0,i1;
6466
6467 i0 = (OOC_INT64)v;
6468 i1 = (OOC_INT64)_return;
6469 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 144381)))), OOC_IR__VisitorDesc_VisitReturn)),OOC_IR__VisitorDesc_VisitReturn)((OOC_IR__Visitor)i0, (OOC_IR__Return)i1);
6470 return;
6471 ;
6472 }
6473
OOC_IR__InitCatchClause(OOC_IR__CatchClause _catch,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__Type exceptionType,OOC_IR__StatementSeq statmSeq)6474 static void OOC_IR__InitCatchClause(OOC_IR__CatchClause _catch, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__Type exceptionType, OOC_IR__StatementSeq statmSeq) {
6475 register OOC_INT64 i0,i1;
6476
6477 i0 = (OOC_INT64)sym;
6478 i1 = (OOC_INT64)_catch;
6479 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6480 i0 = (OOC_INT64)exceptionType;
6481 *(OOC_INT64*)((_check_pointer(i1, 144737))+16) = i0;
6482 i0 = (OOC_INT64)statmSeq;
6483 *(OOC_INT64*)((_check_pointer(i1, 144779))+24) = i0;
6484 *(OOC_UINT8*)((_check_pointer(i1, 144811))+32) = 0u;
6485 return;
6486 ;
6487 }
6488
OOC_IR__BuilderDesc_NewCatchClause(OOC_IR__Builder b,OOC_IR__Expression guardType,OOC_IR__StatementSeq statmSeq)6489 OOC_IR__CatchClause OOC_IR__BuilderDesc_NewCatchClause(OOC_IR__Builder b, OOC_IR__Expression guardType, OOC_IR__StatementSeq statmSeq) {
6490 register OOC_INT64 i0,i1,i2,i3,i4,i5;
6491 OOC_IR__CatchClause _catch;
6492 OOC_SymbolTable__Type type;
6493
6494 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__CatchClause.baseTypes[0]);
6495 _catch = (OOC_IR__CatchClause)i0;
6496 i1 = (OOC_INT64)b;
6497 i2 = (OOC_INT64)guardType;
6498 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 145082)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i1, (OOC_IR__Expression)i2);
6499 type = (OOC_SymbolTable__Type)i3;
6500 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 145142));
6501 i5 = (OOC_INT64)statmSeq;
6502 OOC_IR__InitCatchClause((OOC_IR__CatchClause)i0, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i3, (OOC_IR__StatementSeq)i5);
6503 i3 = OOC_SymbolTable_TypeRules__IsException((OOC_SymbolTable__Type)i3);
6504 i3 = !i3;
6505 if (!i3) goto l4;
6506 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 145237));
6507 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 145206)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 62, (OOC_Scanner_SymList__Symbol)i2);
6508 *(OOC_UINT8*)((_check_pointer(i0, 145255))+32) = 1u;
6509 l4:
6510 return (OOC_IR__CatchClause)i0;
6511 ;
6512 }
6513
OOC_IR__VisitorDesc_VisitCatchClause(OOC_IR__Visitor v,OOC_IR__CatchClause _catch)6514 void OOC_IR__VisitorDesc_VisitCatchClause(OOC_IR__Visitor v, OOC_IR__CatchClause _catch) {
6515
6516 return;
6517 ;
6518 }
6519
OOC_IR__CatchClauseDesc_Accept(OOC_IR__CatchClause _catch,OOC_IR__Visitor v)6520 void OOC_IR__CatchClauseDesc_Accept(OOC_IR__CatchClause _catch, OOC_IR__Visitor v) {
6521 register OOC_INT64 i0,i1;
6522
6523 i0 = (OOC_INT64)v;
6524 i1 = (OOC_INT64)_catch;
6525 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 145537)))), OOC_IR__VisitorDesc_VisitCatchClause)),OOC_IR__VisitorDesc_VisitCatchClause)((OOC_IR__Visitor)i0, (OOC_IR__CatchClause)i1);
6526 return;
6527 ;
6528 }
6529
OOC_IR__InitTryStatm(OOC_IR__TryStatm tryStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__StatementSeq statmSeq,OOC_IR__CatchList catchList)6530 static void OOC_IR__InitTryStatm(OOC_IR__TryStatm tryStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__StatementSeq statmSeq, OOC_IR__CatchList catchList) {
6531 register OOC_INT64 i0,i1;
6532
6533 i0 = (OOC_INT64)sym;
6534 i1 = (OOC_INT64)tryStatm;
6535 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6536 i0 = (OOC_INT64)statmSeq;
6537 *(OOC_INT64*)((_check_pointer(i1, 145761))+16) = i0;
6538 i0 = (OOC_INT64)catchList;
6539 *(OOC_INT64*)((_check_pointer(i1, 145796))+24) = i0;
6540 *(OOC_INT64*)((_check_pointer(i1, 145833))+32) = (OOC_INT64)0;
6541 return;
6542 ;
6543 }
6544
OOC_IR__BuilderDesc_NewTryStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__StatementSeq statmSeq,OOC_IR__CatchList catchList)6545 OOC_IR__TryStatm OOC_IR__BuilderDesc_NewTryStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__StatementSeq statmSeq, OOC_IR__CatchList catchList) {
6546 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
6547 OOC_INT32 i;
6548 OOC_INT32 j;
6549
6550 i0 = (OOC_INT64)catchList;
6551 i = 0;
6552 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 146108)), 0);
6553 i2 = 0<i1;
6554 if (!i2) goto l28;
6555 i2 = (OOC_INT64)b;
6556 i3=0;
6557 l3_loop:
6558 j = 0;
6559 i4 = i3!=0;
6560 if (i4) goto l6;
6561 i4=0u;
6562 goto l8;
6563 l6:
6564 i4 = _check_pointer(i0, 146247);
6565 i5 = OOC_ARRAY_LENGTH(i4, 0);
6566 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(0, i5, OOC_UINT32, 146247))*8);
6567 i5 = _check_pointer(i0, 146179);
6568 i6 = OOC_ARRAY_LENGTH(i5, 0);
6569 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 146179))*8);
6570 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 146250))+16);
6571 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 146182))+16);
6572 i4 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i4);
6573 i4 = !i4;
6574
6575 l8:
6576 if (i4) goto l10;
6577 i4=0;
6578 goto l20;
6579 l10:
6580 i4=0;
6581 l11_loop:
6582 i4 = i4+1;
6583 j = i4;
6584 i5 = i3!=i4;
6585 if (i5) goto l14;
6586 i5=0u;
6587 goto l16;
6588 l14:
6589 i5 = _check_pointer(i0, 146247);
6590 i6 = OOC_ARRAY_LENGTH(i5, 0);
6591 i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 146247))*8);
6592 i6 = _check_pointer(i0, 146179);
6593 i7 = OOC_ARRAY_LENGTH(i6, 0);
6594 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 146179))*8);
6595 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 146250))+16);
6596 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 146182))+16);
6597 i5 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
6598 i5 = !i5;
6599
6600 l16:
6601 if (i5) goto l11_loop;
6602 l20:
6603 i4 = i3!=i4;
6604 if (!i4) goto l23;
6605 i4 = _check_pointer(i0, 146363);
6606 i5 = OOC_ARRAY_LENGTH(i4, 0);
6607 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 146363))*8);
6608 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 146366));
6609 OOC_IR__BuilderDesc_WarnSym((OOC_IR__Builder)i2, 65, (OOC_Scanner_SymList__Symbol)i4);
6610 i4 = _check_pointer(i0, 146390);
6611 i5 = OOC_ARRAY_LENGTH(i4, 0);
6612 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 146390))*8);
6613 *(OOC_UINT8*)((_check_pointer(i4, 146393))+32) = 1u;
6614 l23:
6615 i3 = i3+1;
6616 i = i3;
6617 i4 = i3<i1;
6618 if (i4) goto l3_loop;
6619 l28:
6620 i1 = (OOC_INT64)sym;
6621 i2 = (OOC_INT64)statmSeq;
6622 i3 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TryStatm.baseTypes[0]);
6623 OOC_IR__InitTryStatm((OOC_IR__TryStatm)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__StatementSeq)i2, (OOC_IR__CatchList)i0);
6624 return (OOC_IR__TryStatm)i3;
6625 ;
6626 }
6627
OOC_IR__VisitorDesc_VisitTryStatm(OOC_IR__Visitor v,OOC_IR__TryStatm tryStatm)6628 void OOC_IR__VisitorDesc_VisitTryStatm(OOC_IR__Visitor v, OOC_IR__TryStatm tryStatm) {
6629
6630 return;
6631 ;
6632 }
6633
OOC_IR__TryStatmDesc_Accept(OOC_IR__TryStatm tryStatm,OOC_IR__Visitor v)6634 void OOC_IR__TryStatmDesc_Accept(OOC_IR__TryStatm tryStatm, OOC_IR__Visitor v) {
6635 register OOC_INT64 i0,i1;
6636
6637 i0 = (OOC_INT64)v;
6638 i1 = (OOC_INT64)tryStatm;
6639 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 146741)))), OOC_IR__VisitorDesc_VisitTryStatm)),OOC_IR__VisitorDesc_VisitTryStatm)((OOC_IR__Visitor)i0, (OOC_IR__TryStatm)i1);
6640 return;
6641 ;
6642 }
6643
OOC_IR__InitWhileStatm(OOC_IR__WhileStatm whileStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression guard,OOC_IR__StatementSeq body)6644 static void OOC_IR__InitWhileStatm(OOC_IR__WhileStatm whileStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression guard, OOC_IR__StatementSeq body) {
6645 register OOC_INT64 i0,i1;
6646
6647 i0 = (OOC_INT64)sym;
6648 i1 = (OOC_INT64)whileStatm;
6649 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6650 i0 = (OOC_INT64)guard;
6651 *(OOC_INT64*)((_check_pointer(i1, 147082))+16) = i0;
6652 i0 = (OOC_INT64)body;
6653 *(OOC_INT64*)((_check_pointer(i1, 147114))+24) = i0;
6654 return;
6655 ;
6656 }
6657
OOC_IR__BuilderDesc_NewWhileStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression guard,OOC_IR__StatementSeq body)6658 OOC_IR__WhileStatm OOC_IR__BuilderDesc_NewWhileStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression guard, OOC_IR__StatementSeq body) {
6659 register OOC_INT64 i0,i1,i2,i3;
6660 OOC_IR__WhileStatm whileStatm;
6661
6662 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__WhileStatm.baseTypes[0]);
6663 whileStatm = (OOC_IR__WhileStatm)i0;
6664 i1 = (OOC_INT64)b;
6665 i2 = (OOC_INT64)guard;
6666 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 147397)))), OOC_IR__BuilderDesc_AssertBoolean)),OOC_IR__BuilderDesc_AssertBoolean)((OOC_IR__Builder)i1, (OOC_IR__Expression)i2);
6667 i2 = (OOC_INT64)sym;
6668 i3 = (OOC_INT64)body;
6669 OOC_IR__InitWhileStatm((OOC_IR__WhileStatm)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__StatementSeq)i3);
6670 return (OOC_IR__WhileStatm)i0;
6671 ;
6672 }
6673
OOC_IR__VisitorDesc_VisitWhileStatm(OOC_IR__Visitor v,OOC_IR__WhileStatm whileStatm)6674 void OOC_IR__VisitorDesc_VisitWhileStatm(OOC_IR__Visitor v, OOC_IR__WhileStatm whileStatm) {
6675
6676 return;
6677 ;
6678 }
6679
OOC_IR__WhileStatmDesc_Accept(OOC_IR__WhileStatm whileStatm,OOC_IR__Visitor v)6680 void OOC_IR__WhileStatmDesc_Accept(OOC_IR__WhileStatm whileStatm, OOC_IR__Visitor v) {
6681 register OOC_INT64 i0,i1;
6682
6683 i0 = (OOC_INT64)v;
6684 i1 = (OOC_INT64)whileStatm;
6685 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 147644)))), OOC_IR__VisitorDesc_VisitWhileStatm)),OOC_IR__VisitorDesc_VisitWhileStatm)((OOC_IR__Visitor)i0, (OOC_IR__WhileStatm)i1);
6686 return;
6687 ;
6688 }
6689
OOC_IR__InitWithStatm(OOC_IR__WithStatm withStatm,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression guard,OOC_IR__StatementSeq pathTrue,OOC_IR__StatementSeq pathFalse,OOC_CHAR8 checkMatch)6690 static void OOC_IR__InitWithStatm(OOC_IR__WithStatm withStatm, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression guard, OOC_IR__StatementSeq pathTrue, OOC_IR__StatementSeq pathFalse, OOC_CHAR8 checkMatch) {
6691 register OOC_INT64 i0,i1;
6692
6693 i0 = (OOC_INT64)sym;
6694 i1 = (OOC_INT64)withStatm;
6695 OOC_IR__InitStatement((OOC_IR__Statement)i1, (OOC_Scanner_SymList__Symbol)i0);
6696 i0 = (OOC_INT64)guard;
6697 *(OOC_INT64*)((_check_pointer(i1, 148043))+16) = i0;
6698 i0 = (OOC_INT64)pathTrue;
6699 *(OOC_INT64*)((_check_pointer(i1, 148074))+24) = i0;
6700 i0 = (OOC_INT64)pathFalse;
6701 *(OOC_INT64*)((_check_pointer(i1, 148111))+32) = i0;
6702 i0 = checkMatch;
6703 *(OOC_UINT8*)((_check_pointer(i1, 148150))+40) = i0;
6704 return;
6705 ;
6706 }
6707
OOC_IR__BuilderDesc_NewWithStatm(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression guard,OOC_IR__StatementSeq pathTrue,OOC_IR__StatementSeq pathFalse)6708 OOC_IR__WithStatm OOC_IR__BuilderDesc_NewWithStatm(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression guard, OOC_IR__StatementSeq pathTrue, OOC_IR__StatementSeq pathFalse) {
6709 register OOC_INT64 i0,i1,i2,i3,i4,i5;
6710
6711 i0 = (OOC_INT64)sym;
6712 i1 = *(OOC_INT32*)((_check_pointer(i0, 148482))+28);
6713 i2 = (OOC_INT64)b;
6714 i3 = (OOC_INT64)OOC_Config_StdPragmas__typeGuard;
6715 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i2, (Config_Section_Options__Option)i3, i1);
6716 i2 = (OOC_INT64)guard;
6717 i3 = (OOC_INT64)pathTrue;
6718 i4 = (OOC_INT64)pathFalse;
6719 i5 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__WithStatm.baseTypes[0]);
6720 OOC_IR__InitWithStatm((OOC_IR__WithStatm)i5, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i2, (OOC_IR__StatementSeq)i3, (OOC_IR__StatementSeq)i4, i1);
6721 return (OOC_IR__WithStatm)i5;
6722 ;
6723 }
6724
OOC_IR__VisitorDesc_VisitWithStatm(OOC_IR__Visitor v,OOC_IR__WithStatm withStatm)6725 void OOC_IR__VisitorDesc_VisitWithStatm(OOC_IR__Visitor v, OOC_IR__WithStatm withStatm) {
6726
6727 return;
6728 ;
6729 }
6730
OOC_IR__WithStatmDesc_Accept(OOC_IR__WithStatm withStatm,OOC_IR__Visitor v)6731 void OOC_IR__WithStatmDesc_Accept(OOC_IR__WithStatm withStatm, OOC_IR__Visitor v) {
6732 register OOC_INT64 i0,i1;
6733
6734 i0 = (OOC_INT64)v;
6735 i1 = (OOC_INT64)withStatm;
6736 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 148799)))), OOC_IR__VisitorDesc_VisitWithStatm)),OOC_IR__VisitorDesc_VisitWithStatm)((OOC_IR__Visitor)i0, (OOC_IR__WithStatm)i1);
6737 return;
6738 ;
6739 }
6740
OOC_IR__BuilderDesc_CheckExit(OOC_IR__Builder b,OOC_SymbolTable__ProcDecl procDecl,OOC_IR__StatementSeq statmSeq)6741 void OOC_IR__BuilderDesc_CheckExit(OOC_IR__Builder b, OOC_SymbolTable__ProcDecl procDecl, OOC_IR__StatementSeq statmSeq) {
6742 register OOC_INT64 i0,i1,i2;
6743 OOC_IR__LoopStatm currentLoop;
6744 OOC_IR__TryStatm currentTry;
6745 OOC_INT32 enclosingTry;
6746 OOC_INT32 enclosingTryLastLoop;
6747 OOC_CHAR8 initWithoutSuper;
6748 OOC_SymbolTable__Record procClass;
6749 auto void OOC_IR__BuilderDesc_CheckExit_CheckException(OOC_SymbolTable__Type exception, OOC_Scanner_SymList__Symbol sym);
6750 auto void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq(OOC_IR__StatementSeq statmSeq);
6751
6752 void OOC_IR__BuilderDesc_CheckExit_CheckException(OOC_SymbolTable__Type exception, OOC_Scanner_SymList__Symbol sym) {
6753 register OOC_INT64 i0,i1,i2,i3,i4,i5;
6754 OOC_IR__TryStatm _try;
6755 OOC_INT32 i;
6756 OOC_SymbolTable__ExceptionNameArray raises;
6757 OOC_SymbolTable__Module module;
6758
6759 i0 = (OOC_INT64)exception;
6760 i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 149805)))), OOC_SymbolTable__TypeDesc_IsCheckedException)),OOC_SymbolTable__TypeDesc_IsCheckedException)((OOC_SymbolTable__Type)i0);
6761 if (!i1) goto l47;
6762 i1 = (OOC_INT64)currentTry;
6763 _try = (OOC_IR__TryStatm)i1;
6764 i2 = i1!=(OOC_INT64)0;
6765 if (!i2) goto l24;
6766 l5_loop:
6767 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150017))+24);
6768 i = 0;
6769 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 150027)), 0);
6770 i3 = 0<i2;
6771 if (!i3) goto l19;
6772 i3=0;
6773 l8_loop:
6774 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150070))+24);
6775 i4 = _check_pointer(i4, 150080);
6776 i5 = OOC_ARRAY_LENGTH(i4, 0);
6777 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 150080))*8);
6778 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 150083))+16);
6779 i4 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i4, (OOC_SymbolTable__Type)i0);
6780 if (!i4) goto l11;
6781 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150164))+24);
6782 i4 = _check_pointer(i4, 150174);
6783 i5 = OOC_ARRAY_LENGTH(i4, 0);
6784 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 150174))*8);
6785 *(OOC_UINT8*)((_check_pointer(i4, 150177))+32) = 1u;
6786 l11:
6787 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150292))+24);
6788 i4 = _check_pointer(i4, 150302);
6789 i5 = OOC_ARRAY_LENGTH(i4, 0);
6790 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 150302))*8);
6791 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 150305))+16);
6792 i4 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i4);
6793 if (!i4) goto l14;
6794 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150343))+24);
6795 i4 = _check_pointer(i4, 150353);
6796 i5 = OOC_ARRAY_LENGTH(i4, 0);
6797 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 150353))*8);
6798 *(OOC_UINT8*)((_check_pointer(i4, 150356))+32) = 1u;
6799 return;
6800 l14:
6801 i3 = i3+1;
6802 i = i3;
6803 i4 = i3<i2;
6804 if (i4) goto l8_loop;
6805 l19:
6806 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150450))+32);
6807 _try = (OOC_IR__TryStatm)i1;
6808 i2 = i1!=(OOC_INT64)0;
6809 if (i2) goto l5_loop;
6810 l24:
6811 i1 = (OOC_INT64)procDecl;
6812 i2 = i1!=(OOC_INT64)0;
6813 if (!i2) goto l38;
6814 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150548))+112);
6815 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150559))+112);
6816 raises = (OOC_SymbolTable__ExceptionNameArray)i1;
6817 i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 150602)), 0);
6818 i = 0;
6819 i3 = 0<i2;
6820 if (!i3) goto l38;
6821 i3=0;
6822 l29_loop:
6823 i4 = _check_pointer(i1, 150659);
6824 i5 = OOC_ARRAY_LENGTH(i4, 0);
6825 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 150659))*8);
6826 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 150662))+40);
6827 i4 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i4);
6828 if (!i4) goto l32;
6829 return;
6830 l32:
6831 i3 = i3+1;
6832 i = i3;
6833 i4 = i3<i2;
6834 if (i4) goto l29_loop;
6835 l38:
6836 i1 = (OOC_INT64)procDecl;
6837 i2 = i1==(OOC_INT64)0;
6838 if (i2) goto l41;
6839 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 150801))+8);
6840 i1 = i1==(OOC_INT64)0;
6841
6842 goto l43;
6843 l41:
6844 i1=1u;
6845 l43:
6846 if (i1) goto l45;
6847 i1 = (OOC_INT64)b;
6848 i2 = (OOC_INT64)sym;
6849 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 150918)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 63, (OOC_Scanner_SymList__Symbol)i2);
6850 goto l46;
6851 l45:
6852 i1 = (OOC_INT64)sym;
6853 i2 = (OOC_INT64)b;
6854 OOC_IR__BuilderDesc_WarnSym((OOC_IR__Builder)i2, 64, (OOC_Scanner_SymList__Symbol)i1);
6855 l46:
6856 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 150992)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
6857 module = (OOC_SymbolTable__Module)i1;
6858 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151108))+40);
6859 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 151113))+16);
6860 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151108))+40);
6861 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151113))+16);
6862 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 151117)), 0);
6863 i1 = (OOC_INT64)Msg__GetStringPtr((void*)(_check_pointer(i1, 151117)), i2);
6864 i2 = (OOC_INT64)b;
6865 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 151012))+80);
6866 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 151012))+80);
6867 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 151022)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i2, (OOC_CHAR8*)"module", 7, (Msg__StringPtr)i1);
6868 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151228))+48);
6869 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151239))+40);
6870 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151244))+16);
6871 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151228))+48);
6872 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151239))+40);
6873 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151244))+16);
6874 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 151248)), 0);
6875 i0 = (OOC_INT64)Msg__GetStringPtr((void*)(_check_pointer(i0, 151248)), i1);
6876 i1 = (OOC_INT64)b;
6877 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151131))+80);
6878 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 151131))+80);
6879 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 151141)))), Msg__MsgDesc_SetStringAttrib)),Msg__MsgDesc_SetStringAttrib)((Msg__Msg)i1, (OOC_CHAR8*)"name", 5, (Msg__StringPtr)i0);
6880 l47:
6881 return;
6882 ;
6883 }
6884
6885
6886 void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq(OOC_IR__StatementSeq statmSeq) {
6887 register OOC_INT64 i0,i1,i2,i3;
6888 OOC_INT32 i;
6889 auto void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm(OOC_IR__Statement statm);
6890 auto void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr(OOC_IR__Expression expr);
6891 auto void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm(OOC_IR__Statement statm);
6892
6893 void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr(OOC_IR__Expression expr) {
6894 register OOC_INT64 i0,i1,i2,i3,i4;
6895 OOC_INT32 i;
6896
6897 i0 = (OOC_INT64)expr;
6898 i1 = i0==(OOC_INT64)0;
6899 if (!i1) goto l3;
6900 return;
6901 l3:
6902 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 151596)))), &_td_OOC_IR__ConstDesc);
6903 if (i1) goto l156;
6904 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 151645)))), &_td_OOC_IR__AbsDesc);
6905 if (i1) goto l154;
6906 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 151703)))), &_td_OOC_IR__AdrDesc);
6907 if (i1) goto l152;
6908 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 151760)))), &_td_OOC_IR__AshDesc);
6909 if (i1) goto l150;
6910 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 151847)))), &_td_OOC_IR__BinaryArithDesc);
6911 if (i1) goto l148;
6912 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 151943)))), &_td_OOC_IR__BooleanOpDesc);
6913 if (i1) goto l146;
6914 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152037)))), &_td_OOC_IR__CapDesc);
6915 if (i1) goto l144;
6916 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152095)))), &_td_OOC_IR__CompareDesc);
6917 if (i1) goto l142;
6918 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152187)))), &_td_OOC_IR__ConcatDesc);
6919 if (i1) goto l132;
6920 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152316)))), &_td_OOC_IR__ConstructorDesc);
6921 if (i1) goto l130;
6922 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152412)))), &_td_OOC_IR__CurrentExceptionDesc);
6923 if (i1) goto l128;
6924 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152482)))), &_td_OOC_IR__ChangeElementDesc);
6925 if (i1) goto l126;
6926 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152581)))), &_td_OOC_IR__DerefDesc);
6927 if (i1) goto l124;
6928 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152641)))), &_td_OOC_IR__EntierDesc);
6929 if (i1) goto l122;
6930 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152702)))), &_td_OOC_IR__IndexDesc);
6931 if (i1) goto l120;
6932 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152793)))), &_td_OOC_IR__LenDesc);
6933 if (i1) goto l118;
6934 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152849)))), &_td_OOC_IR__NegateDesc);
6935 if (i1) goto l116;
6936 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152910)))), &_td_OOC_IR__NewBlockDesc);
6937 if (i1) goto l114;
6938 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 152970)))), &_td_OOC_IR__NewObjectDesc);
6939 if (i1) goto l101;
6940 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153159)))), &_td_OOC_IR__NotDesc);
6941 if (i1) goto l99;
6942 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153217)))), &_td_OOC_IR__OddDesc);
6943 if (i1) goto l97;
6944 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153275)))), &_td_OOC_IR__ReferenceDesc);
6945 if (i1) goto l156;
6946 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153328)))), &_td_OOC_IR__SelectFieldDesc);
6947 if (i1) goto l94;
6948 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153393)))), &_td_OOC_IR__SelectProcDesc);
6949 if (i1) goto l92;
6950 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153459)))), &_td_OOC_IR__SetMemberDesc);
6951 if (i1) goto l90;
6952 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153554)))), &_td_OOC_IR__SetOpDesc);
6953 if (i1) goto l88;
6954 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153644)))), &_td_OOC_IR__SetRangeDesc);
6955 if (i1) goto l86;
6956 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153734)))), &_td_OOC_IR__ShiftDesc);
6957 if (i1) goto l84;
6958 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153822)))), &_td_OOC_IR__TypeCastDesc);
6959 if (i1) goto l82;
6960 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153882)))), &_td_OOC_IR__TypeConvDesc);
6961 if (i1) goto l80;
6962 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 153942)))), &_td_OOC_IR__TypeTagDesc);
6963 if (i1) goto l78;
6964 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 154003)))), &_td_OOC_IR__TypeTestDesc);
6965 if (i1) goto l76;
6966 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 154063)))), &_td_OOC_IR__TypeGuardDesc);
6967 if (i1) goto l74;
6968 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 154135)))), &_td_OOC_IR__CallDesc);
6969 if (i1) goto l72;
6970 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 154129)))), 154129);
6971 goto l156;
6972 l72:
6973 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm((OOC_IR__Statement)i0);
6974 goto l156;
6975 l74:
6976 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154102))+16);
6977 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
6978 goto l156;
6979 l76:
6980 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154041))+16);
6981 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
6982 goto l156;
6983 l78:
6984 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153979))+16);
6985 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
6986 goto l156;
6987 l80:
6988 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153920))+16);
6989 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
6990 goto l156;
6991 l82:
6992 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153860))+16);
6993 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
6994 goto l156;
6995 l84:
6996 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153769))+16);
6997 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
6998 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153802))+24);
6999 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7000 goto l156;
7001 l86:
7002 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153682))+16);
7003 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7004 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153714))+24);
7005 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7006 goto l156;
7007 l88:
7008 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153589))+24);
7009 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7010 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153621))+32);
7011 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7012 goto l156;
7013 l90:
7014 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153498))+16);
7015 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7016 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153533))+24);
7017 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7018 goto l156;
7019 l92:
7020 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153433))+16);
7021 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7022 goto l156;
7023 l94:
7024 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153369))+16);
7025 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7026 goto l156;
7027 l97:
7028 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153250))+16);
7029 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7030 goto l156;
7031 l99:
7032 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153192))+16);
7033 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7034 goto l156;
7035 l101:
7036 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153003))+16);
7037 i1 = i1!=(OOC_INT64)0;
7038 if (!i1) goto l156;
7039 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153057))+16);
7040 i = 0;
7041 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 153064)), 0);
7042 i2 = 0<i1;
7043 if (!i2) goto l156;
7044 i2=0;
7045 l106_loop:
7046 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 153100))+16);
7047 i3 = _check_pointer(i3, 153107);
7048 i4 = OOC_ARRAY_LENGTH(i3, 0);
7049 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 153107))*8);
7050 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i3);
7051 i2 = i2+1;
7052 i = i2;
7053 i3 = i2<i1;
7054 if (i3) goto l106_loop;
7055 goto l156;
7056 l114:
7057 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152948))+16);
7058 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7059 goto l156;
7060 l116:
7061 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152885))+16);
7062 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7063 goto l156;
7064 l118:
7065 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152826))+24);
7066 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7067 goto l156;
7068 l120:
7069 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152737))+16);
7070 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7071 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152770))+24);
7072 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7073 goto l156;
7074 l122:
7075 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152677))+16);
7076 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7077 goto l156;
7078 l124:
7079 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152616))+16);
7080 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7081 goto l156;
7082 l126:
7083 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152525))+24);
7084 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7085 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152556))+32);
7086 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7087 goto l156;
7088 l128:
7089 i1 = (OOC_INT64)currentTry;
7090 *(OOC_INT64*)((_check_pointer(i0, 152448))+16) = i1;
7091 goto l156;
7092 l130:
7093 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152357))+16);
7094 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7095 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152390))+24);
7096 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7097 goto l156;
7098 l132:
7099 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152231))+16);
7100 i = 0;
7101 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 152239)), 0);
7102 i2 = 0<i1;
7103 if (!i2) goto l156;
7104 i2=0;
7105 l135_loop:
7106 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152273))+16);
7107 i3 = _check_pointer(i3, 152281);
7108 i4 = OOC_ARRAY_LENGTH(i3, 0);
7109 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 152281))*8);
7110 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i3);
7111 i2 = i2+1;
7112 i = i2;
7113 i3 = i2<i1;
7114 if (i3) goto l135_loop;
7115 goto l156;
7116 l142:
7117 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152132))+24);
7118 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7119 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152164))+32);
7120 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7121 goto l156;
7122 l144:
7123 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152070))+16);
7124 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7125 goto l156;
7126 l146:
7127 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151982))+24);
7128 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7129 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 152014))+32);
7130 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7131 goto l156;
7132 l148:
7133 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151888))+24);
7134 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7135 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151920))+32);
7136 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7137 goto l156;
7138 l150:
7139 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151793))+16);
7140 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7141 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151826))+24);
7142 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7143 goto l156;
7144 l152:
7145 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151736))+16);
7146 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7147 goto l156;
7148 l154:
7149 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 151678))+16);
7150 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7151 l156:
7152 return;
7153 ;
7154 }
7155
7156
7157 void OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm(OOC_IR__Statement statm) {
7158 register OOC_INT64 i0,i1,i2,i3,i4,i5;
7159 OOC_INT32 i;
7160 OOC_SymbolTable__Type type;
7161 OOC_SymbolTable__FormalPars fpars;
7162 OOC_IR__LoopStatm oldLoop;
7163 OOC_INT32 oldEnclTryLastLoop;
7164 auto OOC_CHAR8 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm_IsInitSuper(OOC_IR__Expression design);
7165
7166 OOC_CHAR8 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm_IsInitSuper(OOC_IR__Expression design) {
7167 register OOC_INT64 i0,i1,i2;
7168
7169 i0 = (OOC_INT64)design;
7170 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 154501)))), &_td_OOC_IR__SelectProcDesc);
7171 if (i1) goto l3;
7172 return 0u;
7173 goto l16;
7174 l3:
7175 i1 = *(OOC_UINT8*)((_check_pointer(i0, 154539))+57);
7176 i1 = !i1;
7177 if (i1) goto l6;
7178 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154578))+16);
7179 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 154588)))), &_td_OOC_IR__VarDesc));
7180
7181 goto l8;
7182 l6:
7183 i1=1u;
7184 l8:
7185 if (i1) goto l10;
7186 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154621))+16);
7187 i2 = (OOC_INT64)procDecl;
7188 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 154651))+112);
7189 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 154631)))), &_td_OOC_IR__VarDesc, 154631)), 154635))+16);
7190 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 154662))+72);
7191 i1 = i1!=i2;
7192
7193 goto l12;
7194 l10:
7195 i1=1u;
7196 l12:
7197 if (i1) goto l14;
7198 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154814))+40);
7199 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154821))+40);
7200 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 154826))+16);
7201 return ((
7202 _cmp8((const void*)(_check_pointer(i0, 154830)),(const void*)(OOC_CHAR8*)"INIT"))==0);
7203 goto l16;
7204 l14:
7205 return 0u;
7206 l16:
7207 _failed_function(154424); return 0;
7208 ;
7209 }
7210
7211
7212 i0 = (OOC_INT64)statm;
7213 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 154989)))), &_td_OOC_IR__AssertDesc);
7214 if (i1) goto l147;
7215 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 155054)))), &_td_OOC_IR__AssignmentDesc);
7216 if (i1) goto l145;
7217 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 155196)))), &_td_OOC_IR__CallDesc);
7218 if (i1) goto l120;
7219 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 155707)))), &_td_OOC_IR__CopyDesc);
7220 if (i1) goto l118;
7221 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 155800)))), &_td_OOC_IR__CopyParameterDesc);
7222 if (i1) goto l148;
7223 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 155858)))), &_td_OOC_IR__CopyStringDesc);
7224 if (i1) goto l115;
7225 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 155957)))), &_td_OOC_IR__ExitDesc);
7226 if (i1) goto l109;
7227 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 156218)))), &_td_OOC_IR__ForStatmDesc);
7228 if (i1) goto l107;
7229 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 156417)))), &_td_OOC_IR__IterateArrayStatmDesc);
7230 if (i1) goto l105;
7231 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 156560)))), &_td_OOC_IR__IterateObjectStatmDesc);
7232 if (i1) goto l103;
7233 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 156754)))), &_td_OOC_IR__IfStatmDesc);
7234 if (i1) goto l101;
7235 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 156903)))), &_td_OOC_IR__CaseDesc);
7236 if (i1) goto l99;
7237 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 156971)))), &_td_OOC_IR__CaseStatmDesc);
7238 if (i1) goto l89;
7239 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 157203)))), &_td_OOC_IR__LoopStatmDesc);
7240 if (i1) goto l87;
7241 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 157528)))), &_td_OOC_IR__MoveBlockDesc);
7242 if (i1) goto l85;
7243 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 157626)))), &_td_OOC_IR__RaiseDesc);
7244 if (i1) goto l83;
7245 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 157749)))), &_td_OOC_IR__RepeatStatmDesc);
7246 if (i1) goto l81;
7247 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 157862)))), &_td_OOC_IR__ReturnDesc);
7248 if (i1) goto l64;
7249 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 158614)))), &_td_OOC_IR__TryStatmDesc);
7250 if (i1) goto l47;
7251 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 159228)))), &_td_OOC_IR__WhileStatmDesc);
7252 if (i1) goto l45;
7253 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 159332)))), &_td_OOC_IR__WithStatmDesc);
7254 if (i1) goto l43;
7255 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 159325)))), 159325);
7256 goto l148;
7257 l43:
7258 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159372))+16);
7259 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7260 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159411))+24);
7261 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i1);
7262 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159454))+32);
7263 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7264 goto l148;
7265 l45:
7266 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159269))+16);
7267 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7268 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159308))+24);
7269 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7270 goto l148;
7271 l47:
7272 i1 = (OOC_INT64)procDecl;
7273 i2 = enclosingTry;
7274 *(OOC_UINT8*)((_check_pointer(i1, 158646))+136) = 1u;
7275 enclosingTry = (i2+1);
7276 i1 = (OOC_INT64)currentTry;
7277 *(OOC_INT64*)((_check_pointer(i0, 158712))+32) = i1;
7278 currentTry = (OOC_IR__TryStatm)i0;
7279 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158801))+16);
7280 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i1);
7281 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158842))+32);
7282 i2 = enclosingTry;
7283 currentTry = (OOC_IR__TryStatm)i1;
7284 enclosingTry = (i2-1);
7285 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158919))+24);
7286 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 158929)), 0);
7287 i = 0;
7288 i2 = 0<i1;
7289 if (!i2) goto l148;
7290 i2=0;
7291 l50_loop:
7292 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158957))+24);
7293 i3 = _check_pointer(i3, 158967);
7294 i4 = OOC_ARRAY_LENGTH(i3, 0);
7295 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 158967))*8);
7296 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158957))+24);
7297 i4 = _check_pointer(i4, 158967);
7298 i5 = OOC_ARRAY_LENGTH(i4, 0);
7299 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 158967))*8);
7300 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 158970))+16);
7301 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 158970))+16);
7302 i3 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 158984)))), OOC_SymbolTable__TypeDesc_IsCheckedException)),OOC_SymbolTable__TypeDesc_IsCheckedException)((OOC_SymbolTable__Type)i3);
7303 if (i3) goto l53;
7304 i3=0u;
7305 goto l55;
7306 l53:
7307 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159029))+24);
7308 i3 = _check_pointer(i3, 159039);
7309 i4 = OOC_ARRAY_LENGTH(i3, 0);
7310 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 159039))*8);
7311 i3 = *(OOC_UINT8*)((_check_pointer(i3, 159042))+32);
7312 i3 = !i3;
7313
7314 l55:
7315 if (!i3) goto l57;
7316 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159105))+24);
7317 i3 = _check_pointer(i3, 159115);
7318 i4 = OOC_ARRAY_LENGTH(i3, 0);
7319 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 159115))*8);
7320 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 159118));
7321 i4 = (OOC_INT64)b;
7322 OOC_IR__BuilderDesc_WarnSym((OOC_IR__Builder)i4, 66, (OOC_Scanner_SymList__Symbol)i3);
7323 l57:
7324 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 159173))+24);
7325 i3 = _check_pointer(i3, 159183);
7326 i4 = OOC_ARRAY_LENGTH(i3, 0);
7327 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 159183))*8);
7328 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 159186))+24);
7329 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i3);
7330 i2 = i2+1;
7331 i = i2;
7332 i3 = i2<i1;
7333 if (i3) goto l50_loop;
7334 goto l148;
7335 l64:
7336 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157899))+16);
7337 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7338 i1 = (OOC_INT64)procDecl;
7339 i2 = i1==(OOC_INT64)0;
7340 if (i2) goto l67;
7341 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 157964))+112);
7342 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 157976))+80);
7343 i2 = i2==(OOC_INT64)0;
7344
7345 goto l69;
7346 l67:
7347 i2=1u;
7348 l69:
7349 if (i2) goto l75;
7350 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158253))+16);
7351 i2 = i2==(OOC_INT64)0;
7352 if (i2) goto l73;
7353 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 158487))+112);
7354 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 158498))+80);
7355 i1 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i1);
7356 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158398))+16);
7357 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 158406));
7358 i3 = (OOC_INT64)b;
7359 OOC_IR__MakeAssignmentCompatible((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (void*)((_check_pointer(i0, 158418))+16), (OOC_SymbolTable__Type)i1);
7360 goto l79;
7361 l73:
7362 i1 = (OOC_INT64)b;
7363 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 158325));
7364 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 158289)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 33, (OOC_Scanner_SymList__Symbol)i2);
7365 goto l79;
7366 l75:
7367 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158078))+16);
7368 i1 = i1!=(OOC_INT64)0;
7369 if (!i1) goto l79;
7370 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 158147))+16);
7371 i2 = (OOC_INT64)b;
7372 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 158155));
7373 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 158114)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i2, 32, (OOC_Scanner_SymList__Symbol)i1);
7374 l79:
7375 i1 = enclosingTry;
7376 *(OOC_INT32*)((_check_pointer(i0, 158560))+24) = i1;
7377 goto l148;
7378 l81:
7379 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157796))+16);
7380 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i1);
7381 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157830))+24);
7382 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7383 goto l148;
7384 l83:
7385 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157662))+16);
7386 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7387 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157705))+16);
7388 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 157715))+8);
7389 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 157727));
7390 OOC_IR__BuilderDesc_CheckExit_CheckException((OOC_SymbolTable__Type)i1, (OOC_Scanner_SymList__Symbol)i0);
7391 goto l148;
7392 l85:
7393 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157568))+16);
7394 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7395 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157603))+24);
7396 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7397 goto l148;
7398 l87:
7399 i1 = (OOC_INT64)currentLoop;
7400 oldLoop = (OOC_IR__LoopStatm)i1;
7401 currentLoop = (OOC_IR__LoopStatm)i0;
7402 i2 = enclosingTryLastLoop;
7403 oldEnclTryLastLoop = i2;
7404 i3 = enclosingTry;
7405 enclosingTryLastLoop = i3;
7406 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157416))+16);
7407 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7408 enclosingTryLastLoop = i2;
7409 currentLoop = (OOC_IR__LoopStatm)i1;
7410 goto l148;
7411 l89:
7412 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157011))+16);
7413 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7414 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157055))+24);
7415 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 157065)), 0);
7416 i = 0;
7417 i2 = 0<i1;
7418 if (!i2) goto l97;
7419 i2=0;
7420 l92_loop:
7421 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157105))+24);
7422 i3 = _check_pointer(i3, 157115);
7423 i4 = OOC_ARRAY_LENGTH(i3, 0);
7424 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 157115))*8);
7425 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 157118))+24);
7426 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i3);
7427 i2 = i2+1;
7428 i = i2;
7429 i3 = i2<i1;
7430 if (i3) goto l92_loop;
7431 l97:
7432 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 157176))+32);
7433 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7434 goto l148;
7435 l99:
7436 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156943))+24);
7437 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7438 goto l148;
7439 l101:
7440 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156792))+16);
7441 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7442 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156831))+24);
7443 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i1);
7444 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156874))+32);
7445 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7446 goto l148;
7447 l103:
7448 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156609))+16);
7449 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7450 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156641))+24);
7451 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7452 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156685))+32);
7453 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7454 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156730))+40);
7455 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7456 goto l148;
7457 l105:
7458 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156465))+16);
7459 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7460 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156497))+24);
7461 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7462 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156536))+32);
7463 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7464 goto l148;
7465 l107:
7466 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156257))+16);
7467 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7468 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156289))+24);
7469 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7470 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156323))+32);
7471 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7472 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156355))+40);
7473 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7474 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 156393))+48);
7475 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7476 goto l148;
7477 l109:
7478 i1 = (OOC_INT64)currentLoop;
7479 i2 = i1==(OOC_INT64)0;
7480 if (i2) goto l112;
7481 *(OOC_INT64*)((_check_pointer(i0, 156090))+16) = i1;
7482 goto l113;
7483 l112:
7484 i1 = (OOC_INT64)b;
7485 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 156050));
7486 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 156018)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 25, (OOC_Scanner_SymList__Symbol)i2);
7487 l113:
7488 i1 = enclosingTry;
7489 i2 = enclosingTryLastLoop;
7490 *(OOC_INT32*)((_check_pointer(i0, 156143))+24) = (i1-i2);
7491 goto l148;
7492 l115:
7493 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155899))+16);
7494 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7495 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155934))+24);
7496 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7497 goto l148;
7498 l118:
7499 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155742))+16);
7500 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7501 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155777))+24);
7502 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7503 goto l148;
7504 l120:
7505 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155231))+16);
7506 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7507 i1 = initWithoutSuper;
7508 if (i1) goto l123;
7509 i1=0u;
7510 goto l125;
7511 l123:
7512 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155291))+16);
7513 i1 = OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm_IsInitSuper((OOC_IR__Expression)i1);
7514
7515 l125:
7516 if (!i1) goto l127;
7517 initWithoutSuper = 0u;
7518 l127:
7519 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155403))+24);
7520 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 155413)), 0);
7521 i = 0;
7522 i2 = 0<i1;
7523 if (!i2) goto l135;
7524 i2=0;
7525 l130_loop:
7526 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155448))+24);
7527 i3 = _check_pointer(i3, 155458);
7528 i4 = OOC_ARRAY_LENGTH(i3, 0);
7529 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 155458))*8);
7530 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i3);
7531 i2 = i2+1;
7532 i = i2;
7533 i3 = i2<i1;
7534 if (i3) goto l130_loop;
7535 l135:
7536 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155503))+16);
7537 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155503))+16);
7538 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 155510))+8);
7539 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 155510))+8);
7540 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 155515)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
7541 type = (OOC_SymbolTable__Type)i1;
7542 i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 155555)))), &_td_OOC_SymbolTable__FormalParsDesc, 155555);
7543 fpars = (OOC_SymbolTable__FormalPars)i1;
7544 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 155601))+112);
7545 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 155608)), 0);
7546 i = 0;
7547 i3 = 0<i2;
7548 if (!i3) goto l148;
7549 i3=0;
7550 l138_loop:
7551 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 155648))+112);
7552 i4 = _check_pointer(i4, 155655);
7553 i5 = OOC_ARRAY_LENGTH(i4, 0);
7554 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 155655))*8);
7555 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 155658))+40);
7556 i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 155670));
7557 OOC_IR__BuilderDesc_CheckExit_CheckException((OOC_SymbolTable__Type)i4, (OOC_Scanner_SymList__Symbol)i5);
7558 i3 = i3+1;
7559 i = i3;
7560 i4 = i3<i2;
7561 if (i4) goto l138_loop;
7562 goto l148;
7563 l145:
7564 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155136))+16);
7565 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i1);
7566 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155173))+24);
7567 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7568 goto l148;
7569 l147:
7570 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 155026))+16);
7571 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckExpr((OOC_IR__Expression)i0);
7572 l148:
7573 return;
7574 ;
7575 }
7576
7577
7578 i0 = (OOC_INT64)statmSeq;
7579 i1 = i0!=(OOC_INT64)0;
7580 if (!i1) goto l11;
7581 i = 0;
7582 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 159584)), 0);
7583 i1 = 0<i0;
7584 if (!i1) goto l11;
7585 i1=0;
7586 l5_loop:
7587 i2 = (OOC_INT64)statmSeq;
7588 i2 = _check_pointer(i2, 159622);
7589 i3 = OOC_ARRAY_LENGTH(i2, 0);
7590 i1 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(i1, i3, OOC_UINT32, 159622))*8);
7591 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq_CheckStatm((OOC_IR__Statement)i1);
7592 i1 = i;
7593 i1 = i1+1;
7594 i = i1;
7595 i2 = i1<i0;
7596 if (i2) goto l5_loop;
7597 l11:
7598 return;
7599 ;
7600 }
7601
7602
7603 currentLoop = (OOC_IR__LoopStatm)(OOC_INT64)0;
7604 currentTry = (OOC_IR__TryStatm)(OOC_INT64)0;
7605 enclosingTry = 0;
7606 enclosingTryLastLoop = 0;
7607 initWithoutSuper = 0u;
7608 i0 = (OOC_INT64)procDecl;
7609 i1 = (OOC_INT64)OOC_SymbolTable__ProcDeclDesc_Class((OOC_SymbolTable__ProcDecl)i0);
7610 procClass = (OOC_SymbolTable__Record)i1;
7611 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 159891)))), OOC_SymbolTable__ItemDesc_InStandardModule)),OOC_SymbolTable__ItemDesc_InStandardModule)((OOC_SymbolTable__Item)i0);
7612 if (i2) goto l3;
7613 i2=0u;
7614 goto l5;
7615 l3:
7616 i2 = i1!=(OOC_INT64)0;
7617
7618 l5:
7619 if (i2) goto l7;
7620 i2=0u;
7621 goto l9;
7622 l7:
7623 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 159951))+72);
7624 i2 = i2!=(OOC_INT64)0;
7625
7626 l9:
7627 if (i2) goto l11;
7628 i2=0u;
7629 goto l13;
7630 l11:
7631 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 159988))+72);
7632 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 159998)))), &_td_OOC_SymbolTable__RecordDesc);
7633
7634 l13:
7635 if (i2) goto l15;
7636 i2=0u;
7637 goto l17;
7638 l15:
7639 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 160032))+40);
7640 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 160037))+16);
7641 i2 = (
7642 _cmp8((const void*)(_check_pointer(i2, 160041)),(const void*)(OOC_CHAR8*)"INIT"))==0;
7643
7644 l17:
7645 if (i2) goto l19;
7646 i0=0u;
7647 goto l20;
7648 l19:
7649 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 160107))+72);
7650 i0 = *(OOC_INT32*)((_check_pointer(i0, 160083))+96);
7651 i1 = *(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 160121)))), &_td_OOC_SymbolTable__RecordDesc, 160121)), 160128))+88);
7652 i0 = i0<i1;
7653
7654 l20:
7655 initWithoutSuper = i0;
7656 i0 = (OOC_INT64)statmSeq;
7657 OOC_IR__BuilderDesc_CheckExit_CheckStatmSeq((OOC_IR__StatementSeq)i0);
7658 i0 = initWithoutSuper;
7659 if (!i0) goto l23;
7660 i0 = (OOC_INT64)procDecl;
7661 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 160255))+40);
7662 i1 = (OOC_INT64)b;
7663 OOC_IR__BuilderDesc_WarnName((OOC_IR__Builder)i1, 74, (OOC_SymbolTable__Name)i0);
7664 l23:
7665 return;
7666 ;
7667 }
7668
OOC_IR__InitProcedure(OOC_IR__Procedure p,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__ProcDecl decl,OOC_IR__StatementSeq statmSeq,OOC_Scanner_SymList__Symbol endOfProc,OOC_CHAR8 checkFunctionResult)7669 void OOC_IR__InitProcedure(OOC_IR__Procedure p, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__ProcDecl decl, OOC_IR__StatementSeq statmSeq, OOC_Scanner_SymList__Symbol endOfProc, OOC_CHAR8 checkFunctionResult) {
7670 register OOC_INT64 i0,i1;
7671
7672 i0 = (OOC_INT64)sym;
7673 i1 = (OOC_INT64)p;
7674 OOC_IR__InitNode((OOC_IR__Node)i1, (OOC_Scanner_SymList__Symbol)i0);
7675 i0 = (OOC_INT64)decl;
7676 *(OOC_INT64*)((_check_pointer(i1, 160552))+8) = i0;
7677 i0 = (OOC_INT64)statmSeq;
7678 *(OOC_INT64*)((_check_pointer(i1, 160573))+16) = i0;
7679 i0 = (OOC_INT64)endOfProc;
7680 *(OOC_INT64*)((_check_pointer(i1, 160602))+32) = i0;
7681 i0 = checkFunctionResult;
7682 *(OOC_UINT8*)((_check_pointer(i1, 160633))+24) = i0;
7683 return;
7684 ;
7685 }
7686
OOC_IR__BuilderDesc_NewProcedure(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_SymbolTable__ProcDecl decl,OOC_IR__StatementSeq statmSeq,OOC_Scanner_SymList__Symbol endOfProc,OOC_CHAR8 hasBegin)7687 OOC_IR__Procedure OOC_IR__BuilderDesc_NewProcedure(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__ProcDecl decl, OOC_IR__StatementSeq statmSeq, OOC_Scanner_SymList__Symbol endOfProc, OOC_CHAR8 hasBegin) {
7688 register OOC_INT64 i0,i1,i2,i3,i4,i5;
7689 OOC_IR__Procedure p;
7690 auto OOC_IR__StatementSeq OOC_IR__BuilderDesc_NewProcedure_AddSetupCode(OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__ProcDecl decl, OOC_IR__StatementSeq statmSeq);
7691
7692 OOC_IR__StatementSeq OOC_IR__BuilderDesc_NewProcedure_AddSetupCode(OOC_Scanner_SymList__Symbol sym, OOC_SymbolTable__ProcDecl decl, OOC_IR__StatementSeq statmSeq) {
7693 register OOC_INT64 i0,i1,i2;
7694 ADT_ArrayList__ArrayList newStatm;
7695 OOC_SymbolTable__VarDeclArray formalPars;
7696 OOC_INT32 fparIndex;
7697 OOC_SymbolTable__VarDecl fpar;
7698 auto void OOC_IR__BuilderDesc_NewProcedure_AddSetupCode_AddStatm(OOC_IR__Statement statm);
7699 auto OOC_IR__StatementSeq OOC_IR__BuilderDesc_NewProcedure_AddSetupCode_Prepend(ADT_ArrayList__ArrayList prefix, OOC_IR__StatementSeq statmSeq);
7700
7701 void OOC_IR__BuilderDesc_NewProcedure_AddSetupCode_AddStatm(OOC_IR__Statement statm) {
7702 register OOC_INT64 i0,i1;
7703
7704 i0 = (OOC_INT64)newStatm;
7705 i1 = i0==(OOC_INT64)0;
7706 if (!i1) goto l4;
7707 i0 = (OOC_INT64)ADT_ArrayList__New(4);
7708 newStatm = (ADT_ArrayList__ArrayList)i0;
7709
7710 l4:
7711 i1 = (OOC_INT64)statm;
7712 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 161695)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i0, (Object__Object)i1);
7713 return;
7714 ;
7715 }
7716
7717
7718 OOC_IR__StatementSeq OOC_IR__BuilderDesc_NewProcedure_AddSetupCode_Prepend(ADT_ArrayList__ArrayList prefix, OOC_IR__StatementSeq statmSeq) {
7719 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
7720 OOC_IR__StatementSeq _new;
7721 OOC_INT32 i;
7722
7723 i0 = (OOC_INT64)prefix;
7724 i1 = (OOC_INT64)statmSeq;
7725 i2 = *(OOC_INT32*)((_check_pointer(i0, 161921))+8);
7726 i3 = OOC_ARRAY_LENGTH((_check_pointer(i1, 161941)), 0);
7727 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__StatementSeq.baseTypes[0], (i2+i3));
7728 _new = (OOC_IR__StatementSeq)i2;
7729 i = 0;
7730 i3 = *(OOC_INT32*)((_check_pointer(i0, 161974))+8);
7731 i4 = 0<i3;
7732 if (!i4) goto l8;
7733 i4=0;
7734 l3_loop:
7735 i5 = _check_pointer(i2, 161999);
7736 i6 = OOC_ARRAY_LENGTH(i5, 0);
7737 i7 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 162012));
7738 i7 = _check_pointer(i7, 162019);
7739 i8 = OOC_ARRAY_LENGTH(i7, 0);
7740 i7 = (OOC_INT64)*(OOC_INT64*)(i7+(_check_index(i4, i8, OOC_UINT32, 162019))*8);
7741 *(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 161999))*8) = (_type_guard(i7, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 162023)))), &_td_OOC_IR__StatementDesc, 162023));
7742 i4 = i4+1;
7743 i = i4;
7744 i5 = i4<i3;
7745 if (i5) goto l3_loop;
7746 l8:
7747 i = 0;
7748 i3 = OOC_ARRAY_LENGTH((_check_pointer(i1, 162082)), 0);
7749 i4 = 0<i3;
7750 if (!i4) goto l16;
7751 i4=0;
7752 l11_loop:
7753 i5 = _check_pointer(i2, 162103);
7754 i6 = *(OOC_INT32*)((_check_pointer(i0, 162112))+8);
7755 i7 = OOC_ARRAY_LENGTH(i5, 0);
7756 i8 = _check_pointer(i1, 162131);
7757 i9 = OOC_ARRAY_LENGTH(i8, 0);
7758 i8 = (OOC_INT64)*(OOC_INT64*)(i8+(_check_index(i4, i9, OOC_UINT32, 162131))*8);
7759 *(OOC_INT64*)(i5+(_check_index((i4+i6), i7, OOC_UINT32, 162103))*8) = i8;
7760 i4 = i4+1;
7761 i = i4;
7762 i5 = i4<i3;
7763 if (i5) goto l11_loop;
7764 l16:
7765 return (OOC_IR__StatementSeq)i2;
7766 ;
7767 }
7768
7769
7770 newStatm = (ADT_ArrayList__ArrayList)(OOC_INT64)0;
7771 i0 = (OOC_INT64)decl;
7772 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 162248))+112);
7773 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 162260))+96);
7774 formalPars = (OOC_SymbolTable__VarDeclArray)i0;
7775 fparIndex = 0;
7776 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 162361)), 0);
7777 i0 = 0!=i0;
7778 if (!i0) goto l11;
7779 i0=0;
7780 l3_loop:
7781 i1 = (OOC_INT64)formalPars;
7782 i1 = _check_pointer(i1, 162394);
7783 i2 = OOC_ARRAY_LENGTH(i1, 0);
7784 i0 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(i0, i2, OOC_UINT32, 162394))*8);
7785 fpar = (OOC_SymbolTable__VarDecl)i0;
7786 i1 = *(OOC_UINT8*)((_check_pointer(i0, 162422))+109);
7787 if (!i1) goto l6;
7788 i1 = (OOC_INT64)b;
7789 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 162489)))), OOC_IR__BuilderDesc_NewVar)),OOC_IR__BuilderDesc_NewVar)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)(OOC_INT64)0, (OOC_SymbolTable__VarDecl)i0);
7790 i1 = (OOC_INT64)b;
7791 i2 = (OOC_INT64)sym;
7792 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 162463)))), OOC_IR__BuilderDesc_NewCopyParameter)),OOC_IR__BuilderDesc_NewCopyParameter)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Var)i0);
7793 OOC_IR__BuilderDesc_NewProcedure_AddSetupCode_AddStatm((OOC_IR__Statement)i0);
7794 l6:
7795 i0 = fparIndex;
7796 i0 = i0+1;
7797 fparIndex = i0;
7798 i1 = (OOC_INT64)formalPars;
7799 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 162361)), 0);
7800 i1 = i0!=i1;
7801 if (i1) goto l3_loop;
7802 l11:
7803 i0 = (OOC_INT64)newStatm;
7804 i1 = i0==(OOC_INT64)0;
7805 if (i1) goto l14;
7806 i1 = (OOC_INT64)statmSeq;
7807 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewProcedure_AddSetupCode_Prepend((ADT_ArrayList__ArrayList)i0, (OOC_IR__StatementSeq)i1);
7808 return (OOC_IR__StatementSeq)i0;
7809 goto l15;
7810 l14:
7811 i0 = (OOC_INT64)statmSeq;
7812 return (OOC_IR__StatementSeq)i0;
7813 l15:
7814 _failed_function(161039); return 0;
7815 ;
7816 }
7817
7818
7819 i0 = (OOC_INT64)decl;
7820 i1 = (OOC_INT64)b;
7821 i2 = (OOC_INT64)sym;
7822 i3 = *(OOC_UINT8*)((_check_pointer(i0, 162732))+90);
7823 if (i3) goto l3;
7824 i3=0u;
7825 goto l5;
7826 l3:
7827 i3 = hasBegin;
7828
7829 l5:
7830 if (!i3) goto l7;
7831 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 162767)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 57, (OOC_Scanner_SymList__Symbol)i2);
7832 l7:
7833 i3 = (OOC_INT64)statmSeq;
7834 OOC_IR__BuilderDesc_CheckExit((OOC_IR__Builder)i1, (OOC_SymbolTable__ProcDecl)i0, (OOC_IR__StatementSeq)i3);
7835 p = (OOC_IR__Procedure)((OOC_INT64)RT0__NewObject(_td_OOC_IR__Procedure.baseTypes[0]));
7836 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewProcedure_AddSetupCode((OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__ProcDecl)i0, (OOC_IR__StatementSeq)i3);
7837 statmSeq = (OOC_IR__StatementSeq)i0;
7838 i1 = (OOC_INT64)decl;
7839 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 162992))+112);
7840 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 163003))+80);
7841 i2 = i2!=(OOC_INT64)0;
7842 if (i2) goto l10;
7843 i2=0u;
7844 goto l11;
7845 l10:
7846 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 163133))+40);
7847 i2 = *(OOC_INT32*)(_check_pointer(i2, 163139));
7848 i3 = (OOC_INT64)OOC_Config_StdPragmas__functionResultCheck;
7849 i4 = (OOC_INT64)b;
7850 i2 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i4, (Config_Section_Options__Option)i3, i2);
7851
7852 l11:
7853 i3 = (OOC_INT64)endOfProc;
7854 i4 = (OOC_INT64)sym;
7855 i5 = (OOC_INT64)p;
7856 OOC_IR__InitProcedure((OOC_IR__Procedure)i5, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__ProcDecl)i1, (OOC_IR__StatementSeq)i0, (OOC_Scanner_SymList__Symbol)i3, i2);
7857 return (OOC_IR__Procedure)i5;
7858 ;
7859 }
7860
OOC_IR__VisitorDesc_VisitProcedure(OOC_IR__Visitor v,OOC_IR__Procedure procedure)7861 void OOC_IR__VisitorDesc_VisitProcedure(OOC_IR__Visitor v, OOC_IR__Procedure procedure) {
7862
7863 return;
7864 ;
7865 }
7866
OOC_IR__ProcedureDesc_Accept(OOC_IR__Procedure p,OOC_IR__Visitor v)7867 void OOC_IR__ProcedureDesc_Accept(OOC_IR__Procedure p, OOC_IR__Visitor v) {
7868 register OOC_INT64 i0,i1;
7869
7870 i0 = (OOC_INT64)v;
7871 i1 = (OOC_INT64)p;
7872 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 163339)))), OOC_IR__VisitorDesc_VisitProcedure)),OOC_IR__VisitorDesc_VisitProcedure)((OOC_IR__Visitor)i0, (OOC_IR__Procedure)i1);
7873 return;
7874 ;
7875 }
7876
OOC_IR__InitModule(OOC_IR__Module m,OOC_Scanner_SymList__Symbol sym,OOC_Scanner_InputBuffer__CharArray name,OOC_IR__ProcedureList procList,OOC_IR__Procedure moduleBody)7877 void OOC_IR__InitModule(OOC_IR__Module m, OOC_Scanner_SymList__Symbol sym, OOC_Scanner_InputBuffer__CharArray name, OOC_IR__ProcedureList procList, OOC_IR__Procedure moduleBody) {
7878 register OOC_INT64 i0,i1;
7879
7880 i0 = (OOC_INT64)sym;
7881 i1 = (OOC_INT64)m;
7882 OOC_IR__InitNode((OOC_IR__Node)i1, (OOC_Scanner_SymList__Symbol)i0);
7883 i0 = (OOC_INT64)name;
7884 *(OOC_INT64*)((_check_pointer(i1, 163639))+8) = i0;
7885 i0 = (OOC_INT64)procList;
7886 *(OOC_INT64*)((_check_pointer(i1, 163660))+16) = i0;
7887 i0 = (OOC_INT64)moduleBody;
7888 *(OOC_INT64*)((_check_pointer(i1, 163689))+24) = i0;
7889 return;
7890 ;
7891 }
7892
OOC_IR__BuilderDesc_NewModule(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_Scanner_InputBuffer__CharArray name,OOC_SymbolTable__Module decl,OOC_IR__ProcedureList procList,OOC_IR__StatementSeq statmSeq,OOC_Scanner_SymList__Symbol endOfModule)7893 OOC_IR__Module OOC_IR__BuilderDesc_NewModule(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_Scanner_InputBuffer__CharArray name, OOC_SymbolTable__Module decl, OOC_IR__ProcedureList procList, OOC_IR__StatementSeq statmSeq, OOC_Scanner_SymList__Symbol endOfModule) {
7894 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
7895 OOC_IR__Module m;
7896 auto void OOC_IR__BuilderDesc_NewModule_UnusedDeclarations(OOC_SymbolTable__Item item);
7897
7898 void OOC_IR__BuilderDesc_NewModule_UnusedDeclarations(OOC_SymbolTable__Item item) {
7899 register OOC_INT64 i0,i1,i2;
7900 OOC_SymbolTable__Item nested;
7901
7902 i0 = (OOC_INT64)item;
7903 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164130)))), &_td_OOC_SymbolTable__DeclarationDesc);
7904 if (!i1) goto l38;
7905 i1 = *(OOC_INT32*)((_check_pointer(i0, 164377))+80);
7906 i1 = i1==0;
7907 if (i1) goto l5;
7908 i1=0u;
7909 goto l7;
7910 l5:
7911 i1 = *(OOC_INT8*)((_check_pointer(i0, 164412))+52);
7912 i1 = i1==0;
7913
7914 l7:
7915 if (i1) goto l9;
7916 i1=0u;
7917 goto l15;
7918 l9:
7919 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164468)))), &_td_OOC_SymbolTable__VarDeclDesc));
7920 if (i1) goto l12;
7921 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164497)))), &_td_OOC_SymbolTable__VarDeclDesc, 164497)), 164505))+104);
7922 i1 = !i1;
7923
7924 goto l15;
7925 l12:
7926 i1=1u;
7927 l15:
7928 if (i1) goto l17;
7929 i1=0u;
7930 goto l23;
7931 l17:
7932 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164540)))), &_td_OOC_SymbolTable__TypeDeclDesc));
7933 if (i1) goto l20;
7934 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 164566))+8);
7935 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 164574)))), &_td_OOC_SymbolTable__FormalParsDesc));
7936
7937 goto l23;
7938 l20:
7939 i1=1u;
7940 l23:
7941 if (i1) goto l25;
7942 i1=0u;
7943 goto l35;
7944 l25:
7945 i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164615)))), &_td_OOC_SymbolTable__ProcDeclDesc));
7946 if (i1) goto l32;
7947 i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164658)))), &_td_OOC_SymbolTable__ProcDeclDesc, 164658)), 164667))+89);
7948 if (i1) goto l30;
7949 i1 = OOC_SymbolTable__ProcDeclDesc_IsTypeBound((OOC_SymbolTable__ProcDecl)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 164708)))), &_td_OOC_SymbolTable__ProcDeclDesc, 164708)));
7950
7951 goto l31;
7952 l30:
7953 i1=1u;
7954 l31:
7955 i1 = !i1;
7956
7957 goto l35;
7958 l32:
7959 i1=1u;
7960 l35:
7961 if (!i1) goto l38;
7962 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 164783))+40);
7963 i2 = (OOC_INT64)b;
7964 OOC_IR__BuilderDesc_WarnName((OOC_IR__Builder)i2, 53, (OOC_SymbolTable__Name)i1);
7965 l38:
7966 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 164867))+16);
7967 nested = (OOC_SymbolTable__Item)i0;
7968 i1 = i0!=(OOC_INT64)0;
7969 if (!i1) goto l46;
7970 l41_loop:
7971 OOC_IR__BuilderDesc_NewModule_UnusedDeclarations((OOC_SymbolTable__Item)i0);
7972 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 164971));
7973 nested = (OOC_SymbolTable__Item)i0;
7974 i1 = i0!=(OOC_INT64)0;
7975 if (i1) goto l41_loop;
7976 l46:
7977 return;
7978 ;
7979 }
7980
7981
7982 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Module.baseTypes[0]);
7983 m = (OOC_IR__Module)i0;
7984 i1 = (OOC_INT64)decl;
7985 i2 = (OOC_INT64)b;
7986 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 165127))+152);
7987 i4 = (OOC_INT64)sym;
7988 i5 = (OOC_INT64)statmSeq;
7989 i6 = (OOC_INT64)endOfModule;
7990 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 165102)))), OOC_IR__BuilderDesc_NewProcedure)),OOC_IR__BuilderDesc_NewProcedure)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__ProcDecl)i3, (OOC_IR__StatementSeq)i5, (OOC_Scanner_SymList__Symbol)i6, 1u);
7991 i5 = (OOC_INT64)name;
7992 i6 = (OOC_INT64)procList;
7993 OOC_IR__InitModule((OOC_IR__Module)i0, (OOC_Scanner_SymList__Symbol)i4, (OOC_Scanner_InputBuffer__CharArray)i5, (OOC_IR__ProcedureList)i6, (OOC_IR__Procedure)i3);
7994 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 165211))+24);
7995 i0 = OOC_Error__ListDesc_NoErrors((OOC_Error__List)i0);
7996 if (!i0) goto l4;
7997 OOC_IR__BuilderDesc_NewModule_UnusedDeclarations((OOC_SymbolTable__Item)i1);
7998 l4:
7999 i0 = (OOC_INT64)m;
8000 return (OOC_IR__Module)i0;
8001 ;
8002 }
8003
OOC_IR__VisitorDesc_VisitModule(OOC_IR__Visitor v,OOC_IR__Module module)8004 void OOC_IR__VisitorDesc_VisitModule(OOC_IR__Visitor v, OOC_IR__Module module) {
8005
8006 return;
8007 ;
8008 }
8009
OOC_IR__ModuleDesc_Accept(OOC_IR__Module m,OOC_IR__Visitor v)8010 void OOC_IR__ModuleDesc_Accept(OOC_IR__Module m, OOC_IR__Visitor v) {
8011 register OOC_INT64 i0,i1;
8012
8013 i0 = (OOC_INT64)v;
8014 i1 = (OOC_INT64)m;
8015 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 165450)))), OOC_IR__VisitorDesc_VisitModule)),OOC_IR__VisitorDesc_VisitModule)((OOC_IR__Visitor)i0, (OOC_IR__Module)i1);
8016 return;
8017 ;
8018 }
8019
OOC_IR__ModuleDesc_Destroy(OOC_IR__Module m)8020 void OOC_IR__ModuleDesc_Destroy(OOC_IR__Module m) {
8021 register OOC_INT64 i0,i1,i2,i3,i4;
8022 OOC_INT32 i;
8023 auto void OOC_IR__ModuleDesc_Destroy_E(OOC_IR__Expression *n);
8024 auto void OOC_IR__ModuleDesc_Destroy_S(OOC_IR__Statement *n);
8025 auto void OOC_IR__ModuleDesc_Destroy_EList(OOC_IR__ExpressionList *e);
8026 auto void OOC_IR__ModuleDesc_Destroy_E(OOC_IR__Expression *n);
8027 auto void OOC_IR__ModuleDesc_Destroy_SSeq(OOC_IR__StatementSeq *n);
8028 auto void OOC_IR__ModuleDesc_Destroy_S(OOC_IR__Statement *n);
8029
8030 void OOC_IR__ModuleDesc_Destroy_EList(OOC_IR__ExpressionList *e) {
8031 register OOC_INT64 i0,i1,i2,i3,i4;
8032 OOC_INT32 i;
8033
8034 i0 = (OOC_INT64)*e;
8035 i1 = i0!=(OOC_INT64)0;
8036 if (!i1) goto l11;
8037 i = 0;
8038 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 165868)), 0);
8039 i2 = 0<i1;
8040 if (!i2) goto l10;
8041 i2=0;
8042 l5_loop:
8043 i3 = _check_pointer(i0, 165889);
8044 i4 = OOC_ARRAY_LENGTH(i3, 0);
8045 OOC_IR__ModuleDesc_Destroy_E((void*)(i3+(_check_index(i2, i4, OOC_UINT32, 165889))*8));
8046 i2 = i2+1;
8047 i = i2;
8048 i3 = i2<i1;
8049 if (i3) goto l5_loop;
8050 l10:
8051 *e = (OOC_IR__ExpressionList)(OOC_INT64)0;
8052 l11:
8053 return;
8054 ;
8055 }
8056
8057
8058 void OOC_IR__ModuleDesc_Destroy_E(OOC_IR__Expression *n) {
8059 register OOC_INT64 i0,i1;
8060 OOC_IR__Expression expr;
8061
8062 i0 = (OOC_INT64)*n;
8063 i1 = i0!=(OOC_INT64)0;
8064 if (!i1) goto l142;
8065 *(OOC_INT64*)((_check_pointer(i0, 166065))+8) = (OOC_INT64)0;
8066 i0 = (OOC_INT64)*n;
8067 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166093)))), &_td_OOC_IR__ConstDesc);
8068 if (i1) goto l140;
8069 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166141)))), &_td_OOC_IR__OperatorDesc);
8070 if (i1) goto l15;
8071 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168534)))), &_td_OOC_IR__ReferenceDesc);
8072 if (i1) goto l13;
8073 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168585)))), &_td_OOC_IR__StatementDesc);
8074 if (i1) goto l11;
8075 Log__Type((OOC_CHAR8*)"--- expression type", 20, (void*)i0);
8076 _assert(0u, 127, 168720);
8077 goto l141;
8078 l11:
8079 OOC_IR__ModuleDesc_Destroy_S((void*)(OOC_INT64)n);
8080 goto l141;
8081 l13:
8082 *(OOC_INT64*)((_check_pointer(i0, 168560))+16) = (OOC_INT64)0;
8083 goto l141;
8084 l15:
8085 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166171)))), &_td_OOC_IR__AbsDesc);
8086 if (i1) goto l137;
8087 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166219)))), &_td_OOC_IR__AdrDesc);
8088 if (i1) goto l135;
8089 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166266)))), &_td_OOC_IR__AshDesc);
8090 if (i1) goto l133;
8091 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166334)))), &_td_OOC_IR__BinaryArithDesc);
8092 if (i1) goto l131;
8093 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166411)))), &_td_OOC_IR__BooleanOpDesc);
8094 if (i1) goto l129;
8095 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166486)))), &_td_OOC_IR__CapDesc);
8096 if (i1) goto l127;
8097 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166534)))), &_td_OOC_IR__CompareDesc);
8098 if (i1) goto l125;
8099 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166607)))), &_td_OOC_IR__ConcatDesc);
8100 if (i1) goto l123;
8101 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166662)))), &_td_OOC_IR__ConstructorDesc);
8102 if (i1) goto l121;
8103 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166846)))), &_td_OOC_IR__CurrentExceptionDesc);
8104 if (i1) goto l141;
8105 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166907)))), &_td_OOC_IR__ChangeElementDesc);
8106 if (i1) goto l118;
8107 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 166987)))), &_td_OOC_IR__DerefDesc);
8108 if (i1) goto l116;
8109 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167037)))), &_td_OOC_IR__EntierDesc);
8110 if (i1) goto l114;
8111 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167088)))), &_td_OOC_IR__IndexDesc);
8112 if (i1) goto l112;
8113 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167160)))), &_td_OOC_IR__LenDesc);
8114 if (i1) goto l110;
8115 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167262)))), &_td_OOC_IR__NegateDesc);
8116 if (i1) goto l108;
8117 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167313)))), &_td_OOC_IR__NewBlockDesc);
8118 if (i1) goto l106;
8119 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167363)))), &_td_OOC_IR__NewObjectDesc);
8120 if (i1) goto l104;
8121 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167420)))), &_td_OOC_IR__NotDesc);
8122 if (i1) goto l102;
8123 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167468)))), &_td_OOC_IR__OddDesc);
8124 if (i1) goto l100;
8125 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167516)))), &_td_OOC_IR__SelectFieldDesc);
8126 if (i1) goto l98;
8127 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167630)))), &_td_OOC_IR__SelectProcDesc);
8128 if (i1) goto l96;
8129 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167747)))), &_td_OOC_IR__SetMemberDesc);
8130 if (i1) goto l94;
8131 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167823)))), &_td_OOC_IR__SetOpDesc);
8132 if (i1) goto l92;
8133 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167894)))), &_td_OOC_IR__SetRangeDesc);
8134 if (i1) goto l90;
8135 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 167965)))), &_td_OOC_IR__ShiftDesc);
8136 if (i1) goto l88;
8137 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168034)))), &_td_OOC_IR__TypeCastDesc);
8138 if (i1) goto l86;
8139 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168084)))), &_td_OOC_IR__TypeConvDesc);
8140 if (i1) goto l84;
8141 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168134)))), &_td_OOC_IR__TypeTagDesc);
8142 if (i1) goto l82;
8143 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168185)))), &_td_OOC_IR__TypeTestDesc);
8144 if (i1) goto l80;
8145 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 168329)))), &_td_OOC_IR__TypeGuardDesc);
8146 if (i1) goto l78;
8147 Log__Type((OOC_CHAR8*)"--- operator type", 18, (void*)i0);
8148 _assert(0u, 127, 168493);
8149 goto l141;
8150 l78:
8151 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 168365))+16);
8152 expr = (OOC_IR__Expression)i0;
8153 OOC_IR__ModuleDesc_Destroy_E((void*)(OOC_INT64)&expr);
8154 i0 = (OOC_INT64)*n;
8155 *(OOC_INT64*)((_check_pointer(i0, 168406))+16) = (OOC_INT64)0;
8156 goto l141;
8157 l80:
8158 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 168214))+16));
8159 i0 = (OOC_INT64)*n;
8160 *(OOC_INT64*)((_check_pointer(i0, 168235))+24) = (OOC_INT64)0;
8161 i0 = (OOC_INT64)*n;
8162 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 168273))+48));
8163 i0 = (OOC_INT64)*n;
8164 *(OOC_INT64*)((_check_pointer(i0, 168298))+56) = (OOC_INT64)0;
8165 goto l141;
8166 l82:
8167 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 168162))+16));
8168 goto l141;
8169 l84:
8170 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 168113))+16));
8171 goto l141;
8172 l86:
8173 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 168063))+16));
8174 goto l141;
8175 l88:
8176 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167991))+16));
8177 i0 = (OOC_INT64)*n;
8178 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 168015))+24));
8179 goto l141;
8180 l90:
8181 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167923))+16));
8182 i0 = (OOC_INT64)*n;
8183 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167946))+24));
8184 goto l141;
8185 l92:
8186 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167849))+24));
8187 i0 = (OOC_INT64)*n;
8188 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167872))+32));
8189 goto l141;
8190 l94:
8191 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167777))+16));
8192 i0 = (OOC_INT64)*n;
8193 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167803))+24));
8194 goto l141;
8195 l96:
8196 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167661))+16));
8197 i0 = (OOC_INT64)*n;
8198 *(OOC_INT64*)((_check_pointer(i0, 167686))+40) = (OOC_INT64)0;
8199 i0 = (OOC_INT64)*n;
8200 *(OOC_INT64*)((_check_pointer(i0, 167715))+48) = (OOC_INT64)0;
8201 goto l141;
8202 l98:
8203 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167548))+16));
8204 i0 = (OOC_INT64)*n;
8205 *(OOC_INT64*)((_check_pointer(i0, 167571))+24) = (OOC_INT64)0;
8206 i0 = (OOC_INT64)*n;
8207 *(OOC_INT64*)((_check_pointer(i0, 167599))+32) = (OOC_INT64)0;
8208 goto l141;
8209 l100:
8210 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167492))+16));
8211 goto l141;
8212 l102:
8213 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167444))+16));
8214 goto l141;
8215 l104:
8216 OOC_IR__ModuleDesc_Destroy_EList((void*)((_check_pointer(i0, 167397))+16));
8217 goto l141;
8218 l106:
8219 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167342))+16));
8220 goto l141;
8221 l108:
8222 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167289))+16));
8223 goto l141;
8224 l110:
8225 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167184))+24));
8226 i0 = (OOC_INT64)*n;
8227 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167208))+40));
8228 i0 = (OOC_INT64)*n;
8229 *(OOC_INT32*)((_check_pointer(i0, 167238))+32) = 0;
8230 goto l141;
8231 l112:
8232 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167114))+16));
8233 i0 = (OOC_INT64)*n;
8234 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167138))+24));
8235 goto l141;
8236 l114:
8237 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167064))+16));
8238 goto l141;
8239 l116:
8240 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 167013))+16));
8241 goto l141;
8242 l118:
8243 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166941))+24));
8244 i0 = (OOC_INT64)*n;
8245 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166963))+32));
8246 goto l141;
8247 l121:
8248 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 166700))+16);
8249 expr = (OOC_IR__Expression)i0;
8250 OOC_IR__ModuleDesc_Destroy_E((void*)(OOC_INT64)&expr);
8251 i0 = (OOC_INT64)*n;
8252 *(OOC_INT64*)((_check_pointer(i0, 166742))+16) = (OOC_INT64)0;
8253 i0 = (OOC_INT64)*n;
8254 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 166778))+24);
8255 expr = (OOC_IR__Expression)i0;
8256 OOC_IR__ModuleDesc_Destroy_E((void*)(OOC_INT64)&expr);
8257 i0 = (OOC_INT64)*n;
8258 *(OOC_INT64*)((_check_pointer(i0, 166819))+24) = (OOC_INT64)0;
8259 goto l141;
8260 l123:
8261 OOC_IR__ModuleDesc_Destroy_EList((void*)((_check_pointer(i0, 166638))+16));
8262 goto l141;
8263 l125:
8264 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166562))+24));
8265 i0 = (OOC_INT64)*n;
8266 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166585))+32));
8267 goto l141;
8268 l127:
8269 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166510))+16));
8270 goto l141;
8271 l129:
8272 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166441))+24));
8273 i0 = (OOC_INT64)*n;
8274 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166464))+32));
8275 goto l141;
8276 l131:
8277 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166366))+24));
8278 i0 = (OOC_INT64)*n;
8279 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166389))+32));
8280 goto l141;
8281 l133:
8282 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166290))+16));
8283 i0 = (OOC_INT64)*n;
8284 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166314))+24));
8285 goto l141;
8286 l135:
8287 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166243))+16));
8288 goto l141;
8289 l137:
8290 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 166195))+16));
8291 goto l141;
8292 l140:
8293 *(OOC_INT64*)((_check_pointer(i0, 166115))+16) = (OOC_INT64)0;
8294 l141:
8295 *n = (OOC_IR__Expression)(OOC_INT64)0;
8296 l142:
8297 return;
8298 ;
8299 }
8300
8301
8302 void OOC_IR__ModuleDesc_Destroy_SSeq(OOC_IR__StatementSeq *n) {
8303 register OOC_INT64 i0,i1,i2,i3,i4;
8304 OOC_INT32 i;
8305
8306 i0 = (OOC_INT64)*n;
8307 i1 = i0!=(OOC_INT64)0;
8308 if (!i1) goto l11;
8309 i = 0;
8310 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 168916)), 0);
8311 i2 = 0<i1;
8312 if (!i2) goto l11;
8313 i2=0;
8314 l5_loop:
8315 i3 = _check_pointer(i0, 168937);
8316 i4 = OOC_ARRAY_LENGTH(i3, 0);
8317 OOC_IR__ModuleDesc_Destroy_S((void*)(i3+(_check_index(i2, i4, OOC_UINT32, 168937))*8));
8318 i2 = i2+1;
8319 i = i2;
8320 i3 = i2<i1;
8321 if (i3) goto l5_loop;
8322 l11:
8323 return;
8324 ;
8325 }
8326
8327
8328 void OOC_IR__ModuleDesc_Destroy_S(OOC_IR__Statement *n) {
8329 register OOC_INT64 i0,i1,i2,i3,i4;
8330 OOC_INT32 i;
8331
8332 i0 = (OOC_INT64)*n;
8333 i1 = i0!=(OOC_INT64)0;
8334 if (!i1) goto l101;
8335 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169092)))), &_td_OOC_IR__AssertDesc);
8336 if (i1) goto l99;
8337 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169164)))), &_td_OOC_IR__AssignmentDesc);
8338 if (i1) goto l97;
8339 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169238)))), &_td_OOC_IR__CallDesc);
8340 if (i1) goto l95;
8341 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169343)))), &_td_OOC_IR__CopyDesc);
8342 if (i1) goto l93;
8343 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169408)))), &_td_OOC_IR__CopyParameterDesc);
8344 if (i1) goto l91;
8345 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169464)))), &_td_OOC_IR__CopyStringDesc);
8346 if (i1) goto l89;
8347 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169561)))), &_td_OOC_IR__ExitDesc);
8348 if (i1) goto l87;
8349 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169607)))), &_td_OOC_IR__ForStatmDesc);
8350 if (i1) goto l85;
8351 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169739)))), &_td_OOC_IR__IterateArrayStatmDesc);
8352 if (i1) goto l83;
8353 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169839)))), &_td_OOC_IR__IterateObjectStatmDesc);
8354 if (i1) goto l81;
8355 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 169950)))), &_td_OOC_IR__IfStatmDesc);
8356 if (i1) goto l79;
8357 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170053)))), &_td_OOC_IR__CaseStatmDesc);
8358 if (i1) goto l68;
8359 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170336)))), &_td_OOC_IR__LoopStatmDesc);
8360 if (i1) goto l66;
8361 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170386)))), &_td_OOC_IR__MoveBlockDesc);
8362 if (i1) goto l64;
8363 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170477)))), &_td_OOC_IR__RaiseDesc);
8364 if (i1) goto l62;
8365 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170525)))), &_td_OOC_IR__RepeatStatmDesc);
8366 if (i1) goto l60;
8367 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170607)))), &_td_OOC_IR__ReturnDesc);
8368 if (i1) goto l58;
8369 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170653)))), &_td_OOC_IR__TryStatmDesc);
8370 if (i1) goto l47;
8371 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170881)))), &_td_OOC_IR__WhileStatmDesc);
8372 if (i1) goto l45;
8373 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170954)))), &_td_OOC_IR__WithStatmDesc);
8374 if (i1) goto l43;
8375 _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 170951)))), 170951);
8376 goto l100;
8377 l43:
8378 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170982))+16));
8379 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 171007))+24));
8380 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 171035))+32));
8381 goto l100;
8382 l45:
8383 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170910))+16));
8384 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170935))+24));
8385 goto l100;
8386 l47:
8387 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170683))+16));
8388 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170724))+24);
8389 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 170734)), 0);
8390 i = 0;
8391 i2 = 0<i1;
8392 if (!i2) goto l56;
8393 i2=0;
8394 l51_loop:
8395 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170755))+24);
8396 i0 = _check_pointer(i0, 170765);
8397 i3 = OOC_ARRAY_LENGTH(i0, 0);
8398 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(i2, i3, OOC_UINT32, 170765))*8);
8399 *(OOC_INT64*)((_check_pointer(i0, 170768))+8) = (OOC_INT64)0;
8400 i0 = (OOC_INT64)*n;
8401 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170800))+24);
8402 i3 = _check_pointer(i3, 170810);
8403 i4 = OOC_ARRAY_LENGTH(i3, 0);
8404 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 170810))*8);
8405 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i3, 170813))+24));
8406 i2 = i2+1;
8407 i = i2;
8408 i3 = i2<i1;
8409 if (i3) goto l51_loop;
8410 l56:
8411 *(OOC_INT64*)((_check_pointer(i0, 170851))+24) = (OOC_INT64)0;
8412 goto l100;
8413 l58:
8414 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170632))+16));
8415 goto l100;
8416 l60:
8417 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170558))+16));
8418 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170579))+24));
8419 goto l100;
8420 l62:
8421 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170501))+16));
8422 goto l100;
8423 l64:
8424 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170414))+16));
8425 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170437))+24));
8426 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170458))+32));
8427 goto l100;
8428 l66:
8429 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170367))+16));
8430 goto l100;
8431 l68:
8432 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 170081))+16));
8433 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170120))+24);
8434 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 170129)), 0);
8435 i = 0;
8436 i2 = 0<i1;
8437 if (!i2) goto l77;
8438 i2=0;
8439 l72_loop:
8440 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170150))+24);
8441 i0 = _check_pointer(i0, 170159);
8442 i3 = OOC_ARRAY_LENGTH(i0, 0);
8443 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(i2, i3, OOC_UINT32, 170159))*8);
8444 *(OOC_INT64*)((_check_pointer(i0, 170162))+16) = (OOC_INT64)0;
8445 i0 = (OOC_INT64)*n;
8446 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170196))+24);
8447 i3 = _check_pointer(i3, 170205);
8448 i4 = OOC_ARRAY_LENGTH(i3, 0);
8449 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 170205))*8);
8450 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i3, 170208))+24));
8451 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 170233))+24);
8452 i3 = _check_pointer(i3, 170242);
8453 i4 = OOC_ARRAY_LENGTH(i3, 0);
8454 *(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 170242))*8) = (OOC_INT64)0;
8455 i2 = i2+1;
8456 i = i2;
8457 i3 = i2<i1;
8458 if (i3) goto l72_loop;
8459 l77:
8460 *(OOC_INT64*)((_check_pointer(i0, 170280))+24) = (OOC_INT64)0;
8461 i0 = (OOC_INT64)*n;
8462 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170314))+32));
8463 goto l100;
8464 l79:
8465 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169976))+16));
8466 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170001))+24));
8467 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 170029))+32));
8468 goto l100;
8469 l81:
8470 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169876))+16));
8471 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169896))+24));
8472 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 169931))+40));
8473 goto l100;
8474 l83:
8475 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169775))+16));
8476 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169795))+24));
8477 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 169820))+32));
8478 goto l100;
8479 l85:
8480 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169634))+16));
8481 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169654))+24));
8482 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169676))+32));
8483 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169696))+40));
8484 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 169720))+48));
8485 goto l100;
8486 l87:
8487 *(OOC_INT64*)((_check_pointer(i0, 169582))+16) = (OOC_INT64)0;
8488 goto l100;
8489 l89:
8490 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169493))+16));
8491 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169516))+24));
8492 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169537))+32));
8493 goto l100;
8494 l91:
8495 *(OOC_INT64*)((_check_pointer(i0, 169438))+16) = (OOC_INT64)0;
8496 goto l100;
8497 l93:
8498 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169366))+16));
8499 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169389))+24));
8500 goto l100;
8501 l95:
8502 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169261))+16));
8503 OOC_IR__ModuleDesc_Destroy_EList((void*)((_check_pointer(i0, 169288))+24));
8504 *(OOC_INT64*)((_check_pointer(i0, 169312))+32) = (OOC_INT64)0;
8505 goto l100;
8506 l97:
8507 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169193))+16));
8508 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169218))+24));
8509 goto l100;
8510 l99:
8511 OOC_IR__ModuleDesc_Destroy_E((void*)((_check_pointer(i0, 169117))+16));
8512 *(OOC_INT32*)((_check_pointer(i0, 169141))+24) = 0;
8513 l100:
8514 *n = (OOC_IR__Statement)(OOC_INT64)0;
8515 l101:
8516 return;
8517 ;
8518 }
8519
8520
8521 i0 = (OOC_INT64)m;
8522 *(OOC_INT64*)((_check_pointer(i0, 171117))+8) = (OOC_INT64)0;
8523 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 171154))+16);
8524 i = 0;
8525 i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 171163)), 0);
8526 i2 = 0<i1;
8527 if (!i2) goto l9;
8528 i2=0;
8529 l4_loop:
8530 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 171178))+16);
8531 i3 = _check_pointer(i3, 171187);
8532 i4 = OOC_ARRAY_LENGTH(i3, 0);
8533 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 171187))*8);
8534 *(OOC_INT64*)((_check_pointer(i3, 171190))+8) = (OOC_INT64)0;
8535 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 171216))+16);
8536 i0 = _check_pointer(i0, 171225);
8537 i3 = OOC_ARRAY_LENGTH(i0, 0);
8538 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(i2, i3, OOC_UINT32, 171225))*8);
8539 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 171228))+16));
8540 i0 = (OOC_INT64)m;
8541 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 171247))+16);
8542 i2 = _check_pointer(i2, 171256);
8543 i3 = OOC_ARRAY_LENGTH(i2, 0);
8544 i4 = i;
8545 *(OOC_INT64*)(i2+(_check_index(i4, i3, OOC_UINT32, 171256))*8) = (OOC_INT64)0;
8546 i2 = i4+1;
8547 i = i2;
8548 i3 = i2<i1;
8549 if (i3) goto l4_loop;
8550 l9:
8551 *(OOC_INT64*)((_check_pointer(i0, 171282))+16) = (OOC_INT64)0;
8552 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 171306))+24);
8553 *(OOC_INT64*)((_check_pointer(i1, 171317))+8) = (OOC_INT64)0;
8554 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 171341))+24);
8555 OOC_IR__ModuleDesc_Destroy_SSeq((void*)((_check_pointer(i0, 171352))+16));
8556 i0 = (OOC_INT64)m;
8557 *(OOC_INT64*)((_check_pointer(i0, 171369))+24) = (OOC_INT64)0;
8558 return;
8559 ;
8560 }
8561
OOC_IR__InitVisitor(OOC_IR__Visitor v)8562 void OOC_IR__InitVisitor(OOC_IR__Visitor v) {
8563
8564 return;
8565 ;
8566 }
8567
OOC_IR__InitConstFold(OOC_IR__ConstFold c,OOC_IR__Builder b)8568 void OOC_IR__InitConstFold(OOC_IR__ConstFold c, OOC_IR__Builder b) {
8569 register OOC_INT64 i0,i1;
8570
8571 i0 = (OOC_INT64)c;
8572 OOC_IR__InitVisitor((OOC_IR__Visitor)i0);
8573 i1 = (OOC_INT64)b;
8574 *(OOC_INT64*)(_check_pointer(i0, 171667)) = i1;
8575 return;
8576 ;
8577 }
8578
OOC_IR__InitBuilder(OOC_IR__Builder b,OOC_SymbolTable__Module module,OOC_SymbolTable_Uses__Uses uses,OOC_Config_Pragmas__History pragmaHistory,OOC_Error__List errList,OOC_IR__ConstFold fold)8579 void OOC_IR__InitBuilder(OOC_IR__Builder b, OOC_SymbolTable__Module module, OOC_SymbolTable_Uses__Uses uses, OOC_Config_Pragmas__History pragmaHistory, OOC_Error__List errList, OOC_IR__ConstFold fold) {
8580 register OOC_INT64 i0,i1,i2,i3,i4,i5;
8581 OOC_SymbolTable__Item string;
8582 auto OOC_IR__TypeType OOC_IR__InitBuilder_NewTypeType(OOC_SymbolTable__Item parent, OOC_SymbolTable__Position position);
8583 auto OOC_IR__ModuleType OOC_IR__InitBuilder_NewModuleType(OOC_SymbolTable__Item parent, OOC_SymbolTable__Position position);
8584
8585 OOC_IR__TypeType OOC_IR__InitBuilder_NewTypeType(OOC_SymbolTable__Item parent, OOC_SymbolTable__Position position) {
8586 register OOC_INT64 i0,i1,i2;
8587
8588 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__TypeType.baseTypes[0]);
8589 i1 = (OOC_INT64)position;
8590 i2 = (OOC_INT64)parent;
8591 OOC_SymbolTable__InitType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Item)i2, (OOC_SymbolTable__Position)i1);
8592 return (OOC_IR__TypeType)i0;
8593 ;
8594 }
8595
8596
8597 OOC_IR__ModuleType OOC_IR__InitBuilder_NewModuleType(OOC_SymbolTable__Item parent, OOC_SymbolTable__Position position) {
8598 register OOC_INT64 i0,i1,i2;
8599
8600 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ModuleType.baseTypes[0]);
8601 i1 = (OOC_INT64)position;
8602 i2 = (OOC_INT64)parent;
8603 OOC_SymbolTable__InitType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Item)i2, (OOC_SymbolTable__Position)i1);
8604 return (OOC_IR__ModuleType)i0;
8605 ;
8606 }
8607
8608
8609 i0 = (OOC_INT64)b;
8610 i1 = (OOC_INT64)module;
8611 *(OOC_INT64*)(_check_pointer(i0, 172536)) = i1;
8612 i1 = (OOC_INT64)pragmaHistory;
8613 *(OOC_INT64*)((_check_pointer(i0, 172561))+16) = i1;
8614 i1 = (OOC_INT64)errList;
8615 *(OOC_INT64*)((_check_pointer(i0, 172600))+24) = i1;
8616 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(17);
8617 i2 = (OOC_INT64)Object_Boxed__false;
8618 i3 = (OOC_INT64)OOC_Scanner_SymList__NewSymbol((OOC_Scanner_InputBuffer__CharArray)0, (-1));
8619 i1 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i2);
8620 *(OOC_INT64*)((_check_pointer(i0, 172627))+48) = i1;
8621 i1 = (OOC_INT64)OOC_IR__InitBuilder_NewTypeType((OOC_SymbolTable__Item)0, (OOC_SymbolTable__Position)0);
8622 *(OOC_INT64*)((_check_pointer(i0, 172789))+56) = i1;
8623 i0 = (OOC_INT64)b;
8624 i1 = (OOC_INT64)OOC_IR__InitBuilder_NewModuleType((OOC_SymbolTable__Item)0, (OOC_SymbolTable__Position)0);
8625 *(OOC_INT64*)((_check_pointer(i0, 172832))+64) = i1;
8626 i0 = (OOC_INT64)b;
8627 *(OOC_INT64*)((_check_pointer(i0, 172879))+80) = 0;
8628 i1 = (OOC_INT64)fold;
8629 *(OOC_INT64*)((_check_pointer(i0, 172904))+32) = i1;
8630 i2 = (OOC_INT64)uses;
8631 *(OOC_INT64*)((_check_pointer(i0, 172930))+40) = i2;
8632 *(OOC_INT64*)(_check_pointer(i1, 172954)) = i0;
8633 i1 = (OOC_INT64)module;
8634 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 173024))+88);
8635 i4 = (OOC_INT64)OOC_SymbolTable_Predef__nameStringType;
8636 i5 = (OOC_INT64)OOC_SymbolTable_Predef__nameStringModule;
8637 i1 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__ResolveQualident((OOC_SymbolTable__Namespace)i3, (OOC_SymbolTable__Item)i1, (OOC_SymbolTable_Uses__Uses)i2, (OOC_SymbolTable__Name)i5, (OOC_SymbolTable__Name)i4);
8638 string = (OOC_SymbolTable__Item)i1;
8639 i2 = i1==0;
8640 if (i2) goto l3;
8641 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 173284)))), &_td_OOC_SymbolTable__TypeDeclDesc, 173284)), 173293))+88);
8642 *(OOC_INT64*)((_check_pointer(i0, 173257))+72) = i1;
8643 goto l4;
8644 l3:
8645 *(OOC_INT64*)((_check_pointer(i0, 173220))+72) = 0;
8646 l4:
8647 *(OOC_INT64*)((_check_pointer(i0, 173314))+8) = 0;
8648 return;
8649 ;
8650 }
8651
OOC_IR__NewBuilder(OOC_SymbolTable__Module module,OOC_SymbolTable_Uses__Uses uses,OOC_Config_Pragmas__History pragmaHistory,OOC_Error__List errList,OOC_IR__ConstFold constFold)8652 OOC_IR__Builder OOC_IR__NewBuilder(OOC_SymbolTable__Module module, OOC_SymbolTable_Uses__Uses uses, OOC_Config_Pragmas__History pragmaHistory, OOC_Error__List errList, OOC_IR__ConstFold constFold) {
8653 register OOC_INT64 i0,i1,i2,i3,i4,i5;
8654
8655 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__Builder.baseTypes[0]);
8656 i1 = (OOC_INT64)constFold;
8657 i2 = (OOC_INT64)errList;
8658 i3 = (OOC_INT64)pragmaHistory;
8659 i4 = (OOC_INT64)uses;
8660 i5 = (OOC_INT64)module;
8661 OOC_IR__InitBuilder((OOC_IR__Builder)i0, (OOC_SymbolTable__Module)i5, (OOC_SymbolTable_Uses__Uses)i4, (OOC_Config_Pragmas__History)i3, (OOC_Error__List)i2, (OOC_IR__ConstFold)i1);
8662 return (OOC_IR__Builder)i0;
8663 ;
8664 }
8665
OOC_IR__BuilderDesc_SetCurrentReceiver(OOC_IR__Builder b,OOC_IR__Expression design)8666 void OOC_IR__BuilderDesc_SetCurrentReceiver(OOC_IR__Builder b, OOC_IR__Expression design) {
8667 register OOC_INT64 i0,i1;
8668
8669 i0 = (OOC_INT64)b;
8670 i1 = (OOC_INT64)design;
8671 *(OOC_INT64*)((_check_pointer(i0, 173772))+8) = i1;
8672 return;
8673 ;
8674 }
8675
OOC_IR__BuilderDesc_StartTypeGuard(OOC_IR__Builder b,OOC_IR__TypeTest typeTest,OOC_SymbolTable__Namespace * namespace)8676 void OOC_IR__BuilderDesc_StartTypeGuard(OOC_IR__Builder b, OOC_IR__TypeTest typeTest, OOC_SymbolTable__Namespace *namespace) {
8677 register OOC_INT64 i0,i1,i2,i3,i4,i5;
8678 OOC_SymbolTable__VarDecl var;
8679 OOC_SymbolTable__DeclarationArray da;
8680 OOC_SymbolTable_Namespace__Nested nested;
8681
8682 i0 = (OOC_INT64)typeTest;
8683 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 174072))+16);
8684 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 174078)))), &_td_OOC_IR__VarDesc);
8685 if (i1) goto l3;
8686 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 174479))+16);
8687 i1 = (OOC_INT64)b;
8688 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 174484));
8689 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 174448)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 29, (OOC_Scanner_SymList__Symbol)i0);
8690 goto l4;
8691 l3:
8692 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 174112))+16);
8693 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 174119)))), &_td_OOC_IR__VarDesc, 174119)), 174123))+16);
8694 i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 174134)))), &_td_OOC_SymbolTable__VarDeclDesc, 174134);
8695 var = (OOC_SymbolTable__VarDecl)i1;
8696 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__DeclarationArray.baseTypes[0], 1);
8697 da = (OOC_SymbolTable__DeclarationArray)i2;
8698 i3 = _check_pointer(i2, 174171);
8699 i4 = OOC_ARRAY_LENGTH(i3, 0);
8700 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 174257))+56);
8701 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 174266))+24);
8702 i0 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i0);
8703 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 174201))+40);
8704 i0 = (OOC_INT64)OOC_IR__NewGuardedVar((OOC_SymbolTable__VarDecl)i1, (OOC_SymbolTable__Name)i5, (OOC_SymbolTable__Type)i0);
8705 *(OOC_INT64*)(i3+(_check_index(0, i4, OOC_UINT8, 174171))*8) = i0;
8706 i0 = (OOC_INT64)OOC_SymbolTable_Namespace__NewNested((OOC_SymbolTable__DeclarationArray)i2, 1);
8707 nested = (OOC_SymbolTable_Namespace__Nested)i0;
8708 i1 = (OOC_INT64)*namespace;
8709 OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i0, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 174381)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 174381)));
8710 *namespace = (OOC_SymbolTable__Namespace)i0;
8711 return;
8712 l4:
8713 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__DeclarationArray.baseTypes[0], 0);
8714 da = (OOC_SymbolTable__DeclarationArray)i0;
8715 i0 = (OOC_INT64)OOC_SymbolTable_Namespace__NewNested((OOC_SymbolTable__DeclarationArray)i0, 0);
8716 nested = (OOC_SymbolTable_Namespace__Nested)i0;
8717 i1 = (OOC_INT64)*namespace;
8718 OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i0, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 174692)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 174692)));
8719 *namespace = (OOC_SymbolTable__Namespace)i0;
8720 return;
8721 ;
8722 }
8723
OOC_IR__BuilderDesc_EndTypeGuard(OOC_IR__Builder b,OOC_SymbolTable__Namespace * namespace)8724 void OOC_IR__BuilderDesc_EndTypeGuard(OOC_IR__Builder b, OOC_SymbolTable__Namespace *namespace) {
8725 register OOC_INT64 i0;
8726
8727 i0 = (OOC_INT64)*namespace;
8728 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 174864)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 174864)), 174871))+16);
8729 *namespace = (OOC_SymbolTable__Namespace)i0;
8730 return;
8731 ;
8732 }
8733
OOC_IR__BuilderDesc_StartExceptionScope(OOC_IR__Builder b,OOC_IR__Expression exceptionType,OOC_Scanner_SymList__Symbol varName,OOC_SymbolTable__Namespace * namespace)8734 void OOC_IR__BuilderDesc_StartExceptionScope(OOC_IR__Builder b, OOC_IR__Expression exceptionType, OOC_Scanner_SymList__Symbol varName, OOC_SymbolTable__Namespace *namespace) {
8735 register OOC_INT64 i0,i1,i2,i3,i4,i5;
8736 OOC_SymbolTable__Type type;
8737 OOC_SymbolTable__DeclarationArray da;
8738 OOC_SymbolTable_Namespace__Nested nested;
8739
8740 i0 = (OOC_INT64)exceptionType;
8741 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 175227)))), &_td_OOC_IR__TypeRefDesc);
8742 if (i1) goto l3;
8743 i0 = (OOC_INT64)b;
8744 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 175302))+48);
8745 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 175312))+8);
8746 type = (OOC_SymbolTable__Type)i0;
8747
8748 goto l4;
8749 l3:
8750 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 175267))+24);
8751 type = (OOC_SymbolTable__Type)i0;
8752
8753 l4:
8754 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__DeclarationArray.baseTypes[0], 1);
8755 da = (OOC_SymbolTable__DeclarationArray)i1;
8756 i2 = _check_pointer(i1, 175355);
8757 i3 = OOC_ARRAY_LENGTH(i2, 0);
8758 i4 = (OOC_INT64)b;
8759 i5 = (OOC_INT64)varName;
8760 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 175431)))), OOC_IR__BuilderDesc_GetName)),OOC_IR__BuilderDesc_GetName)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i5);
8761 i5 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__exception;
8762 i0 = (OOC_INT64)OOC_IR__NewGuardedVar((OOC_SymbolTable__VarDecl)i5, (OOC_SymbolTable__Name)i4, (OOC_SymbolTable__Type)i0);
8763 *(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 175355))*8) = i0;
8764 i0 = (OOC_INT64)OOC_SymbolTable_Namespace__NewNested((OOC_SymbolTable__DeclarationArray)i1, 1);
8765 nested = (OOC_SymbolTable_Namespace__Nested)i0;
8766 i1 = (OOC_INT64)*namespace;
8767 OOC_SymbolTable_Namespace__NestedDesc_SetEnclosingNamespace((OOC_SymbolTable_Namespace__Nested)i0, (OOC_SymbolTable_Namespace__Namespace)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 175552)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 175552)));
8768 *namespace = (OOC_SymbolTable__Namespace)i0;
8769 return;
8770 ;
8771 }
8772
OOC_IR__BuilderDesc_EndExceptionScope(OOC_IR__Builder b,OOC_SymbolTable__Namespace * namespace)8773 void OOC_IR__BuilderDesc_EndExceptionScope(OOC_IR__Builder b, OOC_SymbolTable__Namespace *namespace) {
8774 register OOC_INT64 i0;
8775
8776 i0 = (OOC_INT64)*namespace;
8777 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 175733)))), &_td_OOC_SymbolTable_Namespace__NestedDesc, 175733)), 175740))+16);
8778 *namespace = (OOC_SymbolTable__Namespace)i0;
8779 return;
8780 ;
8781 }
8782
OOC_IR__BuilderDesc_NewIdentRef(OOC_IR__Builder b,OOC_SymbolTable__Namespace baseNS,OOC_SymbolTable__Namespace ns,OOC_SymbolTable__Item context,OOC_Scanner_SymList__Symbol name)8783 OOC_IR__Expression OOC_IR__BuilderDesc_NewIdentRef(OOC_IR__Builder b, OOC_SymbolTable__Namespace baseNS, OOC_SymbolTable__Namespace ns, OOC_SymbolTable__Item context, OOC_Scanner_SymList__Symbol name) {
8784 register OOC_INT64 i0,i1,i2,i3,i4,i5;
8785 OOC_SymbolTable__Name n;
8786 OOC_SymbolTable__Declaration decl;
8787 OOC_IR__Var varRef;
8788 OOC_SymbolTable__Item redirModule;
8789
8790 i0 = (OOC_INT64)name;
8791 i1 = *(OOC_INT8*)((_check_pointer(i0, 176076))+8);
8792 i1 = i1==45;
8793 if (i1) goto l3;
8794 i1 = (OOC_INT64)b;
8795 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 177639)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 2, (OOC_Scanner_SymList__Symbol)i0);
8796 i0=i1;
8797 goto l52;
8798 l3:
8799 i1 = (OOC_INT64)b;
8800 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 176110)))), OOC_IR__BuilderDesc_GetName)),OOC_IR__BuilderDesc_GetName)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i0);
8801 n = (OOC_SymbolTable__Name)i2;
8802 i3 = (OOC_INT64)ns;
8803 i4 = (OOC_INT64)context;
8804 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176142)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i3, (OOC_SymbolTable__Item)i4, (OOC_SymbolTable__Name)i2, 0u);
8805 decl = (OOC_SymbolTable__Declaration)i3;
8806 i5 = i3==(OOC_INT64)0;
8807 if (i5) goto l50;
8808 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 176279))+40);
8809 OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i3, (OOC_SymbolTable_Uses__Uses)i5, (OOC_SymbolTable__Name)i2);
8810 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176307)))), &_td_OOC_SymbolTable__ConstDeclDesc);
8811 if (i2) goto l48;
8812 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176398)))), &_td_OOC_SymbolTable__VarDeclDesc);
8813 if (i2) goto l46;
8814 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176469)))), &_td_OOC_IR__GuardedVarDesc);
8815 if (i2) goto l40;
8816 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176758)))), &_td_OOC_SymbolTable__TypeDeclDesc);
8817 if (i2) goto l38;
8818 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176834)))), &_td_OOC_SymbolTable__PredefProcDesc);
8819 if (i2) goto l36;
8820 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176912)))), &_td_OOC_SymbolTable__ProcDeclDesc);
8821 if (i2) goto l34;
8822 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 176990)))), &_td_OOC_SymbolTable__ImportDesc);
8823 if (i2) goto l32;
8824 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 177082)))), &_td_OOC_SymbolTable__RedirectDesc);
8825 if (i2) goto l22;
8826 Log__Type((OOC_CHAR8*)"Unknown decl in NewIdentRef", 28, (void*)i3);
8827 _assert(0u, 127, 177585);
8828 goto l51;
8829 l22:
8830 i2 = (OOC_INT64)baseNS;
8831 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 177154))+88);
8832 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 177131)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i4, (OOC_SymbolTable__Name)i5, 0u);
8833 redirModule = (OOC_SymbolTable__Item)i2;
8834 i5 = i2==(OOC_INT64)0;
8835 if (i5) goto l25;
8836 i5 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 177221)))), &_td_OOC_SymbolTable__ImportDesc));
8837
8838 goto l27;
8839 l25:
8840 i5=1u;
8841 l27:
8842 if (i5) goto l29;
8843 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 177334)))), &_td_OOC_SymbolTable__ImportDesc, 177334)), 177341))+96);
8844 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 177356))+88);
8845 ns = (OOC_SymbolTable__Namespace)i2;
8846 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 177474))+96);
8847 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 177480))+16);
8848 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 177474))+96);
8849 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 177480))+16);
8850 i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 177484)), 0);
8851 i0 = (OOC_INT64)OOC_Scanner_SymList__CloneSymbol((OOC_Scanner_SymList__Symbol)i0, (void*)(_check_pointer(i3, 177484)), i5);
8852 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 177381)))), OOC_IR__BuilderDesc_NewIdentRef)),OOC_IR__BuilderDesc_NewIdentRef)((OOC_IR__Builder)i1, (OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Item)i4, (OOC_Scanner_SymList__Symbol)i0);
8853 return (OOC_IR__Expression)i0;
8854 goto l51;
8855 l29:
8856 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 177254)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 41, (OOC_Scanner_SymList__Symbol)i0);
8857 goto l51;
8858 l32:
8859 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 177050))+96);
8860 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewModuleRef((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Module)i2);
8861 return (OOC_IR__Expression)i0;
8862 goto l51;
8863 l34:
8864 i0 = (OOC_INT64)OOC_IR__NewProcedureRef((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__ProcDecl)i3);
8865 return (OOC_IR__Expression)i0;
8866 goto l51;
8867 l36:
8868 i0 = (OOC_INT64)OOC_IR__NewPredefProc((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__PredefProc)i3);
8869 return (OOC_IR__Expression)i0;
8870 goto l51;
8871 l38:
8872 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeRef((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__TypeDecl)i3);
8873 return (OOC_IR__Expression)i0;
8874 goto l51;
8875 l40:
8876 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 176503))+88);
8877 i4 = (OOC_INT64)OOC_SymbolTable_CreateNamespace__exception;
8878 i2 = i2==i4;
8879 if (i2) goto l43;
8880 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 176657))+88);
8881 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 176639)))), OOC_IR__BuilderDesc_NewVar)),OOC_IR__BuilderDesc_NewVar)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__VarDecl)i2);
8882 varRef = (OOC_IR__Var)i0;
8883 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 176695))+96);
8884 *(OOC_INT64*)((_check_pointer(i0, 176682))+8) = i2;
8885 return (OOC_IR__Expression)i0;
8886 goto l51;
8887 l43:
8888 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 176593))+96);
8889 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 176562)))), OOC_IR__BuilderDesc_NewCurrentException)),OOC_IR__BuilderDesc_NewCurrentException)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i2);
8890 return (OOC_IR__Expression)i0;
8891 goto l51;
8892 l46:
8893 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 176433)))), OOC_IR__BuilderDesc_NewVar)),OOC_IR__BuilderDesc_NewVar)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__VarDecl)i3);
8894 return (OOC_IR__Expression)i0;
8895 goto l51;
8896 l48:
8897 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 176375))+88);
8898 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 176363))+96);
8899 i0 = (OOC_INT64)OOC_IR__NewConst((OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i2);
8900 return (OOC_IR__Expression)i0;
8901 goto l51;
8902 l50:
8903 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 176210)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 1, (OOC_Scanner_SymList__Symbol)i0);
8904 l51:
8905 i0=i1;
8906 l52:
8907 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 177880))+48);
8908 return (OOC_IR__Expression)i0;
8909 ;
8910 }
8911
OOC_IR__BuilderDesc_NewQualident(OOC_IR__Builder b,OOC_SymbolTable__Namespace baseNS,OOC_IR__ModuleRef modref,OOC_SymbolTable__Item context,OOC_Scanner_SymList__Symbol name)8912 OOC_IR__Expression OOC_IR__BuilderDesc_NewQualident(OOC_IR__Builder b, OOC_SymbolTable__Namespace baseNS, OOC_IR__ModuleRef modref, OOC_SymbolTable__Item context, OOC_Scanner_SymList__Symbol name) {
8913 register OOC_INT64 i0,i1,i2,i3,i4;
8914
8915 i0 = (OOC_INT64)modref;
8916 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 178165))+16);
8917 i1 = (OOC_INT64)b;
8918 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 178176)))), &_td_OOC_SymbolTable__ModuleDesc, 178176)), 178183))+88);
8919 i2 = (OOC_INT64)baseNS;
8920 i3 = (OOC_INT64)context;
8921 i4 = (OOC_INT64)name;
8922 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 178136)))), OOC_IR__BuilderDesc_NewIdentRef)),OOC_IR__BuilderDesc_NewIdentRef)((OOC_IR__Builder)i1, (OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Namespace)i0, (OOC_SymbolTable__Item)i3, (OOC_Scanner_SymList__Symbol)i4);
8923 return (OOC_IR__Expression)i0;
8924 ;
8925 }
8926
OOC_IR__BuilderDesc_NewTypeVar(OOC_IR__Builder b,OOC_SymbolTable__Namespace baseNS,OOC_IR__TypeRef typeRef,OOC_SymbolTable__Item context,OOC_Scanner_SymList__Symbol name)8927 OOC_IR__Expression OOC_IR__BuilderDesc_NewTypeVar(OOC_IR__Builder b, OOC_SymbolTable__Namespace baseNS, OOC_IR__TypeRef typeRef, OOC_SymbolTable__Item context, OOC_Scanner_SymList__Symbol name) {
8928 register OOC_INT64 i0,i1,i2,i3,i4;
8929 OOC_SymbolTable__Type type;
8930
8931 i0 = (OOC_INT64)typeRef;
8932 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 178474))+16);
8933 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 178484)))), &_td_OOC_SymbolTable__TypeDeclDesc, 178484)), 178493))+88);
8934 type = (OOC_SymbolTable__Type)i0;
8935 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 178512))+56);
8936 i1 = i1==(OOC_INT64)0;
8937 if (i1) goto l3;
8938 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 178629))+56);
8939 i1 = (OOC_INT64)b;
8940 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 178638))+48);
8941 i2 = (OOC_INT64)baseNS;
8942 i3 = (OOC_INT64)context;
8943 i4 = (OOC_INT64)name;
8944 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 178604)))), OOC_IR__BuilderDesc_NewIdentRef)),OOC_IR__BuilderDesc_NewIdentRef)((OOC_IR__Builder)i1, (OOC_SymbolTable__Namespace)i2, (OOC_SymbolTable__Namespace)i0, (OOC_SymbolTable__Item)i3, (OOC_Scanner_SymList__Symbol)i4);
8945 return (OOC_IR__Expression)i0;
8946 goto l4;
8947 l3:
8948 i0 = (OOC_INT64)b;
8949 i1 = (OOC_INT64)name;
8950 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 178548)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 1, (OOC_Scanner_SymList__Symbol)i1);
8951 return (OOC_IR__Expression)i0;
8952 l4:
8953 _failed_function(178248); return 0;
8954 ;
8955 }
8956
OOC_IR__BuilderDesc_NewQualType(OOC_IR__Builder b,OOC_IR__Expression type,OOC_IR__ExpressionList arguments,OOC_Scanner_SymList__Symbol rParen)8957 OOC_IR__Expression OOC_IR__BuilderDesc_NewQualType(OOC_IR__Builder b, OOC_IR__Expression type, OOC_IR__ExpressionList arguments, OOC_Scanner_SymList__Symbol rParen) {
8958 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10;
8959 OOC_SymbolTable__Type qualType;
8960 OOC_SymbolTable__TypeVarArray params;
8961 OOC_INT32 i;
8962 OOC_SymbolTable__Type t;
8963
8964 i0 = (OOC_INT64)b;
8965 i1 = (OOC_INT64)type;
8966 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 178973)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i0, (OOC_IR__Expression)i1);
8967 qualType = (OOC_SymbolTable__Type)i2;
8968 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 179008))+8);
8969 i3 = i3==(OOC_INT64)0;
8970 if (i3) goto l3;
8971 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 179763));
8972 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 179732)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 69, (OOC_Scanner_SymList__Symbol)i2);
8973 goto l31;
8974 l3:
8975 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 179057)))), &_td_OOC_SymbolTable__QualTypeDesc, 179057)), 179066))+72);
8976 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 179075))+56);
8977 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 179084))+40);
8978 params = (OOC_SymbolTable__TypeVarArray)i3;
8979 i4 = (OOC_INT64)arguments;
8980 i5 = OOC_ARRAY_LENGTH((_check_pointer(i3, 179113)), 0);
8981 i6 = OOC_ARRAY_LENGTH((_check_pointer(i4, 179131)), 0);
8982 i5 = i5<i6;
8983 if (i5) goto l29;
8984 i5 = OOC_ARRAY_LENGTH((_check_pointer(i4, 179245)), 0);
8985 i6 = OOC_ARRAY_LENGTH((_check_pointer(i3, 179227)), 0);
8986 i5 = i6>i5;
8987 if (i5) goto l27;
8988 i = 0;
8989 i5 = OOC_ARRAY_LENGTH((_check_pointer(i3, 179339)), 0);
8990 i6 = 0<i5;
8991 if (!i6) goto l31;
8992 i6 = (OOC_INT64)&_td_OOC_SymbolTable__TypeRef;
8993 i7=0;
8994 l10_loop:
8995 i8 = _check_pointer(i4, 179370);
8996 i9 = OOC_ARRAY_LENGTH(i8, 0);
8997 i8 = (OOC_INT64)*(OOC_INT64*)(i8+(_check_index(i7, i9, OOC_UINT32, 179370))*8);
8998 i8 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i8, 179374)))), &_td_OOC_IR__TypeRefDesc);
8999 if (!i8) goto l21;
9000 i8 = _check_pointer(i4, 179417);
9001 i9 = OOC_ARRAY_LENGTH(i8, 0);
9002 i8 = (OOC_INT64)*(OOC_INT64*)(i8+(_check_index(i7, i9, OOC_UINT32, 179417))*8);
9003 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i8, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i8, 179421)))), &_td_OOC_IR__TypeRefDesc, 179421)), 179429))+24);
9004 t = (OOC_SymbolTable__Type)i8;
9005 i9 = i8!=(OOC_INT64)0;
9006 if (i9) goto l15;
9007 i9=0u;
9008 goto l17;
9009 l15:
9010 i9 = _check_pointer(i3, 179493);
9011 i10 = OOC_ARRAY_LENGTH(i9, 0);
9012 i9 = (OOC_INT64)*(OOC_INT64*)(i9+(_check_index(i7, i10, OOC_UINT32, 179493))*8);
9013 i9 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i9, 179496))+72);
9014 i9 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i8, (OOC_SymbolTable__Type)i9);
9015
9016 l17:
9017 if (i9) goto l19;
9018 i8 = _check_pointer(i4, 179650);
9019 i9 = OOC_ARRAY_LENGTH(i8, 0);
9020 i8 = (OOC_INT64)*(OOC_INT64*)(i8+(_check_index(i7, i9, OOC_UINT32, 179650))*8);
9021 i8 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i8, 179653));
9022 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 179612)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 72, (OOC_Scanner_SymList__Symbol)i8);
9023 goto l21;
9024 l19:
9025 i9 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 179552)))), &_td_OOC_SymbolTable__QualTypeDesc, 179552)), 179561))+88);
9026 i9 = OOC_ARRAY_LENGTH((_check_pointer(i9, 179571)), 0);
9027 i9 = _check_index(i7, i9, OOC_UINT32, 179571);
9028 i9 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 179552)))), &_td_OOC_SymbolTable__QualTypeDesc, 179552)), 179561))+88);
9029 i9 = _check_pointer(i9, 179571);
9030 i10 = OOC_ARRAY_LENGTH(i9, 0);
9031 OOC_SymbolTable__InitTypeRef((void*)(i9+((_check_index(i7, i10, OOC_UINT32, 179571))*16)), (RT0__Struct)i6, (OOC_SymbolTable__Type)i8);
9032 l21:
9033 i7 = i7+1;
9034 i = i7;
9035 i8 = i7<i5;
9036 if (i8) goto l10_loop;
9037 goto l31;
9038 l27:
9039 i2 = (OOC_INT64)rParen;
9040 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 179263)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 70, (OOC_Scanner_SymList__Symbol)i2);
9041 goto l31;
9042 l29:
9043 i2 = _check_pointer(i4, 179183);
9044 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 179194)), 0);
9045 i4 = OOC_ARRAY_LENGTH(i2, 0);
9046 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(i3, i4, OOC_UINT32, 179183))*8);
9047 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 179197));
9048 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 179149)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 71, (OOC_Scanner_SymList__Symbol)i2);
9049 l31:
9050 return (OOC_IR__Expression)i1;
9051 ;
9052 }
9053
OOC_IR__BuilderDesc_NewSelect(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression var,OOC_SymbolTable__Item context,OOC_Scanner_SymList__Symbol name)9054 OOC_IR__Expression OOC_IR__BuilderDesc_NewSelect(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression var, OOC_SymbolTable__Item context, OOC_Scanner_SymList__Symbol name) {
9055 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
9056 OOC_IR__Expression varRef;
9057 OOC_SymbolTable__Type type;
9058 OOC_SymbolTable__Name n;
9059 OOC_SymbolTable__Declaration decl;
9060 OOC_SymbolTable__ProcDecl procDecl;
9061
9062 i0 = (OOC_INT64)sym;
9063 i1 = (OOC_INT64)var;
9064 i2 = (OOC_INT64)b;
9065 OOC_IR__BuilderDesc_CheckFunctionOp((OOC_IR__Builder)i2, (OOC_IR__Expression)i1, (OOC_Scanner_SymList__Symbol)i0);
9066 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 180194))+8);
9067 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 180194))+8);
9068 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 180199)))), OOC_SymbolTable__TypeDesc_Bound)),OOC_SymbolTable__TypeDesc_Bound)((OOC_SymbolTable__Type)i4);
9069 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 180208)))), &_td_OOC_SymbolTable__PointerDesc);
9070 if (i3) goto l3;
9071 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 180238))+8);
9072 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 180238))+8);
9073 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 180243)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i4);
9074 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 180254)))), &_td_OOC_SymbolTable__PointerDesc);
9075
9076 goto l5;
9077 l3:
9078 i3=1u;
9079 l5:
9080 if (i3) goto l7;
9081 varRef = (OOC_IR__Expression)i1;
9082 i3=i1;
9083 goto l8;
9084 l7:
9085 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 180292)))), OOC_IR__BuilderDesc_NewDeref)),OOC_IR__BuilderDesc_NewDeref)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i1);
9086 varRef = (OOC_IR__Expression)i3;
9087
9088 l8:
9089 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 180373))+8);
9090 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 180373))+8);
9091 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180378)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i5);
9092 type = (OOC_SymbolTable__Type)i4;
9093 i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180402)))), &_td_OOC_SymbolTable__RecordDesc);
9094 if (i5) goto l11;
9095 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 181123));
9096 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 181097)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 20, (OOC_Scanner_SymList__Symbol)i0);
9097 return (OOC_IR__Expression)i0;
9098 goto l28;
9099 l11:
9100 i5 = (OOC_INT64)name;
9101 i6 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 180433)))), OOC_IR__BuilderDesc_GetName)),OOC_IR__BuilderDesc_GetName)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i5);
9102 n = (OOC_SymbolTable__Name)i6;
9103 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180472)))), &_td_OOC_SymbolTable__RecordDesc, 180472)), 180479))+96);
9104 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180472)))), &_td_OOC_SymbolTable__RecordDesc, 180472)), 180479))+96);
9105 i8 = (OOC_INT64)context;
9106 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 180482)))), OOC_SymbolTable__NamespaceDesc_Identify)),OOC_SymbolTable__NamespaceDesc_Identify)((OOC_SymbolTable__Namespace)i4, (OOC_SymbolTable__Item)i8, (OOC_SymbolTable__Name)i6, 0u);
9107 decl = (OOC_SymbolTable__Declaration)i4;
9108 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 180535))+40);
9109 OOC_SymbolTable_Uses__Mark((OOC_SymbolTable__Declaration)i4, (OOC_SymbolTable_Uses__Uses)i7, (OOC_SymbolTable__Name)i6);
9110 i6 = i4==(OOC_INT64)0;
9111 if (i6) goto l26;
9112 i6 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180645)))), &_td_OOC_SymbolTable__FieldDeclDesc);
9113 if (i6) goto l24;
9114 i6 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180761)))), &_td_OOC_SymbolTable__ProcDeclDesc);
9115 if (i6) goto l18;
9116 _assert(0u, 127, 181047);
9117 goto l28;
9118 l18:
9119 i4 = _type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180812)))), &_td_OOC_SymbolTable__ProcDeclDesc, 180812);
9120 procDecl = (OOC_SymbolTable__ProcDecl)i4;
9121 i6 = *(OOC_INT8*)((_check_pointer(i4, 180937))+88);
9122 i6 = i6==2;
9123 if (i6) goto l21;
9124 i6 = *(OOC_UINT8*)((_check_pointer(i4, 181012))+91);
9125
9126 goto l22;
9127 l21:
9128 i6=1u;
9129 l22:
9130 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 180872))+8);
9131 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewSelectProc((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i1, (OOC_SymbolTable__Type)i3, (OOC_SymbolTable__ProcDecl)i4, (OOC_Scanner_SymList__Symbol)i5, i6);
9132 return (OOC_IR__Expression)i0;
9133 goto l28;
9134 l24:
9135 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewSelectField((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i3, (OOC_SymbolTable__FieldDecl)(_type_guard(i4, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 180724)))), &_td_OOC_SymbolTable__FieldDeclDesc, 180724)), (OOC_Scanner_SymList__Symbol)i5);
9136 return (OOC_IR__Expression)i0;
9137 goto l28;
9138 l26:
9139 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 180594)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 1, (OOC_Scanner_SymList__Symbol)i5);
9140 return (OOC_IR__Expression)i0;
9141 l28:
9142 _failed_function(179839); return 0;
9143 ;
9144 }
9145
OOC_IR__BuilderDesc_NewOperator(OOC_IR__Builder b,OOC_Scanner_SymList__Symbol sym,OOC_IR__Expression left,OOC_IR__Expression right)9146 OOC_IR__Expression OOC_IR__BuilderDesc_NewOperator(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression left, OOC_IR__Expression right) {
9147 register OOC_INT64 i0;
9148 OOC_INT8 id;
9149 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewOperator_IsPredefClass(OOC_SymbolTable__Type type, OOC_UINT32 classes);
9150 auto OOC_IR__Expression OOC_IR__BuilderDesc_NewOperator_UnaryOperator(void);
9151 auto OOC_IR__Expression OOC_IR__BuilderDesc_NewOperator_BinaryOperator(void);
9152
9153 OOC_CHAR8 OOC_IR__BuilderDesc_NewOperator_IsPredefClass(OOC_SymbolTable__Type type, OOC_UINT32 classes) {
9154 register OOC_INT64 i0,i1;
9155
9156 i0 = (OOC_INT64)type;
9157 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 182021)))), &_td_OOC_SymbolTable__PredefTypeDesc);
9158 if (i1) goto l3;
9159 return 0u;
9160 goto l4;
9161 l3:
9162 i0 = *(OOC_INT16*)((_check_pointer(i0, 182058))+72);
9163 i1 = classes;
9164 return (_in(i0,i1));
9165 l4:
9166 _failed_function(181942); return 0;
9167 ;
9168 }
9169
9170
9171 OOC_IR__Expression OOC_IR__BuilderDesc_NewOperator_UnaryOperator(void) {
9172 register OOC_INT64 i0,i1,i2,i3,i4,i5;
9173 OOC_SymbolTable__Type type;
9174 OOC_CHAR8 isNumeric;
9175 OOC_CHAR8 isSet;
9176 OOC_CHAR8 isBoolean;
9177
9178 i0 = (OOC_INT64)b;
9179 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 182271))+48);
9180 i2 = (OOC_INT64)left;
9181 i1 = i2==i1;
9182 if (i1) goto l3;
9183 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 182296))+48);
9184 i2 = (OOC_INT64)right;
9185 i1 = i2==i1;
9186
9187 goto l5;
9188 l3:
9189 i1=1u;
9190 l5:
9191 if (i1) goto l28;
9192 i1 = (OOC_INT64)right;
9193 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 182546))+8);
9194 type = (OOC_SymbolTable__Type)i2;
9195 i3 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i2);
9196 isNumeric = i3;
9197 i4 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i2);
9198 isSet = i4;
9199 i2 = OOC_IR__BuilderDesc_NewOperator_IsPredefClass((OOC_SymbolTable__Type)i2, 1u);
9200 isBoolean = i2;
9201 i5 = id;
9202 switch (i5) {
9203 case 7:
9204 if (i3) goto l14;
9205 if (i4) goto l12;
9206 i1 = (OOC_INT64)sym;
9207 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 182968)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 5, (OOC_Scanner_SymList__Symbol)i1);
9208 return (OOC_IR__Expression)i0;
9209 goto l29;
9210 l12:
9211 i2 = (OOC_INT64)sym;
9212 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewNegate((OOC_IR__Builder)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
9213 return (OOC_IR__Expression)i0;
9214 goto l29;
9215 l14:
9216 i2 = (OOC_INT64)sym;
9217 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewNegate((OOC_IR__Builder)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
9218 return (OOC_IR__Expression)i0;
9219 goto l29;
9220 case 6:
9221 if (i3) goto l19;
9222 i1 = (OOC_INT64)sym;
9223 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 183109)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 5, (OOC_Scanner_SymList__Symbol)i1);
9224 return (OOC_IR__Expression)i0;
9225 goto l29;
9226 l19:
9227 return (OOC_IR__Expression)i1;
9228 goto l29;
9229 case 35:
9230 if (i2) goto l24;
9231 i1 = (OOC_INT64)sym;
9232 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 183263)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 5, (OOC_Scanner_SymList__Symbol)i1);
9233 return (OOC_IR__Expression)i0;
9234 goto l29;
9235 l24:
9236 i2 = (OOC_INT64)sym;
9237 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewNot((OOC_IR__Builder)i0, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1);
9238 return (OOC_IR__Expression)i0;
9239 goto l29;
9240 default:
9241 i1 = (OOC_INT64)sym;
9242 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 183332)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i1);
9243 return (OOC_IR__Expression)i0;
9244 goto l29;
9245 }
9246 l28:
9247 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 182506))+48);
9248 return (OOC_IR__Expression)i0;
9249 l29:
9250 _failed_function(182146); return 0;
9251 ;
9252 }
9253
9254
9255 OOC_IR__Expression OOC_IR__BuilderDesc_NewOperator_BinaryOperator(void) {
9256 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
9257 OOC_SymbolTable__Type nil;
9258 OOC_SymbolTable__Type real;
9259 OOC_IR__Expression result;
9260 OOC_SymbolTable__Type leftType;
9261 OOC_SymbolTable__Type rightType;
9262 OOC_CHAR8 isNumeric;
9263 OOC_CHAR8 isInteger;
9264 OOC_CHAR8 isSet;
9265 OOC_CHAR8 isBoolean;
9266 OOC_CHAR8 isChar;
9267 OOC_INT8 variant;
9268 OOC_IR__ExpressionList exprList;
9269 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewOperator_BinaryOperator_IsString(OOC_SymbolTable__Type type);
9270
9271 OOC_CHAR8 OOC_IR__BuilderDesc_NewOperator_BinaryOperator_IsString(OOC_SymbolTable__Type type) {
9272 register OOC_INT64 i0,i1;
9273
9274 i0 = (OOC_INT64)type;
9275 i1 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i0);
9276 if (i1) goto l7;
9277 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 183764)))), &_td_OOC_SymbolTable__ArrayDesc);
9278 if (i1) goto l5;
9279 i0=0u;
9280 goto l8;
9281 l5:
9282 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 183804)))), &_td_OOC_SymbolTable__ArrayDesc, 183804)), 183810))+80);
9283 i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
9284
9285 goto l8;
9286 l7:
9287 i0=1u;
9288 l8:
9289 return i0;
9290 ;
9291 }
9292
9293
9294 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(16);
9295 nil = (OOC_SymbolTable__Type)i0;
9296 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(8);
9297 real = (OOC_SymbolTable__Type)i1;
9298 result = (OOC_IR__Expression)(OOC_INT64)0;
9299 i2 = (OOC_INT64)b;
9300 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 184033))+48);
9301 i4 = (OOC_INT64)left;
9302 i3 = i4==i3;
9303 if (i3) goto l3;
9304 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 184058))+48);
9305 i5 = (OOC_INT64)right;
9306 i3 = i5==i3;
9307
9308 goto l5;
9309 l3:
9310 i3=1u;
9311 l5:
9312 if (i3) goto l168;
9313 i3 = id;
9314 i5 = i3==15;
9315 if (i5) goto l9;
9316 i5=0u;
9317 goto l11;
9318 l9:
9319 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 184336))+8);
9320 i5 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i5);
9321
9322 l11:
9323 if (i5) goto l13;
9324 i5=0u;
9325 goto l15;
9326 l13:
9327 i5 = (OOC_INT64)right;
9328 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 184370))+8);
9329 i5 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i5);
9330
9331 l15:
9332 if (i5) goto l166;
9333 i3 = i3==16;
9334 if (i3) goto l164;
9335 i2 = OOC_IR__BuilderDesc_WidenToCommon((OOC_IR__Builder)i2, (void*)(OOC_INT64)&left, (void*)(OOC_INT64)&right);
9336 if (i2) goto l33;
9337 i0 = (OOC_INT64)left;
9338 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 187448))+8);
9339 i1 = OOC_IR__BuilderDesc_NewOperator_BinaryOperator_IsString((OOC_SymbolTable__Type)i1);
9340 if (i1) goto l23;
9341 i1=0u;
9342 goto l25;
9343 l23:
9344 i1 = (OOC_INT64)right;
9345 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 187471))+8);
9346 i1 = OOC_IR__BuilderDesc_NewOperator_BinaryOperator_IsString((OOC_SymbolTable__Type)i1);
9347
9348 l25:
9349 if (i1) goto l27;
9350 i0 = (OOC_INT64)b;
9351 i1 = (OOC_INT64)sym;
9352 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 187702)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 7, (OOC_Scanner_SymList__Symbol)i1);
9353
9354 goto l169;
9355 l27:
9356 i1 = id;
9357 i1 = _in(i1,32256u);
9358 if (i1) goto l30;
9359 i0 = (OOC_INT64)b;
9360 i1 = (OOC_INT64)sym;
9361 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 187635)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 5, (OOC_Scanner_SymList__Symbol)i1);
9362
9363 goto l169;
9364 l30:
9365 i1 = (OOC_INT64)right;
9366 i2 = (OOC_INT64)sym;
9367 i3 = (OOC_INT64)b;
9368 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewCompare((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1);
9369
9370 goto l169;
9371 l33:
9372 i2 = (OOC_INT64)left;
9373 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 184575))+8);
9374 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 184575))+8);
9375 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 184580)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
9376 leftType = (OOC_SymbolTable__Type)i2;
9377 i3 = (OOC_INT64)right;
9378 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 184610))+8);
9379 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 184610))+8);
9380 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 184615)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i3);
9381 rightType = (OOC_SymbolTable__Type)i3;
9382 i3 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i2);
9383 isNumeric = i3;
9384 i4 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i2);
9385 isInteger = i4;
9386 i5 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i2);
9387 isSet = i5;
9388 i6 = OOC_IR__BuilderDesc_NewOperator_IsPredefClass((OOC_SymbolTable__Type)i2, 1u);
9389 isBoolean = i6;
9390 i7 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i2);
9391 isChar = i7;
9392 i8 = id;
9393 i9 = _in(i8,194u);
9394 if (i9) goto l36;
9395 i9=0u;
9396 goto l38;
9397 l36:
9398 i9=i3;
9399 l38:
9400 if (i9) goto l156;
9401 i9 = _in(i8,4u);
9402 if (i9) goto l42;
9403 i9=0u;
9404 goto l44;
9405 l42:
9406 i9=i3;
9407 l44:
9408 if (i9) goto l152;
9409 i1 = _in(i8,24u);
9410 if (i1) goto l48;
9411 i1=0u;
9412 goto l50;
9413 l48:
9414 i1=i4;
9415 l50:
9416 if (i1) goto l146;
9417 i1 = _in(i8,198u);
9418 if (i1) goto l54;
9419 i1=0u;
9420 goto l56;
9421 l54:
9422 i1=i5;
9423 l56:
9424 if (i1) goto l138;
9425 i1 = _in(i8,288u);
9426 if (i1) goto l60;
9427 i1=0u;
9428 goto l62;
9429 l60:
9430 i1=i6;
9431 l62:
9432 if (i1) goto l132;
9433 i1 = _in(i8,32256u);
9434 if (i1) goto l66;
9435 i4=0u;
9436 goto l68;
9437 l66:
9438 i4 = (OOC_INT64)left;
9439 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 186502))+8);
9440 i4 = OOC_IR__BuilderDesc_NewOperator_BinaryOperator_IsString((OOC_SymbolTable__Type)i4);
9441
9442 l68:
9443 if (i4) goto l70;
9444 i4=0u;
9445 goto l72;
9446 l70:
9447 i4 = (OOC_INT64)right;
9448 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 186525))+8);
9449 i4 = OOC_IR__BuilderDesc_NewOperator_BinaryOperator_IsString((OOC_SymbolTable__Type)i4);
9450
9451 l72:
9452 if (i4) goto l130;
9453 i4 = i8==6;
9454 if (i4) goto l76;
9455 i4=0u;
9456 goto l85;
9457 l76:
9458 if (i7) goto l78;
9459 i4 = (OOC_INT64)left;
9460 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 186675))+8);
9461 i4 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i4);
9462
9463 goto l80;
9464 l78:
9465 i4=1u;
9466 l80:
9467 if (i4) goto l82;
9468 i4 = (OOC_INT64)left;
9469 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 186714))+8);
9470 i4 = OOC_SymbolTable_TypeRules__IsSTRING((OOC_SymbolTable__Type)i4);
9471
9472 goto l85;
9473 l82:
9474 i4=1u;
9475 l85:
9476 if (i4) goto l128;
9477 if (i1) goto l88;
9478 i1=0u;
9479 goto l93;
9480 l88:
9481 if (i3) goto l90;
9482 i1=i7;
9483 goto l93;
9484 l90:
9485 i1=1u;
9486 l93:
9487 if (i1) goto l126;
9488 i1 = _in(i8,1536u);
9489 if (i1) goto l97;
9490 i0=0u;
9491 goto l122;
9492 l97:
9493 if (i6) goto l99;
9494 i1=i5;
9495 goto l101;
9496 l99:
9497 i1=1u;
9498 l101:
9499 if (i1) goto l103;
9500 i1 = i2==i0;
9501
9502 goto l105;
9503 l103:
9504 i1=1u;
9505 l105:
9506 if (i1) goto l107;
9507 i1 = (OOC_INT64)right;
9508 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 187143))+8);
9509 i0 = i1==i0;
9510
9511 goto l109;
9512 l107:
9513 i0=1u;
9514 l109:
9515 if (i0) goto l111;
9516 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 187184)))), &_td_OOC_SymbolTable__PointerDesc);
9517
9518 goto l113;
9519 l111:
9520 i0=1u;
9521 l113:
9522 if (i0) goto l115;
9523 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 187228)))), &_td_OOC_SymbolTable__TypeVarDesc);
9524
9525 goto l117;
9526 l115:
9527 i0=1u;
9528 l117:
9529 if (i0) goto l119;
9530 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 187272)))), &_td_OOC_SymbolTable__FormalParsDesc);
9531
9532 goto l122;
9533 l119:
9534 i0=1u;
9535 l122:
9536 if (i0) goto l124;
9537 i0 = (OOC_INT64)b;
9538 i1 = (OOC_INT64)sym;
9539 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 187377)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i0, 5, (OOC_Scanner_SymList__Symbol)i1);
9540
9541 goto l169;
9542 l124:
9543 i0 = (OOC_INT64)right;
9544 i1 = (OOC_INT64)left;
9545 i2 = (OOC_INT64)sym;
9546 i3 = (OOC_INT64)b;
9547 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewCompare((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
9548
9549 goto l169;
9550 l126:
9551 i0 = (OOC_INT64)right;
9552 i1 = (OOC_INT64)left;
9553 i2 = (OOC_INT64)sym;
9554 i3 = (OOC_INT64)b;
9555 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewCompare((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
9556
9557 goto l169;
9558 l128:
9559 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ExpressionList.baseTypes[0], 2);
9560 exprList = (OOC_IR__ExpressionList)i0;
9561 i1 = _check_pointer(i0, 186769);
9562 i2 = OOC_ARRAY_LENGTH(i1, 0);
9563 i3 = (OOC_INT64)left;
9564 *(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 186769))*8) = i3;
9565 i1 = _check_pointer(i0, 186798);
9566 i2 = OOC_ARRAY_LENGTH(i1, 0);
9567 i3 = (OOC_INT64)right;
9568 *(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 186798))*8) = i3;
9569 i1 = (OOC_INT64)sym;
9570 i2 = (OOC_INT64)b;
9571 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewConcat((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__ExpressionList)i0);
9572
9573 goto l169;
9574 l130:
9575 i0 = (OOC_INT64)right;
9576 i1 = (OOC_INT64)left;
9577 i2 = (OOC_INT64)sym;
9578 i3 = (OOC_INT64)b;
9579 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewCompare((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
9580
9581 goto l169;
9582 l132:
9583 switch (i8) {
9584 case 5:
9585 variant = 20;
9586 goto l136;
9587 case 8:
9588 variant = 21;
9589 goto l136;
9590 default:
9591 _failed_case(i8, 186245);
9592 goto l136;
9593 }
9594 l136:
9595 i0 = variant;
9596 i1 = (OOC_INT64)right;
9597 i2 = (OOC_INT64)left;
9598 i3 = (OOC_INT64)sym;
9599 i4 = (OOC_INT64)b;
9600 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewBooleanOp((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i3, i0, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
9601
9602 goto l169;
9603 l138:
9604 switch (i8) {
9605 case 6:
9606 variant = 6;
9607 goto l144;
9608 case 7:
9609 variant = 7;
9610 goto l144;
9611 case 1:
9612 variant = 8;
9613 goto l144;
9614 case 2:
9615 variant = 9;
9616 goto l144;
9617 default:
9618 _failed_case(i8, 185930);
9619 goto l144;
9620 }
9621 l144:
9622 i0 = (OOC_INT64)b;
9623 i1 = variant;
9624 i2 = (OOC_INT64)right;
9625 i3 = (OOC_INT64)left;
9626 i4 = (OOC_INT64)sym;
9627 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 186137)))), OOC_IR__BuilderDesc_NewSetOp)),OOC_IR__BuilderDesc_NewSetOp)((OOC_IR__Builder)i0, (OOC_Scanner_SymList__Symbol)i4, i1, (OOC_IR__Expression)i3, (OOC_IR__Expression)i2);
9628 return (OOC_IR__Expression)i0;
9629 i0=(OOC_INT64)0;
9630 goto l169;
9631 l146:
9632 switch (i8) {
9633 case 3:
9634 variant = 2;
9635 goto l150;
9636 case 4:
9637 variant = 5;
9638 goto l150;
9639 default:
9640 _failed_case(i8, 185634);
9641 goto l150;
9642 }
9643 l150:
9644 i0 = variant;
9645 i1 = (OOC_INT64)right;
9646 i2 = (OOC_INT64)left;
9647 i3 = (OOC_INT64)sym;
9648 i4 = (OOC_INT64)b;
9649 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewBinaryArith((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i3, i0, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
9650
9651 goto l169;
9652 l152:
9653 if (!i4) goto l154;
9654 i0 = (OOC_INT64)b;
9655 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i0, (void*)(OOC_INT64)&left, (OOC_SymbolTable__Type)i1);
9656 i0 = (OOC_INT64)b;
9657 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i0, (void*)(OOC_INT64)&right, (OOC_SymbolTable__Type)i1);
9658 l154:
9659 i0 = (OOC_INT64)right;
9660 i1 = (OOC_INT64)left;
9661 i2 = (OOC_INT64)sym;
9662 i3 = (OOC_INT64)b;
9663 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewBinaryArith((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, 3, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
9664
9665 goto l169;
9666 l156:
9667 switch (i8) {
9668 case 6:
9669 variant = 0;
9670 goto l161;
9671 case 7:
9672 variant = 1;
9673 goto l161;
9674 case 1:
9675 variant = 4;
9676 goto l161;
9677 default:
9678 _failed_case(i8, 184993);
9679 goto l161;
9680 }
9681 l161:
9682 i0 = variant;
9683 i1 = (OOC_INT64)right;
9684 i2 = (OOC_INT64)left;
9685 i3 = (OOC_INT64)sym;
9686 i4 = (OOC_INT64)b;
9687 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewBinaryArith((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i3, i0, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
9688
9689 goto l169;
9690 l164:
9691 i0 = (OOC_INT64)right;
9692 i1 = (OOC_INT64)sym;
9693 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 184477)))), OOC_IR__BuilderDesc_NewTypeTest)),OOC_IR__BuilderDesc_NewTypeTest)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i4, (OOC_IR__Expression)i0);
9694
9695 goto l169;
9696 l166:
9697 i0 = (OOC_INT64)right;
9698 i1 = (OOC_INT64)sym;
9699 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 184399)))), OOC_IR__BuilderDesc_NewSetMember)),OOC_IR__BuilderDesc_NewSetMember)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i4, (OOC_IR__Expression)i0);
9700
9701 goto l169;
9702 l168:
9703 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 184278))+48);
9704
9705 l169:
9706 return (OOC_IR__Expression)i0;
9707 ;
9708 }
9709
9710
9711 i0 = (OOC_INT64)sym;
9712 i0 = *(OOC_INT8*)((_check_pointer(i0, 187808))+8);
9713 id = i0;
9714 i0 = (OOC_INT64)left;
9715 i0 = i0==(OOC_INT64)0;
9716 if (i0) goto l3;
9717 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewOperator_BinaryOperator();
9718 return (OOC_IR__Expression)i0;
9719 goto l4;
9720 l3:
9721 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewOperator_UnaryOperator();
9722 return (OOC_IR__Expression)i0;
9723 l4:
9724 _failed_function(181179); return 0;
9725 ;
9726 }
9727
OOC_IR__BuilderDesc_NewCall(OOC_IR__Builder b,OOC_IR__Expression design,OOC_IR__ExpressionList arguments,OOC_CHAR8 isFunctionCall,OOC_SymbolTable__Item context,OOC_Scanner_SymList__Symbol endOfArgsSym)9728 OOC_IR__Expression OOC_IR__BuilderDesc_NewCall(OOC_IR__Builder b, OOC_IR__Expression design, OOC_IR__ExpressionList arguments, OOC_CHAR8 isFunctionCall, OOC_SymbolTable__Item context, OOC_Scanner_SymList__Symbol endOfArgsSym) {
9729 register OOC_INT64 i0,i1,i2,i3,i4;
9730 OOC_SymbolTable__PredefProc predefProc;
9731 OOC_IR__Expression expr;
9732 OOC_SymbolTable__Type type;
9733 OOC_IR__Call call;
9734 OOC_IR__Expression receiver;
9735 OOC_SymbolTable__VarDeclArray formalPars;
9736 OOC_INT16 targetType;
9737 OOC_INT32 dim;
9738 OOC_INT32 dummy;
9739 OOC_INT8 op;
9740 OOC_IR__Expression delta;
9741 OOC_IR__Expression code;
9742 Object_Boxed__Object value;
9743 auto void OOC_IR__BuilderDesc_NewCall_MakeParameterCompatible(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression *arg, OOC_SymbolTable__VarDecl fpar, OOC_SymbolTable__Type fparType);
9744 auto void OOC_IR__BuilderDesc_NewCall_TransformArgs(OOC_Scanner_SymList__Symbol sym, OOC_Scanner_SymList__Symbol endOfArgsSym, OOC_SymbolTable__Type formalParsClosure, OOC_IR__Expression receiver, OOC_IR__ExpressionList *arguments, OOC_SymbolTable__VarDeclArray *argFormalPars);
9745 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewCall_CheckNumberOfArguments(OOC_INT32 min, OOC_INT32 max);
9746 auto OOC_IR__Expression OOC_IR__BuilderDesc_NewCall_TranslatePredef(OOC_IR__PredefProc design, OOC_INT16 id);
9747 auto OOC_CHAR8 OOC_IR__BuilderDesc_NewCall_IsStatement(OOC_IR__Expression expr);
9748
9749 void OOC_IR__BuilderDesc_NewCall_MakeParameterCompatible(OOC_IR__Builder b, OOC_Scanner_SymList__Symbol sym, OOC_IR__Expression *arg, OOC_SymbolTable__VarDecl fpar, OOC_SymbolTable__Type fparType) {
9750 register OOC_INT64 i0,i1,i2,i3;
9751 OOC_SymbolTable__Type argType;
9752 OOC_CHAR8 ok;
9753
9754 i0 = (OOC_INT64)*arg;
9755 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 188991))+8);
9756 argType = (OOC_SymbolTable__Type)i0;
9757 i1 = (OOC_INT64)fpar;
9758 i2 = *(OOC_UINT8*)((_check_pointer(i1, 189012))+105);
9759 if (!i2) goto l4;
9760 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 189055)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
9761 argType = (OOC_SymbolTable__Type)i0;
9762 i2 = (OOC_INT64)fparType;
9763 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 189095)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
9764 fparType = (OOC_SymbolTable__Type)i2;
9765
9766 l4:
9767 i2 = *(OOC_UINT8*)((_check_pointer(i1, 189138))+111);
9768 if (i2) goto l7;
9769 i2=0u;
9770 goto l9;
9771 l7:
9772 i2 = OOC_SymbolTable_TypeRules__IsPredefType((OOC_SymbolTable__Type)i0, 16);
9773
9774 l9:
9775 if (i2) goto l87;
9776 i2 = *(OOC_UINT8*)((_check_pointer(i1, 189344))+107);
9777 if (i2) goto l36;
9778 i2 = (OOC_INT64)fparType;
9779 i3 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i2);
9780 if (i3) goto l23;
9781 i1 = *(OOC_UINT8*)((_check_pointer(i1, 191668))+105);
9782 if (i1) goto l17;
9783 i0=0u;
9784 goto l19;
9785 l17:
9786 i0 = OOC_SymbolTable_TypeRules__IsExtensionOfNoParams((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i2);
9787
9788 l19:
9789 if (i0) goto l21;
9790 i0 = (OOC_INT64)b;
9791 i0 = OOC_IR__BuilderDesc_WidenForAssign((OOC_IR__Builder)i0, (void*)(OOC_INT64)arg, (OOC_SymbolTable__Type)i2);
9792 ok = i0;
9793
9794 goto l32;
9795 l21:
9796 ok = 1u;
9797 i0=1u;
9798 goto l32;
9799 l23:
9800 i0 = OOC_SymbolTable_TypeRules__IsArrayCompatible((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i2);
9801 if (i0) goto l26;
9802 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 191547)))), &_td_OOC_SymbolTable__ArrayDesc, 191547)), 191553))+80);
9803 i0 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i0, 11);
9804
9805 goto l28;
9806 l26:
9807 i0=1u;
9808 l28:
9809 if (i0) goto l30;
9810 i0 = (OOC_INT64)b;
9811 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i0, (void*)(OOC_INT64)arg, (OOC_SymbolTable__Type)i2);
9812
9813 goto l31;
9814 l30:
9815 i0=1u;
9816 l31:
9817 ok = i0;
9818
9819 l32:
9820 i0 = !i0;
9821 if (!i0) goto l87;
9822 i0 = (OOC_INT64)*arg;
9823 i1 = (OOC_INT64)b;
9824 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 192066));
9825 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 192030)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 12, (OOC_Scanner_SymList__Symbol)i0);
9826 OOC_IR__BuilderDesc_SetNameToType((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i2);
9827 goto l87;
9828 l36:
9829 i2 = (OOC_INT64)*arg;
9830 i3 = (OOC_INT64)b;
9831 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i3, (OOC_IR__Expression)i2);
9832 i1 = *(OOC_UINT8*)((_check_pointer(i1, 189438))+105);
9833 if (i1) goto l39;
9834 i1=0u;
9835 goto l41;
9836 l39:
9837 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 189461)))), &_td_OOC_SymbolTable__PointerDesc);
9838
9839 l41:
9840 if (!i1) goto l44;
9841 i0 = (OOC_INT64)*arg;
9842 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 189586));
9843 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 189572)))), OOC_IR__BuilderDesc_NewDeref)),OOC_IR__BuilderDesc_NewDeref)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
9844 *arg = (OOC_IR__Expression)i0;
9845 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 189622))+8);
9846 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 189622))+8);
9847 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 189627)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
9848 argType = (OOC_SymbolTable__Type)i0;
9849
9850 l44:
9851 i1 = (OOC_INT64)fparType;
9852 i2 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
9853 if (i2) goto l51;
9854 i2 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i1, 11);
9855 if (i2) goto l49;
9856 i2=0u;
9857 goto l53;
9858 l49:
9859 i2 = OOC_SymbolTable_TypeRules__IsByteCompatible((OOC_SymbolTable__Type)i0);
9860
9861 goto l53;
9862 l51:
9863 i2=1u;
9864 l53:
9865 if (i2) goto l59;
9866 i2 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i1, 12);
9867 if (i2) goto l57;
9868 i2=0u;
9869 goto l61;
9870 l57:
9871 i2 = OOC_SymbolTable_TypeRules__IsPtrCompatible((OOC_SymbolTable__Type)i0);
9872
9873 goto l61;
9874 l59:
9875 i2=1u;
9876 l61:
9877 if (i2) goto l67;
9878 i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i1);
9879 if (i2) goto l65;
9880 i2=0u;
9881 goto l69;
9882 l65:
9883 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 189980)))), &_td_OOC_SymbolTable__ArrayDesc, 189980)), 189986))+80);
9884 i2 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i2, 11);
9885
9886 goto l69;
9887 l67:
9888 i2=1u;
9889 l69:
9890 if (i2) goto l87;
9891 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 190252)))), &_td_OOC_SymbolTable__RecordDesc);
9892 if (i2) goto l80;
9893 i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i1);
9894 if (i2) goto l75;
9895 i0 = (OOC_INT64)*arg;
9896 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 191008));
9897 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 190974)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 40, (OOC_Scanner_SymList__Symbol)i0);
9898 OOC_IR__BuilderDesc_SetNameToType((OOC_IR__Builder)i3, (OOC_SymbolTable__Type)i1);
9899 goto l87;
9900 l75:
9901 i0 = OOC_SymbolTable_TypeRules__IsArrayCompatible((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
9902 i0 = !i0;
9903 if (!i0) goto l87;
9904 i0 = (OOC_INT64)*arg;
9905 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 190839));
9906 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 190805)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 40, (OOC_Scanner_SymList__Symbol)i0);
9907 OOC_IR__BuilderDesc_SetNameToType((OOC_IR__Builder)i3, (OOC_SymbolTable__Type)i1);
9908 goto l87;
9909 l80:
9910 i0 = OOC_SymbolTable_TypeRules__IsExtensionOfNoParams((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
9911 i0 = !i0;
9912 if (!i0) goto l87;
9913 i0 = (OOC_INT64)*arg;
9914 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 190504));
9915 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 190470)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 40, (OOC_Scanner_SymList__Symbol)i0);
9916 OOC_IR__BuilderDesc_SetNameToType((OOC_IR__Builder)i3, (OOC_SymbolTable__Type)i1);
9917 l87:
9918 return;
9919 ;
9920 }
9921
9922
9923 void OOC_IR__BuilderDesc_NewCall_TransformArgs(OOC_Scanner_SymList__Symbol sym, OOC_Scanner_SymList__Symbol endOfArgsSym, OOC_SymbolTable__Type formalParsClosure, OOC_IR__Expression receiver, OOC_IR__ExpressionList *arguments, OOC_SymbolTable__VarDeclArray *argFormalPars) {
9924 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
9925 ADT_ArrayList__ArrayList newArgs;
9926 ADT_ArrayList__ArrayList newFPars;
9927 OOC_INT32 argIndex;
9928 OOC_INT32 fparIndex;
9929 OOC_SymbolTable__Type fparType;
9930 OOC_SymbolTable__FormalPars formalPars;
9931 OOC_SymbolTable__VarDecl fpar;
9932 OOC_IR__Expression arg;
9933 OOC_SymbolTable__Type argType;
9934 OOC_INT32 i;
9935 auto OOC_INT32 OOC_IR__BuilderDesc_NewCall_TransformArgs_Dimensions(OOC_SymbolTable__Type type);
9936
9937 OOC_INT32 OOC_IR__BuilderDesc_NewCall_TransformArgs_Dimensions(OOC_SymbolTable__Type type) {
9938 register OOC_INT64 i0,i1;
9939
9940 i0 = (OOC_INT64)type;
9941 i1 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i0);
9942 if (i1) goto l7;
9943 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 193238)))), &_td_OOC_SymbolTable__ArrayDesc);
9944 if (i1) goto l5;
9945 return 0;
9946 goto l8;
9947 l5:
9948 i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 193283)))), &_td_OOC_SymbolTable__ArrayDesc, 193283)), 193289)))), OOC_SymbolTable__TypeDesc_ArrayDimensions)),OOC_SymbolTable__TypeDesc_ArrayDimensions)((OOC_SymbolTable__Type)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 193283)))), &_td_OOC_SymbolTable__ArrayDesc, 193283)));
9949 return i0;
9950 goto l8;
9951 l7:
9952 return 1;
9953 l8:
9954 _failed_function(193108); return 0;
9955 ;
9956 }
9957
9958
9959 i0 = (OOC_INT64)*arguments;
9960 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 193439)), 0);
9961 i1 = (OOC_INT64)ADT_ArrayList__New(i1);
9962 newArgs = (ADT_ArrayList__ArrayList)i1;
9963 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 193491)), 0);
9964 i1 = (OOC_INT64)ADT_ArrayList__New(i1);
9965 newFPars = (ADT_ArrayList__ArrayList)i1;
9966 i1 = (OOC_INT64)receiver;
9967 i1 = i1!=(OOC_INT64)0;
9968 if (i1) goto l3;
9969 argIndex = 0;
9970 fparIndex = 0;
9971 i1=0;i2=0;
9972 goto l4;
9973 l3:
9974 argIndex = (-1);
9975 fparIndex = (-1);
9976 i1=(-1);i2=(-1);
9977 l4:
9978 i3 = (OOC_INT64)formalParsClosure;
9979 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 193695)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i3);
9980 fparType = (OOC_SymbolTable__Type)i3;
9981 i3 = _type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 193740)))), &_td_OOC_SymbolTable__FormalParsDesc, 193740);
9982 formalPars = (OOC_SymbolTable__FormalPars)i3;
9983 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 193793))+96);
9984 i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 193801)), 0);
9985 i3 = i1!=i3;
9986 if (i3) goto l7;
9987 i0=0u;
9988 goto l9;
9989 l7:
9990 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 193845)), 0);
9991 i0 = i2!=i0;
9992
9993 l9:
9994 if (i0) goto l11;
9995 i0=i2;
9996 goto l61;
9997 l11:
9998 i0=i2;
9999 l12_loop:
10000 i2 = i0==(-1);
10001 if (i2) goto l15;
10002 i2 = (OOC_INT64)formalPars;
10003 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 193992))+96);
10004 i2 = _check_pointer(i2, 194000);
10005 i3 = OOC_ARRAY_LENGTH(i2, 0);
10006 i1 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(i1, i3, OOC_UINT32, 194000))*8);
10007 fpar = (OOC_SymbolTable__VarDecl)i1;
10008 i2 = (OOC_INT64)*arguments;
10009 i2 = _check_pointer(i2, 194039);
10010 i3 = OOC_ARRAY_LENGTH(i2, 0);
10011 i0 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(i0, i3, OOC_UINT32, 194039))*8);
10012 arg = (OOC_IR__Expression)i0;
10013 i0=i1;
10014 goto l16;
10015 l15:
10016 i0 = (OOC_INT64)formalPars;
10017 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 193912))+72);
10018 fpar = (OOC_SymbolTable__VarDecl)i0;
10019 i1 = (OOC_INT64)receiver;
10020 arg = (OOC_IR__Expression)i1;
10021
10022 l16:
10023 i1 = (OOC_INT64)formalParsClosure;
10024 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 194184))+88);
10025 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 194171)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i2);
10026 i2 = (OOC_INT64)arg;
10027 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 194103));
10028 i3 = (OOC_INT64)b;
10029 OOC_IR__BuilderDesc_NewCall_MakeParameterCompatible((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (void*)(OOC_INT64)&arg, (OOC_SymbolTable__VarDecl)i0, (OOC_SymbolTable__Type)i1);
10030 i1 = *(OOC_UINT8*)((_check_pointer(i0, 194217))+108);
10031 if (i1) goto l19;
10032 i1=0u;
10033 goto l21;
10034 l19:
10035 i1 = (OOC_INT64)arg;
10036 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 194270))+8);
10037 i1 = OOC_SymbolTable_TypeRules__IsPredefType((OOC_SymbolTable__Type)i1, 16);
10038 i1 = !i1;
10039
10040 l21:
10041 if (i1) goto l23;
10042 i1 = (OOC_INT64)newArgs;
10043 i2 = (OOC_INT64)arg;
10044 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 194625)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i1, (Object__Object)i2);
10045 goto l24;
10046 l23:
10047 i1 = (OOC_INT64)b;
10048 i2 = (OOC_INT64)arg;
10049 i3 = (OOC_INT64)sym;
10050 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 194573)))), OOC_IR__BuilderDesc_NewAdr)),OOC_IR__BuilderDesc_NewAdr)((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i2);
10051 i2 = (OOC_INT64)newArgs;
10052 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 194562)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i2, (Object__Object)i1);
10053 l24:
10054 i1 = (OOC_INT64)newFPars;
10055 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 194670)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i1, (Object__Object)i0);
10056 i2 = *(OOC_UINT8*)((_check_pointer(i0, 194703))+112);
10057 if (!i2) goto l52;
10058 i2 = (OOC_INT64)arg;
10059 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 194749))+8);
10060 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 194749))+8);
10061 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 194754)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i2);
10062 argType = (OOC_SymbolTable__Type)i2;
10063 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 194792))+88);
10064 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 194792))+88);
10065 i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 194797)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i4);
10066 fparType = (OOC_SymbolTable__Type)i3;
10067 i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 194832)))), &_td_OOC_SymbolTable__ArrayDesc);
10068 if (i4) goto l35;
10069 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 195816)))), &_td_OOC_SymbolTable__RecordDesc);
10070 if (!i2) goto l52;
10071 i0 = *(OOC_UINT8*)((_check_pointer(i0, 195851))+107);
10072 if (!i0) goto l52;
10073 i0 = (OOC_INT64)arg;
10074 i2 = (OOC_INT64)b;
10075 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 195918));
10076 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 195901)))), OOC_IR__BuilderDesc_NewTypeTag)),OOC_IR__BuilderDesc_NewTypeTag)((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i0);
10077 i2 = (OOC_INT64)newArgs;
10078 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 195890)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i2, (Object__Object)i0);
10079 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 195954)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i1, (Object__Object)(OOC_INT64)0);
10080 goto l52;
10081 l35:
10082 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 194884))+80);
10083 i0 = OOC_IR__IsPredefType((OOC_SymbolTable__Type)i0, 11);
10084 if (i0) goto l49;
10085 i0 = OOC_IR__BuilderDesc_NewCall_TransformArgs_Dimensions((OOC_SymbolTable__Type)i2);
10086 i1 = (OOC_INT64)fparType;
10087 i2 = OOC_SymbolTable__ArrayDesc_GetOpenDimensions((OOC_SymbolTable__Array)i1);
10088 i0 = i0>=i2;
10089 if (!i0) goto l52;
10090 i0 = OOC_SymbolTable__ArrayDesc_GetOpenDimensions((OOC_SymbolTable__Array)i1);
10091 i = 0;
10092 i1 = 0<i0;
10093 if (!i1) goto l52;
10094 i1 = (OOC_INT64)newFPars;
10095 i2 = (OOC_INT64)newArgs;
10096 i3=0;
10097 l42_loop:
10098 i4 = (OOC_INT64)arg;
10099 i5 = (OOC_INT64)b;
10100 i6 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 195701));
10101 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 195688)))), OOC_IR__BuilderDesc_NewLen)),OOC_IR__BuilderDesc_NewLen)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i6, (OOC_IR__Expression)i4, i3);
10102 i5 = (OOC_INT64)b;
10103 i4 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 195679)))), OOC_IR__BuilderDesc_Fold)),OOC_IR__BuilderDesc_Fold)((OOC_IR__Builder)i5, (OOC_IR__Expression)i4);
10104 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 195668)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i2, (Object__Object)i4);
10105 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 195743)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i1, (Object__Object)(OOC_INT64)0);
10106 i3 = i3+1;
10107 i = i3;
10108 i4 = i3<i0;
10109 if (i4) goto l42_loop;
10110 goto l52;
10111 l49:
10112 i0 = *(OOC_INT32*)((_check_pointer(i2, 195242))+64);
10113 i0 = (OOC_INT64)Object_BigInt__NewInt(i0);
10114 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
10115 i3 = (OOC_INT64)arg;
10116 i4 = (OOC_INT64)b;
10117 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 195090));
10118 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 195075)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (Object_Boxed__Object)i0);
10119 i2 = (OOC_INT64)newArgs;
10120 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 195064)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i2, (Object__Object)i0);
10121 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 195274)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i1, (Object__Object)(OOC_INT64)0);
10122 l52:
10123 i0 = argIndex;
10124 i0 = i0+1;
10125 i1 = fparIndex;
10126 argIndex = i0;
10127 i1 = i1+1;
10128 fparIndex = i1;
10129 i2 = (OOC_INT64)formalPars;
10130 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 193793))+96);
10131 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 193801)), 0);
10132 i2 = i1!=i2;
10133 if (i2) goto l55;
10134 i2=0u;
10135 goto l57;
10136 l55:
10137 i2 = (OOC_INT64)*arguments;
10138 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 193845)), 0);
10139 i2 = i0!=i2;
10140
10141 l57:
10142 if (i2) goto l12_loop;
10143 l61:
10144 i2 = (OOC_INT64)formalPars;
10145 i3 = (OOC_INT64)newArgs;
10146 i4 = *(OOC_UINT8*)((_check_pointer(i2, 196205))+104);
10147 if (!i4) goto l74;
10148 i4 = (OOC_INT64)*arguments;
10149 i5 = OOC_ARRAY_LENGTH((_check_pointer(i4, 196270)), 0);
10150 i5 = i0!=i5;
10151 if (!i5) goto l74;
10152 i5 = (OOC_INT64)newFPars;
10153
10154 l68_loop:
10155 i6 = _check_pointer(i4, 196303);
10156 i7 = OOC_ARRAY_LENGTH(i6, 0);
10157 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i0, i7, OOC_UINT32, 196303))*8);
10158 arg = (OOC_IR__Expression)i6;
10159 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 196332)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i3, (Object__Object)i6);
10160 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 196366)))), ADT_ArrayList__ArrayListDesc_Append)),ADT_ArrayList__ArrayListDesc_Append)((ADT_ArrayList__ArrayList)i5, (Object__Object)(OOC_INT64)0);
10161 i0 = i0+1;
10162 argIndex = i0;
10163 i6 = OOC_ARRAY_LENGTH((_check_pointer(i4, 196270)), 0);
10164 i6 = i0!=i6;
10165 if (i6) goto l68_loop;
10166 l74:
10167 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 196476))+96);
10168 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 196484)), 0);
10169 i1 = i1!=i2;
10170 if (i1) goto l80;
10171 i1 = (OOC_INT64)*arguments;
10172 i2 = OOC_ARRAY_LENGTH((_check_pointer(i1, 196634)), 0);
10173 i2 = i0!=i2;
10174 if (!i2) goto l81;
10175 i1 = _check_pointer(i1, 196741);
10176 i2 = OOC_ARRAY_LENGTH(i1, 0);
10177 i0 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(i0, i2, OOC_UINT32, 196741))*8);
10178 i1 = (OOC_INT64)b;
10179 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 196751));
10180 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 196704)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 39, (OOC_Scanner_SymList__Symbol)i0);
10181 goto l81;
10182 l80:
10183 i0 = (OOC_INT64)b;
10184 i1 = (OOC_INT64)endOfArgsSym;
10185 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 196554)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 38, (OOC_Scanner_SymList__Symbol)i1);
10186 l81:
10187 i0 = *(OOC_INT32*)((_check_pointer(i3, 196806))+8);
10188 *arguments = (OOC_IR__ExpressionList)((OOC_INT64)RT0__NewObject(_td_OOC_IR__ExpressionList.baseTypes[0], i0));
10189 i0 = *(OOC_INT32*)((_check_pointer(i3, 196848))+8);
10190 *argFormalPars = (OOC_SymbolTable__VarDeclArray)((OOC_INT64)RT0__NewObject(_td_OOC_SymbolTable__VarDeclArray.baseTypes[0], i0));
10191 i0 = *(OOC_INT32*)((_check_pointer(i3, 196884))+8);
10192 i = 0;
10193 i1 = 0<i0;
10194 if (!i1) goto l93;
10195 i1 = (OOC_INT64)newFPars;
10196 i2=0;
10197 l84_loop:
10198 i4 = (OOC_INT64)*arguments;
10199 i4 = _check_pointer(i4, 196913);
10200 i5 = OOC_ARRAY_LENGTH(i4, 0);
10201 i6 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 196927));
10202 i6 = _check_pointer(i6, 196934);
10203 i7 = OOC_ARRAY_LENGTH(i6, 0);
10204 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i2, i7, OOC_UINT32, 196934))*8);
10205 *(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 196913))*8) = (_type_guard(i6, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 196938)))), &_td_OOC_IR__ExpressionDesc, 196938));
10206 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 196971));
10207 i4 = _check_pointer(i4, 196978);
10208 i5 = OOC_ARRAY_LENGTH(i4, 0);
10209 i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 196978))*8);
10210 i4 = i4==(OOC_INT64)0;
10211 if (i4) goto l87;
10212 i4 = (OOC_INT64)*argFormalPars;
10213 i4 = _check_pointer(i4, 197065);
10214 i5 = OOC_ARRAY_LENGTH(i4, 0);
10215 i6 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 197080));
10216 i6 = _check_pointer(i6, 197087);
10217 i7 = OOC_ARRAY_LENGTH(i6, 0);
10218 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i2, i7, OOC_UINT32, 197087))*8);
10219 *(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 197065))*8) = (_type_guard(i6, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 197095)))), &_td_OOC_SymbolTable__VarDeclDesc, 197095));
10220 goto l88;
10221 l87:
10222 i4 = (OOC_INT64)*argFormalPars;
10223 i4 = _check_pointer(i4, 197017);
10224 i5 = OOC_ARRAY_LENGTH(i4, 0);
10225 *(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 197017))*8) = (OOC_INT64)0;
10226 l88:
10227 i2 = i2+1;
10228 i = i2;
10229 i4 = i2<i0;
10230 if (i4) goto l84_loop;
10231 l93:
10232 return;
10233 ;
10234 }
10235
10236
10237 OOC_CHAR8 OOC_IR__BuilderDesc_NewCall_CheckNumberOfArguments(OOC_INT32 min, OOC_INT32 max) {
10238 register OOC_INT64 i0,i1,i2;
10239
10240 i0 = (OOC_INT64)arguments;
10241 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 197252)), 0);
10242 i2 = min;
10243 i1 = i1<i2;
10244 if (i1) goto l3;
10245 i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 197280)), 0);
10246 i1 = max;
10247 i0 = i0>i1;
10248
10249 goto l5;
10250 l3:
10251 i0=1u;
10252 l5:
10253 if (i0) goto l7;
10254 return 1u;
10255 goto l8;
10256 l7:
10257 i0 = (OOC_INT64)design;
10258 i1 = (OOC_INT64)b;
10259 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 197344));
10260 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 197304)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 13, (OOC_Scanner_SymList__Symbol)i0);
10261 return 0u;
10262 l8:
10263 _failed_function(197165); return 0;
10264 ;
10265 }
10266
10267
10268 OOC_IR__Expression OOC_IR__BuilderDesc_NewCall_TranslatePredef(OOC_IR__PredefProc design, OOC_INT16 id) {
10269 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
10270 auto OOC_IR__ExpressionList OOC_IR__BuilderDesc_NewCall_TranslatePredef_StripFirst(OOC_IR__ExpressionList exprList);
10271
10272 OOC_IR__ExpressionList OOC_IR__BuilderDesc_NewCall_TranslatePredef_StripFirst(OOC_IR__ExpressionList exprList) {
10273 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
10274 OOC_IR__ExpressionList newList;
10275 OOC_INT32 i;
10276
10277 i0 = (OOC_INT64)exprList;
10278 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 197738)), 0);
10279 i1 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ExpressionList.baseTypes[0], (i1-1));
10280 newList = (OOC_IR__ExpressionList)i1;
10281 i = 1;
10282 i2 = OOC_ARRAY_LENGTH((_check_pointer(i0, 197779)), 0);
10283 i3 = 1<i2;
10284 if (!i3) goto l8;
10285 i3=1;
10286 l3_loop:
10287 i4 = _check_pointer(i1, 197804);
10288 i5 = OOC_ARRAY_LENGTH(i4, 0);
10289 i6 = _check_pointer(i0, 197821);
10290 i7 = OOC_ARRAY_LENGTH(i6, 0);
10291 i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 197821))*8);
10292 *(OOC_INT64*)(i4+(_check_index((i3-1), i5, OOC_UINT32, 197804))*8) = i6;
10293 i3 = i3+1;
10294 i = i3;
10295 i4 = i3<i2;
10296 if (i4) goto l3_loop;
10297 l8:
10298 return (OOC_IR__ExpressionList)i1;
10299 ;
10300 }
10301
10302
10303 i0 = id;
10304 switch (i0) {
10305 case 0:
10306 i0 = (OOC_INT64)arguments;
10307 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 198000)), 0);
10308 i1 = i1>1;
10309 if (i1) goto l5;
10310 code = (OOC_IR__Expression)(OOC_INT64)0;
10311 goto l6;
10312 l5:
10313 i0 = _check_pointer(i0, 198040);
10314 i1 = OOC_ARRAY_LENGTH(i0, 0);
10315 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(1, i1, OOC_UINT8, 198040))*8);
10316 code = (OOC_IR__Expression)i0;
10317 l6:
10318 i0 = (OOC_INT64)design;
10319 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 198222));
10320 i1 = *(OOC_INT32*)((_check_pointer(i1, 198227))+28);
10321 i2 = (OOC_INT64)OOC_Config_StdPragmas__assertions;
10322 i3 = (OOC_INT64)b;
10323 i1 = OOC_IR__GetPragmaValue((OOC_IR__Builder)i3, (Config_Section_Options__Option)i2, i1);
10324 i2 = (OOC_INT64)arguments;
10325 i2 = _check_pointer(i2, 198145);
10326 i3 = OOC_ARRAY_LENGTH(i2, 0);
10327 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 198129));
10328 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 198145))*8);
10329 i3 = (OOC_INT64)code;
10330 i4 = (OOC_INT64)b;
10331 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAssert((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i2, (OOC_IR__Expression)i3, (!i1));
10332 return (OOC_IR__Expression)i0;
10333 goto l179;
10334 case 1:
10335 i0 = (OOC_INT64)arguments;
10336 i0 = _check_pointer(i0, 198314);
10337 i1 = OOC_ARRAY_LENGTH(i0, 0);
10338 i2 = (OOC_INT64)design;
10339 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 198293));
10340 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 198314))*8);
10341 i1 = (OOC_INT64)b;
10342 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAssert((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)(OOC_INT64)0, (OOC_IR__Expression)i0, 0u);
10343 return (OOC_IR__Expression)i0;
10344 goto l179;
10345 case 22:
10346 i0 = (OOC_INT64)arguments;
10347 i0 = _check_pointer(i0, 198489);
10348 i1 = OOC_ARRAY_LENGTH(i0, 0);
10349 i2 = (OOC_INT64)design;
10350 i3 = (OOC_INT64)b;
10351 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(1, i1, OOC_UINT8, 198489))*8);
10352 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 198473));
10353 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 198457)))), OOC_IR__BuilderDesc_NewLen)),OOC_IR__BuilderDesc_NewLen)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0, 0);
10354 i1 = (OOC_INT64)arguments;
10355 i3 = _check_pointer(i1, 198418);
10356 i4 = OOC_ARRAY_LENGTH(i3, 0);
10357 i1 = _check_pointer(i1, 198404);
10358 i5 = OOC_ARRAY_LENGTH(i1, 0);
10359 i6 = (OOC_INT64)b;
10360 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(1, i4, OOC_UINT8, 198418))*8);
10361 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i5, OOC_UINT8, 198404))*8);
10362 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 198388));
10363 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 198365)))), OOC_IR__BuilderDesc_NewCopyString)),OOC_IR__BuilderDesc_NewCopyString)((OOC_IR__Builder)i6, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i3, (OOC_IR__Expression)i0);
10364 return (OOC_IR__Expression)i0;
10365 goto l179;
10366 case 21:
10367 i0 = (OOC_INT64)arguments;
10368 i1 = _check_pointer(i0, 198553);
10369 i2 = OOC_ARRAY_LENGTH(i1, 0);
10370 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 198553))*8);
10371 i0 = _check_pointer(i0, 198553);
10372 i2 = OOC_ARRAY_LENGTH(i0, 0);
10373 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i2, OOC_UINT8, 198553))*8);
10374 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 198556))+8);
10375 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 198556))+8);
10376 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 198561)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
10377 type = (OOC_SymbolTable__Type)i0;
10378 i1 = (OOC_INT64)b;
10379 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 198593))+56);
10380 i2 = i0==i2;
10381 if (i2) goto l40;
10382 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199030)))), &_td_OOC_SymbolTable__PointerDesc);
10383 if (i0) goto l14;
10384 i0 = (OOC_INT64)arguments;
10385 i0 = _check_pointer(i0, 200115);
10386 i2 = OOC_ARRAY_LENGTH(i0, 0);
10387 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i2, OOC_UINT8, 200115))*8);
10388 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 200118));
10389 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 200083)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 50, (OOC_Scanner_SymList__Symbol)i0);
10390 goto l48;
10391 l14:
10392 i0 = (OOC_INT64)arguments;
10393 i0 = _check_pointer(i0, 199082);
10394 i2 = OOC_ARRAY_LENGTH(i0, 0);
10395 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i2, OOC_UINT8, 199082))*8);
10396 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
10397 i0 = (OOC_INT64)type;
10398 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199115)))), &_td_OOC_SymbolTable__PointerDesc, 199115)), 199123))+72);
10399 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199115)))), &_td_OOC_SymbolTable__PointerDesc, 199115)), 199123))+72);
10400 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 199132)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
10401 type = (OOC_SymbolTable__Type)i0;
10402 i1 = *(OOC_UINT8*)((_check_pointer(i0, 199162))+70);
10403 i1 = !i1;
10404 if (i1) goto l21;
10405 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199199)))), &_td_OOC_SymbolTable__ArrayDesc);
10406 if (i1) goto l19;
10407 i0=0u;
10408 goto l23;
10409 l19:
10410 i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199225)))), &_td_OOC_SymbolTable__ArrayDesc, 199225)), 199231))+73);
10411 i0 = !i0;
10412
10413 goto l23;
10414 l21:
10415 i0=1u;
10416 l23:
10417 if (!i0) goto l25;
10418 i0 = (OOC_INT64)arguments;
10419 i0 = _check_pointer(i0, 199299);
10420 i1 = OOC_ARRAY_LENGTH(i0, 0);
10421 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 199299))*8);
10422 i1 = (OOC_INT64)b;
10423 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 199302));
10424 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 199264)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 80, (OOC_Scanner_SymList__Symbol)i0);
10425 l25:
10426 i0 = (OOC_INT64)type;
10427 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199343)))), &_td_OOC_SymbolTable__ArrayDesc);
10428 if (i1) goto l34;
10429 i0 = OOC_SymbolTable_TypeRules__VariableInstance((OOC_SymbolTable__Type)i0);
10430 i0 = !i0;
10431 if (!i0) goto l30;
10432 i0 = (OOC_INT64)arguments;
10433 i0 = _check_pointer(i0, 199795);
10434 i1 = OOC_ARRAY_LENGTH(i0, 0);
10435 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 199795))*8);
10436 i1 = (OOC_INT64)b;
10437 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 199798));
10438 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 199756)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 56, (OOC_Scanner_SymList__Symbol)i0);
10439 l30:
10440 i0 = OOC_IR__BuilderDesc_NewCall_CheckNumberOfArguments(1, 1);
10441 if (!i0) goto l48;
10442 i0 = (OOC_INT64)arguments;
10443 i0 = _check_pointer(i0, 200010);
10444 i1 = OOC_ARRAY_LENGTH(i0, 0);
10445 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 200010))*8);
10446 i1 = (OOC_INT64)design;
10447 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 200013))+8);
10448 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 199995));
10449 i3 = (OOC_INT64)b;
10450 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewNewObject((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0, (OOC_IR__ExpressionList)(OOC_INT64)0);
10451 i2 = (OOC_INT64)arguments;
10452 i2 = _check_pointer(i2, 199950);
10453 i3 = OOC_ARRAY_LENGTH(i2, 0);
10454 i4 = (OOC_INT64)b;
10455 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 199950))*8);
10456 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 199935));
10457 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 199894)))), OOC_IR__BuilderDesc_NewAssignment)),OOC_IR__BuilderDesc_NewAssignment)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i2, (OOC_IR__Expression)i0);
10458 return (OOC_IR__Expression)i0;
10459 goto l48;
10460 l34:
10461 i0 = OOC_SymbolTable__ArrayDesc_GetOpenDimensions((OOC_SymbolTable__Array)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 199392)))), &_td_OOC_SymbolTable__ArrayDesc, 199392)));
10462 i0 = 1+i0;
10463 dim = i0;
10464 i0 = OOC_IR__BuilderDesc_NewCall_CheckNumberOfArguments(i0, i0);
10465 if (!i0) goto l48;
10466 i0 = (OOC_INT64)arguments;
10467 i1 = _check_pointer(i0, 199612);
10468 i2 = OOC_ARRAY_LENGTH(i1, 0);
10469 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 199612))*8);
10470 i2 = (OOC_INT64)design;
10471 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 199615))+8);
10472 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 199597));
10473 i4 = (OOC_INT64)b;
10474 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewNewObject((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i1, (OOC_IR__ExpressionList)i0);
10475 i1 = (OOC_INT64)arguments;
10476 i1 = _check_pointer(i1, 199552);
10477 i3 = OOC_ARRAY_LENGTH(i1, 0);
10478 i4 = (OOC_INT64)b;
10479 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i3, OOC_UINT8, 199552))*8);
10480 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 199537));
10481 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 199496)))), OOC_IR__BuilderDesc_NewAssignment)),OOC_IR__BuilderDesc_NewAssignment)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
10482 return (OOC_IR__Expression)i0;
10483 goto l48;
10484 l40:
10485 i0 = (OOC_INT64)arguments;
10486 i0 = _check_pointer(i0, 198636);
10487 i1 = OOC_ARRAY_LENGTH(i0, 0);
10488 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 198636))*8);
10489 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 198640)))), &_td_OOC_IR__TypeRefDesc, 198640)), 198648))+24);
10490 type = (OOC_SymbolTable__Type)i0;
10491 i0 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
10492 if (i0) goto l43;
10493 i0=0u;
10494 goto l45;
10495 l43:
10496 i0 = (OOC_INT64)type;
10497 i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
10498 i0 = OOC_SymbolTable_TypeRules__VariableInstance((OOC_SymbolTable__Type)i0);
10499 i0 = !i0;
10500
10501 l45:
10502 if (!i0) goto l47;
10503 i0 = (OOC_INT64)arguments;
10504 i0 = _check_pointer(i0, 198810);
10505 i1 = OOC_ARRAY_LENGTH(i0, 0);
10506 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 198810))*8);
10507 i1 = (OOC_INT64)b;
10508 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 198813));
10509 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 198771)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 56, (OOC_Scanner_SymList__Symbol)i0);
10510 l47:
10511 i0 = (OOC_INT64)endOfArgsSym;
10512 i1 = (OOC_INT64)context;
10513 i2 = (OOC_INT64)arguments;
10514 i2 = (OOC_INT64)OOC_IR__BuilderDesc_NewCall_TranslatePredef_StripFirst((OOC_IR__ExpressionList)i2);
10515 i3 = (OOC_INT64)arguments;
10516 i3 = _check_pointer(i3, 198890);
10517 i4 = OOC_ARRAY_LENGTH(i3, 0);
10518 i5 = (OOC_INT64)design;
10519 i6 = (OOC_INT64)b;
10520 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(0, i4, OOC_UINT8, 198890))*8);
10521 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i5, 198875));
10522 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 198853)))), OOC_IR__BuilderDesc_NewConstructor)),OOC_IR__BuilderDesc_NewConstructor)((OOC_IR__Builder)i6, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i3, (OOC_IR__ExpressionList)i2, (OOC_SymbolTable__Item)i1, (OOC_Scanner_SymList__Symbol)i0);
10523 return (OOC_IR__Expression)i0;
10524 l48:
10525 i0 = (OOC_INT64)b;
10526 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 200154))+48);
10527 return (OOC_IR__Expression)i0;
10528 goto l179;
10529 case 4:
10530 case 5:
10531 i0 = (OOC_INT64)arguments;
10532 i1 = _check_pointer(i0, 200225);
10533 i2 = OOC_ARRAY_LENGTH(i1, 0);
10534 i0 = _check_pointer(i0, 200257);
10535 i3 = OOC_ARRAY_LENGTH(i0, 0);
10536 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 200257))*8);
10537 i3 = (OOC_INT64)b;
10538 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i3, (OOC_IR__Expression)i0);
10539 *(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 200225))*8) = i0;
10540 i0 = (OOC_INT64)arguments;
10541 i0 = _check_pointer(i0, 200292);
10542 i1 = OOC_ARRAY_LENGTH(i0, 0);
10543 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 200292))*8);
10544 i1 = (OOC_INT64)b;
10545 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
10546 i0 = (OOC_INT64)arguments;
10547 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 200324)), 0);
10548 i1 = i1==1;
10549 if (i1) goto l52;
10550 i0 = _check_pointer(i0, 200442);
10551 i1 = OOC_ARRAY_LENGTH(i0, 0);
10552 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(1, i1, OOC_UINT8, 200442))*8);
10553 delta = (OOC_IR__Expression)i0;
10554 goto l53;
10555 l52:
10556 i0 = _check_pointer(i0, 200389);
10557 i1 = OOC_ARRAY_LENGTH(i0, 0);
10558 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 200389))*8);
10559 i1 = (OOC_INT64)design;
10560 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 200392))+8);
10561 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 200373));
10562 i2 = (OOC_INT64)b;
10563 i0 = (OOC_INT64)OOC_IR__BuilderDesc_GetOne((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0);
10564 delta = (OOC_IR__Expression)i0;
10565 l53:
10566 i0 = (OOC_INT64)arguments;
10567 i0 = _check_pointer(i0, 200495);
10568 i1 = OOC_ARRAY_LENGTH(i0, 0);
10569 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 200495))*8);
10570 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 200498))+8);
10571 i1 = (OOC_INT64)b;
10572 i0 = OOC_IR__BuilderDesc_Widen((OOC_IR__Builder)i1, (void*)(OOC_INT64)&delta, (OOC_SymbolTable__Type)i0);
10573 if (i0) goto l56;
10574 i0 = (OOC_INT64)delta;
10575 i1 = (OOC_INT64)b;
10576 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 200885));
10577 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 200857)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 5, (OOC_Scanner_SymList__Symbol)i0);
10578 i0 = (OOC_INT64)arguments;
10579 i1 = _check_pointer(i0, 200961);
10580 i2 = OOC_ARRAY_LENGTH(i1, 0);
10581 i0 = _check_pointer(i0, 200947);
10582 i3 = OOC_ARRAY_LENGTH(i0, 0);
10583 i4 = (OOC_INT64)design;
10584 i5 = (OOC_INT64)b;
10585 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 200961))*8);
10586 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 200947))*8);
10587 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 200932));
10588 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 200910)))), OOC_IR__BuilderDesc_NewAssignment)),OOC_IR__BuilderDesc_NewAssignment)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1);
10589 return (OOC_IR__Expression)i0;
10590 goto l179;
10591 l56:
10592 i0 = (OOC_INT64)design;
10593 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 200530))+16);
10594 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 200541)))), &_td_OOC_SymbolTable__PredefProcDesc, 200541)), 200552))+88);
10595 i1 = i1==4;
10596 if (i1) goto l59;
10597 op = 1;
10598 i1=1;
10599 goto l60;
10600 l59:
10601 op = 0;
10602 i1=0;
10603 l60:
10604 i2 = (OOC_INT64)arguments;
10605 i2 = _check_pointer(i2, 200819);
10606 i3 = OOC_ARRAY_LENGTH(i2, 0);
10607 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 200799));
10608 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 200819))*8);
10609 i3 = (OOC_INT64)b;
10610 i5 = (OOC_INT64)delta;
10611 i1 = (OOC_INT64)OOC_IR__BuilderDesc_NewBinaryArith((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i4, i1, (OOC_IR__Expression)i2, (OOC_IR__Expression)i5);
10612 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 200701));
10613 i2 = (OOC_INT64)b;
10614 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAssignOp((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i1);
10615 return (OOC_IR__Expression)i0;
10616 goto l179;
10617 case 6:
10618 case 7:
10619 i0 = (OOC_INT64)arguments;
10620 i0 = _check_pointer(i0, 201052);
10621 i1 = OOC_ARRAY_LENGTH(i0, 0);
10622 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 201052))*8);
10623 i1 = (OOC_INT64)b;
10624 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
10625 i0 = (OOC_INT64)arguments;
10626 i1 = _check_pointer(i0, 201075);
10627 i2 = OOC_ARRAY_LENGTH(i1, 0);
10628 i0 = _check_pointer(i0, 201103);
10629 i3 = OOC_ARRAY_LENGTH(i0, 0);
10630 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 201103))*8);
10631 i3 = (OOC_INT64)b;
10632 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertSet((OOC_IR__Builder)i3, (OOC_IR__Expression)i0);
10633 *(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 201075))*8) = i0;
10634 i0 = (OOC_INT64)arguments;
10635 i1 = _check_pointer(i0, 201126);
10636 i2 = OOC_ARRAY_LENGTH(i1, 0);
10637 i0 = _check_pointer(i0, 201158);
10638 i3 = OOC_ARRAY_LENGTH(i0, 0);
10639 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(1, i3, OOC_UINT8, 201158))*8);
10640 i3 = (OOC_INT64)b;
10641 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i3, (OOC_IR__Expression)i0);
10642 *(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 201126))*8) = i0;
10643 i0 = (OOC_INT64)design;
10644 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 201182))+16);
10645 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 201193)))), &_td_OOC_SymbolTable__PredefProcDesc, 201193)), 201204))+88);
10646 i1 = i1==6;
10647 if (i1) goto l65;
10648 op = 23;
10649 i1=23;
10650 goto l66;
10651 l65:
10652 op = 22;
10653 i1=22;
10654 l66:
10655 i2 = (OOC_INT64)arguments;
10656 i3 = _check_pointer(i2, 201496);
10657 i4 = OOC_ARRAY_LENGTH(i3, 0);
10658 i2 = _check_pointer(i2, 201482);
10659 i5 = OOC_ARRAY_LENGTH(i2, 0);
10660 i6 = (OOC_INT64)b;
10661 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(1, i4, OOC_UINT8, 201496))*8);
10662 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i5, OOC_UINT8, 201482))*8);
10663 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 201412));
10664 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i6, 201387)))), OOC_IR__BuilderDesc_NewChangeElement)),OOC_IR__BuilderDesc_NewChangeElement)((OOC_IR__Builder)i6, (OOC_Scanner_SymList__Symbol)i4, i1, (OOC_IR__Expression)i2, (OOC_IR__Expression)i3);
10665 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 201349));
10666 i2 = (OOC_INT64)b;
10667 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAssignOp((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i0, (OOC_IR__Expression)i1);
10668 return (OOC_IR__Expression)i0;
10669 goto l179;
10670 case 23:
10671 i0 = (OOC_INT64)arguments;
10672 i0 = _check_pointer(i0, 201573);
10673 i1 = OOC_ARRAY_LENGTH(i0, 0);
10674 i2 = (OOC_INT64)design;
10675 i3 = (OOC_INT64)b;
10676 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 201573))*8);
10677 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 201558));
10678 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 201542)))), OOC_IR__BuilderDesc_NewRaise)),OOC_IR__BuilderDesc_NewRaise)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
10679 return (OOC_IR__Expression)i0;
10680 goto l179;
10681 case 2:
10682 i0 = (OOC_INT64)arguments;
10683 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 201667)), 0);
10684 i1 = i1!=2;
10685 if (i1) goto l71;
10686 i1 = _check_pointer(i0, 201839);
10687 i2 = OOC_ARRAY_LENGTH(i1, 0);
10688 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 201839))*8);
10689 i0 = _check_pointer(i0, 201839);
10690 i2 = OOC_ARRAY_LENGTH(i0, 0);
10691 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i2, OOC_UINT8, 201839))*8);
10692 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 201842))+8);
10693 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 201842))+8);
10694 i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 201848)))), OOC_SymbolTable__TypeDesc_ArrayDimensions)),OOC_SymbolTable__TypeDesc_ArrayDimensions)((OOC_SymbolTable__Type)i1);
10695 i1 = (OOC_INT64)arguments;
10696 i1 = _check_pointer(i1, 201786);
10697 i2 = OOC_ARRAY_LENGTH(i1, 0);
10698 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 201786))*8);
10699 i2 = (OOC_INT64)b;
10700 i0 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i2, (OOC_IR__Expression)i1, 0, i0);
10701 dim = i0;
10702 goto l72;
10703 l71:
10704 dim = 0;
10705 l72:
10706 i0 = (OOC_INT64)arguments;
10707 i0 = _check_pointer(i0, 201924);
10708 i1 = OOC_ARRAY_LENGTH(i0, 0);
10709 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 201924))*8);
10710 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 201927))+8);
10711 i0 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i0);
10712 i0 = !i0;
10713 if (!i0) goto l75;
10714 i0 = (OOC_INT64)arguments;
10715 i0 = _check_pointer(i0, 202024);
10716 i1 = OOC_ARRAY_LENGTH(i0, 0);
10717 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 202024))*8);
10718 i1 = (OOC_INT64)b;
10719 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 202027));
10720 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 201995)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 15, (OOC_Scanner_SymList__Symbol)i0);
10721 l75:
10722 i0 = (OOC_INT64)arguments;
10723 i0 = _check_pointer(i0, 202105);
10724 i1 = OOC_ARRAY_LENGTH(i0, 0);
10725 i2 = (OOC_INT64)design;
10726 i3 = (OOC_INT64)b;
10727 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 202105))*8);
10728 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 202089));
10729 i2 = dim;
10730 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 202073)))), OOC_IR__BuilderDesc_NewLen)),OOC_IR__BuilderDesc_NewLen)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0, i2);
10731 return (OOC_IR__Expression)i0;
10732 goto l179;
10733 case 20:
10734 case 19:
10735 i0 = (OOC_INT64)arguments;
10736 i0 = _check_pointer(i0, 202189);
10737 i1 = OOC_ARRAY_LENGTH(i0, 0);
10738 i2 = (OOC_INT64)b;
10739 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 202189))*8);
10740 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 202166)))), OOC_IR__BuilderDesc_AssertType)),OOC_IR__BuilderDesc_AssertType)((OOC_IR__Builder)i2, (OOC_IR__Expression)i0);
10741 type = (OOC_SymbolTable__Type)i0;
10742 i1 = (OOC_INT64)design;
10743 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 202213))+16);
10744 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 202224)))), &_td_OOC_SymbolTable__PredefProcDesc, 202224)), 202235))+88);
10745 i1 = i1==20;
10746 if (i1) goto l79;
10747 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetMax((OOC_SymbolTable__Type)i0);
10748 value = (Object_Boxed__Object)i1;
10749
10750 goto l80;
10751 l79:
10752 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetMin((OOC_SymbolTable__Type)i0);
10753 value = (Object_Boxed__Object)i1;
10754
10755 l80:
10756 i2 = i1==(OOC_INT64)0;
10757 if (i2) goto l87;
10758 i2 = OOC_SymbolTable_TypeRules__IsSetType((OOC_SymbolTable__Type)i0);
10759 if (!i2) goto l86;
10760 i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(4);
10761 type = (OOC_SymbolTable__Type)i0;
10762
10763 l86:
10764 i2 = (OOC_INT64)arguments;
10765 i2 = _check_pointer(i2, 202638);
10766 i3 = OOC_ARRAY_LENGTH(i2, 0);
10767 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 202638))*8);
10768 i3 = (OOC_INT64)b;
10769 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 202641));
10770 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 202617)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i1);
10771 return (OOC_IR__Expression)i0;
10772 goto l179;
10773 l87:
10774 i0 = (OOC_INT64)arguments;
10775 i0 = _check_pointer(i0, 202445);
10776 i1 = OOC_ARRAY_LENGTH(i0, 0);
10777 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 202445))*8);
10778 i1 = (OOC_INT64)b;
10779 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 202448));
10780 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 202415)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 18, (OOC_Scanner_SymList__Symbol)i0);
10781 return (OOC_IR__Expression)i0;
10782 goto l179;
10783 case 3:
10784 i0 = (OOC_INT64)arguments;
10785 i0 = _check_pointer(i0, 202754);
10786 i1 = OOC_ARRAY_LENGTH(i0, 0);
10787 i2 = (OOC_INT64)design;
10788 i3 = (OOC_INT64)b;
10789 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 202754))*8);
10790 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 202738));
10791 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 202721)))), OOC_IR__BuilderDesc_NewSize)),OOC_IR__BuilderDesc_NewSize)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
10792 return (OOC_IR__Expression)i0;
10793 goto l179;
10794 case 8:
10795 i0 = (OOC_INT64)arguments;
10796 i0 = _check_pointer(i0, 202828);
10797 i1 = OOC_ARRAY_LENGTH(i0, 0);
10798 i2 = (OOC_INT64)design;
10799 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 202812));
10800 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 202828))*8);
10801 i1 = (OOC_INT64)b;
10802 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAbs((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0);
10803 return (OOC_IR__Expression)i0;
10804 goto l179;
10805 case 9:
10806 i0 = (OOC_INT64)arguments;
10807 i1 = _check_pointer(i0, 202925);
10808 i2 = OOC_ARRAY_LENGTH(i1, 0);
10809 i0 = _check_pointer(i0, 202911);
10810 i3 = OOC_ARRAY_LENGTH(i0, 0);
10811 i4 = (OOC_INT64)design;
10812 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 202895));
10813 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 202925))*8);
10814 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 202911))*8);
10815 i2 = (OOC_INT64)b;
10816 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewAsh((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1);
10817 return (OOC_IR__Expression)i0;
10818 goto l179;
10819 case 10:
10820 i0 = (OOC_INT64)arguments;
10821 i0 = _check_pointer(i0, 203021);
10822 i1 = OOC_ARRAY_LENGTH(i0, 0);
10823 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 203021))*8);
10824 i1 = (OOC_INT64)b;
10825 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertChar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
10826 i1 = (OOC_INT64)design;
10827 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 202992));
10828 i2 = (OOC_INT64)b;
10829 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewCap((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
10830 return (OOC_IR__Expression)i0;
10831 goto l179;
10832 case 11:
10833 i0 = (OOC_INT64)arguments;
10834 i1 = _check_pointer(i0, 203071);
10835 i2 = OOC_ARRAY_LENGTH(i1, 0);
10836 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 203071))*8);
10837 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 203075)))), &_td_OOC_IR__ConstDesc);
10838 if (i1) goto l96;
10839 i1=0u;
10840 goto l98;
10841 l96:
10842 i1 = _check_pointer(i0, 203113);
10843 i2 = OOC_ARRAY_LENGTH(i1, 0);
10844 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 203113))*8);
10845 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 203116))+8);
10846 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
10847
10848 l98:
10849 if (i1) goto l113;
10850 i1 = _check_pointer(i0, 203236);
10851 i2 = OOC_ARRAY_LENGTH(i1, 0);
10852 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 203236))*8);
10853 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 203239))+8);
10854 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 203245)))), &_td_OOC_SymbolTable__PredefTypeDesc);
10855 if (i1) goto l102;
10856 i0 = _check_pointer(i0, 203983);
10857 i1 = OOC_ARRAY_LENGTH(i0, 0);
10858 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 203983))*8);
10859 i1 = (OOC_INT64)b;
10860 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 203986));
10861 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 203951)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 5, (OOC_Scanner_SymList__Symbol)i0);
10862 i0 = (OOC_INT64)arguments;
10863 i0 = _check_pointer(i0, 204019);
10864 i1 = OOC_ARRAY_LENGTH(i0, 0);
10865 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 204019))*8);
10866 return (OOC_IR__Expression)i0;
10867 goto l179;
10868 l102:
10869 i1 = _check_pointer(i0, 203293);
10870 i2 = OOC_ARRAY_LENGTH(i1, 0);
10871 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 203293))*8);
10872 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 203296))+8);
10873 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 203306)))), &_td_OOC_SymbolTable__PredefTypeDesc, 203306)), 203317))+72);
10874 switch (i1) {
10875 case 4:
10876 targetType = 5;
10877
10878 goto l111;
10879 case 5:
10880 targetType = 6;
10881
10882 goto l111;
10883 case 6:
10884 targetType = 7;
10885
10886 goto l111;
10887 case 8:
10888 targetType = 9;
10889
10890 goto l111;
10891 case 1:
10892 targetType = 2;
10893
10894 goto l111;
10895 case 2:
10896 targetType = 3;
10897
10898 goto l111;
10899 default:
10900 i0 = _check_pointer(i0, 203741);
10901 i1 = OOC_ARRAY_LENGTH(i0, 0);
10902 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 203741))*8);
10903 i1 = (OOC_INT64)b;
10904 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 203744));
10905 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 203709)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 5, (OOC_Scanner_SymList__Symbol)i0);
10906 i0 = (OOC_INT64)arguments;
10907 i1 = _check_pointer(i0, 203779);
10908 i2 = OOC_ARRAY_LENGTH(i1, 0);
10909 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 203779))*8);
10910 return (OOC_IR__Expression)i1;
10911
10912 goto l111;
10913 }
10914 l111:
10915 i0 = _check_pointer(i0, 203869);
10916 i1 = OOC_ARRAY_LENGTH(i0, 0);
10917 i2 = targetType;
10918 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i2);
10919 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 203869))*8);
10920 i1 = (OOC_INT64)b;
10921 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i0);
10922 return (OOC_IR__Expression)i0;
10923 goto l179;
10924 l113:
10925 i0 = _check_pointer(i0, 203207);
10926 i1 = OOC_ARRAY_LENGTH(i0, 0);
10927 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 203207))*8);
10928 return (OOC_IR__Expression)i0;
10929 goto l179;
10930 case 12:
10931 i0 = (OOC_INT64)arguments;
10932 i1 = _check_pointer(i0, 204089);
10933 i2 = OOC_ARRAY_LENGTH(i1, 0);
10934 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 204089))*8);
10935 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 204093)))), &_td_OOC_IR__ConstDesc);
10936 if (i1) goto l118;
10937 i1=0u;
10938 goto l120;
10939 l118:
10940 i1 = _check_pointer(i0, 204131);
10941 i2 = OOC_ARRAY_LENGTH(i1, 0);
10942 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 204131))*8);
10943 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 204134))+8);
10944 i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
10945
10946 l120:
10947 if (i1) goto l135;
10948 i1 = _check_pointer(i0, 204255);
10949 i2 = OOC_ARRAY_LENGTH(i1, 0);
10950 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 204255))*8);
10951 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 204258))+8);
10952 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 204264)))), &_td_OOC_SymbolTable__PredefTypeDesc);
10953 if (i1) goto l124;
10954 i0 = _check_pointer(i0, 204992);
10955 i1 = OOC_ARRAY_LENGTH(i0, 0);
10956 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 204992))*8);
10957 i1 = (OOC_INT64)b;
10958 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 204995));
10959 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 204960)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 5, (OOC_Scanner_SymList__Symbol)i0);
10960 i0 = (OOC_INT64)arguments;
10961 i0 = _check_pointer(i0, 205028);
10962 i1 = OOC_ARRAY_LENGTH(i0, 0);
10963 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 205028))*8);
10964 return (OOC_IR__Expression)i0;
10965 goto l179;
10966 l124:
10967 i1 = _check_pointer(i0, 204312);
10968 i2 = OOC_ARRAY_LENGTH(i1, 0);
10969 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 204312))*8);
10970 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 204315))+8);
10971 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 204325)))), &_td_OOC_SymbolTable__PredefTypeDesc, 204325)), 204336))+72);
10972 switch (i1) {
10973 case 5:
10974 targetType = 4;
10975
10976 goto l133;
10977 case 6:
10978 targetType = 5;
10979
10980 goto l133;
10981 case 7:
10982 targetType = 6;
10983
10984 goto l133;
10985 case 9:
10986 targetType = 8;
10987
10988 goto l133;
10989 case 2:
10990 targetType = 1;
10991
10992 goto l133;
10993 case 3:
10994 targetType = 2;
10995
10996 goto l133;
10997 default:
10998 i0 = _check_pointer(i0, 204750);
10999 i1 = OOC_ARRAY_LENGTH(i0, 0);
11000 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 204750))*8);
11001 i1 = (OOC_INT64)b;
11002 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 204753));
11003 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 204718)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 5, (OOC_Scanner_SymList__Symbol)i0);
11004 i0 = (OOC_INT64)arguments;
11005 i1 = _check_pointer(i0, 204788);
11006 i2 = OOC_ARRAY_LENGTH(i1, 0);
11007 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 204788))*8);
11008 return (OOC_IR__Expression)i1;
11009
11010 goto l133;
11011 }
11012 l133:
11013 i0 = _check_pointer(i0, 204878);
11014 i1 = OOC_ARRAY_LENGTH(i0, 0);
11015 i2 = targetType;
11016 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i2);
11017 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 204878))*8);
11018 i1 = (OOC_INT64)b;
11019 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i0);
11020 return (OOC_IR__Expression)i0;
11021 goto l179;
11022 l135:
11023 i0 = _check_pointer(i0, 204226);
11024 i1 = OOC_ARRAY_LENGTH(i0, 0);
11025 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 204226))*8);
11026 return (OOC_IR__Expression)i0;
11027 goto l179;
11028 case 13:
11029 i0 = (OOC_INT64)arguments;
11030 i1 = _check_pointer(i0, 205092);
11031 i2 = OOC_ARRAY_LENGTH(i1, 0);
11032 i0 = _check_pointer(i0, 205124);
11033 i3 = OOC_ARRAY_LENGTH(i0, 0);
11034 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 205124))*8);
11035 i3 = (OOC_INT64)b;
11036 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i3, (OOC_IR__Expression)i0);
11037 *(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 205092))*8) = i0;
11038 i0 = (OOC_INT64)arguments;
11039 i1 = _check_pointer(i0, 205151);
11040 i2 = OOC_ARRAY_LENGTH(i1, 0);
11041 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 205151))*8);
11042 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 205155)))), &_td_OOC_IR__ConstDesc);
11043 if (!i1) goto l140;
11044 i0 = _check_pointer(i0, 205365);
11045 i1 = OOC_ARRAY_LENGTH(i0, 0);
11046 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 205365))*8);
11047 i1 = (OOC_INT64)b;
11048 i0 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i1, (OOC_IR__Expression)i0, 0, 256);
11049 dummy = i0;
11050 l140:
11051 i0 = (OOC_INT64)arguments;
11052 i0 = _check_pointer(i0, 205533);
11053 i1 = OOC_ARRAY_LENGTH(i0, 0);
11054 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
11055 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 205533))*8);
11056 i1 = (OOC_INT64)b;
11057 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i0);
11058 return (OOC_IR__Expression)i0;
11059 goto l179;
11060 case 14:
11061 i0 = (OOC_INT64)arguments;
11062 i1 = _check_pointer(i0, 205580);
11063 i2 = OOC_ARRAY_LENGTH(i1, 0);
11064 i0 = _check_pointer(i0, 205612);
11065 i3 = OOC_ARRAY_LENGTH(i0, 0);
11066 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 205612))*8);
11067 i3 = (OOC_INT64)b;
11068 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i3, (OOC_IR__Expression)i0);
11069 *(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 205580))*8) = i0;
11070 i0 = (OOC_INT64)arguments;
11071 i1 = _check_pointer(i0, 205639);
11072 i2 = OOC_ARRAY_LENGTH(i1, 0);
11073 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 205639))*8);
11074 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 205643)))), &_td_OOC_IR__ConstDesc);
11075 if (!i1) goto l144;
11076 i0 = _check_pointer(i0, 205853);
11077 i1 = OOC_ARRAY_LENGTH(i0, 0);
11078 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 205853))*8);
11079 i1 = (OOC_INT64)b;
11080 i0 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i1, (OOC_IR__Expression)i0, 0, 65536);
11081 dummy = i0;
11082 l144:
11083 i0 = (OOC_INT64)arguments;
11084 i0 = _check_pointer(i0, 206069);
11085 i1 = OOC_ARRAY_LENGTH(i0, 0);
11086 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(2);
11087 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 206069))*8);
11088 i1 = (OOC_INT64)b;
11089 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i0);
11090 return (OOC_IR__Expression)i0;
11091 goto l179;
11092 case 15:
11093 i0 = (OOC_INT64)arguments;
11094 i1 = _check_pointer(i0, 206125);
11095 i2 = OOC_ARRAY_LENGTH(i1, 0);
11096 i0 = _check_pointer(i0, 206157);
11097 i3 = OOC_ARRAY_LENGTH(i0, 0);
11098 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 206157))*8);
11099 i3 = (OOC_INT64)b;
11100 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertInteger((OOC_IR__Builder)i3, (OOC_IR__Expression)i0);
11101 *(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 206125))*8) = i0;
11102 i0 = (OOC_INT64)arguments;
11103 i1 = _check_pointer(i0, 206184);
11104 i2 = OOC_ARRAY_LENGTH(i1, 0);
11105 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 206184))*8);
11106 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 206188)))), &_td_OOC_IR__ConstDesc);
11107 if (!i1) goto l148;
11108 i0 = _check_pointer(i0, 206398);
11109 i1 = OOC_ARRAY_LENGTH(i0, 0);
11110 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 206398))*8);
11111 i1 = (OOC_INT64)b;
11112 i0 = OOC_IR__BuilderDesc_AssertIntConst((OOC_IR__Builder)i1, (OOC_IR__Expression)i0, 0, 1114111);
11113 dummy = i0;
11114 l148:
11115 i0 = (OOC_INT64)arguments;
11116 i0 = _check_pointer(i0, 206659);
11117 i1 = OOC_ARRAY_LENGTH(i0, 0);
11118 i2 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(3);
11119 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 206659))*8);
11120 i1 = (OOC_INT64)b;
11121 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i1, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i0);
11122 return (OOC_IR__Expression)i0;
11123 goto l179;
11124 case 16:
11125 i0 = (OOC_INT64)arguments;
11126 i0 = _check_pointer(i0, 206748);
11127 i1 = OOC_ARRAY_LENGTH(i0, 0);
11128 i2 = (OOC_INT64)design;
11129 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 206732));
11130 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 206748))*8);
11131 i1 = (OOC_INT64)b;
11132 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewEntier((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0);
11133 return (OOC_IR__Expression)i0;
11134 goto l179;
11135 case 17:
11136 i0 = (OOC_INT64)arguments;
11137 i0 = _check_pointer(i0, 206831);
11138 i1 = OOC_ARRAY_LENGTH(i0, 0);
11139 i2 = (OOC_INT64)design;
11140 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 206815));
11141 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 206831))*8);
11142 i1 = (OOC_INT64)b;
11143 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewOdd((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0);
11144 return (OOC_IR__Expression)i0;
11145 goto l179;
11146 case 18:
11147 i0 = (OOC_INT64)arguments;
11148 i1 = _check_pointer(i0, 206887);
11149 i2 = OOC_ARRAY_LENGTH(i1, 0);
11150 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 206887))*8);
11151 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 206890))+8);
11152 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 206896)))), &_td_OOC_SymbolTable__PredefTypeDesc);
11153 if (i1) goto l154;
11154 i1=0u;
11155 goto l160;
11156 l154:
11157 i1 = _check_pointer(i0, 206939);
11158 i2 = OOC_ARRAY_LENGTH(i1, 0);
11159 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 206939))*8);
11160 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 206942))+8);
11161 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 206952)))), &_td_OOC_SymbolTable__PredefTypeDesc, 206952)), 206963))+72);
11162 i1 = i1==2;
11163 if (i1) goto l157;
11164 i1 = _check_pointer(i0, 207011);
11165 i2 = OOC_ARRAY_LENGTH(i1, 0);
11166 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 207011))*8);
11167 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 207014))+8);
11168 i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 207024)))), &_td_OOC_SymbolTable__PredefTypeDesc, 207024)), 207035))+72);
11169 i1 = i1==3;
11170
11171 goto l160;
11172 l157:
11173 i1=1u;
11174 l160:
11175 if (i1) goto l162;
11176 targetType = 5;
11177 goto l163;
11178 l162:
11179 targetType = 6;
11180 l163:
11181 i0 = _check_pointer(i0, 207315);
11182 i1 = OOC_ARRAY_LENGTH(i0, 0);
11183 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 207315))*8);
11184 i1 = (OOC_INT64)b;
11185 i0 = (OOC_INT64)OOC_IR__BuilderDesc_AssertChar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
11186 i1 = targetType;
11187 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i1);
11188 i2 = (OOC_INT64)b;
11189 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i2, (OOC_SymbolTable__Type)i1, (OOC_IR__Expression)i0);
11190 return (OOC_IR__Expression)i0;
11191 goto l179;
11192 case 26:
11193 i0 = (OOC_INT64)arguments;
11194 i1 = _check_pointer(i0, 207497);
11195 i2 = OOC_ARRAY_LENGTH(i1, 0);
11196 i3 = _check_pointer(i0, 207483);
11197 i4 = OOC_ARRAY_LENGTH(i3, 0);
11198 i0 = _check_pointer(i0, 207469);
11199 i5 = OOC_ARRAY_LENGTH(i0, 0);
11200 i6 = (OOC_INT64)design;
11201 i7 = (OOC_INT64)b;
11202 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(2, i2, OOC_UINT8, 207497))*8);
11203 i2 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(1, i4, OOC_UINT8, 207483))*8);
11204 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i5, OOC_UINT8, 207469))*8);
11205 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i6, 207421));
11206 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 207399)))), OOC_IR__BuilderDesc_NewMoveBlock)),OOC_IR__BuilderDesc_NewMoveBlock)((OOC_IR__Builder)i7, (OOC_Scanner_SymList__Symbol)i3, (OOC_IR__Expression)i0, (OOC_IR__Expression)i2, (OOC_IR__Expression)i1);
11207 return (OOC_IR__Expression)i0;
11208 goto l179;
11209 case 27:
11210 i0 = (OOC_INT64)arguments;
11211 i1 = _check_pointer(i0, 207559);
11212 i2 = OOC_ARRAY_LENGTH(i1, 0);
11213 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 207559))*8);
11214 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 207562))+8);
11215 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 207568)))), &_td_OOC_SymbolTable__PointerDesc);
11216 if (i1) goto l168;
11217 i1 = _check_pointer(i0, 207622);
11218 i2 = OOC_ARRAY_LENGTH(i1, 0);
11219 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 207622))*8);
11220 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 207625))+8);
11221 i1 = OOC_SymbolTable_TypeRules__IsPredefType((OOC_SymbolTable__Type)i1, 12);
11222
11223 goto l170;
11224 l168:
11225 i1=1u;
11226 l170:
11227 if (i1) goto l172;
11228 i0 = _check_pointer(i0, 207933);
11229 i1 = OOC_ARRAY_LENGTH(i0, 0);
11230 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 207933))*8);
11231 i1 = (OOC_INT64)b;
11232 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 207936));
11233 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 207901)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 50, (OOC_Scanner_SymList__Symbol)i0);
11234 goto l173;
11235 l172:
11236 i0 = _check_pointer(i0, 207680);
11237 i1 = OOC_ARRAY_LENGTH(i0, 0);
11238 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 207680))*8);
11239 i1 = (OOC_INT64)b;
11240 OOC_IR__BuilderDesc_AssertVar((OOC_IR__Builder)i1, (OOC_IR__Expression)i0);
11241 i0 = (OOC_INT64)arguments;
11242 i1 = _check_pointer(i0, 207713);
11243 i2 = OOC_ARRAY_LENGTH(i1, 0);
11244 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 207713))*8);
11245 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 207716))+8);
11246 type = (OOC_SymbolTable__Type)i1;
11247 i1 = _check_pointer(i0, 207870);
11248 i2 = OOC_ARRAY_LENGTH(i1, 0);
11249 i0 = _check_pointer(i0, 207851);
11250 i3 = OOC_ARRAY_LENGTH(i0, 0);
11251 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 207851))*8);
11252 i3 = (OOC_INT64)design;
11253 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 207854))+8);
11254 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 207836));
11255 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 207870))*8);
11256 i2 = (OOC_INT64)b;
11257 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewNewBlock((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i0, (OOC_IR__Expression)i1);
11258 i1 = (OOC_INT64)arguments;
11259 i1 = _check_pointer(i1, 207794);
11260 i2 = OOC_ARRAY_LENGTH(i1, 0);
11261 i4 = (OOC_INT64)b;
11262 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(0, i2, OOC_UINT8, 207794))*8);
11263 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 207778));
11264 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 207741)))), OOC_IR__BuilderDesc_NewAssignment)),OOC_IR__BuilderDesc_NewAssignment)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i1, (OOC_IR__Expression)i0);
11265 return (OOC_IR__Expression)i0;
11266 l173:
11267 i0 = (OOC_INT64)b;
11268 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 207972))+48);
11269 return (OOC_IR__Expression)i0;
11270 goto l179;
11271 case 24:
11272 i0 = (OOC_INT64)arguments;
11273 i0 = _check_pointer(i0, 208164);
11274 i1 = OOC_ARRAY_LENGTH(i0, 0);
11275 i2 = (OOC_INT64)design;
11276 i3 = (OOC_INT64)b;
11277 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i1, OOC_UINT8, 208164))*8);
11278 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 208149));
11279 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 208135)))), OOC_IR__BuilderDesc_NewAdr)),OOC_IR__BuilderDesc_NewAdr)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i1, (OOC_IR__Expression)i0);
11280 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(7);
11281 i2 = (OOC_INT64)b;
11282 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeConv((OOC_IR__Builder)i2, (OOC_SymbolTable__Type)i1, (OOC_IR__Expression)i0);
11283 return (OOC_IR__Expression)i0;
11284 goto l179;
11285 case 25:
11286 i0 = (OOC_INT64)arguments;
11287 i1 = _check_pointer(i0, 208256);
11288 i2 = OOC_ARRAY_LENGTH(i1, 0);
11289 i0 = _check_pointer(i0, 208242);
11290 i3 = OOC_ARRAY_LENGTH(i0, 0);
11291 i4 = (OOC_INT64)design;
11292 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 208226));
11293 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 208256))*8);
11294 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 208242))*8);
11295 i2 = (OOC_INT64)b;
11296 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewShift((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1, 0u);
11297 return (OOC_IR__Expression)i0;
11298 goto l179;
11299 case 29:
11300 i0 = (OOC_INT64)arguments;
11301 i1 = _check_pointer(i0, 208365);
11302 i2 = OOC_ARRAY_LENGTH(i1, 0);
11303 i0 = _check_pointer(i0, 208351);
11304 i3 = OOC_ARRAY_LENGTH(i0, 0);
11305 i4 = (OOC_INT64)design;
11306 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 208335));
11307 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 208365))*8);
11308 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 208351))*8);
11309 i2 = (OOC_INT64)b;
11310 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeCast((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1);
11311 return (OOC_IR__Expression)i0;
11312 goto l179;
11313 case 28:
11314 i0 = (OOC_INT64)arguments;
11315 i1 = _check_pointer(i0, 208464);
11316 i2 = OOC_ARRAY_LENGTH(i1, 0);
11317 i0 = _check_pointer(i0, 208450);
11318 i3 = OOC_ARRAY_LENGTH(i0, 0);
11319 i4 = (OOC_INT64)design;
11320 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i4, 208434));
11321 i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(1, i2, OOC_UINT8, 208464))*8);
11322 i0 = (OOC_INT64)*(OOC_INT64*)(i0+(_check_index(0, i3, OOC_UINT8, 208450))*8);
11323 i2 = (OOC_INT64)b;
11324 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewShift((OOC_IR__Builder)i2, (OOC_Scanner_SymList__Symbol)i4, (OOC_IR__Expression)i0, (OOC_IR__Expression)i1, 1u);
11325 return (OOC_IR__Expression)i0;
11326 goto l179;
11327 default:
11328 _failed_case(i0, 197906);
11329 goto l179;
11330 }
11331 l179:
11332 _failed_function(197462); return 0;
11333 ;
11334 }
11335
11336
11337 OOC_CHAR8 OOC_IR__BuilderDesc_NewCall_IsStatement(OOC_IR__Expression expr) {
11338 register OOC_INT64 i0,i1;
11339
11340 i0 = (OOC_INT64)expr;
11341 i1 = i0==(OOC_INT64)0;
11342 if (i1) goto l3;
11343 i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(17);
11344 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 208662))+8);
11345 i0 = i0==i1;
11346
11347 goto l4;
11348 l3:
11349 i0=1u;
11350 l4:
11351 return i0;
11352 ;
11353 }
11354
11355
11356 i0 = (OOC_INT64)design;
11357 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 208747)))), &_td_OOC_IR__PredefProcDesc);
11358 if (i1) goto l51;
11359 i1 = (OOC_INT64)b;
11360 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 209466))+48);
11361 i2 = i0==i2;
11362 if (i2) goto l49;
11363 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 209606))+8);
11364 i2 = OOC_SymbolTable_TypeRules__IsValidReceiverType((OOC_SymbolTable__Type)i2);
11365 if (i2) goto l7;
11366 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 209636))+8);
11367 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 209642)))), &_td_OOC_SymbolTable__TypeVarDesc);
11368
11369 goto l9;
11370 l7:
11371 i2=1u;
11372 l9:
11373 if (i2) goto l11;
11374 i2=0u;
11375 goto l13;
11376 l11:
11377 i2 = (OOC_INT64)arguments;
11378 i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 209687)), 0);
11379 i2 = i2==1;
11380
11381 l13:
11382 if (i2) goto l15;
11383 i2=0u;
11384 goto l17;
11385 l15:
11386 i2 = (OOC_INT64)arguments;
11387 i2 = _check_pointer(i2, 209707);
11388 i3 = OOC_ARRAY_LENGTH(i2, 0);
11389 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i3, OOC_UINT8, 209707))*8);
11390 i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 209711)))), &_td_OOC_IR__TypeRefDesc);
11391
11392 l17:
11393 if (i2) goto l47;
11394 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 209867))+56);
11395 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 209858))+8);
11396 i2 = i3==i2;
11397 if (i2) goto l45;
11398 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 209966))+8);
11399 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 209966))+8);
11400 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 209971)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i3);
11401 i2 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 209982)))), &_td_OOC_SymbolTable__FormalParsDesc));
11402 if (i2) goto l43;
11403 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 210094))+8);
11404 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 210094))+8);
11405 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 210099)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i3);
11406 type = (OOC_SymbolTable__Type)i2;
11407 i3 = isFunctionCall;
11408 if (i3) goto l25;
11409 i4=0u;
11410 goto l27;
11411 l25:
11412 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 210149)))), &_td_OOC_SymbolTable__FormalParsDesc, 210149)), 210160))+80);
11413 i4 = i4==(OOC_INT64)0;
11414
11415 l27:
11416 if (i4) goto l41;
11417 i3 = !i3;
11418 if (i3) goto l31;
11419 i2=0u;
11420 goto l33;
11421 l31:
11422 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 210291)))), &_td_OOC_SymbolTable__FormalParsDesc, 210291)), 210302))+80);
11423 i2 = i2!=(OOC_INT64)0;
11424
11425 l33:
11426 if (i2) goto l39;
11427 call = (OOC_IR__Call)((OOC_INT64)RT0__NewObject(_td_OOC_IR__Call.baseTypes[0]));
11428 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 210446)))), &_td_OOC_IR__SelectProcDesc);
11429 if (i1) goto l37;
11430 receiver = (OOC_IR__Expression)(OOC_INT64)0;
11431 i1=(OOC_INT64)0;
11432 goto l38;
11433 l37:
11434 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 210497)))), &_td_OOC_IR__SelectProcDesc, 210497)), 210508))+16);
11435 receiver = (OOC_IR__Expression)i1;
11436
11437 l38:
11438 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 210635))+8);
11439 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 210609));
11440 i3 = (OOC_INT64)endOfArgsSym;
11441 OOC_IR__BuilderDesc_NewCall_TransformArgs((OOC_Scanner_SymList__Symbol)i0, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&arguments, (void*)(OOC_INT64)&formalPars);
11442 i0 = (OOC_INT64)formalPars;
11443 i1 = (OOC_INT64)arguments;
11444 i2 = (OOC_INT64)design;
11445 i3 = (OOC_INT64)call;
11446 OOC_IR__InitCall((OOC_IR__Call)i3, (OOC_IR__Expression)i2, (OOC_IR__ExpressionList)i1, (OOC_SymbolTable__VarDeclArray)i0);
11447 return (OOC_IR__Expression)i3;
11448 goto l70;
11449 l39:
11450 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 210382));
11451 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 210344)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 36, (OOC_Scanner_SymList__Symbol)i0);
11452 return (OOC_IR__Expression)i0;
11453 goto l70;
11454 l41:
11455 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 210241));
11456 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 210202)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 37, (OOC_Scanner_SymList__Symbol)i0);
11457 return (OOC_IR__Expression)i0;
11458 goto l70;
11459 l43:
11460 i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 210053));
11461 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 210022)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i1, 35, (OOC_Scanner_SymList__Symbol)i0);
11462 return (OOC_IR__Expression)i0;
11463 goto l70;
11464 l45:
11465 i2 = (OOC_INT64)endOfArgsSym;
11466 i3 = (OOC_INT64)arguments;
11467 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 209899)))), OOC_IR__BuilderDesc_NewQualType)),OOC_IR__BuilderDesc_NewQualType)((OOC_IR__Builder)i1, (OOC_IR__Expression)i0, (OOC_IR__ExpressionList)i3, (OOC_Scanner_SymList__Symbol)i2);
11468 return (OOC_IR__Expression)i0;
11469 goto l70;
11470 l47:
11471 i2 = (OOC_INT64)arguments;
11472 i3 = _check_pointer(i2, 209824);
11473 i4 = OOC_ARRAY_LENGTH(i3, 0);
11474 i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(0, i4, OOC_UINT8, 209824))*8);
11475 i2 = _check_pointer(i2, 209767);
11476 i4 = OOC_ARRAY_LENGTH(i2, 0);
11477 i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(0, i4, OOC_UINT8, 209767))*8);
11478 i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 209770));
11479 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewTypeGuard((OOC_IR__Builder)i1, (OOC_Scanner_SymList__Symbol)i2, (OOC_IR__Expression)i0, (OOC_IR__TypeRef)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 209828)))), &_td_OOC_IR__TypeRefDesc, 209828)));
11480 return (OOC_IR__Expression)i0;
11481 goto l70;
11482 l49:
11483 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 209500))+48);
11484 return (OOC_IR__Expression)i0;
11485 goto l70;
11486 l51:
11487 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 208789))+16);
11488 i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 208800)))), &_td_OOC_SymbolTable__PredefProcDesc, 208800);
11489 predefProc = (OOC_SymbolTable__PredefProc)i0;
11490 i1 = *(OOC_INT16*)((_check_pointer(i0, 208878))+92);
11491 i0 = *(OOC_INT16*)((_check_pointer(i0, 208857))+90);
11492 i0 = OOC_IR__BuilderDesc_NewCall_CheckNumberOfArguments(i0, i1);
11493 i0 = !i0;
11494 if (!i0) goto l54;
11495 i0 = (OOC_INT64)b;
11496 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 209094))+48);
11497 return (OOC_IR__Expression)i0;
11498 l54:
11499 i0 = (OOC_INT64)predefProc;
11500 i0 = *(OOC_INT16*)((_check_pointer(i0, 209166))+88);
11501 i1 = (OOC_INT64)design;
11502 i0 = (OOC_INT64)OOC_IR__BuilderDesc_NewCall_TranslatePredef((OOC_IR__PredefProc)i1, i0);
11503 expr = (OOC_IR__Expression)i0;
11504 i1 = isFunctionCall;
11505 if (i1) goto l57;
11506 i2=0u;
11507 goto l59;
11508 l57:
11509 i2 = OOC_IR__BuilderDesc_NewCall_IsStatement((OOC_IR__Expression)i0);
11510
11511 l59:
11512 if (i2) goto l68;
11513 i1 = !i1;
11514 if (i1) goto l63;
11515 i1=0u;
11516 goto l65;
11517 l63:
11518 i1 = OOC_IR__BuilderDesc_NewCall_IsStatement((OOC_IR__Expression)i0);
11519 i1 = !i1;
11520
11521 l65:
11522 if (!i1) goto l69;
11523 i1 = (OOC_INT64)design;
11524 i2 = (OOC_INT64)b;
11525 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 209392));
11526 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 209354)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 36, (OOC_Scanner_SymList__Symbol)i1);
11527 return (OOC_IR__Expression)i1;
11528 goto l69;
11529 l68:
11530 i1 = (OOC_INT64)design;
11531 i2 = (OOC_INT64)b;
11532 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 209276));
11533 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 209237)))), OOC_IR__BuilderDesc_ErrExpr)),OOC_IR__BuilderDesc_ErrExpr)((OOC_IR__Builder)i2, 37, (OOC_Scanner_SymList__Symbol)i1);
11534 return (OOC_IR__Expression)i1;
11535 l69:
11536 return (OOC_IR__Expression)i0;
11537 l70:
11538 _failed_function(187964); return 0;
11539 ;
11540 }
11541
OOC_OOC_IR_init(void)11542 void OOC_OOC_IR_init(void) {
11543 register OOC_INT64 i0;
11544 _c0 = Object__NewLatin1Region((OOC_CHAR8*)"", 1, 0, 0);
11545 _c1 = Object__NewLatin1Region((OOC_CHAR8*)"NIL", 4, 0, 3);
11546 _c2 = Object__NewLatin1Char(97u);
11547
11548 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR__ErrorContext.baseTypes[0]);
11549 OOC_IR__irContext = (OOC_IR__ErrorContext)i0;
11550 OOC_Error__InitContext((OOC_Error__Context)i0, (OOC_CHAR8*)"OOC:IR", 7);
11551 return;
11552 ;
11553 }
11554
OOC_OOC_IR_destroy(void)11555 void OOC_OOC_IR_destroy(void) {
11556 }
11557
11558 /* --- */
11559