/* Generated by Nim Compiler v0.11.2 */
/*   (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>

#include <stdio.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Tcgen456038 Tcgen456038;
typedef struct Tllstream178204 Tllstream178204;
typedef struct Tbaselexer179024 Tbaselexer179024;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Tidtable190861 Tidtable190861;
typedef struct Tidobj167015 Tidobj167015;
typedef struct Ttype190849 Ttype190849;
typedef struct Ttypeseq190845 Ttypeseq190845;
typedef struct Tnode190813 Tnode190813;
typedef struct Tsym190843 Tsym190843;
typedef struct Tloc190827 Tloc190827;
typedef struct Ropeobj161009 Ropeobj161009;
typedef struct Tpasscontext241005 Tpasscontext241005;
typedef struct Tidpairseq190859 Tidpairseq190859;
typedef struct Intset187056 Intset187056;
typedef struct Ttrunk187052 Ttrunk187052;
typedef struct Ttrunkseq187054 Ttrunkseq187054;
typedef struct Tlinkedlist130028 Tlinkedlist130028;
typedef struct Tlistentry130022 Tlistentry130022;
typedef struct Tcproc456034 Tcproc456034;
typedef struct Tnodetable190873 Tnodetable190873;
typedef struct Tnodepairseq190871 Tnodepairseq190871;
typedef struct Tsymseq190815 Tsymseq190815;
typedef struct Tlineinfo163338 Tlineinfo163338;
typedef struct Tnodeseq190807 Tnodeseq190807;
typedef struct TY163351 TY163351;
typedef struct TY456106 TY456106;
typedef struct Tblock456032 Tblock456032;
typedef struct Tmergesections457857 Tmergesections457857;
typedef struct Tcell46347 Tcell46347;
typedef struct Tcellseq46363 Tcellseq46363;
typedef struct Tgcheap48216 Tgcheap48216;
typedef struct Tcellset46359 Tcellset46359;
typedef struct Tpagedesc46355 Tpagedesc46355;
typedef struct Tmemregion28210 Tmemregion28210;
typedef struct Tsmallchunk27440 Tsmallchunk27440;
typedef struct Tllchunk28204 Tllchunk28204;
typedef struct Tbigchunk27442 Tbigchunk27442;
typedef struct Tintset27417 Tintset27417;
typedef struct Ttrunk27413 Ttrunk27413;
typedef struct Tavlnode28208 Tavlnode28208;
typedef struct Tgcstat48214 Tgcstat48214;
typedef struct Tidpair190857 Tidpair190857;
typedef struct Tident167021 Tident167021;
typedef struct Tscope190837 Tscope190837;
typedef struct TY190944 TY190944;
typedef struct Tstrtable190817 Tstrtable190817;
typedef struct Tlib190831 Tlib190831;
typedef struct Tnodepair190869 Tnodepair190869;
typedef struct Tbasechunk27438 Tbasechunk27438;
typedef struct Tfreecell27430 Tfreecell27430;
typedef struct Tinstantiation190833 Tinstantiation190833;
typedef struct TY190933 TY190933;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef N_NIMCALL_PTR(void, TY3289) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3294) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3289 marker;
TY3294 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tbaselexer179024  {
  TNimObject Sup;
NI bufpos;
NCSTRING buf;
NI buflen;
Tllstream178204* stream;
NI linenumber;
NI sentinel;
NI linestart;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  Tidobj167015  {
  TNimObject Sup;
NI id;
};
struct  Tloc190827  {
NU8 k;
NU8 s;
NU16 flags;
Ttype190849* t;
Ropeobj161009* r;
Ropeobj161009* heaproot;
};
struct  Ttype190849  {
  Tidobj167015 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq190845* sons;
Tnode190813* n;
Tsym190843* owner;
Tsym190843* sym;
Tsym190843* destructor;
Tsym190843* deepcopy;
Tsym190843* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc190827 loc;
};
struct  Tpasscontext241005  {
  TNimObject Sup;
NIM_BOOL fromcache;
};
typedef Ropeobj161009* Tcfilesections456022[18];
struct  Tidtable190861  {
NI counter;
Tidpairseq190859* data;
};
struct  Intset187056  {
NI counter;
NI max;
Ttrunk187052* head;
Ttrunkseq187054* data;
};
struct  Tlinkedlist130028  {
Tlistentry130022* head;
Tlistentry130022* tail;
NI counter;
};
struct  Tnodetable190873  {
NI counter;
Tnodepairseq190871* data;
};
typedef Ropeobj161009* TY456143[10];
struct  Tcgen456038  {
  Tpasscontext241005 Sup;
Tsym190843* module;
NimStringDesc* filename;
Tcfilesections456022 s;
NIM_BOOL preventstacktrace;
NIM_BOOL usesthreadvars;
NIM_BOOL framedeclared;
NIM_BOOL isheaderfile;
NIM_BOOL includesstringh;
NIM_BOOL objhaskidsvalid;
NimStringDesc* cfilename;
Tidtable190861 typecache;
Tidtable190861 forwtypecache;
Intset187056 declaredthings;
Intset187056 declaredprotos;
Tlinkedlist130028 headerfiles;
Intset187056 typeinfomarker;
Tcproc456034* initproc;
Tcproc456034* postinitproc;
Tcproc456034* preinitproc;
Ttypeseq190845* typestack;
Tnodetable190873 datacache;
Tsymseq190815* forwardedprocs;
NI typenodes;
NI nimtypes;
Ropeobj161009* typenodesname;
Ropeobj161009* nimtypesname;
NI labels;
TY456143 extensionloaders;
Ropeobj161009* injectstmt;
};
struct  Tlineinfo163338  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  Tcproc456034  {
Tsym190843* prc;
NIM_BOOL beforeretneeded;
NIM_BOOL threadvaraccessed;
Tlineinfo163338 lastlineinfo;
Tnodeseq190807* nestedtrystmts;
NI inexceptblock;
TY163351* finallysafepoints;
NI labels;
TY456106* blocks;
NI breakidx;
NU32 options;
NI maxframelen;
Tcgen456038* module;
NI withinloop;
NI splitdecls;
NI gcframeid;
Ropeobj161009* gcframetype;
};
typedef Ropeobj161009* Tcprocsections456026[3];
struct  Tblock456032  {
NI id;
Ropeobj161009* label;
Tcprocsections456026 sections;
NIM_BOOL isloop;
NI16 nestedtrystmts;
NI16 nestedexceptstmts;
NI16 framelen;
};
struct  Tmergesections457857  {
Tcfilesections456022 f;
Tcprocsections456026 p;
};
typedef NimStringDesc* TY457013[18];
typedef NimStringDesc* TY457019[3];
struct  Tcell46347  {
NI refcount;
TNimType* typ;
};
struct  Tcellseq46363  {
NI len;
NI cap;
Tcell46347** d;
};
struct  Tcellset46359  {
NI counter;
NI max;
Tpagedesc46355* head;
Tpagedesc46355** data;
};
typedef Tsmallchunk27440* TY28222[512];
typedef Ttrunk27413* Ttrunkbuckets27415[256];
struct  Tintset27417  {
Ttrunkbuckets27415 data;
};
struct  Tmemregion28210  {
NI minlargeobj;
NI maxlargeobj;
TY28222 freesmallchunks;
Tllchunk28204* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Tbigchunk27442* freechunkslist;
Tintset27417 chunkstarts;
Tavlnode28208* root;
Tavlnode28208* deleted;
Tavlnode28208* last;
Tavlnode28208* freeavlnodes;
};
struct  Tgcstat48214  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Tgcheap48216  {
void* stackbottom;
NI cyclethreshold;
Tcellseq46363 zct;
Tcellseq46363 decstack;
Tcellset46359 cycleroots;
Tcellseq46363 tempstack;
NI recgclock;
Tmemregion28210 region;
Tgcstat48214 stat;
};
struct  Tidpair190857  {
Tidobj167015* key;
TNimObject* val;
};
typedef NI TY27420[16];
struct  Ttrunk187052  {
Ttrunk187052* next;
NI key;
TY27420 bits;
};
struct  Tllstream178204  {
  TNimObject Sup;
NU8 kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineoffset;
};
struct  Tnode190813  {
Ttype190849* typ;
Tlineinfo163338 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym190843* sym;
} S4;
struct {Tident167021* ident;
} S5;
struct {Tnodeseq190807* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Tstrtable190817  {
NI counter;
Tsymseq190815* data;
};
struct  Tsym190843  {
  Tidobj167015 Sup;
NU8 kind;
union{
struct {Ttypeseq190845* typeinstcache;
Tscope190837* typscope;
} S1;
struct {TY190944* procinstcache;
Tsym190843* gcunsafetyreason;
} S2;
struct {TY190944* usedgenerics;
Tstrtable190817 tab;
} S3;
struct {Tsym190843* guard;
} S4;
} kindU;
NU16 magic;
Ttype190849* typ;
Tident167021* name;
Tlineinfo163338 info;
Tsym190843* owner;
NU32 flags;
Tnode190813* ast;
NU32 options;
NI position;
NI offset;
Tloc190827 loc;
Tlib190831* annex;
Tnode190813* constraint;
};
struct  Ropeobj161009  {
  TNimObject Sup;
Ropeobj161009* left;
Ropeobj161009* right;
NI length;
NimStringDesc* data;
};
struct  Tlistentry130022  {
  TNimObject Sup;
Tlistentry130022* prev;
Tlistentry130022* next;
};
struct  Tnodepair190869  {
NI h;
Tnode190813* key;
NI val;
};
struct  Tpagedesc46355  {
Tpagedesc46355* next;
NI key;
TY27420 bits;
};
struct  Tbasechunk27438  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Tsmallchunk27440  {
  Tbasechunk27438 Sup;
Tsmallchunk27440* next;
Tsmallchunk27440* prev;
Tfreecell27430* freelist;
NI free;
NI acc;
NF data;
};
struct  Tllchunk28204  {
NI size;
NI acc;
Tllchunk28204* next;
};
struct  Tbigchunk27442  {
  Tbasechunk27438 Sup;
Tbigchunk27442* next;
Tbigchunk27442* prev;
NI align;
NF data;
};
struct  Ttrunk27413  {
Ttrunk27413* next;
NI key;
TY27420 bits;
};
typedef Tavlnode28208* TY28214[2];
struct  Tavlnode28208  {
TY28214 link;
NI key;
NI upperbound;
NI level;
};
struct  Tident167021  {
  Tidobj167015 Sup;
NimStringDesc* s;
Tident167021* next;
NI h;
};
struct  Tscope190837  {
NI depthlevel;
Tstrtable190817 symbols;
Tnodeseq190807* usingsyms;
Tscope190837* parent;
};
struct  Tlib190831  {
  Tlistentry130022 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj161009* name;
Tnode190813* path;
};
struct  Tfreecell27430  {
Tfreecell27430* next;
NI zerofield;
};
struct  Tinstantiation190833  {
Tsym190843* sym;
Ttypeseq190845* concretetypes;
TY190933* usedby;
};
struct Ttypeseq190845 {
  TGenericSeq Sup;
  Ttype190849* data[SEQ_DECL_SIZE];
};
struct Tidpairseq190859 {
  TGenericSeq Sup;
  Tidpair190857 data[SEQ_DECL_SIZE];
};
struct Ttrunkseq187054 {
  TGenericSeq Sup;
  Ttrunk187052* data[SEQ_DECL_SIZE];
};
struct Tnodepairseq190871 {
  TGenericSeq Sup;
  Tnodepair190869 data[SEQ_DECL_SIZE];
};
struct Tsymseq190815 {
  TGenericSeq Sup;
  Tsym190843* data[SEQ_DECL_SIZE];
};
struct Tnodeseq190807 {
  TGenericSeq Sup;
  Tnode190813* data[SEQ_DECL_SIZE];
};
struct TY163351 {
  TGenericSeq Sup;
  Ropeobj161009* data[SEQ_DECL_SIZE];
};
struct TY456106 {
  TGenericSeq Sup;
  Tblock456032 data[SEQ_DECL_SIZE];
};
struct TY190944 {
  TGenericSeq Sup;
  Tinstantiation190833* data[SEQ_DECL_SIZE];
};
struct TY190933 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(Tllstream178204*, llstreamopen_178256)(NimStringDesc* filename, NU8 mode);
N_NIMCALL(void, openbaselexer_179035)(Tbaselexer179024* L, Tllstream178204* inputstream, NI buflen);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_NIMCALL(void, skipuntilcmd_457352)(Tbaselexer179024* L);
N_NIMCALL(NI, handlecr_179066)(Tbaselexer179024* L, NI pos);
N_NIMCALL(NI, handlelf_179074)(Tbaselexer179024* L, NI pos);
N_NIMCALL(void, readkey_457466)(Tbaselexer179024* L, NimStringDesc** result);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(void, internalerror_165218)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(void, processmergeinfo_457613)(Tbaselexer179024* L, Tcgen456038* m);
N_NIMCALL(void, skipwhite_457325)(Tbaselexer179024* L);
N_NIMCALL(void, readtypecache_457524)(Tbaselexer179024* L, Tidtable190861* result);
N_NIMCALL(NI, decodevint_197351)(NCSTRING s, NI* pos);
N_NIMCALL(NimStringDesc*, decodestr_197157)(NCSTRING s, NI* pos);
N_NIMCALL(void, idtableput_198196)(Tidtable190861* t, Tidobj167015* key, TNimObject* val);
N_NIMCALL(Ttype190849*, newfaketype_457506)(NI id);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(Ropeobj161009*, rope_161320)(NimStringDesc* s);
N_NIMCALL(void, readintset_457574)(Tbaselexer179024* L, Intset187056* result);
N_NIMCALL(void, incl_187856)(Intset187056* s, NI key);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(void, closebaselexer_179045)(Tbaselexer179024* L);
static N_INLINE(Ropeobj161009**, s_456184)(Tcproc456034* p, NU8 s);
N_NIMCALL(void, readmergesections_457863)(NimStringDesc* cfilename, Tmergesections457857* m);
N_NIMCALL(Ropeobj161009*, readverbatimsection_457426)(Tbaselexer179024* L);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(NIM_BOOL, atendmark_457397)(NCSTRING buf, NI pos);
static N_INLINE(NI, find_457902)(TY457013 a, NimStringDesc* item);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, find_457995)(TY457019 a, NimStringDesc* item);
N_NIMCALL(Ropeobj161009*, HEX26_161436)(Ropeobj161009* a, Ropeobj161009* b);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Tcell46347*, usrtocell_49846)(void* usr);
static N_INLINE(void, rtladdzct_51404)(Tcell46347* c);
N_NOINLINE(void, addzct_49817)(Tcellseq46363* s, Tcell46347* c);
N_NIMCALL(void, add_161545)(Ropeobj161009** a, NimStringDesc* b);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, writetypecache_457184)(Tidtable190861 a, NimStringDesc** s);
N_NIMCALL(void, encodevint_197296)(NI x, NimStringDesc** result);
N_NIMCALL(void, encodestr_197042)(NimStringDesc* s, NimStringDesc** result);
N_NIMCALL(NimStringDesc*, HEX24_162131)(Ropeobj161009* r);
N_NIMCALL(void, writeintset_457230)(Intset187056 a, NimStringDesc** s);
STRING_LITERAL(TMP4192, "ccgmerge: \':\' expected", 22);
STRING_LITERAL(TMP4193, "NIM_merge_INFO", 14);
STRING_LITERAL(TMP4194, "typeCache", 9);
STRING_LITERAL(TMP4195, "declared", 8);
STRING_LITERAL(TMP4196, "typeInfo", 8);
STRING_LITERAL(TMP4197, "labels", 6);
STRING_LITERAL(TMP4198, "hasframe", 8);
STRING_LITERAL(TMP4199, "ccgmerge: \'{\' expected", 22);
STRING_LITERAL(TMP4200, "ccgmerge: unknown key: ", 23);
STRING_LITERAL(TMP4269, "ccgmerge: expected: /*\011NIM_merge_END:*/", 39);
STRING_LITERAL(TMP4270, "/*\011NIM_merge_END:*/", 19);
STRING_LITERAL(TMP4271, "", 0);
STRING_LITERAL(TMP4272, "NIM_merge_HEADERS", 17);
STRING_LITERAL(TMP4273, "NIM_merge_FORWARD_TYPES", 23);
STRING_LITERAL(TMP4274, "NIM_merge_TYPES", 15);
STRING_LITERAL(TMP4275, "NIM_merge_SEQ_TYPES", 19);
STRING_LITERAL(TMP4276, "NIM_merge_FIELD_INFO", 20);
STRING_LITERAL(TMP4277, "NIM_merge_TYPE_INFO", 19);
STRING_LITERAL(TMP4278, "NIM_merge_PROC_HEADERS", 22);
STRING_LITERAL(TMP4279, "NIM_merge_DATA", 14);
STRING_LITERAL(TMP4280, "NIM_merge_VARS", 14);
STRING_LITERAL(TMP4281, "NIM_merge_PROCS", 15);
STRING_LITERAL(TMP4282, "NIM_merge_INIT_PROC", 19);
STRING_LITERAL(TMP4283, "NIM_merge_TYPE_INIT1", 20);
STRING_LITERAL(TMP4284, "NIM_merge_TYPE_INIT2", 20);
STRING_LITERAL(TMP4285, "NIM_merge_TYPE_INIT3", 20);
STRING_LITERAL(TMP4286, "NIM_merge_DEBUG_INIT", 20);
STRING_LITERAL(TMP4287, "NIM_merge_DYNLIB_INIT", 21);
STRING_LITERAL(TMP4288, "NIM_merge_DYNLIB_DEINIT", 23);
NIM_CONST TY457013 Cfilesectionnames_457012 = {((NimStringDesc*) &TMP4271),
((NimStringDesc*) &TMP4272),
((NimStringDesc*) &TMP4273),
((NimStringDesc*) &TMP4274),
((NimStringDesc*) &TMP4275),
((NimStringDesc*) &TMP4276),
((NimStringDesc*) &TMP4277),
((NimStringDesc*) &TMP4278),
((NimStringDesc*) &TMP4279),
((NimStringDesc*) &TMP4280),
((NimStringDesc*) &TMP4281),
((NimStringDesc*) &TMP4282),
((NimStringDesc*) &TMP4283),
((NimStringDesc*) &TMP4284),
((NimStringDesc*) &TMP4285),
((NimStringDesc*) &TMP4286),
((NimStringDesc*) &TMP4287),
((NimStringDesc*) &TMP4288)}
;
STRING_LITERAL(TMP4289, "NIM_merge_PROC_LOCALS", 21);
STRING_LITERAL(TMP4290, "NIM_merge_PROC_INIT", 19);
STRING_LITERAL(TMP4291, "NIM_merge_PROC_BODY", 19);
NIM_CONST TY457019 Cprocsectionnames_457018 = {((NimStringDesc*) &TMP4289),
((NimStringDesc*) &TMP4290),
((NimStringDesc*) &TMP4291)}
;
STRING_LITERAL(TMP4292, "ccgmerge: unknown section: ", 27);
STRING_LITERAL(TMP4293, "ccgmerge: \'*/\' expected", 23);
STRING_LITERAL(TMP4297, "/*\011", 3);
STRING_LITERAL(TMP4298, ":*/", 3);
STRING_LITERAL(TMP4306, "/*\011NIM_merge_INFO:", 18);
STRING_LITERAL(TMP4307, "typeCache:{", 11);
STRING_LITERAL(TMP4308, "declared:{", 10);
STRING_LITERAL(TMP4309, "typeInfo:{", 10);
STRING_LITERAL(TMP4310, "labels:", 7);
STRING_LITERAL(TMP4311, " hasframe:", 10);
STRING_LITERAL(TMP4312, "*/", 2);
extern TNimType NTI179024; /* TBaseLexer */
extern TNimType NTI190809; /* PType */
extern TNimType NTI190849; /* TType */
extern NimStringDesc* tnl_159626;
extern Tgcheap48216 gch_48244;
extern NU32 gglobaloptions_154128;

