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