1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
23 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
24 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
25 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
26 typedef struct RootObj RootObj;
27 typedef struct TNimType TNimType;
28 typedef struct TNimNode TNimNode;
29 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
30 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
31 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
32 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
33 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
34 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
35 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
36 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
37 typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
38 typedef struct NimStringDesc NimStringDesc;
39 typedef struct TGenericSeq TGenericSeq;
40 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
41 typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
42 typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
43 typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
44 typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
45 typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
46 typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
47 typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
48 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
49 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
50 typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
51 typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
52 typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
53 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
54 typedef struct tyTuple__eCO8mA2VZCpG2fD1wGsc8Q tyTuple__eCO8mA2VZCpG2fD1wGsc8Q;
55 typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
56 typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
57 typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
58 typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
59 typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
60 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
61 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
62 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
63 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
64 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
65 struct TNimType {
66 NI size;
67 NI align;
68 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
69 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
70 TNimType* base;
71 TNimNode* node;
72 void* finalizer;
73 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
74 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
75 };
76 struct RootObj {
77 TNimType* m_type;
78 };
79 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
80 NI32 module;
81 NI32 item;
82 };
83 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
84   RootObj Sup;
85 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
86 };
87 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
88 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
89 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
90 NU16 line;
91 NI16 col;
92 NI32 fileIndex;
93 };
94 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
95 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
96 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
97 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
98 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
99 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
100 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
101 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
102 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
103 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
104 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
105 };
106 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
107   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
108 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
109 union{
110 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
111 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
112 } _kind_1;
113 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
114 NI bitsize;
115 NI alignment;
116 } _kind_2;
117 };
118 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
119 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
120 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
121 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
122 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
123 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
124 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
125 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
126 NI position;
127 NI offset;
128 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
129 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
130 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
131 };
132 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
133 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
134 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
135 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
136   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
137 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
138 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
139 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
140 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
141 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
142 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
143 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
144 NI64 size;
145 NI16 align;
146 NI16 paddingAtEnd;
147 NI16 lockLevel;
148 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
149 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
150 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
151 };
152 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
153 typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
154 typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
155 typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
156 typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
157 typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
158 struct TGenericSeq {
159 NI len;
160 NI reserved;
161 };
162 struct NimStringDesc {
163   TGenericSeq Sup;
164 NIM_CHAR data[SEQ_DECL_SIZE];
165 };
166 struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
167 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
168 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
169 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
170 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
171 NI intSize;
172 NI floatSize;
173 NI ptrSize;
174 NimStringDesc* tnl;
175 };
176 typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
177 typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
178 struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
179 tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
180 NI counter;
181 };
182 struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
183 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
184 NIM_BOOL trackPosAttached;
185 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
186 tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
187 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
188 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
189 tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
190 NI32 systemFileIdx;
191 };
192 typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
193 typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
194 typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
195 typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
196 typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
197 struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
198 tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
199 NI counter;
200 };
201 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
202 typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
203 typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
204 typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
205 typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
206 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
207 NI Field0;
208 NI Field1;
209 NI Field2;
210 };
211 typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
212 typedef struct {
213 N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
214 void* ClE_0;
215 } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
216 typedef struct {
217 N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
218 void* ClE_0;
219 } tyProc__k2HFjxisIgDALbEUFojxaQ;
220 typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
221 typedef struct {
222 N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
223 void* ClE_0;
224 } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
225 struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
226 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
227 tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
228 NI linesCompiled;
229 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
230 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
231 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
232 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
233 tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
234 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
235 NimStringDesc* unitSep;
236 NI evalTemplateCounter;
237 NI evalMacroCounter;
238 NI8 exitcode;
239 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
240 NimStringDesc* cmdInput;
241 NIM_BOOL projectIsCmd;
242 NIM_BOOL implicitCmd;
243 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
244 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
245 NIM_BOOL hintProcessingDots;
246 NI verbosity;
247 NI numberOfProcessors;
248 NF lastCmdTime;
249 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
250 NI spellSuggestMax;
251 tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
252 NimStringDesc* headerFile;
253 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
254 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
255 NimStringDesc* arguments;
256 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
257 NIM_BOOL oldNewlines;
258 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
259 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
260 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
261 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
262 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
263 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
264 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
265 NI mainPackageId;
266 NI errorCounter;
267 NI hintCounter;
268 NI warnCounter;
269 NI errorMax;
270 NI maxLoopIterationsVM;
271 NIM_BOOL isVmTrace;
272 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
273 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
274 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
275 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
276 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
277 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
278 NimStringDesc* outFile;
279 NimStringDesc* outDir;
280 NimStringDesc* jsonBuildFile;
281 NimStringDesc* prefixDir;
282 NimStringDesc* libpath;
283 NimStringDesc* nimcacheDir;
284 tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
285 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
286 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
287 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
288 NimStringDesc* projectName;
289 NimStringDesc* projectPath;
290 NimStringDesc* projectFull;
291 NIM_BOOL projectIsStdin;
292 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
293 NI32 projectMainIdx;
294 NI32 projectMainIdx2;
295 NimStringDesc* command;
296 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
297 NimStringDesc* commandLine;
298 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
299 NIM_BOOL keepComments;
300 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
301 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
302 NimStringDesc* docSeeSrcUrl;
303 NimStringDesc* docRoot;
304 NimStringDesc* docCmd;
305 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
306 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
307 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
308 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
309 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
310 NimStringDesc* linkOptionsCmd;
311 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
312 NimStringDesc* linkOptions;
313 NimStringDesc* compileOptions;
314 NimStringDesc* cCompilerPath;
315 tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
316 tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
317 NI suggestVersion;
318 NI suggestMaxResults;
319 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
320 tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
321 tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
322 NimStringDesc* cppCustomNamespace;
323 NimStringDesc* nimMainPrefix;
324 tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
325 };
326 typedef NU8 tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w;
327 typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
328 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
329 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
330 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
331 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
332 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
333 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
334 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
335 union{
336 struct {NI64 intVal;
337 } _kind_1;
338 struct {NF floatVal;
339 } _kind_2;
340 struct {NimStringDesc* strVal;
341 } _kind_3;
342 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
343 } _kind_4;
344 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
345 } _kind_5;
346 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
347 } _kind_6;
348 };
349 };
350 typedef NU8 tyEnum_Endianness__0BVYNY0K9cz7BUPI3AnbEQw;
351 struct tyTuple__eCO8mA2VZCpG2fD1wGsc8Q {
352 NimStringDesc* Field0;
353 NI Field1;
354 tyEnum_Endianness__0BVYNY0K9cz7BUPI3AnbEQw Field2;
355 NI Field3;
356 NI Field4;
357 };
358 typedef tyTuple__eCO8mA2VZCpG2fD1wGsc8Q tyArray__9cwFB2SXj9aw9cyLiDbvSiBEg[26];
359 struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
360 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
361 NimStringDesc* Field1;
362 };
363 struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
364 NI Field0;
365 NimStringDesc* Field1;
366 NI32 Field2;
367 };
368 struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
369 NimStringDesc* fullPath;
370 NimStringDesc* projPath;
371 NimStringDesc* shortName;
372 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
373 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
374 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
375 NimStringDesc* dirtyFile;
376 NimStringDesc* hash;
377 NIM_BOOL dirty;
378 };
379 struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
380 NI Field0;
381 NimStringDesc* Field1;
382 };
383 typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
384 struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
385 NimStringDesc* nimname;
386 NimStringDesc* cname;
387 NimStringDesc* obj;
388 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
389 NimStringDesc* customArgs;
390 };
391 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
392   TGenericSeq Sup;
393   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
394 };
395 struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
396   TGenericSeq Sup;
397   tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
398 };
399 struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
400   TGenericSeq Sup;
401   tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
402 };
403 struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
404   TGenericSeq Sup;
405   tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
406 };
407 struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
408   TGenericSeq Sup;
409   tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
410 };
411 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
412   TGenericSeq Sup;
413   NimStringDesc* data[SEQ_DECL_SIZE];
414 };
415 struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
416   TGenericSeq Sup;
417   tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
418 };
419 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
420   TGenericSeq Sup;
421   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
422 };
423 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
424 N_LIB_PRIVATE N_NIMCALL(NI64, getSize__types_3336)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
425 N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType__ccgutils_140)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
426 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
427 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
428 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
429 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
430 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
431 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
432 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
433 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHex__pureZstrutils_1792)(NI x, NI len);
434 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
435 static N_INLINE(void, toCChar__msgs_47)(NIM_CHAR c, NimStringDesc** result);
436 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
437 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToOctal)(NIM_CHAR c);
438 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getPragmaStmt__ccgutils_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw w);
439 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
440 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichPragma__trees_244)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
441 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__Z07Nb1SkYoziC0Zz9be4mTA_2 = {
442 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x90, 0x00,
443 0x00}
444 ;
445 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_3, "X", 1);
446 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_4, "dollar", 6);
447 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_5, "percent", 7);
448 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_6, "amp", 3);
449 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_7, "roof", 4);
450 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_8, "emark", 5);
451 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_9, "qmark", 5);
452 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_10, "star", 4);
453 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_11, "plus", 4);
454 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_12, "minus", 5);
455 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_13, "slash", 5);
456 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_14, "backslash", 9);
457 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_15, "eq", 2);
458 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_16, "lt", 2);
459 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_17, "gt", 2);
460 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_18, "tilde", 5);
461 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_19, "colon", 5);
462 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_20, "dot", 3);
463 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_21, "at", 2);
464 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_22, "bar", 3);
465 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_23, "_", 1);
466 STRING_LITERAL(TM__Z07Nb1SkYoziC0Zz9be4mTA_24, "\"", 1);
467 extern NIM_CONST tyArray__9cwFB2SXj9aw9cyLiDbvSiBEg CPU__platform_691;
N_NIMCALL(tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w,mapSetType__ccgutils_140)468 N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType__ccgutils_140)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
469 	tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w result;
470 	NI64 T1_;
471 	result = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
472 	T1_ = (NI64)0;
473 	T1_ = getSize__types_3336(conf, typ);
474 	switch (((NI) (T1_))) {
475 	case ((NI) 1):
476 	{
477 		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 4);
478 	}
479 	break;
480 	case ((NI) 2):
481 	{
482 		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 5);
483 	}
484 	break;
485 	case ((NI) 4):
486 	{
487 		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 6);
488 	}
489 	break;
490 	case ((NI) 8):
491 	{
492 		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 7);
493 	}
494 	break;
495 	default:
496 	{
497 		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17);
498 	}
499 	break;
500 	}
501 	return result;
502 }
N_NIMCALL(NIM_BOOL,ccgIntroducedPtr__ccgutils_153)503 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr__ccgutils_153)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* retType) {
504 	NIM_BOOL result;
505 	tyObject_TType__facALICuu8zUj0hjvbTLFg* pt;
506 {	result = (NIM_BOOL)0;
507 	pt = skipTypes__ast_3735((*s).typ, TM__Z07Nb1SkYoziC0Zz9be4mTA_2);
508 	{
509 		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 14))&63U)))!=0)) goto LA3_;
510 		result = NIM_TRUE;
511 		goto BeforeRet_;
512 	}
513 	goto LA1_;
514 	LA3_: ;
515 	{
516 		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 13))&63U)))!=0)) goto LA6_;
517 		result = NIM_FALSE;
518 		goto BeforeRet_;
519 	}
520 	goto LA1_;
521 	LA6_: ;
522 	LA1_: ;
523 	switch ((*pt).kind) {
524 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
525 	{
526 		{
527 			NIM_BOOL T11_;
528 			T11_ = (NIM_BOOL)0;
529 			T11_ = !(((*(*s).typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
530 			if (!(T11_)) goto LA12_;
531 			T11_ = (((*(*(*s).typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
532 			LA12_: ;
533 			if (!T11_) goto LA13_;
534 			result = NIM_TRUE;
535 		}
536 		goto LA9_;
537 		LA13_: ;
538 		{
539 			NIM_BOOL T16_;
540 			NI64 T18_;
541 			T16_ = (NIM_BOOL)0;
542 			T16_ = (((*s).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 20))&31U)))!=0);
543 			if (T16_) goto LA17_;
544 			T18_ = (NI64)0;
545 			T18_ = getSize__types_3336(conf, pt);
546 			T16_ = (((NI64) ((NI)((*conf).target.floatSize * ((NI) 3)))) < T18_);
547 			LA17_: ;
548 			if (!T16_) goto LA19_;
549 			result = NIM_TRUE;
550 		}
551 		goto LA9_;
552 		LA19_: ;
553 		{
554 			NIM_BOOL T22_;
555 			T22_ = (NIM_BOOL)0;
556 			T22_ = (((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
557 			if (!(T22_)) goto LA23_;
558 			T22_ = ((*pt).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
559 			LA23_: ;
560 			if (!T22_) goto LA24_;
561 			result = NIM_FALSE;
562 		}
563 		goto LA9_;
564 		LA24_: ;
565 		{
566 			result = NIM_TRUE;
567 		}
568 		LA9_: ;
569 	}
570 	break;
571 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
572 	{
573 		NIM_BOOL T28_;
574 		NI64 T29_;
575 		T28_ = (NIM_BOOL)0;
576 		T29_ = (NI64)0;
577 		T29_ = getSize__types_3336(conf, pt);
578 		T28_ = (((NI64) ((NI)((*conf).target.floatSize * ((NI) 3)))) < T29_);
579 		if (T28_) goto LA30_;
580 		T28_ = (((*s).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 20))&31U)))!=0);
581 		LA30_: ;
582 		result = T28_;
583 	}
584 	break;
585 	default:
586 	{
587 		result = NIM_FALSE;
588 	}
589 	break;
590 	}
591 	{
592 		NIM_BOOL T34_;
593 		NIM_BOOL T35_;
594 		NIM_BOOL T40_;
595 		NIM_BOOL T42_;
596 		tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T44_;
597 		T34_ = (NIM_BOOL)0;
598 		T35_ = (NIM_BOOL)0;
599 		T35_ = ((*s).position == ((NI) 0));
600 		if (!(T35_)) goto LA36_;
601 		T35_ = !((retType == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
602 		LA36_: ;
603 		T34_ = T35_;
604 		if (!(T34_)) goto LA37_;
605 		T34_ = ((*retType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
606 		LA37_: ;
607 		if (!T34_) goto LA38_;
608 		T40_ = (NIM_BOOL)0;
609 		T40_ = ((*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48) || (*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26));
610 		if (T40_) goto LA41_;
611 		T42_ = (NIM_BOOL)0;
612 		T42_ = ((*pt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19));
613 		if (!(T42_)) goto LA43_;
614 		T44_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
615 		T44_ = mapSetType__ccgutils_140(conf, pt);
616 		T42_ = (T44_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17));
617 		LA43_: ;
618 		T40_ = T42_;
619 		LA41_: ;
620 		result = !(T40_);
621 	}
622 	LA38_: ;
623 	}BeforeRet_: ;
624 	return result;
625 }
N_INLINE(void,nimCopyMem)626 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
627 	void* T1_;
628 	T1_ = (void*)0;
629 	T1_ = memcpy(dest, source, ((size_t) (size)));
630 }
N_INLINE(void,copyMem__system_1727)631 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
632 	nimCopyMem(dest, source, size);
633 }
N_INLINE(void,appendString)634 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
635 	{
636 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
637 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
638 		(*dest).Sup.len += (*src).Sup.len;
639 	}
640 	LA3_: ;
641 }
N_INLINE(void,appendChar)642 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
643 	(*dest).data[(*dest).Sup.len] = c;
644 	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
645 	(*dest).Sup.len += ((NI) 1);
646 }
N_NIMCALL(NimStringDesc *,mangle__ccgutils_112)647 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangle__ccgutils_112)(NimStringDesc* name) {
648 	NimStringDesc* result;
649 	NI start;
650 	NIM_BOOL requiresUnderscore;
651 	result = NIM_NIL;
652 	result = rawNewString(((NI) ((name ? name->Sup.len : 0))));
653 	start = ((NI) 0);
654 	{
655 		NimStringDesc* T5_;
656 		if (!(((NU8)(name->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(name->data[((NI) 0)])) <= ((NU8)(57)))) goto LA3_;
657 		T5_ = NIM_NIL;
658 		T5_ = rawNewString(2);
659 appendString(T5_, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_3));
660 appendChar(T5_, name->data[((NI) 0)]);
661 		result = resizeString(result, (T5_ ? T5_->Sup.len : 0) + 0);
662 appendString(result, T5_);
663 		start = ((NI) 1);
664 	}
665 	LA3_: ;
666 	requiresUnderscore = NIM_FALSE;
667 	{
668 		NI i;
669 		NI colontmp_;
670 		NI i_2;
671 		i = (NI)0;
672 		colontmp_ = (NI)0;
673 		colontmp_ = (name ? name->Sup.len : 0);
674 		i_2 = start;
675 		{
676 			while (1) {
677 				NIM_CHAR c;
678 				if (!(i_2 < colontmp_)) goto LA8;
679 				i = i_2;
680 				c = name->data[i];
681 				switch (((NU8)(c))) {
682 				case 97 ... 122:
683 				case 48 ... 57:
684 				case 65 ... 90:
685 				{
686 					result = addChar(result, c);
687 				}
688 				break;
689 				case 95:
690 				{
691 					{
692 						NIM_BOOL T13_;
693 						NIM_BOOL T14_;
694 						T13_ = (NIM_BOOL)0;
695 						T14_ = (NIM_BOOL)0;
696 						T14_ = (((NI) 0) < i);
697 						if (!(T14_)) goto LA15_;
698 						T14_ = (i < (NI)((name ? name->Sup.len : 0) - ((NI) 1)));
699 						LA15_: ;
700 						T13_ = T14_;
701 						if (!(T13_)) goto LA16_;
702 						T13_ = (((NU8)(name->data[(NI)(i + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)(name->data[(NI)(i + ((NI) 1))])) <= ((NU8)(57)));
703 						LA16_: ;
704 						if (!T13_) goto LA17_;
705 					}
706 					goto LA11_;
707 					LA17_: ;
708 					{
709 						result = addChar(result, c);
710 					}
711 					LA11_: ;
712 				}
713 				break;
714 				case 36:
715 				{
716 					result = resizeString(result, 6);
717 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_4));
718 					requiresUnderscore = NIM_TRUE;
719 				}
720 				break;
721 				case 37:
722 				{
723 					result = resizeString(result, 7);
724 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_5));
725 					requiresUnderscore = NIM_TRUE;
726 				}
727 				break;
728 				case 38:
729 				{
730 					result = resizeString(result, 3);
731 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_6));
732 					requiresUnderscore = NIM_TRUE;
733 				}
734 				break;
735 				case 94:
736 				{
737 					result = resizeString(result, 4);
738 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_7));
739 					requiresUnderscore = NIM_TRUE;
740 				}
741 				break;
742 				case 33:
743 				{
744 					result = resizeString(result, 5);
745 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_8));
746 					requiresUnderscore = NIM_TRUE;
747 				}
748 				break;
749 				case 63:
750 				{
751 					result = resizeString(result, 5);
752 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_9));
753 					requiresUnderscore = NIM_TRUE;
754 				}
755 				break;
756 				case 42:
757 				{
758 					result = resizeString(result, 4);
759 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_10));
760 					requiresUnderscore = NIM_TRUE;
761 				}
762 				break;
763 				case 43:
764 				{
765 					result = resizeString(result, 4);
766 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_11));
767 					requiresUnderscore = NIM_TRUE;
768 				}
769 				break;
770 				case 45:
771 				{
772 					result = resizeString(result, 5);
773 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_12));
774 					requiresUnderscore = NIM_TRUE;
775 				}
776 				break;
777 				case 47:
778 				{
779 					result = resizeString(result, 5);
780 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_13));
781 					requiresUnderscore = NIM_TRUE;
782 				}
783 				break;
784 				case 92:
785 				{
786 					result = resizeString(result, 9);
787 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_14));
788 					requiresUnderscore = NIM_TRUE;
789 				}
790 				break;
791 				case 61:
792 				{
793 					result = resizeString(result, 2);
794 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_15));
795 					requiresUnderscore = NIM_TRUE;
796 				}
797 				break;
798 				case 60:
799 				{
800 					result = resizeString(result, 2);
801 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_16));
802 					requiresUnderscore = NIM_TRUE;
803 				}
804 				break;
805 				case 62:
806 				{
807 					result = resizeString(result, 2);
808 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_17));
809 					requiresUnderscore = NIM_TRUE;
810 				}
811 				break;
812 				case 126:
813 				{
814 					result = resizeString(result, 5);
815 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_18));
816 					requiresUnderscore = NIM_TRUE;
817 				}
818 				break;
819 				case 58:
820 				{
821 					result = resizeString(result, 5);
822 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_19));
823 					requiresUnderscore = NIM_TRUE;
824 				}
825 				break;
826 				case 46:
827 				{
828 					result = resizeString(result, 3);
829 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_20));
830 					requiresUnderscore = NIM_TRUE;
831 				}
832 				break;
833 				case 64:
834 				{
835 					result = resizeString(result, 2);
836 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_21));
837 					requiresUnderscore = NIM_TRUE;
838 				}
839 				break;
840 				case 124:
841 				{
842 					result = resizeString(result, 3);
843 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_22));
844 					requiresUnderscore = NIM_TRUE;
845 				}
846 				break;
847 				default:
848 				{
849 					NimStringDesc* T40_;
850 					NimStringDesc* T41_;
851 					T40_ = NIM_NIL;
852 					T41_ = NIM_NIL;
853 					T41_ = toHex__pureZstrutils_1792(((NU8)(c)), ((NI) 2));
854 					T40_ = rawNewString((T41_ ? T41_->Sup.len : 0) + 1);
855 appendString(T40_, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_3));
856 appendString(T40_, T41_);
857 					result = resizeString(result, (T40_ ? T40_->Sup.len : 0) + 0);
858 appendString(result, T40_);
859 					requiresUnderscore = NIM_TRUE;
860 				}
861 				break;
862 				}
863 				i_2 += ((NI) 1);
864 			} LA8: ;
865 		}
866 	}
867 	{
868 		if (!requiresUnderscore) goto LA44_;
869 		result = resizeString(result, 1);
870 appendString(result, ((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_23));
871 	}
872 	LA44_: ;
873 	return result;
874 }
N_INLINE(void,toCChar__msgs_47)875 static N_INLINE(void, toCChar__msgs_47)(NIM_CHAR c, NimStringDesc** result) {
876 	switch (((NU8)(c))) {
877 	case 0 ... 31:
878 	case 127 ... 255:
879 	{
880 		NimStringDesc* T2_;
881 		unsureAsgnRef((void**) (&(*result)), addChar((*result), 92));
882 		T2_ = NIM_NIL;
883 		T2_ = nsuToOctal(c);
884 		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T2_ ? T2_->Sup.len : 0) + 0));
885 appendString((*result), T2_);
886 	}
887 	break;
888 	case 39:
889 	case 34:
890 	case 92:
891 	case 63:
892 	{
893 		unsureAsgnRef((void**) (&(*result)), addChar((*result), 92));
894 		unsureAsgnRef((void**) (&(*result)), addChar((*result), c));
895 	}
896 	break;
897 	default:
898 	{
899 		unsureAsgnRef((void**) (&(*result)), addChar((*result), c));
900 	}
901 	break;
902 	}
903 }
N_NIMCALL(NimStringDesc *,makeSingleLineCString__ccgutils_108)904 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, makeSingleLineCString__ccgutils_108)(NimStringDesc* s) {
905 	NimStringDesc* result;
906 	result = NIM_NIL;
907 	result = copyString(((NimStringDesc*) &TM__Z07Nb1SkYoziC0Zz9be4mTA_24));
908 	{
909 		NIM_CHAR c;
910 		NI i;
911 		NI L;
912 		c = (NIM_CHAR)0;
913 		i = ((NI) 0);
914 		L = (s ? s->Sup.len : 0);
915 		{
916 			while (1) {
917 				if (!(i < L)) goto LA3;
918 				c = s->data[i];
919 				toCChar__msgs_47(c, (&result));
920 				i += ((NI) 1);
921 			} LA3: ;
922 		}
923 	}
924 	result = addChar(result, 34);
925 	return result;
926 }
N_INLINE(NI,len__ast_3198)927 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
928 	NI result;
929 	NI T1_;
930 	result = (NI)0;
931 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
932 	result = T1_;
933 	return result;
934 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,getPragmaStmt__ccgutils_11)935 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getPragmaStmt__ccgutils_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw w) {
936 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
937 {	result = NIM_NIL;
938 	switch ((*n).kind) {
939 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
940 	{
941 		{
942 			NI i;
943 			NI colontmp_;
944 			NI i_2;
945 			i = (NI)0;
946 			colontmp_ = (NI)0;
947 			colontmp_ = len__ast_3198(n);
948 			i_2 = ((NI) 0);
949 			{
950 				while (1) {
951 					if (!(i_2 < colontmp_)) goto LA4;
952 					i = i_2;
953 					result = getPragmaStmt__ccgutils_11((*n)._kind_6.sons->data[i], w);
954 					{
955 						if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA7_;
956 						goto LA2;
957 					}
958 					LA7_: ;
959 					i_2 += ((NI) 1);
960 				} LA4: ;
961 			}
962 		} LA2: ;
963 	}
964 	break;
965 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
966 	{
967 		{
968 			NI i_3;
969 			NI colontmp__2;
970 			NI i_4;
971 			i_3 = (NI)0;
972 			colontmp__2 = (NI)0;
973 			colontmp__2 = len__ast_3198(n);
974 			i_4 = ((NI) 0);
975 			{
976 				while (1) {
977 					if (!(i_4 < colontmp__2)) goto LA12;
978 					i_3 = i_4;
979 					{
980 						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T15_;
981 						T15_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
982 						T15_ = whichPragma__trees_244((*n)._kind_6.sons->data[i_3]);
983 						if (!(T15_ == w)) goto LA16_;
984 						result = (*n)._kind_6.sons->data[i_3];
985 						goto BeforeRet_;
986 					}
987 					LA16_: ;
988 					i_4 += ((NI) 1);
989 				} LA12: ;
990 			}
991 		}
992 	}
993 	break;
994 	default:
995 	{
996 	}
997 	break;
998 	}
999 	}BeforeRet_: ;
1000 	return result;
1001 }
N_NIMCALL(NIM_BOOL,stmtsContainPragma__ccgutils_42)1002 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stmtsContainPragma__ccgutils_42)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw w) {
1003 	NIM_BOOL result;
1004 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
1005 	result = (NIM_BOOL)0;
1006 	T1_ = NIM_NIL;
1007 	T1_ = getPragmaStmt__ccgutils_11(n, w);
1008 	result = !((T1_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
1009 	return result;
1010 }
N_NIMCALL(NI64,hashString__ccgutils_50)1011 N_LIB_PRIVATE N_NIMCALL(NI64, hashString__ccgutils_50)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s) {
1012 	NI64 result;
1013 	result = (NI64)0;
1014 	{
1015 		NU64 b;
1016 		if (!(CPU__platform_691[((*conf).target.targetCPU)- 1].Field4 == ((NI) 64))) goto LA3_;
1017 		b = 0ULL;
1018 		{
1019 			NI i;
1020 			NI colontmp_;
1021 			NI i_2;
1022 			i = (NI)0;
1023 			colontmp_ = (NI)0;
1024 			colontmp_ = (s ? s->Sup.len : 0);
1025 			i_2 = ((NI) 0);
1026 			{
1027 				while (1) {
1028 					if (!(i_2 < colontmp_)) goto LA7;
1029 					i = i_2;
1030 					b = (NU64)((NU64)(b) + (NU64)(((NU64) (((NU) (((NU8)(s->data[i]))))))));
1031 					b = (NU64)((NU64)(b) + (NU64)((NU64)((NU64)(b) << (NU64)(((NI) 10)))));
1032 					b = (NU64)(b ^ (NU64)((NU64)(b) >> (NU64)(((NI) 6))));
1033 					i_2 += ((NI) 1);
1034 				} LA7: ;
1035 			}
1036 		}
1037 		b = (NU64)((NU64)(b) + (NU64)((NU64)((NU64)(b) << (NU64)(((NI) 3)))));
1038 		b = (NU64)(b ^ (NU64)((NU64)(b) >> (NU64)(((NI) 11))));
1039 		b = (NU64)((NU64)(b) + (NU64)((NU64)((NU64)(b) << (NU64)(((NI) 15)))));
1040 		result = ((NI64) (((NI) (b))));
1041 	}
1042 	goto LA1_;
1043 	LA3_: ;
1044 	{
1045 		NU32 a;
1046 		a = ((NU32) 0);
1047 		{
1048 			NI i_3;
1049 			NI colontmp__2;
1050 			NI i_4;
1051 			i_3 = (NI)0;
1052 			colontmp__2 = (NI)0;
1053 			colontmp__2 = (s ? s->Sup.len : 0);
1054 			i_4 = ((NI) 0);
1055 			{
1056 				while (1) {
1057 					if (!(i_4 < colontmp__2)) goto LA11;
1058 					i_3 = i_4;
1059 					a = (NU32)((NU32)(a) + (NU32)(((NU32) (((NU8)(s->data[i_3]))))));
1060 					a = (NU32)((NU32)(a) + (NU32)((NU32)((NU64)(a) << (NU64)(((NI) 10)))));
1061 					a = (NU32)(a ^ (NU32)((NU32)(a) >> (NU64)(((NI) 6))));
1062 					i_4 += ((NI) 1);
1063 				} LA11: ;
1064 			}
1065 		}
1066 		a = (NU32)((NU32)(a) + (NU32)((NU32)((NU64)(a) << (NU64)(((NI) 3)))));
1067 		a = (NU32)(a ^ (NU32)((NU32)(a) >> (NU64)(((NI) 11))));
1068 		a = (NU32)((NU32)(a) + (NU32)((NU32)((NU64)(a) << (NU64)(((NI) 15)))));
1069 		result = ((NI64) (((NI) (a))));
1070 	}
1071 	LA1_: ;
1072 	return result;
1073 }
1074