N_NIMCALL(void, skipuntilcmd_457352)(Tbaselexer179024* L) {
	NI pos;
	pos = (*L).bufpos;
	{
		while (1) {
			switch (((NU8)((*L).buf[pos]))) {
			case 13:
			{
				pos = handlecr_179066(L, pos);
			}
			break;
			case 10:
			{
				pos = handlelf_179074(L, pos);
			}
			break;
			case 0:
			{
				goto LA1;
			}
			break;
			case 47:
			{
				{
					NIM_BOOL LOC9;
					LOC9 = 0;
					LOC9 = ((NU8)((*L).buf[(NI)(pos + ((NI) 1))]) == (NU8)(42));
					if (!(LOC9)) goto LA10;
					LOC9 = ((NU8)((*L).buf[(NI)(pos + ((NI) 2))]) == (NU8)(9));
					LA10: ;
					if (!LOC9) goto LA11;
					pos += ((NI) 3);
					goto LA1;
				}
				LA11: ;
				pos += ((NI) 1);
			}
			break;
			default:
			{
				pos += ((NI) 1);
			}
			break;
			}
		}
	} LA1: ;
	(*L).bufpos = pos;
}

N_NIMCALL(void, readkey_457466)(Tbaselexer179024* L, NimStringDesc** result) {
	NI pos;
	NCSTRING buf;
	pos = (*L).bufpos;
	buf = (*L).buf;
	(*result) = setLengthStr((*result), ((NI) 0));
	{
		while (1) {
			if (!(((NU8)(buf[pos])) >= ((NU8)(97)) && ((NU8)(buf[pos])) <= ((NU8)(122)) || ((NU8)(buf[pos])) >= ((NU8)(65)) && ((NU8)(buf[pos])) <= ((NU8)(90)) || ((NU8)(buf[pos])) >= ((NU8)(48)) && ((NU8)(buf[pos])) <= ((NU8)(57)) || ((NU8)(buf[pos])) == ((NU8)(95)))) goto LA2;
			(*result) = addChar((*result), buf[pos]);
			pos += ((NI) 1);
		} LA2: ;
	}
	{
		if (!!(((NU8)(buf[pos]) == (NU8)(58)))) goto LA5;
		internalerror_165218(((NimStringDesc*) &TMP4192));
	}
	LA5: ;
	(*L).bufpos = (NI)(pos + ((NI) 1));
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
{	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (*a).Sup.len);
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, skipwhite_457325)(Tbaselexer179024* L) {
	NI pos;
	pos = (*L).bufpos;
	{
		while (1) {
			switch (((NU8)((*L).buf[pos]))) {
			case 13:
			{
				pos = handlecr_179066(L, pos);
			}
			break;
			case 10:
			{
				pos = handlelf_179074(L, pos);
			}
			break;
			case 32:
			{
				pos += ((NI) 1);
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	(*L).bufpos = pos;
}

N_NIMCALL(Ttype190849*, newfaketype_457506)(NI id) {
	Ttype190849* result;
	result = 0;
	result = (Ttype190849*) newObj((&NTI190809), sizeof(Ttype190849));
	(*result).Sup.Sup.m_type = (&NTI190849);
	(*result).Sup.id = id;
	return result;
}

N_NIMCALL(void, readtypecache_457524)(Tbaselexer179024* L, Tidtable190861* result) {
	{
		if (!!(((NU8)((*L).buf[(*L).bufpos]) == (NU8)(123)))) goto LA3;
		internalerror_165218(((NimStringDesc*) &TMP4199));
	}
	LA3: ;
	(*L).bufpos += ((NI) 1);
	{
		while (1) {
			NI key;
			NimStringDesc* value;
			Ttype190849* LOC11;
			Tidobj167015* LOC12;
			Ropeobj161009* LOC13;
			TNimObject* LOC14;
			if (!!(((NU8)((*L).buf[(*L).bufpos]) == (NU8)(125)))) goto LA6;
			skipwhite_457325(L);
			key = decodevint_197351((*L).buf, (&(*L).bufpos));
			{
				if (!!(((NU8)((*L).buf[(*L).bufpos]) == (NU8)(58)))) goto LA9;
				internalerror_165218(((NimStringDesc*) &TMP4192));
			}
			LA9: ;
			(*L).bufpos += ((NI) 1);
			value = decodestr_197157((*L).buf, (&(*L).bufpos));
			LOC11 = 0;
			LOC11 = newfaketype_457506(key);
			LOC12 = 0;
			LOC12 = &LOC11->Sup;
			LOC13 = 0;
			LOC13 = rope_161320(value);
			LOC14 = 0;
			LOC14 = &LOC13->Sup;
			idtableput_198196(result, LOC12, LOC14);
		} LA6: ;
	}
	(*L).bufpos += ((NI) 1);
}

N_NIMCALL(void, readintset_457574)(Tbaselexer179024* L, Intset187056* result) {
	{
		if (!!(((NU8)((*L).buf[(*L).bufpos]) == (NU8)(123)))) goto LA3;
		internalerror_165218(((NimStringDesc*) &TMP4199));
	}
	LA3: ;
	(*L).bufpos += ((NI) 1);
	{
		while (1) {
			NI key;
			if (!!(((NU8)((*L).buf[(*L).bufpos]) == (NU8)(125)))) goto LA6;
			skipwhite_457325(L);
			key = decodevint_197351((*L).buf, (&(*L).bufpos));
			incl_187856(result, key);
		} LA6: ;
	}
	(*L).bufpos += ((NI) 1);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI)((*src).Sup.len + ((NI) 1)));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(void, processmergeinfo_457613)(Tbaselexer179024* L, Tcgen456038* m) {
	NimStringDesc* k;
	k = rawNewString(((NI) 9));
	{
		while (1) {
			skipwhite_457325(L);
			{
				NIM_BOOL LOC5;
				LOC5 = 0;
				LOC5 = ((NU8)((*L).buf[(*L).bufpos]) == (NU8)(42));
				if (!(LOC5)) goto LA6;
				LOC5 = ((NU8)((*L).buf[(NI)((*L).bufpos + ((NI) 1))]) == (NU8)(47));
				LA6: ;
				if (!LOC5) goto LA7;
				(*L).bufpos += ((NI) 2);
				goto LA1;
			}
			LA7: ;
			readkey_457466(L, (&k));
			if (eqStrings(k, ((NimStringDesc*) &TMP4194))) goto LA9;
			if (eqStrings(k, ((NimStringDesc*) &TMP4195))) goto LA10;
			if (eqStrings(k, ((NimStringDesc*) &TMP4196))) goto LA11;
			if (eqStrings(k, ((NimStringDesc*) &TMP4197))) goto LA12;
			if (eqStrings(k, ((NimStringDesc*) &TMP4198))) goto LA13;
			goto LA14;
			LA9: ;
			{
				readtypecache_457524(L, (&(*m).typecache));
			}
			goto LA15;
			LA10: ;
			{
				readintset_457574(L, (&(*m).declaredthings));
			}
			goto LA15;
			LA11: ;
			{
				readintset_457574(L, (&(*m).typeinfomarker));
			}
			goto LA15;
			LA12: ;
			{
				NI LOC20;
				LOC20 = 0;
				LOC20 = decodevint_197351((*L).buf, (&(*L).bufpos));
				(*m).labels = ((NI) (LOC20));
			}
			goto LA15;
			LA13: ;
			{
				NI LOC22;
				LOC22 = 0;
				LOC22 = decodevint_197351((*L).buf, (&(*L).bufpos));
				(*m).framedeclared = !((LOC22 == ((NI) 0)));
			}
			goto LA15;
			LA14: ;
			{
				NimStringDesc* LOC24;
				LOC24 = 0;
				LOC24 = rawNewString(k->Sup.len + 23);
appendString(LOC24, ((NimStringDesc*) &TMP4200));
appendString(LOC24, k);
				internalerror_165218(LOC24);
			}
			LA15: ;
		}
	} LA1: ;
}

N_NIMCALL(void, readmergeinfo_457816)(NimStringDesc* cfilename, Tcgen456038* m) {
	Tllstream178204* s_457821;
	Tbaselexer179024 L;
	NimStringDesc* k;
{	s_457821 = llstreamopen_178256(cfilename, ((NU8) 0));
	{
		if (!(s_457821 == NIM_NIL)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)(&L), 0, sizeof(L));
	L.Sup.m_type = (&NTI179024);
	openbaselexer_179035((&L), s_457821, ((NI) 8192));
	k = rawNewString(((NI) 23));
	{
		while (1) {
			skipuntilcmd_457352((&L));
			{
				if (!((NU8)(L.buf[L.bufpos]) == (NU8)(0))) goto LA9;
				goto LA5;
			}
			LA9: ;
			readkey_457466((&L), (&k));
			{
				if (!eqStrings(k, ((NimStringDesc*) &TMP4193))) goto LA13;
				processmergeinfo_457613((&L), m);
				goto LA5;
			}
			LA13: ;
		}
	} LA5: ;
	closebaselexer_179045((&L));
	}BeforeRet: ;
}

static N_INLINE(Ropeobj161009**, s_456184)(Tcproc456034* p, NU8 s) {
	Ropeobj161009** result;
	result = 0;
	result = &(*p).blocks->data[(NI)(((*p).blocks ? (*p).blocks->Sup.len : 0) - ((NI) 1))].sections[(s)- 0];
	return result;
}

N_NIMCALL(NIM_BOOL, mergerequired_458106)(Tcgen456038* m) {
	NIM_BOOL result;
{	result = 0;
	{
		NU8 i_458223;
		NI res_458439;
		i_458223 = 0;
		res_458439 = ((NI) 1);
		{
			while (1) {
				if (!(res_458439 <= ((NI) 10))) goto LA3;
				i_458223 = ((NU8) (res_458439));
				{
					if (!!(((*m).s[(i_458223)- 0] == NIM_NIL))) goto LA6;
					result = NIM_TRUE;
					goto BeforeRet;
				}
				LA6: ;
				res_458439 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NU8 i_458423;
		NI res_458447;
		i_458423 = 0;
		res_458447 = ((NI) 0);
		{
			while (1) {
				if (!(res_458447 <= ((NI) 2))) goto LA10;
				i_458423 = ((NU8) (res_458447));
				{
					Ropeobj161009** LOC13;
					LOC13 = 0;
					LOC13 = s_456184((*m).initproc, i_458423);
					if (!!(((*LOC13) == NIM_NIL))) goto LA14;
					result = NIM_TRUE;
					goto BeforeRet;
				}
				LA14: ;
				res_458447 += ((NI) 1);
			} LA10: ;
		}
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, atendmark_457397)(NCSTRING buf, NI pos) {
	NIM_BOOL result;
	NI s;
	result = 0;
	s = ((NI) 0);
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = (s < ((NI) 19));
			if (!(LOC3)) goto LA4;
			LOC3 = ((NU8)(buf[(NI)(pos + s)]) == (NU8)(((NimStringDesc*) &TMP4270)->data[s]));
			LA4: ;
			if (!LOC3) goto LA2;
			s += ((NI) 1);
		} LA2: ;
	}
	result = (s == ((NI) 19));
	return result;
}

N_NIMCALL(Ropeobj161009*, readverbatimsection_457426)(Tbaselexer179024* L) {
	Ropeobj161009* result;
	NI pos;
	NCSTRING buf;
	NimStringDesc* r;
	result = 0;
	pos = (*L).bufpos;
	buf = (*L).buf;
	r = rawNewString(((NI) 30000));
	{
		while (1) {
			switch (((NU8)(buf[pos]))) {
			case 13:
			{
				pos = handlecr_179066(L, pos);
				buf = (*L).buf;
				r = resizeString(r, tnl_159626->Sup.len + 0);
appendString(r, tnl_159626);
			}
			break;
			case 10:
			{
				pos = handlelf_179074(L, pos);
				buf = (*L).buf;
				r = resizeString(r, tnl_159626->Sup.len + 0);
appendString(r, tnl_159626);
			}
			break;
			case 0:
			{
				internalerror_165218(((NimStringDesc*) &TMP4269));
				goto LA1;
			}
			break;
			default:
			{
				{
					NIM_BOOL LOC9;
					LOC9 = 0;
					LOC9 = atendmark_457397(buf, pos);
					if (!LOC9) goto LA10;
					pos += ((NI) 19);
					goto LA1;
				}
				LA10: ;
				r = addChar(r, buf[pos]);
				pos += ((NI) 1);
			}
			break;
			}
		}
	} LA1: ;
	(*L).bufpos = pos;
	result = rope_161320(r);
	return result;
}

static N_INLINE(NI, find_457902)(TY457013 a, NimStringDesc* item) {
	NI result;
{	result = 0;
	{
		NimStringDesc* i_457965;
		NU8 i_457978;
		i_457965 = 0;
		i_457978 = ((NU8) 0);
		{
			if (!(i_457978 <= ((NU8) 17))) goto LA4;
			{
				while (1) {
					i_457965 = a[(i_457978)- 0];
					{
						if (!eqStrings(i_457965, item)) goto LA10;
						goto BeforeRet;
					}
					LA10: ;
					result += ((NI) 1);
					{
						if (!(((NU8) 17) <= i_457978)) goto LA14;
						goto LA6;
					}
					LA14: ;
					i_457978 += ((NI) 1);
				}
			} LA6: ;
		}
		LA4: ;
	}
	result = ((NI) -1);
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, find_457995)(TY457019 a, NimStringDesc* item) {
	NI result;
{	result = 0;
	{
		NimStringDesc* i_458058;
		NU8 i_458071;
		i_458058 = 0;
		i_458071 = ((NU8) 0);
		{
			if (!(i_458071 <= ((NU8) 2))) goto LA4;
			{
				while (1) {
					i_458058 = a[(i_458071)- 0];
					{
						if (!eqStrings(i_458058, item)) goto LA10;
						goto BeforeRet;
					}
					LA10: ;
					result += ((NI) 1);
					{
						if (!(((NU8) 2) <= i_458071)) goto LA14;
						goto LA6;
					}
					LA14: ;
					i_458071 += ((NI) 1);
				}
			} LA6: ;
		}
		LA4: ;
	}
	result = ((NI) -1);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, readmergesections_457863)(NimStringDesc* cfilename, Tmergesections457857* m) {
	Tllstream178204* s_457869;
	Tbaselexer179024 L;
	NimStringDesc* k;
{	s_457869 = llstreamopen_178256(cfilename, ((NU8) 0));
	{
		if (!(s_457869 == NIM_NIL)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)(&L), 0, sizeof(L));
	L.Sup.m_type = (&NTI179024);
	openbaselexer_179035((&L), s_457869, ((NI) 8192));
	k = rawNewString(((NI) 23));
	{
		while (1) {
			skipuntilcmd_457352((&L));
			{
				if (!((NU8)(L.buf[L.bufpos]) == (NU8)(0))) goto LA9;
				goto LA5;
			}
			LA9: ;
			readkey_457466((&L), (&k));
			{
				if (!eqStrings(k, ((NimStringDesc*) &TMP4193))) goto LA13;
			}
			goto LA11;
			LA13: ;
			{
				NIM_BOOL LOC16;
				Ropeobj161009* verbatim;
				NI sectiona;
				LOC16 = 0;
				LOC16 = ((NU8)(L.buf[L.bufpos]) == (NU8)(42));
				if (!(LOC16)) goto LA17;
				LOC16 = ((NU8)(L.buf[(NI)(L.bufpos + ((NI) 1))]) == (NU8)(47));
				LA17: ;
				if (!LOC16) goto LA18;
				L.bufpos += ((NI) 2);
				skipwhite_457325((&L));
				verbatim = readverbatimsection_457426((&L));
				skipwhite_457325((&L));
				sectiona = find_457902(Cfilesectionnames_457012, k);
				{
					NIM_BOOL LOC22;
					LOC22 = 0;
					LOC22 = (((NI) 0) < sectiona);
					if (!(LOC22)) goto LA23;
					LOC22 = (sectiona <= ((NI) 17));
					LA23: ;
					if (!LOC22) goto LA24;
					unsureAsgnRef((void**) (&(*m).f[(sectiona)- 0]), verbatim);
				}
				goto LA20;
				LA24: ;
				{
					NI sectionb;
					sectionb = find_457995(Cprocsectionnames_457018, k);
					{
						NIM_BOOL LOC29;
						LOC29 = 0;
						LOC29 = (((NI) 0) <= sectionb);
						if (!(LOC29)) goto LA30;
						LOC29 = (sectionb <= ((NI) 2));
						LA30: ;
						if (!LOC29) goto LA31;
						unsureAsgnRef((void**) (&(*m).p[(sectionb)- 0]), verbatim);
					}
					goto LA27;
					LA31: ;
					{
						NimStringDesc* LOC34;
						LOC34 = 0;
						LOC34 = rawNewString(k->Sup.len + 27);
appendString(LOC34, ((NimStringDesc*) &TMP4292));
appendString(LOC34, k);
						internalerror_165218(LOC34);
					}
					LA27: ;
				}
				LA20: ;
			}
			goto LA11;
			LA18: ;
			{
				internalerror_165218(((NimStringDesc*) &TMP4293));
			}
			LA11: ;
		}
	} LA5: ;
	closebaselexer_179045((&L));
	}BeforeRet: ;
}

static N_INLINE(Tcell46347*, usrtocell_49846)(void* usr) {
	Tcell46347* result;
	result = 0;
	result = ((Tcell46347*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(Tcell46347))))));
	return result;
}

static N_INLINE(void, rtladdzct_51404)(Tcell46347* c) {
	addzct_49817((&gch_48244.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Tcell46347* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_49846(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Tcell46347* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_49846((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_51404(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

N_NIMCALL(void, mergefiles_458474)(NimStringDesc* cfilename, Tcgen456038* m) {
	Tmergesections457857 old;
	memset((void*)(&old), 0, sizeof(old));
	readmergesections_457863(cfilename, (&old));
	{
		NU8 i_458492;
		NI res_458512;
		i_458492 = 0;
		res_458512 = ((NI) 0);
		{
			while (1) {
				if (!(res_458512 <= ((NI) 17))) goto LA3;
				i_458492 = ((NU8) (res_458512));
				asgnRefNoCycle((void**) (&(*m).s[(i_458492)- 0]), HEX26_161436(old.f[(i_458492)- 0], (*m).s[(i_458492)- 0]));
				res_458512 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NU8 i_458505;
		NI res_458520;
		i_458505 = 0;
		res_458520 = ((NI) 0);
		{
			while (1) {
				Ropeobj161009** LOC7;
				Ropeobj161009** LOC8;
				if (!(res_458520 <= ((NI) 2))) goto LA6;
				i_458505 = ((NU8) (res_458520));
				LOC7 = 0;
				LOC7 = s_456184((*m).initproc, i_458505);
				LOC8 = 0;
				LOC8 = s_456184((*m).initproc, i_458505);
				unsureAsgnRef((void**) (&(*LOC7)), HEX26_161436(old.p[(i_458505)- 0], (*LOC8)));
				res_458520 += ((NI) 1);
			} LA6: ;
		}
	}
}

N_NIMCALL(Ropeobj161009*, gensectionstart_457106)(NU8 ps) {
	Ropeobj161009* result;
	result = 0;
	{
		if (!!(((49152 & gglobaloptions_154128) == 0))) goto LA3;
		result = rope_161320(tnl_159626);
		add_161545(&result, ((NimStringDesc*) &TMP4297));
		add_161545(&result, Cprocsectionnames_457018[(ps)- 0]);
		add_161545(&result, ((NimStringDesc*) &TMP4298));
		add_161545(&result, tnl_159626);
	}
	LA3: ;
	return result;
}

N_NIMCALL(Ropeobj161009*, gensectionend_457147)(NU8 ps) {
	Ropeobj161009* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		if (!!(((49152 & gglobaloptions_154128) == 0))) goto LA3;
		LOC5 = 0;
		LOC5 = rawNewString(tnl_159626->Sup.len + 19);
appendString(LOC5, ((NimStringDesc*) &TMP4270));
appendString(LOC5, tnl_159626);
		result = rope_161320(LOC5);
	}
	LA3: ;
	return result;
}

N_NIMCALL(Ropeobj161009*, gensectionstart_457028)(NU8 fs) {
	Ropeobj161009* result;
	result = 0;
	{
		if (!!(((49152 & gglobaloptions_154128) == 0))) goto LA3;
		result = rope_161320(tnl_159626);
		add_161545(&result, ((NimStringDesc*) &TMP4297));
		add_161545(&result, Cfilesectionnames_457012[(fs)- 0]);
		add_161545(&result, ((NimStringDesc*) &TMP4298));
		add_161545(&result, tnl_159626);
	}
	LA3: ;
	return result;
}

N_NIMCALL(Ropeobj161009*, gensectionend_457069)(NU8 fs) {
	Ropeobj161009* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		if (!!(((49152 & gglobaloptions_154128) == 0))) goto LA3;
		LOC5 = 0;
		LOC5 = rawNewString(tnl_159626->Sup.len + 19);
appendString(LOC5, ((NimStringDesc*) &TMP4270));
appendString(LOC5, tnl_159626);
		result = rope_161320(LOC5);
	}
	LA3: ;
	return result;
}

N_NIMCALL(void, writetypecache_457184)(Tidtable190861 a, NimStringDesc** s) {
	NI i;
	i = ((NI) 0);
	{
		NI id_457190;
		TNimObject* value_457191;
		id_457190 = 0;
		value_457191 = 0;
		{
			NI i_457205;
			NI HEX3Atmp_457207;
			NI res_457209;
			i_457205 = 0;
			HEX3Atmp_457207 = 0;
			HEX3Atmp_457207 = (a.data ? (a.data->Sup.len-1) : -1);
			res_457209 = ((NI) 0);
			{
				while (1) {
					if (!(res_457209 <= HEX3Atmp_457207)) goto LA4;
					i_457205 = res_457209;
					{
						NimStringDesc* LOC14;
						if (!!((a.data->data[i_457205].key == NIM_NIL))) goto LA7;
						id_457190 = (*a.data->data[i_457205].key).id;
						value_457191 = a.data->data[i_457205].val;
						{
							if (!(i == ((NI) 10))) goto LA11;
							i = ((NI) 0);
							(*s) = resizeString((*s), tnl_159626->Sup.len + 0);
appendString((*s), tnl_159626);
						}
						goto LA9;
						LA11: ;
						{
							(*s) = addChar((*s), 32);
						}
						LA9: ;
						encodevint_197296(id_457190, s);
						(*s) = addChar((*s), 58);
						LOC14 = 0;
						LOC14 = HEX24_162131(((Ropeobj161009*) (value_457191)));
						encodestr_197042(LOC14, s);
						i += ((NI) 1);
					}
					LA7: ;
					res_457209 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	(*s) = addChar((*s), 125);
}

N_NIMCALL(void, writeintset_457230)(Intset187056 a, NimStringDesc** s) {
	NI i;
	i = ((NI) 0);
	{
		NI x_457236;
		Ttrunk187052* r_457251;
		x_457236 = 0;
		r_457251 = a.head;
		{
			while (1) {
				NI i_457253;
				if (!!((r_457251 == NIM_NIL))) goto LA3;
				i_457253 = ((NI) 0);
				{
					while (1) {
						NI w_457255;
						NI j_457257;
						if (!(i_457253 <= ((NI) 15))) goto LA5;
						w_457255 = (*r_457251).bits[(i_457253)- 0];
						j_457257 = ((NI) 0);
						{
							while (1) {
								if (!!((w_457255 == ((NI) 0)))) goto LA7;
								{
									if (!!((((NI) ((NI)(w_457255 & ((NI) 1)))) == ((NI) 0)))) goto LA10;
									x_457236 = (NI)((NI)((NU32)((*r_457251).key) << (NU32)(((NI) 9))) | (NI)((NU32)((NI)((NU32)(i_457253) << (NU32)(((NI) 5)))) + (NU32)(j_457257)));
									{
										if (!(i == ((NI) 10))) goto LA14;
										i = ((NI) 0);
										(*s) = resizeString((*s), tnl_159626->Sup.len + 0);
appendString((*s), tnl_159626);
									}
									goto LA12;
									LA14: ;
									{
										(*s) = addChar((*s), 32);
									}
									LA12: ;
									encodevint_197296(x_457236, s);
									i += ((NI) 1);
								}
								LA10: ;
								j_457257 += ((NI) 1);
								w_457255 = (NI)((NU32)(w_457255) >> (NU32)(((NI) 1)));
							} LA7: ;
						}
						i_457253 += ((NI) 1);
					} LA5: ;
				}
				r_457251 = (*r_457251).next;
			} LA3: ;
		}
	}
	(*s) = addChar((*s), 125);
}

N_NIMCALL(Ropeobj161009*, genmergeinfo_457285)(Tcgen456038* m) {
	Ropeobj161009* result;
	NimStringDesc* s;
{	result = 0;
	{
		if (!!(((gglobaloptions_154128 &(1<<((((NU8) 14))&31)))!=0))) goto LA3;
		result = NIM_NIL;
		goto BeforeRet;
	}
	LA3: ;
	s = copyString(((NimStringDesc*) &TMP4306));
	s = resizeString(s, tnl_159626->Sup.len + 0);
appendString(s, tnl_159626);
	s = resizeString(s, 11);
appendString(s, ((NimStringDesc*) &TMP4307));
	writetypecache_457184((*m).typecache, (&s));
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TMP4308));
	writeintset_457230((*m).declaredthings, (&s));
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TMP4309));
	writeintset_457230((*m).typeinfomarker, (&s));
	s = resizeString(s, 7);
appendString(s, ((NimStringDesc*) &TMP4310));
	encodevint_197296(((NI) ((*m).labels)), (&s));
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TMP4311));
	encodevint_197296(((NI) ((*m).framedeclared)), (&s));
	s = resizeString(s, tnl_159626->Sup.len + 0);
appendString(s, tnl_159626);
	s = resizeString(s, 2);
appendString(s, ((NimStringDesc*) &TMP4312));
	result = rope_161320(s);
	}BeforeRet: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, nimsrc_ccgmergeInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, nimsrc_ccgmergeDatInit)(void) {
}

