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 NimStringDesc NimStringDesc;
23 typedef struct TGenericSeq TGenericSeq;
24 typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
25 struct TGenericSeq {
26 NI len;
27 NI reserved;
28 };
29 struct NimStringDesc {
30   TGenericSeq Sup;
31 NIM_CHAR data[SEQ_DECL_SIZE];
32 };
33 typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
34 struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
35 NimStringDesc* Field0;
36 NimStringDesc* Field1;
37 NimStringDesc* Field2;
38 };
39 typedef NimStringDesc* tyArray__sMpvt1sOxOJ3LFGulnbeMQ[4];
40 typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
41 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
42 static N_INLINE(void, nimZeroMem)(void* p, NI size);
43 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
44 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
45 static N_INLINE(NIM_BOOL, contains__pureZos_645)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item);
46 static N_INLINE(NI, find__pureZos_650)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item);
47 N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
48 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
49 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
50 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
51 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___nimpaths_29)(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg x);
52 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
53 N_LIB_PRIVATE N_NIMCALL(void, addQuoted__pureZos_449)(NimStringDesc** s, NimStringDesc* x);
54 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
55 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, interp__nimpaths_25)(NimStringDesc* path, NimStringDesc* nimr);
56 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
57 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s);
58 N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
59 N_LIB_PRIVATE N_NIMCALL(NI, nosexecShellCmd)(NimStringDesc* command);
60 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_2, "nimr", 4);
61 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_3, "nimpaths.nim(37, 12) `\'$\' notin result` ", 40);
62 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_4, "(", 1);
63 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_5, ", ", 2);
64 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_6, ",", 1);
65 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_7, ")", 1);
66 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_8, "$nimr/tools/dochack/dochack.js", 30);
67 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_9, "$nim js -d:release $file", 24);
68 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_10, "nim", 3);
69 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_11, "file", 4);
70 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_12, "$nimr/tools/dochack/dochack.nim", 31);
71 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_13, "getDocHacksJs: cmd: ", 20);
72 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_14, "nimpaths.nim(46, 14) `execShellCmd(cmd) == 0` ", 46);
73 STRING_LITERAL(TM__O9aA9byHYLJvQWppK9cdLra6Q_15, "nimpaths.nim(47, 12) `docHackJs2.fileExists` ", 45);
N_INLINE(void,nimSetMem__systemZmemory_7)74 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
75 	void* T1_;
76 	T1_ = (void*)0;
77 	T1_ = memset(a, v, ((size_t) (size)));
78 }
N_INLINE(void,nimZeroMem)79 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
80 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
81 }
N_INLINE(NI,find__pureZos_650)82 static N_INLINE(NI, find__pureZos_650)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item) {
83 	NI result;
84 {	result = (NI)0;
85 	result = ((NI) 0);
86 	{
87 		NIM_CHAR i;
88 		NI i_2;
89 		i = (NIM_CHAR)0;
90 		i_2 = ((NI) 0);
91 		{
92 			while (1) {
93 				if (!(i_2 < aLen_0)) goto LA3;
94 				i = a[i_2];
95 				{
96 					if (!((NU8)(i) == (NU8)(item))) goto LA6_;
97 					goto BeforeRet_;
98 				}
99 				LA6_: ;
100 				result += ((NI) 1);
101 				i_2 += ((NI) 1);
102 			} LA3: ;
103 		}
104 	}
105 	result = ((NI) -1);
106 	}BeforeRet_: ;
107 	return result;
108 }
N_INLINE(NIM_BOOL,contains__pureZos_645)109 static N_INLINE(NIM_BOOL, contains__pureZos_645)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item) {
110 	NIM_BOOL result;
111 	NI T1_;
112 {	result = (NIM_BOOL)0;
113 	T1_ = (NI)0;
114 	T1_ = find__pureZos_650(a, aLen_0, item);
115 	result = (((NI) 0) <= T1_);
116 	goto BeforeRet_;
117 	}BeforeRet_: ;
118 	return result;
119 }
N_INLINE(void,nimCopyMem)120 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
121 	void* T1_;
122 	T1_ = (void*)0;
123 	T1_ = memcpy(dest, source, ((size_t) (size)));
124 }
N_INLINE(void,copyMem__system_1727)125 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
126 	nimCopyMem(dest, source, size);
127 }
N_INLINE(void,appendString)128 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
129 	{
130 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
131 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
132 		(*dest).Sup.len += (*src).Sup.len;
133 	}
134 	LA3_: ;
135 }
N_NIMCALL(NimStringDesc *,dollar___nimpaths_29)136 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___nimpaths_29)(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg x) {
137 	NimStringDesc* result;
138 	NI count;
139 	result = NIM_NIL;
140 	result = copyString(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_4));
141 	count = ((NI) 0);
142 	{
143 		if (!(((NI) 0) < count)) goto LA3_;
144 		result = resizeString(result, 2);
145 appendString(result, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_5));
146 	}
147 	LA3_: ;
148 	count += ((NI) 1);
149 	addQuoted__pureZos_449((&result), x.Field0);
150 	{
151 		if (!(((NI) 0) < count)) goto LA7_;
152 		result = resizeString(result, 2);
153 appendString(result, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_5));
154 	}
155 	LA7_: ;
156 	count += ((NI) 1);
157 	addQuoted__pureZos_449((&result), x.Field1);
158 	{
159 		if (!(((NI) 0) < count)) goto LA11_;
160 		result = resizeString(result, 2);
161 appendString(result, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_5));
162 	}
163 	LA11_: ;
164 	count += ((NI) 1);
165 	addQuoted__pureZos_449((&result), x.Field2);
166 	{
167 		if (!(count == ((NI) 1))) goto LA15_;
168 		result = resizeString(result, 1);
169 appendString(result, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_6));
170 	}
171 	LA15_: ;
172 	result = resizeString(result, 1);
173 appendString(result, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_7));
174 	return result;
175 }
N_NIMCALL(NimStringDesc *,interp__nimpaths_25)176 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, interp__nimpaths_25)(NimStringDesc* path, NimStringDesc* nimr) {
177 	NimStringDesc* result;
178 	tyArray__Re75IspeoxXy2oCZHwcRrA T1_;
179 	result = NIM_NIL;
180 	nimZeroMem((void*)T1_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
181 	T1_[0] = copyString(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_2));
182 	T1_[1] = copyString(nimr);
183 	result = nsuFormatOpenArray(path, T1_, 2);
184 	{
185 		NIM_BOOL T4_;
186 		NimStringDesc* T7_;
187 		tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T8_;
188 		NimStringDesc* T9_;
189 		T4_ = (NIM_BOOL)0;
190 		T4_ = contains__pureZos_645(result->data, (result ? result->Sup.len : 0), 36);
191 		if (!!(!(T4_))) goto LA5_;
192 		T7_ = NIM_NIL;
193 		nimZeroMem((void*)(&T8_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
194 		T8_.Field0 = copyString(path);
195 		T8_.Field1 = copyString(nimr);
196 		T8_.Field2 = copyString(result);
197 		T9_ = NIM_NIL;
198 		T9_ = dollar___nimpaths_29(T8_);
199 		T7_ = rawNewString((T9_ ? T9_->Sup.len : 0) + 40);
200 appendString(T7_, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_3));
201 appendString(T7_, T9_);
202 		failedAssertImpl__systemZassertions_56(T7_);
203 	}
204 	LA5_: ;
205 	return result;
206 }
N_NIMCALL(NimStringDesc *,getDocHacksJs__nimpaths_84)207 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getDocHacksJs__nimpaths_84)(NimStringDesc* nimr, NimStringDesc* nim, NIM_BOOL forceRebuild) {
208 	NimStringDesc* result;
209 	NimStringDesc* docHackJs2;
210 	result = NIM_NIL;
211 	docHackJs2 = interp__nimpaths_25(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_8), nimr);
212 	{
213 		NIM_BOOL T3_;
214 		NIM_BOOL T5_;
215 		NimStringDesc* cmd;
216 		tyArray__sMpvt1sOxOJ3LFGulnbeMQ T8_;
217 		NimStringDesc* T9_;
218 		tyArray__nHXaesL0DJZHyVS07ARPRA T10_;
219 		NimStringDesc* T11_;
220 		T3_ = (NIM_BOOL)0;
221 		T3_ = forceRebuild;
222 		if (T3_) goto LA4_;
223 		T5_ = (NIM_BOOL)0;
224 		T5_ = nosfileExists(docHackJs2);
225 		T3_ = !(T5_);
226 		LA4_: ;
227 		if (!T3_) goto LA6_;
228 		nimZeroMem((void*)T8_, sizeof(tyArray__sMpvt1sOxOJ3LFGulnbeMQ));
229 		T8_[0] = copyString(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_10));
230 		T8_[1] = nospquoteShell(nim);
231 		T8_[2] = copyString(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_11));
232 		T9_ = NIM_NIL;
233 		T9_ = interp__nimpaths_25(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_12), nimr);
234 		T8_[3] = nospquoteShell(T9_);
235 		cmd = nsuFormatOpenArray(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_9), T8_, 4);
236 		nimZeroMem((void*)T10_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
237 		T11_ = NIM_NIL;
238 		T11_ = rawNewString((cmd ? cmd->Sup.len : 0) + 20);
239 appendString(T11_, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_13));
240 appendString(T11_, cmd);
241 		T10_[0] = T11_;
242 		echoBinSafe(T10_, 1);
243 		{
244 			NI T14_;
245 			NimStringDesc* T17_;
246 			T14_ = (NI)0;
247 			T14_ = nosexecShellCmd(cmd);
248 			if (!!((T14_ == ((NI) 0)))) goto LA15_;
249 			T17_ = NIM_NIL;
250 			T17_ = rawNewString((cmd ? cmd->Sup.len : 0) + 46);
251 appendString(T17_, ((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_14));
252 appendString(T17_, cmd);
253 			failedAssertImpl__systemZassertions_56(T17_);
254 		}
255 		LA15_: ;
256 	}
257 	LA6_: ;
258 	{
259 		NIM_BOOL T20_;
260 		T20_ = (NIM_BOOL)0;
261 		T20_ = nosfileExists(docHackJs2);
262 		if (!!(T20_)) goto LA21_;
263 		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__O9aA9byHYLJvQWppK9cdLra6Q_15));
264 	}
265 	LA21_: ;
266 	result = copyString(docHackJs2);
267 	return result;
268 }
269