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