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