/ nimble-linux / @mnimblepkg@sjsonhelpers.nim.c
@mnimblepkg@sjsonhelpers.nim.c
  1  /* Generated by Nim Compiler v1.6.11 */
  2  #define NIM_INTBITS 64
  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_(proc, file) \
 20        TFrame FR_; \
 21        FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; nimFrame(&FR_);
 22  
 23    #  define nimfrs_(proc, file, slots, length) \
 24        struct {TFrame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; VarSlot s[slots];} FR_; \
 25        FR_.procname = proc; FR_.filename = file; FR_.line = 0; FR_.len = length; nimFrame((TFrame*)&FR_);
 26  
 27    #  define nimln_(n, file) \
 28        FR_.line = n; FR_.filename = file;
 29    typedef struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q;
 30  typedef struct NimStringDesc NimStringDesc;
 31  typedef struct TGenericSeq TGenericSeq;
 32  typedef struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg;
 33  typedef struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g tySequence__MlAD6nAPq9bHKla9cWiIZP0g;
 34  typedef struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ tySequence__oLpBKXzW3hF9aCVMo5EymfQ;
 35  typedef struct TNimType TNimType;
 36  typedef struct TNimNode TNimNode;
 37  typedef struct tyTuple__awOivLjlO76sGdHY7nQUjQ tyTuple__awOivLjlO76sGdHY7nQUjQ;
 38  typedef NU8 tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg;
 39  struct TGenericSeq {
 40  NI len;
 41  NI reserved;
 42  };
 43  struct NimStringDesc {
 44    TGenericSeq Sup;
 45  NIM_CHAR data[SEQ_DECL_SIZE];
 46  };
 47  struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg {
 48  tySequence__MlAD6nAPq9bHKla9cWiIZP0g* data;
 49  NI counter;
 50  NI first;
 51  NI last;
 52  };
 53  struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q {
 54  NIM_BOOL isUnquoted;
 55  tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg kind;
 56  union{
 57  struct {NimStringDesc* str;
 58  } _kind_1;
 59  struct {NI64 num;
 60  } _kind_2;
 61  struct {NF fnum;
 62  } _kind_3;
 63  struct {NIM_BOOL bval;
 64  } _kind_4;
 65  struct {tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg fields;
 66  } _kind_6;
 67  struct {tySequence__oLpBKXzW3hF9aCVMo5EymfQ* elems;
 68  } _kind_7;
 69  };
 70  };
 71  typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
 72  typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
 73  typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
 74  typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
 75  struct TNimType {
 76  NI size;
 77  NI align;
 78  tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
 79  tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
 80  TNimType* base;
 81  TNimNode* node;
 82  void* finalizer;
 83  tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
 84  tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
 85  };
 86  typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
 87  struct TNimNode {
 88  tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
 89  NI offset;
 90  TNimType* typ;
 91  NCSTRING name;
 92  NI len;
 93  TNimNode** sons;
 94  };
 95  struct tyTuple__awOivLjlO76sGdHY7nQUjQ {
 96  NI Field0;
 97  NI Field1;
 98  NimStringDesc* Field2;
 99  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field3;
100  };
101  struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ {
102    TGenericSeq Sup;
103    tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
104  };
105  struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g {
106    TGenericSeq Sup;
107    tyTuple__awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
108  };
109  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, newJObject__pureZjson_102)(void);
110  N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
111  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
112  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
113  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
114  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
115  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
116  static N_INLINE(void, nimZeroMem)(void* p, NI size);
117  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
118  N_LIB_PRIVATE N_NOINLINE(void, raiseFieldError2)(NimStringDesc* f, NimStringDesc* discVal);
119  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprDiscriminant)(NI e, TNimType* typ);
120  static N_INLINE(NI, len__pureZjson_2169)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t);
121  static N_INLINE(void, nimFrame)(TFrame* s);
122  N_LIB_PRIVATE N_NOINLINE(void, callDepthLimitReached__system_2997)(void);
123  static N_INLINE(void, popFrame)(void);
124  N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
125  static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
126  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, cleanUpEmptyObjects__nimblepkgZjsonhelpers_55)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj);
127  N_LIB_PRIVATE N_NIMCALL(NI, len__pureZjson_3019)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* n);
128  N_LIB_PRIVATE N_NIMCALL(void, add__pureZjson_248)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val);
129  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, newJArray__pureZjson_133)(void);
130  N_LIB_PRIVATE N_NIMCALL(void, add__pureZjson_232)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* father, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* child);
131  N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
132  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, newJObjectIfKeyNotExists__nimblepkgZjsonhelpers_2)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj, NimStringDesc* key);
133  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__pureZjson_3190)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NimStringDesc* key);
134  static N_INLINE(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, X5BX5D___pureZjson_3073)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NimStringDesc* name);
135  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**, X5BX5D___pureZjson_2667)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key);
136  static N_INLINE(NimStringDesc*, X5BX5D___nimblepkgZjsonhelpers_39)(NimStringDesc** s, NI sLen_0, NI i);
137  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
138  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_2, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim(837, 10) `node.kind == JObject` : pairs() can not iterate a JsonNode of kind ", 148);
139  extern TNimType NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_;
140  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_3, "field \'fields\' is not accessible for type \'JsonNodeObj\' using \'kind = ", 70);
141  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_4, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim(1720, 11) `len(t) == L` the length of the table changed while iterating over it", 164);
142  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_5, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim(824, 10) `node.kind == JArray` : items() can not iterate a JsonNode of kind ", 147);
143  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_6, "field \'elems\' is not accessible for type \'JsonNodeObj\' using \'kind = ", 69);
144  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_8, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators.nim(240, 11) `len(a) == L` the length of the seq changed while iterating over it", 154);
145  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_9, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim(21, 10) `obj.kind == JObject` ", 93);
146  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_11, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim(7, 10) `obj.kind == JObject` ", 92);
147  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_12, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim(513, 9) `not isNil(node)` ", 97);
148  STRING_LITERAL(TM__VgKRrkuzkPa2uIWwsxiHKg_13, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim(514, 9) `node.kind == JObject` ", 102);
149  extern TFrame* framePtr__system_2564;
150  extern TFrame* framePtr__system_2564;
151  extern TFrame* framePtr__system_2564;
152  extern TFrame* framePtr__system_2564;
153  extern TFrame* framePtr__system_2564;
154  extern TFrame* framePtr__system_2564;
155  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
156  	void* T1_;
157  	T1_ = (void*)0;
158  	T1_ = memcpy(dest, source, ((size_t) (size)));
159  }
160  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
161  	nimCopyMem(dest, source, size);
162  }
163  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
164  	{
165  		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
166  		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
167  		(*dest).Sup.len += (*src).Sup.len;
168  	}
169  	LA3_: ;
170  }
171  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
172  	void* T1_;
173  	T1_ = (void*)0;
174  	T1_ = memset(a, v, ((size_t) (size)));
175  }
176  static N_INLINE(void, nimZeroMem)(void* p, NI size) {
177  	nimSetMem__systemZmemory_7(p, ((int) 0), size);
178  }
179  static N_INLINE(void, nimFrame)(TFrame* s) {
180  	{
181  		if (!(framePtr__system_2564 == ((TFrame*) NIM_NIL))) goto LA3_;
182  		(*s).calldepth = ((NI16) 0);
183  	}
184  	goto LA1_;
185  	LA3_: ;
186  	{
187  		(*s).calldepth = (NI16)((*framePtr__system_2564).calldepth + ((NI16) 1));
188  	}
189  	LA1_: ;
190  	(*s).prev = framePtr__system_2564;
191  	framePtr__system_2564 = s;
192  	{
193  		if (!((*s).calldepth == ((NI16) 2000))) goto LA8_;
194  		callDepthLimitReached__system_2997();
195  	}
196  	LA8_: ;
197  }
198  static N_INLINE(void, popFrame)(void) {
199  	framePtr__system_2564 = (*framePtr__system_2564).prev;
200  }
201  static N_INLINE(NI, len__pureZjson_2169)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t) {
202  	NI result;
203  	nimfr_("len", "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
204  	result = (NI)0;
205  	nimln_(1509, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
206  	result = (*t).counter;
207  	popFrame();
208  	return result;
209  }
210  static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
211  	NIM_BOOL result;
212  	nimfr_("isFilled", "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/hashcommon.nim");
213  	result = (NIM_BOOL)0;
214  	nimln_(22, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/hashcommon.nim");
215  	result = !((hcode == ((NI) 0)));
216  	popFrame();
217  	return result;
218  }
219  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, cleanUpEmptyObjects__nimblepkgZjsonhelpers_55)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj) {
220  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
221  	nimfr_("cleanUpEmptyObjects", "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
222  	result = NIM_NIL;
223  	nimln_(32, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
224  	{
225  		if (!((*obj).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 5))) goto LA3_;
226  		nimln_(33, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
227  		result = newJObject__pureZjson_102();
228  		{
229  			NimStringDesc* key;
230  			tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* value;
231  			key = NIM_NIL;
232  			value = NIM_NIL;
233  			nimln_(837, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
234  			{
235  				NimStringDesc* T10_;
236  				if (!!(((*obj).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 5)))) goto LA8_;
237  				T10_ = NIM_NIL;
238  				T10_ = rawNewString((reprEnum((NI)(*obj).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_)) ? reprEnum((NI)(*obj).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_))->Sup.len : 0) + 148);
239  appendString(T10_, ((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_2));
240  appendString(T10_, reprEnum((NI)(*obj).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_)));
241  				failedAssertImpl__systemZassertions_56(T10_);
242  			}
243  			LA8_: ;
244  			{
245  				NimStringDesc* key_2;
246  				tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val;
247  				tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg colontmp_;
248  				NI L;
249  				key_2 = NIM_NIL;
250  				val = NIM_NIL;
251  				nimZeroMem((void*)(&colontmp_), sizeof(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg));
252  				nimln_(838, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
253  				if (!(((32 &((NU8)1<<((NU)((*obj).kind)&7U)))!=0))) 				{ raiseFieldError2(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_3), reprDiscriminant(((NI)(*obj).kind) + (NI)IL64(0), (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_))); } 
254  				colontmp_.data = (*obj)._kind_6.fields.data;
255  				colontmp_.counter = (*obj)._kind_6.fields.counter;
256  				colontmp_.first = (*obj)._kind_6.fields.first;
257  				colontmp_.last = (*obj)._kind_6.fields.last;
258  				nimln_(1717, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
259  				L = len__pureZjson_2169((&colontmp_));
260  				nimln_(1718, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
261  				{
262  					NI h;
263  					nimln_(1298, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
264  					if (!(((NI) 0) < colontmp_.counter)) goto LA14_;
265  					nimln_(1299, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
266  					h = colontmp_.first;
267  					{
268  						nimln_(1300, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
269  						while (1) {
270  							NI nxt;
271  							if (!(((NI) 0) <= h)) goto LA17;
272  							nimln_(1301, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
273  							if (h < 0 || h >= (colontmp_.data ? colontmp_.data->Sup.len : 0)){ raiseIndexError2(h,(colontmp_.data ? colontmp_.data->Sup.len : 0)-1); }
274  							nxt = colontmp_.data->data[h].Field1;
275  							nimln_(1302, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
276  							{
277  								NIM_BOOL T20_;
278  								tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* newValue;
279  								if (h < 0 || h >= (colontmp_.data ? colontmp_.data->Sup.len : 0)){ raiseIndexError2(h,(colontmp_.data ? colontmp_.data->Sup.len : 0)-1); }
280  								T20_ = (NIM_BOOL)0;
281  								T20_ = isFilled__pureZcollectionsZtables_31(colontmp_.data->data[h].Field0);
282  								if (!T20_) goto LA21_;
283  								nimln_(838, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
284  								if (h < 0 || h >= (colontmp_.data ? colontmp_.data->Sup.len : 0)){ raiseIndexError2(h,(colontmp_.data ? colontmp_.data->Sup.len : 0)-1); }
285  								key_2 = colontmp_.data->data[h].Field2;
286  								if (h < 0 || h >= (colontmp_.data ? colontmp_.data->Sup.len : 0)){ raiseIndexError2(h,(colontmp_.data ? colontmp_.data->Sup.len : 0)-1); }
287  								val = colontmp_.data->data[h].Field3;
288  								nimln_(34, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
289  								key = key_2;
290  								value = val;
291  								nimln_(35, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
292  								newValue = cleanUpEmptyObjects__nimblepkgZjsonhelpers_55(value);
293  								nimln_(34, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
294  								{
295  									NIM_BOOL T25_;
296  									NI T27_;
297  									nimln_(36, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
298  									T25_ = (NIM_BOOL)0;
299  									T25_ = !(((96 &((NU8)1<<((NU)((*newValue).kind)&7U)))!=0));
300  									if (T25_) goto LA26_;
301  									T27_ = (NI)0;
302  									T27_ = len__pureZjson_3019(newValue);
303  									T25_ = !((T27_ == ((NI) 0)));
304  									LA26_: ;
305  									if (!T25_) goto LA28_;
306  									nimln_(37, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
307  									add__pureZjson_248(result, key, newValue);
308  								}
309  								LA28_: ;
310  								nimln_(1720, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
311  								{
312  									NI T32_;
313  									T32_ = (NI)0;
314  									T32_ = len__pureZjson_2169((&colontmp_));
315  									if (!!((T32_ == L))) goto LA33_;
316  									failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_4));
317  								}
318  								LA33_: ;
319  							}
320  							LA21_: ;
321  							nimln_(1304, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/collections/tables.nim");
322  							h = nxt;
323  						} LA17: ;
324  					}
325  				}
326  				LA14_: ;
327  			}
328  		}
329  	}
330  	goto LA1_;
331  	LA3_: ;
332  	{
333  		nimln_(38, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
334  		if (!((*obj).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 6))) goto LA36_;
335  		nimln_(39, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
336  		result = newJArray__pureZjson_133();
337  		{
338  			tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* value_2;
339  			value_2 = NIM_NIL;
340  			nimln_(824, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
341  			{
342  				NimStringDesc* T43_;
343  				if (!!(((*obj).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 6)))) goto LA41_;
344  				T43_ = NIM_NIL;
345  				T43_ = rawNewString((reprEnum((NI)(*obj).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_)) ? reprEnum((NI)(*obj).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_))->Sup.len : 0) + 147);
346  appendString(T43_, ((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_5));
347  appendString(T43_, reprEnum((NI)(*obj).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_)));
348  				failedAssertImpl__systemZassertions_56(T43_);
349  			}
350  			LA41_: ;
351  			{
352  				tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q** i;
353  				tySequence__oLpBKXzW3hF9aCVMo5EymfQ* colontmp__2;
354  				NI i_2;
355  				NI L_2;
356  				NI T45_;
357  				i = (tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**)0;
358  				colontmp__2 = NIM_NIL;
359  				nimln_(825, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
360  				if (!(((64 &((NU8)1<<((NU)((*obj).kind)&7U)))!=0))) 				{ raiseFieldError2(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_6), reprDiscriminant(((NI)(*obj).kind) + (NI)IL64(0), (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_))); } 
361  				colontmp__2 = (*obj)._kind_7.elems;
362  				nimln_(235, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators.nim");
363  				i_2 = ((NI) 0);
364  				nimln_(236, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators.nim");
365  				T45_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
366  				L_2 = T45_;
367  				{
368  					nimln_(237, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators.nim");
369  					while (1) {
370  						tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* newValue_2;
371  						NI TM__VgKRrkuzkPa2uIWwsxiHKg_7;
372  						if (!(i_2 < L_2)) goto LA47;
373  						nimln_(825, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
374  						if (i_2 < 0 || i_2 >= (colontmp__2 ? colontmp__2->Sup.len : 0)){ raiseIndexError2(i_2,(colontmp__2 ? colontmp__2->Sup.len : 0)-1); }
375  						i = &colontmp__2->data[i_2];
376  						nimln_(40, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
377  						value_2 = (*i);
378  						nimln_(41, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
379  						newValue_2 = cleanUpEmptyObjects__nimblepkgZjsonhelpers_55(value_2);
380  						nimln_(40, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
381  						{
382  							NIM_BOOL T50_;
383  							NI T52_;
384  							nimln_(42, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
385  							T50_ = (NIM_BOOL)0;
386  							T50_ = !(((96 &((NU8)1<<((NU)((*newValue_2).kind)&7U)))!=0));
387  							if (T50_) goto LA51_;
388  							T52_ = (NI)0;
389  							T52_ = len__pureZjson_3019(newValue_2);
390  							T50_ = !((T52_ == ((NI) 0)));
391  							LA51_: ;
392  							if (!T50_) goto LA53_;
393  							nimln_(43, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
394  							add__pureZjson_232(result, newValue_2);
395  						}
396  						LA53_: ;
397  						nimln_(239, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators.nim");
398  						if (nimAddInt(i_2, ((NI) 1), &TM__VgKRrkuzkPa2uIWwsxiHKg_7)) { raiseOverflow(); };
399  						i_2 = (NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_7);
400  						nimln_(240, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators.nim");
401  						{
402  							NI T57_;
403  							T57_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
404  							if (!!((T57_ == L_2))) goto LA58_;
405  							failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_8));
406  						}
407  						LA58_: ;
408  					} LA47: ;
409  				}
410  			}
411  		}
412  	}
413  	goto LA1_;
414  	LA36_: ;
415  	{
416  		nimln_(45, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
417  		result = obj;
418  	}
419  	LA1_: ;
420  	popFrame();
421  	return result;
422  }
423  static N_INLINE(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, X5BX5D___pureZjson_3073)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NimStringDesc* name) {
424  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
425  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q** T9_;
426  	nimfr_("[]", "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
427  	result = NIM_NIL;
428  	nimln_(513, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
429  	{
430  		if (!!(!((node == 0)))) goto LA3_;
431  		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_12));
432  	}
433  	LA3_: ;
434  	nimln_(514, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
435  	{
436  		if (!!(((*node).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 5)))) goto LA7_;
437  		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_13));
438  	}
439  	LA7_: ;
440  	nimln_(517, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/pure/json.nim");
441  	if (!(((32 &((NU8)1<<((NU)((*node).kind)&7U)))!=0))) 	{ raiseFieldError2(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_3), reprDiscriminant(((NI)(*node).kind) + (NI)IL64(0), (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_))); } 
442  	T9_ = (tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**)0;
443  	T9_ = X5BX5D___pureZjson_2667((&(*node)._kind_6.fields), name);
444  	result = (*T9_);
445  	popFrame();
446  	return result;
447  }
448  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, newJObjectIfKeyNotExists__nimblepkgZjsonhelpers_2)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj, NimStringDesc* key) {
449  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
450  	nimfr_("newJObjectIfKeyNotExists", "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
451  {	result = NIM_NIL;
452  	nimln_(7, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
453  	{
454  		if (!!(((*obj).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 5)))) goto LA3_;
455  		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_11));
456  	}
457  	LA3_: ;
458  	nimln_(8, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
459  	{
460  		NIM_BOOL T7_;
461  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* newObj_1;
462  		T7_ = (NIM_BOOL)0;
463  		T7_ = hasKey__pureZjson_3190(obj, key);
464  		if (!!(T7_)) goto LA8_;
465  		nimln_(9, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
466  		newObj_1 = newJObject__pureZjson_102();
467  		nimln_(10, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
468  		add__pureZjson_248(obj, key, newObj_1);
469  		nimln_(11, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
470  		result = newObj_1;
471  		goto BeforeRet_;
472  	}
473  	goto LA5_;
474  	LA8_: ;
475  	{
476  		nimln_(13, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
477  		result = X5BX5D___pureZjson_3073(obj, key);
478  		goto BeforeRet_;
479  	}
480  	LA5_: ;
481  	}BeforeRet_: ;
482  	popFrame();
483  	return result;
484  }
485  static N_INLINE(NimStringDesc*, X5BX5D___nimblepkgZjsonhelpers_39)(NimStringDesc** s, NI sLen_0, NI i) {
486  	NimStringDesc* result;
487  	NI TM__VgKRrkuzkPa2uIWwsxiHKg_15;
488  	nimfr_("[]", "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system.nim");
489  	result = NIM_NIL;
490  	nimln_(2642, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system.nim");
491  	if (nimSubInt(sLen_0, i, &TM__VgKRrkuzkPa2uIWwsxiHKg_15)) { raiseOverflow(); };
492  	if ((NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_15) < 0 || (NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_15) >= sLen_0){ raiseIndexError2((NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_15),sLen_0-1); }
493  	result = copyString(s[(NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_15)]);
494  	popFrame();
495  	return result;
496  }
497  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, addIfNotExist__nimblepkgZjsonhelpers_16)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj, NimStringDesc** keys, NI keysLen_0, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val) {
498  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
499  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj_2;
500  	nimfr_("addIfNotExist", "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
501  {	result = NIM_NIL;
502  	nimln_(21, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
503  	{
504  		if (!!(((*obj).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 5)))) goto LA3_;
505  		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__VgKRrkuzkPa2uIWwsxiHKg_9));
506  	}
507  	LA3_: ;
508  	nimln_(22, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
509  	obj_2 = obj;
510  	{
511  		NI i;
512  		NI colontmp_;
513  		NI TM__VgKRrkuzkPa2uIWwsxiHKg_10;
514  		NI i_2;
515  		i = (NI)0;
516  		colontmp_ = (NI)0;
517  		nimln_(23, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
518  		if (nimSubInt(keysLen_0, ((NI) 1), &TM__VgKRrkuzkPa2uIWwsxiHKg_10)) { raiseOverflow(); };
519  		colontmp_ = (NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_10);
520  		nimln_(119, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators_1.nim");
521  		i_2 = ((NI) 0);
522  		{
523  			nimln_(120, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators_1.nim");
524  			while (1) {
525  				NI TM__VgKRrkuzkPa2uIWwsxiHKg_14;
526  				if (!(i_2 < colontmp_)) goto LA7;
527  				nimln_(23, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
528  				i = i_2;
529  				if (i < 0 || i >= keysLen_0){ raiseIndexError2(i,keysLen_0-1); }
530  				obj_2 = newJObjectIfKeyNotExists__nimblepkgZjsonhelpers_2(obj_2, keys[i]);
531  				nimln_(122, "/home/yyoncho/.choosenim/toolchains/nim-#version-1-6/lib/system/iterators_1.nim");
532  				if (nimAddInt(i_2, ((NI) 1), &TM__VgKRrkuzkPa2uIWwsxiHKg_14)) { raiseOverflow(); };
533  				i_2 = (NI)(TM__VgKRrkuzkPa2uIWwsxiHKg_14);
534  			} LA7: ;
535  		}
536  	}
537  	nimln_(25, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
538  	{
539  		NimStringDesc* T10_;
540  		NIM_BOOL T11_;
541  		NimStringDesc* T14_;
542  		T10_ = NIM_NIL;
543  		T10_ = X5BX5D___nimblepkgZjsonhelpers_39(keys, keysLen_0, ((NI) 1));
544  		T11_ = (NIM_BOOL)0;
545  		T11_ = hasKey__pureZjson_3190(obj_2, T10_);
546  		if (!!(T11_)) goto LA12_;
547  		nimln_(26, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
548  		T14_ = NIM_NIL;
549  		T14_ = X5BX5D___nimblepkgZjsonhelpers_39(keys, keysLen_0, ((NI) 1));
550  		add__pureZjson_248(obj_2, T14_, val);
551  		nimln_(27, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
552  		result = val;
553  		goto BeforeRet_;
554  	}
555  	goto LA8_;
556  	LA12_: ;
557  	{
558  		NimStringDesc* T16_;
559  		nimln_(29, "/home/yyoncho/Sources/nim/nimble/src/nimblepkg/jsonhelpers.nim");
560  		T16_ = NIM_NIL;
561  		T16_ = X5BX5D___nimblepkgZjsonhelpers_39(keys, keysLen_0, ((NI) 1));
562  		result = X5BX5D___pureZjson_3073(obj_2, T16_);
563  		goto BeforeRet_;
564  	}
565  	LA8_: ;
566  	}BeforeRet_: ;
567  	popFrame();
568  	return result;
569  }