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

#include <string.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tnode224816 tnode224816;
typedef struct tsrcgen249023 tsrcgen249023;
typedef struct trendertokseq249021 trendertokseq249021;
typedef struct trendertok249019 trendertok249019;
typedef struct tnodeseq224810 tnodeseq224810;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcontext252010 tcontext252010;
typedef struct ttype224852 ttype224852;
typedef struct tlineinfo194539 tlineinfo194539;
typedef struct tsym224846 tsym224846;
typedef struct tident199021 tident199021;
typedef struct tcell44935 tcell44935;
typedef struct tcellseq44951 tcellseq44951;
typedef struct tgcheap47016 tgcheap47016;
typedef struct tcellset44947 tcellset44947;
typedef struct tpagedesc44943 tpagedesc44943;
typedef struct tmemregion27210 tmemregion27210;
typedef struct tsmallchunk26440 tsmallchunk26440;
typedef struct tllchunk27204 tllchunk27204;
typedef struct tbigchunk26442 tbigchunk26442;
typedef struct tintset26417 tintset26417;
typedef struct ttrunk26413 ttrunk26413;
typedef struct tavlnode27208 tavlnode27208;
typedef struct tgcstat47014 tgcstat47014;
typedef struct tidobj199015 tidobj199015;
typedef struct TNimObject TNimObject;
typedef struct ttypeseq224848 ttypeseq224848;
typedef struct tscope224840 tscope224840;
typedef struct TY224947 TY224947;
typedef struct tinstantiation224836 tinstantiation224836;
typedef struct tstrtable224820 tstrtable224820;
typedef struct tsymseq224818 tsymseq224818;
typedef struct tloc224830 tloc224830;
typedef struct trope176009 trope176009;
typedef struct tlib224834 tlib224834;
typedef struct tbasechunk26438 tbasechunk26438;
typedef struct tfreecell26430 tfreecell26430;
typedef struct TY224936 TY224936;
typedef struct tlistentry126022 tlistentry126022;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  trendertok249019  {
NU8 Kind;
NI16 Length;
};
struct  tsrcgen249023  {
NI Indent;
NI Linelen;
NI Pos;
NI Idx;
trendertokseq249021* Tokens;
NimStringDesc* Buf;
NI Pendingnl;
tnodeseq224810* Comstack;
NU8 Flags;
NIM_BOOL Checkanon;
NI Inpragma;
};
typedef N_NIMCALL_PTR(void, TY3089) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3094) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3089 marker;
TY3094 deepcopy;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tcontext252010 {
NI Field0;
NU8 Field1;
};
struct  tlineinfo194539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode224816  {
ttype224852* Typ;
tlineinfo194539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym224846* Sym;
} S4;
struct {tident199021* Ident;
} S5;
struct {tnodeseq224810* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tcell44935  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq44951  {
NI Len;
NI Cap;
tcell44935** D;
};
struct  tcellset44947  {
NI Counter;
NI Max;
tpagedesc44943* Head;
tpagedesc44943** Data;
};
typedef tsmallchunk26440* TY27222[512];
typedef ttrunk26413* ttrunkbuckets26415[256];
struct  tintset26417  {
ttrunkbuckets26415 Data;
};
struct  tmemregion27210  {
NI Minlargeobj;
NI Maxlargeobj;
TY27222 Freesmallchunks;
tllchunk27204* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk26442* Freechunkslist;
tintset26417 Chunkstarts;
tavlnode27208* Root;
tavlnode27208* Deleted;
tavlnode27208* Last;
tavlnode27208* Freeavlnodes;
};
struct  tgcstat47014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap47016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq44951 Zct;
tcellseq44951 Decstack;
tcellset44947 Cycleroots;
tcellseq44951 Tempstack;
NI Recgclock;
tmemregion27210 Region;
tgcstat47014 Stat;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tidobj199015  {
  TNimObject Sup;
NI Id;
};
struct  tident199021  {
  tidobj199015 Sup;
NimStringDesc* S;
tident199021* Next;
NI H;
};
struct  tstrtable224820  {
NI Counter;
tsymseq224818* Data;
};
struct  tloc224830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype224852* T;
trope176009* R;
trope176009* Heaproot;
};
struct  tsym224846  {
  tidobj199015 Sup;
NU8 Kind;
union {
struct {ttypeseq224848* Typeinstcache;
tscope224840* Typscope;
} S1;
struct {TY224947* Procinstcache;
tscope224840* Scope;
} S2;
struct {TY224947* Usedgenerics;
tstrtable224820 Tab;
} S3;
struct {tsym224846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype224852* Typ;
tident199021* Name;
tlineinfo194539 Info;
tsym224846* Owner;
NU32 Flags;
tnode224816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc224830 Loc;
tlib224834* Annex;
tnode224816* Constraint;
};
struct  ttype224852  {
  tidobj199015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq224848* Sons;
tnode224816* N;
tsym224846* Owner;
tsym224846* Sym;
tsym224846* Destructor;
tsym224846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc224830 Loc;
};
typedef NimStringDesc* TY214175[118];
typedef NI TY26420[8];
struct  tpagedesc44943  {
tpagedesc44943* Next;
NI Key;
TY26420 Bits;
};
struct  tbasechunk26438  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk26440  {
  tbasechunk26438 Sup;
tsmallchunk26440* Next;
tsmallchunk26440* Prev;
tfreecell26430* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk27204  {
NI Size;
NI Acc;
tllchunk27204* Next;
};
struct  tbigchunk26442  {
  tbasechunk26438 Sup;
tbigchunk26442* Next;
tbigchunk26442* Prev;
NI Align;
NF Data;
};
struct  ttrunk26413  {
ttrunk26413* Next;
NI Key;
TY26420 Bits;
};
typedef tavlnode27208* TY27214[2];
struct  tavlnode27208  {
TY27214 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tscope224840  {
NI Depthlevel;
tstrtable224820 Symbols;
tnodeseq224810* Usingsyms;
tscope224840* Parent;
};
struct  tinstantiation224836  {
tsym224846* Sym;
ttypeseq224848* Concretetypes;
TY224936* Usedby;
};
struct  trope176009  {
  TNimObject Sup;
trope176009* Left;
trope176009* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry126022  {
  TNimObject Sup;
tlistentry126022* Prev;
tlistentry126022* Next;
};
struct  tlib224834  {
  tlistentry126022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope176009* Name;
tnode224816* Path;
};
struct  tfreecell26430  {
tfreecell26430* Next;
NI Zerofield;
};
struct trendertokseq249021 {
  TGenericSeq Sup;
  trendertok249019 data[SEQ_DECL_SIZE];
};
struct tnodeseq224810 {
  TGenericSeq Sup;
  tnode224816* data[SEQ_DECL_SIZE];
};
struct ttypeseq224848 {
  TGenericSeq Sup;
  ttype224852* data[SEQ_DECL_SIZE];
};
struct TY224947 {
  TGenericSeq Sup;
  tinstantiation224836* data[SEQ_DECL_SIZE];
};
struct tsymseq224818 {
  TGenericSeq Sup;
  tsym224846* data[SEQ_DECL_SIZE];
};
struct TY224936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, initsrcgen_249167)(tsrcgen249023* g, NU8 renderflags);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, TMP1211)(void* p, NI op);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, gsub_252049)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, initcontext_252028)(tcontext252010* c);
N_NIMCALL(void, gsub_252040)(tsrcgen249023* g, tnode224816* n, tcontext252010 c_252045);
N_NIMCALL(void, pushcom_249875)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell44935*, usrtocell_48646)(void* usr);
static N_INLINE(void, rtladdzct_50204)(tcell44935* c);
N_NOINLINE(void, addzct_48617)(tcellseq44951* s, tcell44935* c);
N_NIMCALL(void, putrawstr_249767)(tsrcgen249023* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(void, put_249432)(tsrcgen249023* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(void, addpendingnl_249258)(tsrcgen249023* g);
N_NIMCALL(void, addtok_249218)(tsrcgen249023* g, NU8 kind, NimStringDesc* s);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NI count, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, optnl_249289)(tsrcgen249023* g, NI indent);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, atom_250469)(tnode224816* n);
N_NIMCALL(NimStringDesc*, makenimstring_249488)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, tonimchar_249470)(NIM_CHAR c);
N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x, NI len);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
N_NIMCALL(NimStringDesc*, litaux_250257)(tnode224816* n, NI64 x, NI size);
N_NIMCALL(ttype224852*, skip_250263)(ttype224852* t);
static N_INLINE(ttype224852*, lastson_225267)(ttype224852* n);
static N_INLINE(NI, sonslen_225255)(ttype224852* n);
static N_INLINE(NI, len_225364)(tnode224816* n);
N_NIMCALL(NimStringDesc*, nsuToBin)(NI64 x, NI len);
N_NIMCALL(NimStringDesc*, nsuToOct)(NI64 x, NI len);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(NimStringDesc*, ulitaux_250418)(tnode224816* n, NI64 x, NI size);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(void, internalerror_197006)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_80907, TNimType* typ);
N_NIMCALL(void, gident_253707)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(NI, sonslen_225249)(tnode224816* n);
N_NIMCALL(void, gcomma_252278)(tsrcgen249023* g, tnode224816* n, NI start, NI theend);
N_NIMCALL(void, gcommaaux_252127)(tsrcgen249023* g, tnode224816* n, NI ind, NI start, NI theend, NU8 separator);
N_NIMCALL(NI, lsub_250251)(tnode224816* n);
N_NIMCALL(NIM_BOOL, containsnl_249837)(NimStringDesc* s);
N_NIMCALL(NI, lcomma_250950)(tnode224816* n, NI start, NI theend);
static N_INLINE(tnode224816*, HEX5BHEX5D_225698)(tnode224816* n, NI i);
N_NIMCALL(NI, lsons_251086)(tnode224816* n, NI start, NI theend);
static N_INLINE(tnode224816*, lastson_225261)(tnode224816* n);
N_NIMCALL(NIM_BOOL, fits_251994)(tsrcgen249023* g, NI x);
N_NIMCALL(void, putwithspace_252115)(tsrcgen249023* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(NIM_BOOL, hascom_252063)(tnode224816* n);
N_NIMCALL(void, gcoms_250213)(tsrcgen249023* g);
N_NIMCALL(void, gcom_250019)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(NIM_BOOL, shouldrendercomment_249981)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_NIMCALL(NI, maxlinelength_249682)(NimStringDesc* s);
N_NIMCALL(void, putcomment_249526)(tsrcgen249023* g, NimStringDesc* s);
N_NIMCALL(void, optnl_249300)(tsrcgen249023* g);
N_NIMCALL(void, popallcoms_249914)(tsrcgen249023* g);
N_NIMCALL(void, gcomma_252248)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NI start, NI theend);
N_NIMCALL(void, doparamsaux_253901)(tsrcgen249023* g, tnode224816* params);
N_NIMCALL(void, gsemicolon_252293)(tsrcgen249023* g, tnode224816* n, NI start, NI theend);
N_NIMCALL(void, gsons_252308)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NI start, NI theend);
N_NIMCALL(void, indentnl_249310)(tsrcgen249023* g);
N_NIMCALL(void, dedent_249332)(tsrcgen249023* g);
N_NIMCALL(void, putnl_249279)(tsrcgen249023* g);
N_NIMCALL(void, putnl_249268)(tsrcgen249023* g, NI indent);
N_NIMCALL(void, gstmts_252475)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NIM_BOOL doindent);
N_NIMCALL(void, gif_252621)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(NIM_BOOL, longmode_252420)(tnode224816* n, NI start, NI theend);
N_NIMCALL(void, gwhile_252779)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gpragmablock_252897)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gcase_253176)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gtry_252970)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gfor_253029)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gblock_253513)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gstaticstmt_253609)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gasm_253668)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gproc_253290)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(NimStringDesc*, renderdefinitionname_249134)(tsym224846* s, NIM_BOOL noquotes);
N_NIMCALL(NIM_BOOL, iskeyword_249089)(NimStringDesc* s);
N_NIMCALL(tident199021*, getident_199472)(NimStringDesc* identifier);
N_NIMCALL(void, gpattern_252852)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, gsection_252364)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NU8 kind, NimStringDesc* k);
N_NIMCALL(void, gtypeclassty_253499)(tsrcgen249023* g, tnode224816* n);
N_NIMCALL(void, internalerror_196987)(tlineinfo194539 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_74828, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
STRING_LITERAL(TMP1212, "", 0);
STRING_LITERAL(TMP1213, "\012", 1);
STRING_LITERAL(TMP1214, "\"", 1);
STRING_LITERAL(TMP1215, "\\0", 2);
STRING_LITERAL(TMP1216, "\\x", 2);
STRING_LITERAL(TMP1218, "r\"", 2);
STRING_LITERAL(TMP1220, "\"\"", 2);
STRING_LITERAL(TMP1221, "\"\"\"", 3);
STRING_LITERAL(TMP1222, "0b", 2);
STRING_LITERAL(TMP1223, "0o", 2);
STRING_LITERAL(TMP1224, "0x", 2);
STRING_LITERAL(TMP1225, "\'i8", 3);
STRING_LITERAL(TMP1226, "\'i16", 4);
STRING_LITERAL(TMP1227, "\'i32", 4);
STRING_LITERAL(TMP1228, "\'i64", 4);
STRING_LITERAL(TMP1229, "\'u", 2);
STRING_LITERAL(TMP1230, "\'u8", 3);
STRING_LITERAL(TMP1231, "\'u16", 4);
STRING_LITERAL(TMP1232, "\'u32", 4);
STRING_LITERAL(TMP1233, "\'u64", 4);
STRING_LITERAL(TMP1234, "\'f32", 4);
STRING_LITERAL(TMP1235, "\'f64", 4);
STRING_LITERAL(TMP1236, "nil", 3);
STRING_LITERAL(TMP1237, "[type node]", 11);
STRING_LITERAL(TMP1238, "rnimsyn.atom ", 13);
STRING_LITERAL(TMP1240, "(", 1);
STRING_LITERAL(TMP1241, " ", 1);
extern NIM_CONST TY214175 toktypetostr_214174;
STRING_LITERAL(TMP1242, "##", 2);
STRING_LITERAL(TMP1243, ")", 1);
STRING_LITERAL(TMP1244, "cast", 4);
STRING_LITERAL(TMP1245, "[", 1);
STRING_LITERAL(TMP1246, "]", 1);
STRING_LITERAL(TMP1247, "addr", 4);
STRING_LITERAL(TMP1248, "static", 6);
STRING_LITERAL(TMP1249, "{", 1);
STRING_LITERAL(TMP1250, "}", 1);
STRING_LITERAL(TMP1251, "=", 1);
STRING_LITERAL(TMP1252, "chckRangeF", 10);
STRING_LITERAL(TMP1253, "chckRange64", 11);
STRING_LITERAL(TMP1254, "chckRange", 9);
STRING_LITERAL(TMP1255, "|", 1);
STRING_LITERAL(TMP1256, ".", 1);
STRING_LITERAL(TMP1257, "|...)", 5);
STRING_LITERAL(TMP1258, ":", 1);
STRING_LITERAL(TMP1259, "bind", 4);
STRING_LITERAL(TMP1260, "proc", 4);
STRING_LITERAL(TMP1261, "do", 2);
STRING_LITERAL(TMP1262, "->", 2);
STRING_LITERAL(TMP1263, "..", 2);
STRING_LITERAL(TMP1264, "[]", 2);
STRING_LITERAL(TMP1265, "`", 1);
STRING_LITERAL(TMP1266, "if", 2);
NIM_CONST tcontext252010 TMP1267 = {0,
0}
;
STRING_LITERAL(TMP1268, " elif", 5);
STRING_LITERAL(TMP1269, " else", 5);
STRING_LITERAL(TMP1270, "type", 4);
STRING_LITERAL(TMP1271, "ref", 3);
STRING_LITERAL(TMP1272, "ptr", 3);
STRING_LITERAL(TMP1273, "var", 3);
STRING_LITERAL(TMP1274, "distinct", 8);
STRING_LITERAL(TMP1275, " with", 5);
STRING_LITERAL(TMP1276, " without", 8);
STRING_LITERAL(TMP1277, "object", 6);
STRING_LITERAL(TMP1278, "of", 2);
STRING_LITERAL(TMP1279, "iterator", 8);
STRING_LITERAL(TMP1280, "enum", 4);
STRING_LITERAL(TMP1281, "when", 4);
STRING_LITERAL(TMP1282, "while", 5);
STRING_LITERAL(TMP1283, "case", 4);
STRING_LITERAL(TMP1284, "try", 3);
STRING_LITERAL(TMP1285, "for", 3);
STRING_LITERAL(TMP1286, "in", 2);
STRING_LITERAL(TMP1287, "block", 5);
STRING_LITERAL(TMP1288, "asm", 3);
STRING_LITERAL(TMP1289, "converter", 9);
STRING_LITERAL(TMP1290, "method", 6);
STRING_LITERAL(TMP1291, "macro", 5);
STRING_LITERAL(TMP1292, "template", 8);
STRING_LITERAL(TMP1293, "const", 5);
STRING_LITERAL(TMP1294, "let", 3);
STRING_LITERAL(TMP1295, "return", 6);
STRING_LITERAL(TMP1296, "raise", 5);
STRING_LITERAL(TMP1297, "yield", 5);
STRING_LITERAL(TMP1298, "discard", 7);
STRING_LITERAL(TMP1299, "break", 5);
STRING_LITERAL(TMP1300, "continue", 8);
STRING_LITERAL(TMP1301, "{.", 2);
STRING_LITERAL(TMP1302, ".}", 2);
STRING_LITERAL(TMP1303, "import", 6);
STRING_LITERAL(TMP1304, "export", 6);
STRING_LITERAL(TMP1305, "except", 6);
STRING_LITERAL(TMP1306, "from", 4);
STRING_LITERAL(TMP1307, "include", 7);
STRING_LITERAL(TMP1308, "as", 2);
STRING_LITERAL(TMP1309, "mixin", 5);
STRING_LITERAL(TMP1310, "elif", 4);
STRING_LITERAL(TMP1311, "else", 4);
STRING_LITERAL(TMP1312, "finally", 7);
STRING_LITERAL(TMP1313, "tuple", 5);
STRING_LITERAL(TMP1314, "(META|", 6);
STRING_LITERAL(TMP1315, "state", 5);
STRING_LITERAL(TMP1316, "goto", 4);
STRING_LITERAL(TMP1317, "generic", 7);
STRING_LITERAL(TMP1318, "rnimsyn.gsub(", 13);
extern TNimType NTI224810; /* TNodeSeq */
TNimType NTI249019; /* TRenderTok */
extern TNimType NTI214022; /* TTokType */
extern TNimType NTI112; /* int16 */
TNimType NTI249021; /* TRenderTokSeq */
extern tgcheap47016 gch_47044;
extern TNimType NTI224029; /* TNodeKind */
N_NIMCALL(void, TMP1211)(void* p, NI op) {
	trendertokseq249021* a;
	NI LOC1;
	a = (trendertokseq249021*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}

N_NIMCALL(void, initsrcgen_249167)(tsrcgen249023* g, NU8 renderflags) {
	unsureAsgnRef((void**) (&(*g).Comstack), (tnodeseq224810*) newSeq((&NTI224810), 0));
	unsureAsgnRef((void**) (&(*g).Tokens), (trendertokseq249021*) newSeq((&NTI249021), 0));
	(*g).Indent = 0;
	(*g).Linelen = 0;
	(*g).Pos = 0;
	(*g).Idx = 0;
	unsureAsgnRef((void**) (&(*g).Buf), copyString(((NimStringDesc*) &TMP1212)));
	(*g).Flags = renderflags;
	(*g).Pendingnl = -1;
	(*g).Checkanon = NIM_FALSE;
}

N_NIMCALL(void, initcontext_252028)(tcontext252010* c) {
	(*c).Field0 = 0;
	(*c).Field1 = 0;
}

static N_INLINE(tcell44935*, usrtocell_48646)(void* usr) {
	tcell44935* result;
	result = 0;
	result = ((tcell44935*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(tcell44935))))));
	return result;
}

static N_INLINE(void, rtladdzct_50204)(tcell44935* c) {
	addzct_48617((&gch_47044.Zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell44935* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_48646(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell44935* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_48646((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU64)((*c).Refcount) < (NU64)(8))) goto LA11;
			rtladdzct_50204(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

N_NIMCALL(void, pushcom_249875)(tsrcgen249023* g, tnode224816* n) {
	NI length;
	length = (*g).Comstack->Sup.len;
	(*g).Comstack = (tnodeseq224810*) setLengthSeq(&((*g).Comstack)->Sup, sizeof(tnode224816*), (NI64)(length + 1));
	asgnRefNoCycle((void**) (&(*g).Comstack->data[length]), n);
}

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

N_NIMCALL(void, addtok_249218)(tsrcgen249023* g, NU8 kind, NimStringDesc* s) {
	NI length;
	length = (*g).Tokens->Sup.len;
	(*g).Tokens = (trendertokseq249021*) setLengthSeq(&((*g).Tokens)->Sup, sizeof(trendertok249019), (NI64)(length + 1));
	(*g).Tokens->data[length].Kind = kind;
	(*g).Tokens->data[length].Length = ((NI16) (s->Sup.len));
	(*g).Buf = resizeString((*g).Buf, s->Sup.len + 0);
appendString((*g).Buf, s);
}

N_NIMCALL(void, addpendingnl_249258)(tsrcgen249023* g) {
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		if (!(0 <= (*g).Pendingnl)) goto LA3;
		LOC5 = 0;
		LOC6 = 0;
		LOC6 = nsuRepeatChar((*g).Pendingnl, 32);
		LOC5 = rawNewString(LOC6->Sup.len + 1);
appendString(LOC5, ((NimStringDesc*) &TMP1213));
appendString(LOC5, LOC6);
		addtok_249218(g, ((NU8) 114), LOC5);
		(*g).Linelen = (*g).Pendingnl;
		(*g).Pendingnl = -1;
	}
	LA3: ;
}

N_NIMCALL(void, put_249432)(tsrcgen249023* g, NU8 kind, NimStringDesc* s) {
	addpendingnl_249258(g);
	{
		if (!(0 < s->Sup.len)) goto LA3;
		addtok_249218(g, kind, s);
		(*g).Linelen += s->Sup.len;
	}
	LA3: ;
}

N_NIMCALL(void, optnl_249289)(tsrcgen249023* g, NI indent) {
	(*g).Pendingnl = indent;
	(*g).Linelen = indent;
}

N_NIMCALL(void, putrawstr_249767)(tsrcgen249023* g, NU8 kind, NimStringDesc* s) {
	NI i;
	NI hi;
	NimStringDesc* str;
	i = 0;
	hi = (NI64)(s->Sup.len - 1);
	str = copyString(((NimStringDesc*) &TMP1212));
	{
		while (1) {
			if (!(i <= hi)) goto LA2;
			switch (((NU8)(s->data[i]))) {
			case 13:
			{
				put_249432(g, kind, str);
				str = copyString(((NimStringDesc*) &TMP1212));
				i += 1;
				{
					NIM_BOOL LOC6;
					LOC6 = 0;
					LOC6 = (i <= hi);
					if (!(LOC6)) goto LA7;
					LOC6 = ((NU8)(s->data[i]) == (NU8)(10));
					LA7: ;
					if (!LOC6) goto LA8;
					i += 1;
				}
				LA8: ;
				optnl_249289(g, 0);
			}
			break;
			case 10:
			{
				put_249432(g, kind, str);
				str = copyString(((NimStringDesc*) &TMP1212));
				i += 1;
				optnl_249289(g, 0);
			}
			break;
			default:
			{
				str = addChar(str, s->data[i]);
				i += 1;
			}
			break;
			}
		} LA2: ;
	}
	put_249432(g, kind, str);
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[((*dest).Sup.len)- 0] = c;
	(*dest).data[((NI64)((*dest).Sup.len + 1))- 0] = 0;
	(*dest).Sup.len += 1;
}

N_NIMCALL(NimStringDesc*, tonimchar_249470)(NIM_CHAR c) {
	NimStringDesc* result;
	result = 0;
	switch (((NU8)(c))) {
	case 0:
	{
		result = copyString(((NimStringDesc*) &TMP1215));
	}
	break;
	case 1 ... 31:
	case 128 ... 255:
	{
		NimStringDesc* LOC3;
		NimStringDesc* LOC4;
		LOC3 = 0;
		LOC4 = 0;
		LOC4 = nsuToHex(((NI64) (((NU8)(c)))), 2);
		LOC3 = rawNewString(LOC4->Sup.len + 2);
appendString(LOC3, ((NimStringDesc*) &TMP1216));
appendString(LOC3, LOC4);
		result = LOC3;
	}
	break;
	case 39:
	case 34:
	case 92:
	{
		NimStringDesc* LOC6;
		LOC6 = 0;
		LOC6 = rawNewString(2);
appendChar(LOC6, 92);
appendChar(LOC6, c);
		result = LOC6;
	}
	break;
	default:
	{
		NimStringDesc* LOC8;
		LOC8 = 0;
		LOC8 = rawNewString(1);
appendChar(LOC8, c);
appendString(LOC8, ((NimStringDesc*) &TMP1212));
		result = LOC8;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, makenimstring_249488)(NimStringDesc* s) {
	NimStringDesc* result;
	result = 0;
	result = copyString(((NimStringDesc*) &TMP1214));
	{
		NI i_249504;
		NI HEX3Atmp_249506;
		NI res_249509;
		i_249504 = 0;
		HEX3Atmp_249506 = 0;
		HEX3Atmp_249506 = (NI64)(s->Sup.len - 1);
		res_249509 = 0;
		{
			while (1) {
				NimStringDesc* LOC4;
				if (!(res_249509 <= HEX3Atmp_249506)) goto LA3;
				i_249504 = res_249509;
				LOC4 = 0;
				LOC4 = tonimchar_249470(s->data[i_249504]);
				result = resizeString(result, LOC4->Sup.len + 0);
appendString(result, LOC4);
				res_249509 += 1;
			} LA3: ;
		}
	}
	result = addChar(result, 34);
	return result;
}

static N_INLINE(NI, sonslen_225255)(ttype224852* n) {
	NI result;
	result = 0;
	{
		if (!(*n).Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(ttype224852*, lastson_225267)(ttype224852* n) {
	ttype224852* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_225255(n);
	result = (*n).Sons->data[(NI64)(LOC1 - 1)];
	return result;
}

N_NIMCALL(ttype224852*, skip_250263)(ttype224852* t) {
	ttype224852* result;
	result = 0;
	result = t;
	{
		while (1) {
			if (!((IL64(211106242013184) &(IL64(1)<<(((*result).Kind)&IL64(63))))!=0)) goto LA2;
			result = lastson_225267(result);
		} LA2: ;
	}
	return result;
}

static N_INLINE(NI, len_225364)(tnode224816* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

N_NIMCALL(NimStringDesc*, litaux_250257)(tnode224816* n, NI64 x, NI size) {
	NimStringDesc* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		ttype224852* LOC5;
		tnode224816* enumfields;
		ttype224852* LOC8;
		LOC3 = 0;
		LOC3 = !(((*n).Typ == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = skip_250263((*n).Typ);
		LOC3 = ((16386 &(IL64(1)<<(((*LOC5).Kind)&IL64(63))))!=0);
		LA4: ;
		if (!LOC3) goto LA6;
		LOC8 = 0;
		LOC8 = skip_250263((*n).Typ);
		enumfields = (*LOC8).N;
		{
			tnode224816* e_250314;
			e_250314 = 0;
			{
				NI i_250386;
				NI HEX3Atmp_250388;
				NI LOC11;
				NI res_250390;
				i_250386 = 0;
				HEX3Atmp_250388 = 0;
				LOC11 = 0;
				LOC11 = len_225364(enumfields);
				HEX3Atmp_250388 = (LOC11 - 1);
				res_250390 = 0;
				{
					while (1) {
						if (!(res_250390 <= HEX3Atmp_250388)) goto LA13;
						i_250386 = res_250390;
						e_250314 = (*enumfields).kindU.S6.Sons->data[i_250386];
						{
							if (!(((NI64) ((*(*e_250314).kindU.S4.Sym).Position)) == x)) goto LA16;
							result = copyString((*(*(*e_250314).kindU.S4.Sym).Name).S);
							goto BeforeRet;
						}
						LA16: ;
						res_250390 += 1;
					} LA13: ;
				}
			}
		}
	}
	LA6: ;
	{
		NimStringDesc* LOC22;
		NimStringDesc* LOC23;
		if (!(((*n).Flags &(1<<((((NU8) 1))&15)))!=0)) goto LA20;
		LOC22 = 0;
		LOC23 = 0;
		LOC23 = nsuToBin(x, (NI64)(size * 8));
		LOC22 = rawNewString(LOC23->Sup.len + 2);
appendString(LOC22, ((NimStringDesc*) &TMP1222));
appendString(LOC22, LOC23);
		result = LOC22;
	}
	goto LA18;
	LA20: ;
	{
		NimStringDesc* LOC27;
		NimStringDesc* LOC28;
		if (!(((*n).Flags &(1<<((((NU8) 2))&15)))!=0)) goto LA25;
		LOC27 = 0;
		LOC28 = 0;
		LOC28 = nsuToOct(x, (NI64)(size * 3));
		LOC27 = rawNewString(LOC28->Sup.len + 2);
appendString(LOC27, ((NimStringDesc*) &TMP1223));
appendString(LOC27, LOC28);
		result = LOC27;
	}
	goto LA18;
	LA25: ;
	{
		NimStringDesc* LOC32;
		NimStringDesc* LOC33;
		if (!(((*n).Flags &(1<<((((NU8) 3))&15)))!=0)) goto LA30;
		LOC32 = 0;
		LOC33 = 0;
		LOC33 = nsuToHex(x, (NI64)(size * 2));
		LOC32 = rawNewString(LOC33->Sup.len + 2);
appendString(LOC32, ((NimStringDesc*) &TMP1224));
appendString(LOC32, LOC33);
		result = LOC32;
	}
	goto LA18;
	LA30: ;
	{
		result = nimInt64ToStr(x);
	}
	LA18: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NimStringDesc*, ulitaux_250418)(tnode224816* n, NI64 x, NI size) {
	NimStringDesc* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		if (!(((*n).Flags &(1<<((((NU8) 1))&15)))!=0)) goto LA3;
		LOC5 = 0;
		LOC6 = 0;
		LOC6 = nsuToBin(x, (NI64)(size * 8));
		LOC5 = rawNewString(LOC6->Sup.len + 2);
appendString(LOC5, ((NimStringDesc*) &TMP1222));
appendString(LOC5, LOC6);
		result = LOC5;
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC10;
		NimStringDesc* LOC11;
		if (!(((*n).Flags &(1<<((((NU8) 2))&15)))!=0)) goto LA8;
		LOC10 = 0;
		LOC11 = 0;
		LOC11 = nsuToOct(x, (NI64)(size * 3));
		LOC10 = rawNewString(LOC11->Sup.len + 2);
appendString(LOC10, ((NimStringDesc*) &TMP1223));
appendString(LOC10, LOC11);
		result = LOC10;
	}
	goto LA1;
	LA8: ;
	{
		NimStringDesc* LOC15;
		NimStringDesc* LOC16;
		if (!(((*n).Flags &(1<<((((NU8) 3))&15)))!=0)) goto LA13;
		LOC15 = 0;
		LOC16 = 0;
		LOC16 = nsuToHex(x, (NI64)(size * 2));
		LOC15 = rawNewString(LOC16->Sup.len + 2);
appendString(LOC15, ((NimStringDesc*) &TMP1224));
appendString(LOC15, LOC16);
		result = LOC15;
	}
	goto LA1;
	LA13: ;
	{
		result = nimInt64ToStr(x);
	}
	LA1: ;
	return result;
}

N_NIMCALL(NimStringDesc*, atom_250469)(tnode224816* n) {
	NimStringDesc* result;
	NF32 f;
	result = 0;
	f = 0;
	switch ((*n).Kind) {
	case ((NU8) 1):
	{
		result = copyString(((NimStringDesc*) &TMP1212));
	}
	break;
	case ((NU8) 2):
	{
		result = copyString((*(*n).kindU.S5.Ident).S);
	}
	break;
	case ((NU8) 3):
	{
		result = copyString((*(*(*n).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU8) 20):
	{
		result = makenimstring_249488((*n).kindU.S3.Strval);
	}
	break;
	case ((NU8) 21):
	{
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		LOC6 = 0;
		LOC7 = 0;
		LOC7 = nsuReplaceStr((*n).kindU.S3.Strval, ((NimStringDesc*) &TMP1214), ((NimStringDesc*) &TMP1220));
		LOC6 = rawNewString(LOC7->Sup.len + 3);
appendString(LOC6, ((NimStringDesc*) &TMP1218));
appendString(LOC6, LOC7);
appendChar(LOC6, 34);
		result = LOC6;
	}
	break;
	case ((NU8) 22):
	{
		NimStringDesc* LOC9;
		LOC9 = 0;
		LOC9 = rawNewString((*n).kindU.S3.Strval->Sup.len + 6);
appendString(LOC9, ((NimStringDesc*) &TMP1221));
appendString(LOC9, (*n).kindU.S3.Strval);
appendString(LOC9, ((NimStringDesc*) &TMP1221));
		result = LOC9;
	}
	break;
	case ((NU8) 5):
	{
		NimStringDesc* LOC11;
		NimStringDesc* LOC12;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = tonimchar_249470(((NIM_CHAR) (((NI) (((NI) ((*n).kindU.S1.Intval)))))));
		LOC11 = rawNewString(LOC12->Sup.len + 2);
appendChar(LOC11, 39);
appendString(LOC11, LOC12);
appendChar(LOC11, 39);
		result = LOC11;
	}
	break;
	case ((NU8) 6):
	{
		result = litaux_250257(n, (*n).kindU.S1.Intval, 4);
	}
	break;
	case ((NU8) 7):
	{
		NimStringDesc* LOC15;
		NimStringDesc* LOC16;
		LOC15 = 0;
		LOC16 = 0;
		LOC16 = litaux_250257(n, (*n).kindU.S1.Intval, 1);
		LOC15 = rawNewString(LOC16->Sup.len + 3);
appendString(LOC15, LOC16);
appendString(LOC15, ((NimStringDesc*) &TMP1225));
		result = LOC15;
	}
	break;
	case ((NU8) 8):
	{
		NimStringDesc* LOC18;
		NimStringDesc* LOC19;
		LOC18 = 0;
		LOC19 = 0;
		LOC19 = litaux_250257(n, (*n).kindU.S1.Intval, 2);
		LOC18 = rawNewString(LOC19->Sup.len + 4);
appendString(LOC18, LOC19);
appendString(LOC18, ((NimStringDesc*) &TMP1226));
		result = LOC18;
	}
	break;
	case ((NU8) 9):
	{
		NimStringDesc* LOC21;
		NimStringDesc* LOC22;
		LOC21 = 0;
		LOC22 = 0;
		LOC22 = litaux_250257(n, (*n).kindU.S1.Intval, 4);
		LOC21 = rawNewString(LOC22->Sup.len + 4);
appendString(LOC21, LOC22);
appendString(LOC21, ((NimStringDesc*) &TMP1227));
		result = LOC21;
	}
	break;
	case ((NU8) 10):
	{
		NimStringDesc* LOC24;
		NimStringDesc* LOC25;
		LOC24 = 0;
		LOC25 = 0;
		LOC25 = litaux_250257(n, (*n).kindU.S1.Intval, 8);
		LOC24 = rawNewString(LOC25->Sup.len + 4);
appendString(LOC24, LOC25);
appendString(LOC24, ((NimStringDesc*) &TMP1228));
		result = LOC24;
	}
	break;
	case ((NU8) 11):
	{
		NimStringDesc* LOC27;
		NimStringDesc* LOC28;
		LOC27 = 0;
		LOC28 = 0;
		LOC28 = ulitaux_250418(n, (*n).kindU.S1.Intval, 4);
		LOC27 = rawNewString(LOC28->Sup.len + 2);
appendString(LOC27, LOC28);
appendString(LOC27, ((NimStringDesc*) &TMP1229));
		result = LOC27;
	}
	break;
	case ((NU8) 12):
	{
		NimStringDesc* LOC30;
		NimStringDesc* LOC31;
		LOC30 = 0;
		LOC31 = 0;
		LOC31 = ulitaux_250418(n, (*n).kindU.S1.Intval, 1);
		LOC30 = rawNewString(LOC31->Sup.len + 3);
appendString(LOC30, LOC31);
appendString(LOC30, ((NimStringDesc*) &TMP1230));
		result = LOC30;
	}
	break;
	case ((NU8) 13):
	{
		NimStringDesc* LOC33;
		NimStringDesc* LOC34;
		LOC33 = 0;
		LOC34 = 0;
		LOC34 = ulitaux_250418(n, (*n).kindU.S1.Intval, 2);
		LOC33 = rawNewString(LOC34->Sup.len + 4);
appendString(LOC33, LOC34);
appendString(LOC33, ((NimStringDesc*) &TMP1231));
		result = LOC33;
	}
	break;
	case ((NU8) 14):
	{
		NimStringDesc* LOC36;
		NimStringDesc* LOC37;
		LOC36 = 0;
		LOC37 = 0;
		LOC37 = ulitaux_250418(n, (*n).kindU.S1.Intval, 4);
		LOC36 = rawNewString(LOC37->Sup.len + 4);
appendString(LOC36, LOC37);
appendString(LOC36, ((NimStringDesc*) &TMP1232));
		result = LOC36;
	}
	break;
	case ((NU8) 15):
	{
		NimStringDesc* LOC39;
		NimStringDesc* LOC40;
		LOC39 = 0;
		LOC40 = 0;
		LOC40 = ulitaux_250418(n, (*n).kindU.S1.Intval, 8);
		LOC39 = rawNewString(LOC40->Sup.len + 4);
appendString(LOC39, LOC40);
appendString(LOC39, ((NimStringDesc*) &TMP1233));
		result = LOC39;
	}
	break;
	case ((NU8) 16):
	{
		{
			if (!(((*n).Flags & 14) == 0)) goto LA44;
			result = nimFloatToStr((*n).kindU.S2.Floatval);
		}
		goto LA42;
		LA44: ;
		{
			result = litaux_250257(n, (*((NI64*) ((&(*n).kindU.S2.Floatval)))), 8);
		}
		LA42: ;
	}
	break;
	case ((NU8) 17):
	{
		{
			NimStringDesc* LOC52;
			NimStringDesc* LOC53;
			if (!(((*n).Flags & 14) == 0)) goto LA50;
			LOC52 = 0;
			LOC53 = 0;
			LOC53 = nimFloatToStr((*n).kindU.S2.Floatval);
			LOC52 = rawNewString(LOC53->Sup.len + 4);
appendString(LOC52, LOC53);
appendString(LOC52, ((NimStringDesc*) &TMP1234));
			result = LOC52;
		}
		goto LA48;
		LA50: ;
		{
			NimStringDesc* LOC55;
			NimStringDesc* LOC56;
			f = ((NF32) ((*n).kindU.S2.Floatval));
			LOC55 = 0;
			LOC56 = 0;
			LOC56 = litaux_250257(n, ((NI64) ((*((NI32*) ((&f)))))), 4);
			LOC55 = rawNewString(LOC56->Sup.len + 4);
appendString(LOC55, LOC56);
appendString(LOC55, ((NimStringDesc*) &TMP1234));
			result = LOC55;
		}
		LA48: ;
	}
	break;
	case ((NU8) 18):
	{
		{
			NimStringDesc* LOC62;
			NimStringDesc* LOC63;
			if (!(((*n).Flags & 14) == 0)) goto LA60;
			LOC62 = 0;
			LOC63 = 0;
			LOC63 = nimFloatToStr((*n).kindU.S2.Floatval);
			LOC62 = rawNewString(LOC63->Sup.len + 4);
appendString(LOC62, LOC63);
appendString(LOC62, ((NimStringDesc*) &TMP1235));
			result = LOC62;
		}
		goto LA58;
		LA60: ;
		{
			NimStringDesc* LOC65;
			NimStringDesc* LOC66;
			LOC65 = 0;
			LOC66 = 0;
			LOC66 = litaux_250257(n, (*((NI64*) ((&(*n).kindU.S2.Floatval)))), 8);
			LOC65 = rawNewString(LOC66->Sup.len + 4);
appendString(LOC65, LOC66);
appendString(LOC65, ((NimStringDesc*) &TMP1235));
			result = LOC65;
		}
		LA58: ;
	}
	break;
	case ((NU8) 23):
	{
		result = copyString(((NimStringDesc*) &TMP1236));
	}
	break;
	case ((NU8) 4):
	{
		{
			NIM_BOOL LOC71;
			LOC71 = 0;
			LOC71 = !(((*n).Typ == NIM_NIL));
			if (!(LOC71)) goto LA72;
			LOC71 = !(((*(*n).Typ).Sym == NIM_NIL));
			LA72: ;
			if (!LOC71) goto LA73;
			result = copyString((*(*(*(*n).Typ).Sym).Name).S);
		}
		goto LA69;
		LA73: ;
		{
			result = copyString(((NimStringDesc*) &TMP1237));
		}
		LA69: ;
	}
	break;
	default:
	{
		NimStringDesc* LOC77;
		LOC77 = 0;
		LOC77 = rawNewString(reprEnum((*n).Kind, (&NTI224029))->Sup.len + 13);
appendString(LOC77, ((NimStringDesc*) &TMP1238));
appendString(LOC77, reprEnum((*n).Kind, (&NTI224029)));
		internalerror_197006(LOC77);
		result = copyString(((NimStringDesc*) &TMP1212));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, gident_253707)(tsrcgen249023* g, tnode224816* n) {
	NU8 t;
	NimStringDesc* s;
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC4;
		LOC3 = 0;
		LOC4 = 0;
		LOC4 = (*g).Checkanon;
		if (!(LOC4)) goto LA5;
		LOC4 = ((*n).Kind == ((NU8) 3));
		LA5: ;
		LOC3 = LOC4;
		if (!(LOC3)) goto LA6;
		LOC3 = (((*(*n).kindU.S4.Sym).Flags &(1<<((((NU8) 29))&31)))!=0);
		LA6: ;
		if (!LOC3) goto LA7;
		goto BeforeRet;
	}
	LA7: ;
	t = 0;
	s = atom_250469(n);
	{
		if (!(((NU8)(s->data[0])) >= ((NU8)(97)) && ((NU8)(s->data[0])) <= ((NU8)(122)) || ((NU8)(s->data[0])) >= ((NU8)(65)) && ((NU8)(s->data[0])) <= ((NU8)(90)) || ((NU8)(s->data[0])) >= ((NU8)(48)) && ((NU8)(s->data[0])) <= ((NU8)(57)) || ((NU8)(s->data[0])) >= ((NU8)(128)) && ((NU8)(s->data[0])) <= ((NU8)(255)))) goto LA11;
		{
			if (!((*n).Kind == ((NU8) 2))) goto LA15;
			{
				NIM_BOOL LOC19;
				LOC19 = 0;
				LOC19 = ((*(*n).kindU.S5.Ident).Sup.Id < 1);
				if (LOC19) goto LA20;
				LOC19 = (69 < (*(*n).kindU.S5.Ident).Sup.Id);
				LA20: ;
				if (!LOC19) goto LA21;
				t = ((NU8) 2);
			}
			goto LA17;
			LA21: ;
			{
				t = ((NU8) ((NI64)((*(*n).kindU.S5.Ident).Sup.Id + 2)));
			}
			LA17: ;
		}
		goto LA13;
		LA15: ;
		{
			t = ((NU8) 2);
		}
		LA13: ;
	}
	goto LA9;
	LA11: ;
	{
		t = ((NU8) 111);
	}
	LA9: ;
	put_249432(g, t, s);
	{
		NIM_BOOL LOC28;
		NimStringDesc* LOC32;
		LOC28 = 0;
		LOC28 = ((*n).Kind == ((NU8) 3));
		if (!(LOC28)) goto LA29;
		LOC28 = (((*g).Flags &(1<<((((NU8) 5))&7)))!=0);
		LA29: ;
		if (!LOC28) goto LA30;
		LOC32 = 0;
		LOC32 = nimIntToStr((*(*n).kindU.S4.Sym).Sup.Id);
		put_249432(g, ((NU8) 72), LOC32);
	}
	LA30: ;
	BeforeRet: ;
}

static N_INLINE(NI, sonslen_225249)(tnode224816* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

N_NIMCALL(NIM_BOOL, containsnl_249837)(NimStringDesc* s) {
	NIM_BOOL result;
	result = 0;
	{
		NI i_249853;
		NI HEX3Atmp_249855;
		NI res_249858;
		i_249853 = 0;
		HEX3Atmp_249855 = 0;
		HEX3Atmp_249855 = (NI64)(s->Sup.len - 1);
		res_249858 = 0;
		{
			while (1) {
				if (!(res_249858 <= HEX3Atmp_249855)) goto LA3;
				i_249853 = res_249858;
				switch (((NU8)(s->data[i_249853]))) {
				case 13:
				case 10:
				{
					result = NIM_TRUE;
					goto BeforeRet;
				}
				break;
				default:
				{
				}
				break;
				}
				res_249858 += 1;
			} LA3: ;
		}
	}
	result = NIM_FALSE;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NI, lcomma_250950)(tnode224816* n, NI start, NI theend) {
	NI result;
	result = 0;
	result = 0;
	{
		NI i_251013;
		NI HEX3Atmp_251066;
		NI LOC2;
		NI res_251069;
		i_251013 = 0;
		HEX3Atmp_251066 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_251066 = (NI64)(LOC2 + theend);
		res_251069 = start;
		{
			while (1) {
				NI LOC5;
				if (!(res_251069 <= HEX3Atmp_251066)) goto LA4;
				i_251013 = res_251069;
				LOC5 = 0;
				LOC5 = lsub_250251((*n).kindU.S6.Sons->data[i_251013]);
				result += LOC5;
				result += 2;
				res_251069 += 1;
			} LA4: ;
		}
	}
	{
		if (!(0 < result)) goto LA8;
		result -= 2;
	}
	LA8: ;
	return result;
}

static N_INLINE(tnode224816*, HEX5BHEX5D_225698)(tnode224816* n, NI i) {
	tnode224816* result;
	result = 0;
	result = (*n).kindU.S6.Sons->data[i];
	return result;
}

N_NIMCALL(NI, lsons_251086)(tnode224816* n, NI start, NI theend) {
	NI result;
	result = 0;
	result = 0;
	{
		NI i_251213;
		NI HEX3Atmp_251241;
		NI LOC2;
		NI res_251244;
		i_251213 = 0;
		HEX3Atmp_251241 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_251241 = (NI64)(LOC2 + theend);
		res_251244 = start;
		{
			while (1) {
				NI LOC5;
				if (!(res_251244 <= HEX3Atmp_251241)) goto LA4;
				i_251213 = res_251244;
				LOC5 = 0;
				LOC5 = lsub_250251((*n).kindU.S6.Sons->data[i_251213]);
				result += LOC5;
				res_251244 += 1;
			} LA4: ;
		}
	}
	return result;
}

static N_INLINE(tnode224816*, lastson_225261)(tnode224816* n) {
	tnode224816* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_225249(n);
	result = (*n).kindU.S6.Sons->data[(NI64)(LOC1 - 1)];
	return result;
}

N_NIMCALL(NI, lsub_250251)(tnode224816* n) {
	NI result;
	result = 0;
	{
		if (!n == 0) goto LA3;
		result = 0;
		goto BeforeRet;
	}
	LA3: ;
	{
		if (!!(((*n).Comment == NIM_NIL))) goto LA7;
		result = 81;
		goto BeforeRet;
	}
	LA7: ;
	switch ((*n).Kind) {
	case ((NU8) 1):
	{
		result = 0;
	}
	break;
	case ((NU8) 22):
	{
		{
			NIM_BOOL LOC13;
			LOC13 = 0;
			LOC13 = containsnl_249837((*n).kindU.S3.Strval);
			if (!LOC13) goto LA14;
			result = 81;
		}
		goto LA11;
		LA14: ;
		{
			NimStringDesc* LOC17;
			LOC17 = 0;
			LOC17 = atom_250469(n);
			result = LOC17->Sup.len;
		}
		LA11: ;
	}
	break;
	case ((NU8) 2) ... ((NU8) 21):
	case ((NU8) 23) ... ((NU8) 23):
	{
		NimStringDesc* LOC19;
		LOC19 = 0;
		LOC19 = atom_250469(n);
		result = LOC19->Sup.len;
	}
	break;
	case ((NU8) 27):
	case ((NU8) 42):
	case ((NU8) 40):
	case ((NU8) 60):
	case ((NU8) 152):
	case ((NU8) 38):
	{
		NI LOC21;
		NI LOC22;
		LOC21 = 0;
		LOC21 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC22 = 0;
		LOC22 = lcomma_250950(n, 1, -1);
		result = (NI64)((NI64)(LOC21 + LOC22) + 2);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 32):
	{
		tnode224816* LOC24;
		LOC24 = 0;
		LOC24 = HEX5BHEX5D_225698(n, 1);
		result = lsub_250251(LOC24);
	}
	break;
	case ((NU8) 61):
	{
		NI LOC26;
		NI LOC27;
		LOC26 = 0;
		LOC26 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC27 = 0;
		LOC27 = lsub_250251((*n).kindU.S6.Sons->data[1]);
		result = (NI64)((NI64)(LOC26 + LOC27) + 8);
	}
	break;
	case ((NU8) 63):
	{
		NI LOC29;
		LOC29 = 0;
		LOC29 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC29 + 6);
	}
	break;
	case ((NU8) 62):
	{
		NI LOC31;
		LOC31 = 0;
		LOC31 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC31 + 7);
	}
	break;
	case ((NU8) 64):
	case ((NU8) 65):
	{
		result = lsub_250251((*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 26):
	{
		NI LOC34;
		NI LOC35;
		LOC34 = 0;
		LOC34 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC35 = 0;
		LOC35 = lcomma_250950(n, 1, -1);
		result = (NI64)((NI64)(LOC34 + LOC35) + 1);
	}
	break;
	case ((NU8) 33):
	case ((NU8) 73):
	case ((NU8) 74):
	{
		NI LOC37;
		LOC37 = 0;
		LOC37 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC37 + 3);
	}
	break;
	case ((NU8) 37):
	case ((NU8) 39):
	case ((NU8) 41):
	case ((NU8) 154):
	{
		NI LOC39;
		LOC39 = 0;
		LOC39 = lcomma_250950(n, 0, -1);
		result = (NI64)(LOC39 + 2);
	}
	break;
	case ((NU8) 151):
	{
		result = lcomma_250950(n, 0, -1);
	}
	break;
	case ((NU8) 54):
	{
		{
			NI LOC44;
			NI LOC47;
			LOC44 = 0;
			LOC44 = len_225364(n);
			if (!(0 < LOC44)) goto LA45;
			LOC47 = 0;
			LOC47 = lcomma_250950(n, 0, -1);
			result = (NI64)(LOC47 + 2);
		}
		goto LA42;
		LA45: ;
		{
			result = 3;
		}
		LA42: ;
	}
	break;
	case ((NU8) 56):
	case ((NU8) 57):
	{
		NI LOC50;
		NI LOC51;
		LOC50 = 0;
		LOC50 = lsons_251086(n, 0, -1);
		LOC51 = 0;
		LOC51 = sonslen_225249(n);
		result = (NI64)((NI64)((NI64)(LOC50 + 2) + LOC51) - 1);
	}
	break;
	case ((NU8) 134):
	{
		NI LOC53;
		LOC53 = 0;
		LOC53 = lcomma_250950(n, 0, -1);
		result = (NI64)(LOC53 + 7);
	}
	break;
	case ((NU8) 45):
	{
		NI LOC55;
		LOC55 = 0;
		LOC55 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC55 + 1);
	}
	break;
	case ((NU8) 55):
	{
		NI LOC57;
		LOC57 = 0;
		LOC57 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC57 + 5);
	}
	break;
	case ((NU8) 122):
	{
		NI LOC59;
		LOC59 = 0;
		LOC59 = lcomma_250950(n, 0, -1);
		result = (NI64)(LOC59 + 5);
	}
	break;
	case ((NU8) 123):
	{
		NI LOC61;
		LOC61 = 0;
		LOC61 = lcomma_250950(n, 0, -1);
		result = (NI64)(LOC61 + 6);
	}
	break;
	case ((NU8) 46):
	{
		result = lsub_250251((*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 51):
	{
		NI LOC64;
		LOC64 = 0;
		LOC64 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC64 + 8);
	}
	break;
	case ((NU8) 52):
	{
		NI LOC66;
		LOC66 = 0;
		LOC66 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC66 + 6);
	}
	break;
	case ((NU8) 102):
	case ((NU8) 35):
	{
		NI l;
		result = lcomma_250950(n, 0, -3);
		l = sonslen_225249(n);
		{
			NI LOC72;
			if (!!(((*(*n).kindU.S6.Sons->data[(NI64)(l - 2)]).Kind == ((NU8) 1)))) goto LA70;
			LOC72 = 0;
			LOC72 = lsub_250251((*n).kindU.S6.Sons->data[(NI64)(l - 2)]);
			result = (NI64)((NI64)(result + LOC72) + 2);
		}
		LA70: ;
		{
			NI LOC77;
			if (!!(((*(*n).kindU.S6.Sons->data[(NI64)(l - 1)]).Kind == ((NU8) 1)))) goto LA75;
			LOC77 = 0;
			LOC77 = lsub_250251((*n).kindU.S6.Sons->data[(NI64)(l - 1)]);
			result = (NI64)((NI64)(result + LOC77) + 3);
		}
		LA75: ;
	}
	break;
	case ((NU8) 36):
	{
		NI LOC79;
		tnode224816* LOC80;
		NI LOC81;
		LOC79 = 0;
		LOC79 = lcomma_250950(n, 0, -3);
		LOC80 = 0;
		LOC80 = lastson_225261(n);
		LOC81 = 0;
		LOC81 = lsub_250251(LOC80);
		result = (NI64)((NI64)(LOC79 + 5) + LOC81);
	}
	break;
	case ((NU8) 68):
	{
		NI LOC83;
		LOC83 = 0;
		LOC83 = lcomma_250950(n, 0, -1);
		result = (NI64)(12 + LOC83);
	}
	break;
	case ((NU8) 69):
	{
		NI LOC85;
		LOC85 = 0;
		LOC85 = lcomma_250950(n, 0, -1);
		result = (NI64)(13 + LOC85);
	}
	break;
	case ((NU8) 70):
	{
		NI LOC87;
		LOC87 = 0;
		LOC87 = lcomma_250950(n, 0, -1);
		result = (NI64)(11 + LOC87);
	}
	break;
	case ((NU8) 66):
	case ((NU8) 67):
	case ((NU8) 71):
	case ((NU8) 72):
	{
		NI LOC95;
		result = 2;
		{
			NI LOC91;
			NI LOC94;
			LOC91 = 0;
			LOC91 = sonslen_225249(n);
			if (!(1 <= LOC91)) goto LA92;
			LOC94 = 0;
			LOC94 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			result = (NI64)(result + LOC94);
		}
		LA92: ;
		LOC95 = 0;
		LOC95 = lcomma_250950(n, 1, -1);
		result = (NI64)(result + LOC95);
	}
	break;
	case ((NU8) 34):
	{
		NI LOC97;
		LOC97 = 0;
		LOC97 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC97 + 2);
	}
	break;
	case ((NU8) 29):
	{
		NI LOC99;
		LOC99 = 0;
		LOC99 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC99 + 2);
	}
	break;
	case ((NU8) 30):
	{
		NI LOC101;
		NI LOC102;
		LOC101 = 0;
		LOC101 = lsons_251086(n, 0, -1);
		LOC102 = 0;
		{
			NIM_BOOL LOC105;
			NI LOC106;
			LOC105 = 0;
			LOC106 = 0;
			LOC106 = len_225364(n);
			LOC105 = (0 < LOC106);
			if (!(LOC105)) goto LA107;
			LOC105 = ((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 29));
			LA107: ;
			if (!LOC105) goto LA108;
			LOC102 = 2;
		}
		goto LA103;
		LA108: ;
		{
			LOC102 = 0;
		}
		LA103: ;
		result = (NI64)((NI64)(LOC101 + 1) + LOC102);
	}
	break;
	case ((NU8) 31):
	{
		result = lsons_251086(n, 0, -1);
	}
	break;
	case ((NU8) 28):
	{
		result = lsons_251086(n, 0, -1);
	}
	break;
	case ((NU8) 43):
	{
		NI LOC114;
		NI LOC115;
		LOC114 = 0;
		LOC114 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC115 = 0;
		LOC115 = lcomma_250950(n, 1, -1);
		result = (NI64)(LOC114 + LOC115);
	}
	break;
	case ((NU8) 44):
	{
		NI LOC117;
		LOC117 = 0;
		LOC117 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC117 + 2);
	}
	break;
	case ((NU8) 47):
	{
		NI LOC119;
		LOC119 = 0;
		LOC119 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC119 + 2);
	}
	break;
	case ((NU8) 53):
	{
		NI LOC121;
		LOC121 = 0;
		LOC121 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC121 + 2);
	}
	break;
	case ((NU8) 48):
	{
		NI LOC123;
		NI LOC124;
		NI LOC125;
		LOC123 = 0;
		LOC123 = lsub_250251((*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
		LOC124 = 0;
		LOC124 = lsub_250251((*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		LOC125 = 0;
		LOC125 = lsons_251086(n, 1, -1);
		result = (NI64)((NI64)((NI64)(LOC123 + LOC124) + LOC125) + 5);
	}
	break;
	case ((NU8) 49):
	{
		NI LOC127;
		LOC127 = 0;
		LOC127 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC127 + 8);
	}
	break;
	case ((NU8) 50):
	{
		NI LOC129;
		LOC129 = 0;
		LOC129 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC129 + 7);
	}
	break;
	case ((NU8) 132):
	{
		NI LOC131;
		LOC131 = 0;
		LOC131 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC131 + 5);
	}
	break;
	case ((NU8) 140):
	{
		NI LOC133;
		LOC133 = 0;
		{
			NI LOC136;
			NI LOC139;
			LOC136 = 0;
			LOC136 = len_225364(n);
			if (!(0 < LOC136)) goto LA137;
			LOC139 = 0;
			LOC139 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			LOC133 = (NI64)(LOC139 + 1);
		}
		goto LA134;
		LA137: ;
		{
			LOC133 = 0;
		}
		LA134: ;
		result = (NI64)(LOC133 + 3);
	}
	break;
	case ((NU8) 141):
	{
		NI LOC142;
		LOC142 = 0;
		{
			NI LOC145;
			NI LOC148;
			LOC145 = 0;
			LOC145 = len_225364(n);
			if (!(0 < LOC145)) goto LA146;
			LOC148 = 0;
			LOC148 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			LOC142 = (NI64)(LOC148 + 1);
		}
		goto LA143;
		LA146: ;
		{
			LOC142 = 0;
		}
		LA143: ;
		result = (NI64)(LOC142 + 3);
	}
	break;
	case ((NU8) 142):
	{
		NI LOC151;
		LOC151 = 0;
		{
			NI LOC154;
			NI LOC157;
			LOC154 = 0;
			LOC154 = len_225364(n);
			if (!(0 < LOC154)) goto LA155;
			LOC157 = 0;
			LOC157 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			LOC151 = (NI64)(LOC157 + 1);
		}
		goto LA152;
		LA155: ;
		{
			LOC151 = 0;
		}
		LA152: ;
		result = (NI64)(LOC151 + 3);
	}
	break;
	case ((NU8) 145):
	{
		NI LOC160;
		LOC160 = 0;
		{
			NI LOC163;
			NI LOC166;
			LOC163 = 0;
			LOC163 = len_225364(n);
			if (!(0 < LOC163)) goto LA164;
			LOC166 = 0;
			LOC166 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			LOC160 = (NI64)(LOC166 + 1);
		}
		goto LA161;
		LA164: ;
		{
			LOC160 = 0;
		}
		LA161: ;
		result = (NI64)(8 + LOC160);
		{
			NI LOC170;
			NI LOC173;
			tnode224816* LOC180;
			NI LOC181;
			LOC170 = 0;
			LOC170 = len_225364(n);
			if (!(1 < LOC170)) goto LA171;
			LOC173 = 0;
			{
				tnode224816* LOC176;
				LOC176 = 0;
				LOC176 = HEX5BHEX5D_225698(n, 1);
				if (!((*LOC176).Kind == ((NU8) 130))) goto LA177;
				LOC173 = 6;
			}
			goto LA174;
			LA177: ;
			{
				LOC173 = 9;
			}
			LA174: ;
			result += LOC173;
			LOC180 = 0;
			LOC180 = HEX5BHEX5D_225698(n, 1);
			LOC181 = 0;
			LOC181 = lcomma_250950(LOC180, 0, -1);
			result += LOC181;
		}
		LA171: ;
	}
	break;
	case ((NU8) 136):
	{
		NI LOC183;
		LOC183 = 0;
		{
			NI LOC186;
			LOC186 = 0;
			LOC186 = len_225364(n);
			if (!(0 < LOC186)) goto LA187;
			LOC183 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		}
		goto LA184;
		LA187: ;
		{
			LOC183 = 0;
		}
		LA184: ;
		result = (NI64)(LOC183 + 8);
	}
	break;
	case ((NU8) 103):
	{
		NI LOC191;
		LOC191 = 0;
		LOC191 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC191 + 3);
	}
	break;
	case ((NU8) 77):
	{
		NI LOC193;
		LOC193 = 0;
		LOC193 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC193 + 3);
	}
	break;
	case ((NU8) 146):
	{
		NI LOC195;
		LOC195 = 0;
		LOC195 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC195 + 5);
	}
	break;
	case ((NU8) 147):
	{
		NI LOC197;
		LOC197 = 0;
		LOC197 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC197 + 9);
	}
	break;
	case ((NU8) 148):
	{
		NI LOC199;
		LOC199 = 0;
		LOC199 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC199 + 7);
	}
	break;
	case ((NU8) 149):
	{
		{
			NI LOC203;
			NI LOC206;
			NI LOC207;
			LOC203 = 0;
			LOC203 = sonslen_225249(n);
			if (!(0 < LOC203)) goto LA204;
			LOC206 = 0;
			LOC206 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			LOC207 = 0;
			LOC207 = lcomma_250950(n, 1, -1);
			result = (NI64)((NI64)(LOC206 + LOC207) + 5);
		}
		goto LA201;
		LA204: ;
		{
			result = 4;
		}
		LA201: ;
	}
	break;
	case ((NU8) 150):
	{
		NI LOC210;
		LOC210 = 0;
		LOC210 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC210 + 3);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		{
			NI LOC214;
			LOC214 = 0;
			LOC214 = sonslen_225249(n);
			if (!(1 < LOC214)) goto LA215;
			result = 81;
		}
		goto LA212;
		LA215: ;
		{
			NI LOC218;
			LOC218 = 0;
			LOC218 = lsons_251086(n, 0, -1);
			result = (NI64)(LOC218 + 4);
		}
		LA212: ;
	}
	break;
	case ((NU8) 109):
	{
		NI LOC220;
		LOC220 = 0;
		LOC220 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC220 + 7);
	}
	break;
	case ((NU8) 108):
	{
		NI LOC222;
		LOC222 = 0;
		LOC222 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC222 + 6);
	}
	break;
	case ((NU8) 104):
	{
		NI LOC224;
		LOC224 = 0;
		LOC224 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC224 + 6);
	}
	break;
	case ((NU8) 114):
	{
		NI LOC226;
		LOC226 = 0;
		LOC226 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC226 + 8);
	}
	break;
	case ((NU8) 110):
	{
		NI LOC228;
		LOC228 = 0;
		LOC228 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC228 + 6);
	}
	break;
	case ((NU8) 111):
	{
		NI LOC230;
		LOC230 = 0;
		LOC230 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC230 + 9);
	}
	break;
	case ((NU8) 90):
	{
		NI LOC232;
		LOC232 = 0;
		LOC232 = lcomma_250950(n, 0, -1);
		result = (NI64)(LOC232 + 4);
	}
	break;
	case ((NU8) 125):
	{
		{
			if (!(*n).Comment == 0) goto LA236;
			result = 0;
		}
		goto LA234;
		LA236: ;
		{
			result = (*n).Comment->Sup.len;
		}
		LA234: ;
	}
	break;
	case ((NU8) 85):
	{
		NI LOC240;
		tnode224816* LOC241;
		NI LOC242;
		LOC240 = 0;
		LOC240 = lcomma_250950(n, 0, -2);
		LOC241 = 0;
		LOC241 = lastson_225261(n);
		LOC242 = 0;
		LOC242 = lsub_250251(LOC241);
		result = (NI64)((NI64)(LOC240 + LOC242) + 5);
	}
	break;
	case ((NU8) 78):
	{
		NI LOC244;
		NI LOC245;
		LOC244 = 0;
		LOC244 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC245 = 0;
		LOC245 = lsub_250251((*n).kindU.S6.Sons->data[1]);
		result = (NI64)((NI64)(LOC244 + 4) + LOC245);
	}
	break;
	case ((NU8) 86):
	{
		NI LOC247;
		LOC247 = 0;
		LOC247 = lsons_251086(n, 0, -1);
		result = (NI64)(LOC247 + 7);
	}
	break;
	case ((NU8) 88):
	{
		NI LOC249;
		LOC249 = 0;
		LOC249 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC249 + 6);
	}
	break;
	case ((NU8) 107):
	{
		NI LOC251;
		LOC251 = 0;
		LOC251 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		result = (NI64)(LOC251 + 9);
	}
	break;
	case ((NU8) 75):
	{
		NI LOC253;
		LOC253 = 0;
		LOC253 = lcomma_250950(n, 0, -1);
		result = (NI64)(LOC253 + 2);
	}
	break;
	case ((NU8) 76):
	{
		NI LOC255;
		LOC255 = 0;
		LOC255 = lcomma_250950(n, 1, -1);
		result = (NI64)(LOC255 + 2);
		{
			NI LOC260;
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA258;
			LOC260 = 0;
			LOC260 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			result = (NI64)((NI64)(result + LOC260) + 2);
		}
		LA258: ;
	}
	break;
	case ((NU8) 87):
	{
		NI LOC262;
		tnode224816* LOC263;
		NI LOC264;
		LOC262 = 0;
		LOC262 = lcomma_250950(n, 0, -2);
		LOC263 = 0;
		LOC263 = lastson_225261(n);
		LOC264 = 0;
		LOC264 = lsub_250251(LOC263);
		result = (NI64)((NI64)(LOC262 + LOC264) + 9);
	}
	break;
	default:
	{
		result = 81;
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, fits_251994)(tsrcgen249023* g, NI x) {
	NIM_BOOL result;
	result = 0;
	result = ((NI64)(x + (*g).Linelen) <= 80);
	return result;
}

N_NIMCALL(void, putwithspace_252115)(tsrcgen249023* g, NU8 kind, NimStringDesc* s) {
	put_249432(g, kind, s);
	put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
}

N_NIMCALL(NIM_BOOL, hascom_252063)(tnode224816* n) {
	NIM_BOOL result;
	result = 0;
	result = NIM_FALSE;
	{
		if (!!(((*n).Comment == NIM_NIL))) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	switch ((*n).Kind) {
	case ((NU8) 1) ... ((NU8) 23):
	{
	}
	break;
	default:
	{
		{
			NI i_252079;
			NI HEX3Atmp_252095;
			NI LOC8;
			NI res_252098;
			i_252079 = 0;
			HEX3Atmp_252095 = 0;
			LOC8 = 0;
			LOC8 = sonslen_225249(n);
			HEX3Atmp_252095 = (NI64)(LOC8 - 1);
			res_252098 = 0;
			{
				while (1) {
					if (!(res_252098 <= HEX3Atmp_252095)) goto LA10;
					i_252079 = res_252098;
					{
						NIM_BOOL LOC13;
						LOC13 = 0;
						LOC13 = hascom_252063((*n).kindU.S6.Sons->data[i_252079]);
						if (!LOC13) goto LA14;
						result = NIM_TRUE;
						goto BeforeRet;
					}
					LA14: ;
					res_252098 += 1;
				} LA10: ;
			}
		}
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, shouldrendercomment_249981)(tsrcgen249023* g, tnode224816* n) {
	NIM_BOOL result;
	result = 0;
	result = NIM_FALSE;
	{
		NIM_BOOL LOC5;
		NIM_BOOL LOC7;
		if (!!(((*n).Comment == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = !((((*g).Flags &(1<<((((NU8) 2))&7)))!=0));
		if (LOC5) goto LA6;
		LOC7 = 0;
		LOC7 = (((*g).Flags &(1<<((((NU8) 3))&7)))!=0);
		if (!(LOC7)) goto LA8;
		LOC7 = nsuStartsWith((*n).Comment, ((NimStringDesc*) &TMP1242));
		LA8: ;
		LOC5 = LOC7;
		LA6: ;
		result = LOC5;
	}
	LA3: ;
	return result;
}

N_NIMCALL(NI, maxlinelength_249682)(NimStringDesc* s) {
	NI result;
	NI i;
	NI linelen;
	result = 0;
	{
		if (!s == 0) goto LA3;
		result = 0;
		goto BeforeRet;
	}
	LA3: ;
	i = 0;
	linelen = 0;
	{
		while (1) {
			switch (((NU8)(s->data[i]))) {
			case 0:
			{
				goto LA5;
			}
			break;
			case 13:
			{
				i += 1;
				{
					if (!((NU8)(s->data[i]) == (NU8)(10))) goto LA11;
					i += 1;
				}
				LA11: ;
				result = ((result >= linelen) ? result : linelen);
				linelen = 0;
			}
			break;
			case 10:
			{
				i += 1;
				result = ((result >= linelen) ? result : linelen);
				linelen = 0;
			}
			break;
			default:
			{
				linelen += 1;
				i += 1;
			}
			break;
			}
		}
	} LA5: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, optnl_249300)(tsrcgen249023* g) {
	optnl_249289(g, (*g).Indent);
}

N_NIMCALL(void, putcomment_249526)(tsrcgen249023* g, NimStringDesc* s) {
	NI i;
	NI comindent;
	NIM_BOOL iscode;
	NIM_BOOL LOC5;
	NI ind;
	NimStringDesc* com;
	{
		if (!s == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	i = 0;
	comindent = 1;
	LOC5 = 0;
	LOC5 = (2 <= s->Sup.len);
	if (!(LOC5)) goto LA6;
	LOC5 = !(((NU8)(s->data[1]) == (NU8)(32)));
	LA6: ;
	iscode = LOC5;
	ind = (*g).Linelen;
	com = copyString(((NimStringDesc*) &TMP1212));
	{
		while (1) {
			switch (((NU8)(s->data[i]))) {
			case 0:
			{
				goto LA7;
			}
			break;
			case 13:
			{
				put_249432(g, ((NU8) 112), com);
				com = copyString(((NimStringDesc*) &TMP1212));
				i += 1;
				{
					if (!((NU8)(s->data[i]) == (NU8)(10))) goto LA13;
					i += 1;
				}
				LA13: ;
				optnl_249289(g, ind);
			}
			break;
			case 10:
			{
				put_249432(g, ((NU8) 112), com);
				com = copyString(((NimStringDesc*) &TMP1212));
				i += 1;
				optnl_249289(g, ind);
			}
			break;
			case 35:
			{
				com = addChar(com, s->data[i]);
				i += 1;
				comindent = 0;
				{
					while (1) {
						if (!((NU8)(s->data[i]) == (NU8)(32))) goto LA18;
						com = addChar(com, s->data[i]);
						i += 1;
						comindent += 1;
					} LA18: ;
				}
			}
			break;
			case 32:
			case 9:
			{
				com = addChar(com, s->data[i]);
				i += 1;
			}
			break;
			default:
			{
				NI j;
				j = i;
				{
					while (1) {
						if (!((NU8)(32) < (NU8)(s->data[j]))) goto LA22;
						j += 1;
					} LA22: ;
				}
				{
					NIM_BOOL LOC25;
					NimStringDesc* LOC29;
					NimStringDesc* LOC30;
					LOC25 = 0;
					LOC25 = !(iscode);
					if (!(LOC25)) goto LA26;
					LOC25 = (80 < (NI64)((*g).Linelen + (NI64)(j - i)));
					LA26: ;
					if (!LOC25) goto LA27;
					put_249432(g, ((NU8) 112), com);
					optnl_249289(g, ind);
					LOC29 = 0;
					LOC30 = 0;
					LOC30 = nsuRepeatChar(comindent, 32);
					LOC29 = rawNewString(LOC30->Sup.len + 1);
appendChar(LOC29, 35);
appendString(LOC29, LOC30);
					com = LOC29;
				}
				LA27: ;
				{
					while (1) {
						if (!((NU8)(32) < (NU8)(s->data[i]))) goto LA32;
						com = addChar(com, s->data[i]);
						i += 1;
					} LA32: ;
				}
			}
			break;
			}
		}
	} LA7: ;
	put_249432(g, ((NU8) 112), com);
	optnl_249300(g);
	BeforeRet: ;
}

N_NIMCALL(void, gcom_250019)(tsrcgen249023* g, tnode224816* n) {
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = shouldrendercomment_249981(g, n);
		if (!LOC3) goto LA4;
		{
			NIM_BOOL LOC8;
			NIM_BOOL LOC9;
			LOC8 = 0;
			LOC9 = 0;
			LOC9 = ((*g).Pendingnl < 0);
			if (!(LOC9)) goto LA10;
			LOC9 = (0 < (*g).Buf->Sup.len);
			LA10: ;
			LOC8 = LOC9;
			if (!(LOC8)) goto LA11;
			LOC8 = !(((NU8)((*g).Buf->data[(NI64)((*g).Buf->Sup.len - 1)]) == (NU8)(32)));
			LA11: ;
			if (!LOC8) goto LA12;
			put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		}
		LA12: ;
		{
			NIM_BOOL LOC16;
			NIM_BOOL LOC17;
			NI ml;
			LOC16 = 0;
			LOC17 = 0;
			LOC17 = ((*g).Pendingnl < 0);
			if (!(LOC17)) goto LA18;
			LOC17 = (0 < (*g).Buf->Sup.len);
			LA18: ;
			LOC16 = LOC17;
			if (!(LOC16)) goto LA19;
			LOC16 = ((*g).Linelen < 30);
			LA19: ;
			if (!LOC16) goto LA20;
			ml = maxlinelength_249682((*n).Comment);
			{
				NimStringDesc* LOC26;
				if (!((NI64)(ml + 30) <= 80)) goto LA24;
				LOC26 = 0;
				LOC26 = nsuRepeatChar((NI64)(30 - (*g).Linelen), 32);
				put_249432(g, ((NU8) 114), LOC26);
			}
			LA24: ;
		}
		LA20: ;
		putcomment_249526(g, (*n).Comment);
	}
	LA4: ;
}

N_NIMCALL(void, popallcoms_249914)(tsrcgen249023* g) {
	(*g).Comstack = (tnodeseq224810*) setLengthSeq(&((*g).Comstack)->Sup, sizeof(tnode224816*), 0);
}

N_NIMCALL(void, gcoms_250213)(tsrcgen249023* g) {
	{
		NI i_250229;
		NI HEX3Atmp_250231;
		NI res_250234;
		i_250229 = 0;
		HEX3Atmp_250231 = 0;
		HEX3Atmp_250231 = ((*g).Comstack->Sup.len-1);
		res_250234 = 0;
		{
			while (1) {
				if (!(res_250234 <= HEX3Atmp_250231)) goto LA3;
				i_250229 = res_250234;
				gcom_250019(g, (*g).Comstack->data[i_250229]);
				res_250234 += 1;
			} LA3: ;
		}
	}
	popallcoms_249914(g);
}

N_NIMCALL(void, gcommaaux_252127)(tsrcgen249023* g, tnode224816* n, NI ind, NI start, NI theend, NU8 separator) {
	{
		NI i_252148;
		NI HEX3Atmp_252228;
		NI LOC2;
		NI res_252231;
		i_252148 = 0;
		HEX3Atmp_252228 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_252228 = (NI64)(LOC2 + theend);
		res_252231 = start;
		{
			while (1) {
				NIM_BOOL c;
				NI LOC5;
				NI sublen;
				NI LOC6;
				NI oldlen;
				if (!(res_252231 <= HEX3Atmp_252228)) goto LA4;
				i_252148 = res_252231;
				LOC5 = 0;
				LOC5 = sonslen_225249(n);
				c = (i_252148 < (NI64)(LOC5 + theend));
				LOC6 = 0;
				LOC6 = lsub_250251((*n).kindU.S6.Sons->data[i_252148]);
				sublen = (NI64)(LOC6 + ((NI) (c)));
				{
					NIM_BOOL LOC9;
					NIM_BOOL LOC10;
					LOC9 = 0;
					LOC10 = 0;
					LOC10 = fits_251994((&(*g)), sublen);
					LOC9 = !(LOC10);
					if (!(LOC9)) goto LA11;
					LOC9 = ((NI64)(ind + sublen) < 80);
					LA11: ;
					if (!LOC9) goto LA12;
					optnl_249289(g, ind);
				}
				LA12: ;
				oldlen = (*g).Tokens->Sup.len;
				gsub_252049(g, (*n).kindU.S6.Sons->data[i_252148]);
				{
					if (!c) goto LA16;
					{
						if (!(oldlen < (*g).Tokens->Sup.len)) goto LA20;
						putwithspace_252115(g, separator, toktypetostr_214174[(separator)- 0]);
					}
					LA20: ;
					{
						NIM_BOOL LOC24;
						LOC24 = 0;
						LOC24 = hascom_252063((*n).kindU.S6.Sons->data[i_252148]);
						if (!LOC24) goto LA25;
						gcoms_250213(g);
						optnl_249289(g, ind);
					}
					LA25: ;
				}
				LA16: ;
				res_252231 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gcomma_252278)(tsrcgen249023* g, tnode224816* n, NI start, NI theend) {
	NI ind;
	ind = (*g).Linelen;
	{
		if (!(40 < ind)) goto LA3;
		ind = (NI64)((*g).Indent + 4);
	}
	LA3: ;
	gcommaaux_252127(g, n, ind, start, theend, ((NU8) 104));
}

N_NIMCALL(void, gcomma_252248)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NI start, NI theend) {
	NI ind;
	ind = 0;
	{
		if (!((c.Field1 &(1<<((((NU8) 2))&7)))!=0)) goto LA3;
		ind = (NI64)((*g).Indent + 2);
	}
	goto LA1;
	LA3: ;
	{
		ind = (*g).Linelen;
		{
			if (!(40 < ind)) goto LA8;
			ind = (NI64)((*g).Indent + 4);
		}
		LA8: ;
	}
	LA1: ;
	gcommaaux_252127(g, n, ind, start, theend, ((NU8) 104));
}

N_NIMCALL(void, gsemicolon_252293)(tsrcgen249023* g, tnode224816* n, NI start, NI theend) {
	NI ind;
	ind = (*g).Linelen;
	{
		if (!(40 < ind)) goto LA3;
		ind = (NI64)((*g).Indent + 4);
	}
	LA3: ;
	gcommaaux_252127(g, n, ind, start, theend, ((NU8) 105));
}

N_NIMCALL(void, doparamsaux_253901)(tsrcgen249023* g, tnode224816* params) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = len_225364(params);
		if (!(1 < LOC3)) goto LA4;
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gsemicolon_252293(g, params, 1, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	LA4: ;
	{
		if (!!(((*(*params).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA8;
		putwithspace_252115(g, ((NU8) 111), ((NimStringDesc*) &TMP1262));
		gsub_252049(g, (*params).kindU.S6.Sons->data[0]);
	}
	LA8: ;
}

N_NIMCALL(void, gsons_252308)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NI start, NI theend) {
	{
		NI i_252328;
		NI HEX3Atmp_252344;
		NI LOC2;
		NI res_252347;
		i_252328 = 0;
		HEX3Atmp_252344 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_252344 = (NI64)(LOC2 + theend);
		res_252347 = start;
		{
			while (1) {
				if (!(res_252347 <= HEX3Atmp_252344)) goto LA4;
				i_252328 = res_252347;
				gsub_252040(g, (*n).kindU.S6.Sons->data[i_252328], c);
				res_252347 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, indentnl_249310)(tsrcgen249023* g) {
	(*g).Indent += 2;
	(*g).Pendingnl = (*g).Indent;
	(*g).Linelen = (*g).Indent;
}

N_NIMCALL(void, dedent_249332)(tsrcgen249023* g) {
	(*g).Indent -= 2;
	{
		if (!(2 < (*g).Pendingnl)) goto LA3;
		(*g).Pendingnl -= 2;
		(*g).Linelen -= 2;
	}
	LA3: ;
}

N_NIMCALL(void, putnl_249268)(tsrcgen249023* g, NI indent) {
	{
		if (!(0 <= (*g).Pendingnl)) goto LA3;
		addpendingnl_249258(g);
	}
	goto LA1;
	LA3: ;
	{
		addtok_249218(g, ((NU8) 114), ((NimStringDesc*) &TMP1213));
	}
	LA1: ;
	(*g).Pendingnl = indent;
	(*g).Linelen = indent;
}

N_NIMCALL(void, putnl_249279)(tsrcgen249023* g) {
	putnl_249268(g, (*g).Indent);
}

N_NIMCALL(void, gstmts_252475)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NIM_BOOL doindent) {
	{
		if (!((*n).Kind == ((NU8) 1))) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	{
		if (!((*n).Kind == ((NU8) 115) || (*n).Kind == ((NU8) 126) || (*n).Kind == ((NU8) 128))) goto LA7;
		{
			if (!doindent) goto LA11;
			indentnl_249310(g);
		}
		LA11: ;
		{
			NI i_252517;
			NI HEX3Atmp_252601;
			NI LOC14;
			NI res_252604;
			i_252517 = 0;
			HEX3Atmp_252601 = 0;
			LOC14 = 0;
			LOC14 = sonslen_225249(n);
			HEX3Atmp_252601 = (NI64)(LOC14 - 1);
			res_252604 = 0;
			{
				while (1) {
					if (!(res_252604 <= HEX3Atmp_252601)) goto LA16;
					i_252517 = res_252604;
					optnl_249300(g);
					{
						if (!((*(*n).kindU.S6.Sons->data[i_252517]).Kind == ((NU8) 115) || (*(*n).kindU.S6.Sons->data[i_252517]).Kind == ((NU8) 126) || (*(*n).kindU.S6.Sons->data[i_252517]).Kind == ((NU8) 128))) goto LA19;
						gstmts_252475(g, (*n).kindU.S6.Sons->data[i_252517], c, NIM_FALSE);
					}
					goto LA17;
					LA19: ;
					{
						gsub_252049(g, (*n).kindU.S6.Sons->data[i_252517]);
					}
					LA17: ;
					gcoms_250213(g);
					res_252604 += 1;
				} LA16: ;
			}
		}
		{
			if (!doindent) goto LA24;
			dedent_249332(g);
		}
		LA24: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!((c.Field1 &(1<<((((NU8) 0))&7)))!=0)) goto LA29;
			indentnl_249310(g);
		}
		LA29: ;
		gsub_252049(g, n);
		gcoms_250213(g);
		optnl_249300(g);
		{
			if (!((c.Field1 &(1<<((((NU8) 0))&7)))!=0)) goto LA33;
			dedent_249332(g);
		}
		LA33: ;
	}
	LA5: ;
	BeforeRet: ;
}

N_NIMCALL(NIM_BOOL, longmode_252420)(tnode224816* n, NI start, NI theend) {
	NIM_BOOL result;
	result = 0;
	result = !(((*n).Comment == NIM_NIL));
	{
		if (!!(result)) goto LA3;
		{
			NI i_252438;
			NI HEX3Atmp_252455;
			NI LOC6;
			NI res_252458;
			i_252438 = 0;
			HEX3Atmp_252455 = 0;
			LOC6 = 0;
			LOC6 = sonslen_225249(n);
			HEX3Atmp_252455 = (NI64)(LOC6 + theend);
			res_252458 = start;
			{
				while (1) {
					if (!(res_252458 <= HEX3Atmp_252455)) goto LA8;
					i_252438 = res_252458;
					{
						NI LOC11;
						LOC11 = 0;
						LOC11 = lsub_250251((*n).kindU.S6.Sons->data[i_252438]);
						if (!(80 < LOC11)) goto LA12;
						result = NIM_TRUE;
						goto LA5;
					}
					LA12: ;
					res_252458 += 1;
				} LA8: ;
			}
		} LA5: ;
	}
	LA3: ;
	return result;
}

N_NIMCALL(void, gif_252621)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	NI length;
	memset((void*)(&c), 0, sizeof(c));
	gsub_252049(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
	initcontext_252028((&c));
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		LOC3 = (80 < (NI64)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_250213(g);
	gstmts_252475(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1], c, NIM_TRUE);
	length = sonslen_225249(n);
	{
		NI i_252742;
		NI HEX3Atmp_252759;
		NI res_252762;
		i_252742 = 0;
		HEX3Atmp_252759 = 0;
		HEX3Atmp_252759 = (NI64)(length - 1);
		res_252762 = 1;
		{
			while (1) {
				if (!(res_252762 <= HEX3Atmp_252759)) goto LA10;
				i_252742 = res_252762;
				optnl_249300(g);
				gsub_252040(g, (*n).kindU.S6.Sons->data[i_252742], c);
				res_252762 += 1;
			} LA10: ;
		}
	}
}

N_NIMCALL(void, gwhile_252779)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	putwithspace_252115(g, ((NU8) 67), ((NimStringDesc*) &TMP1282));
	gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	initcontext_252028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*n).kindU.S6.Sons->data[1]);
		LOC3 = (80 < (NI64)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_250213(g);
	gstmts_252475(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
}

N_NIMCALL(void, gpragmablock_252897)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	initcontext_252028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*n).kindU.S6.Sons->data[1]);
		LOC3 = (80 < (NI64)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_250213(g);
	gstmts_252475(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
}

N_NIMCALL(void, gcase_253176)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	NI length;
	NI last;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_252028((&c));
	length = sonslen_225249(n);
	{
		if (!((*(*n).kindU.S6.Sons->data[(NI64)(length - 1)]).Kind == ((NU8) 88))) goto LA3;
		last = -2;
	}
	goto LA1;
	LA3: ;
	{
		last = -1;
	}
	LA1: ;
	{
		NIM_BOOL LOC8;
		LOC8 = 0;
		LOC8 = longmode_252420(n, 0, last);
		if (!LOC8) goto LA9;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA9: ;
	putwithspace_252115(g, ((NU8) 11), ((NimStringDesc*) &TMP1283));
	gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	gcoms_250213(g);
	optnl_249300(g);
	gsons_252308(g, n, c, 1, last);
	{
		if (!(last == -2)) goto LA13;
		initcontext_252028((&c));
		{
			NIM_BOOL LOC17;
			LOC17 = 0;
			LOC17 = longmode_252420((*n).kindU.S6.Sons->data[(NI64)(length - 1)], 0, -1);
			if (!LOC17) goto LA18;
			c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
		}
		LA18: ;
		gsub_252040(g, (*n).kindU.S6.Sons->data[(NI64)(length - 1)], c);
	}
	LA13: ;
}

N_NIMCALL(void, gtry_252970)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	put_249432(g, ((NU8) 61), ((NimStringDesc*) &TMP1284));
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	initcontext_252028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC3 = (80 < (NI64)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_250213(g);
	gstmts_252475(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
	gsons_252308(g, n, c, 1, -1);
}

N_NIMCALL(void, gfor_253029)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	NI length;
	memset((void*)(&c), 0, sizeof(c));
	length = sonslen_225249(n);
	putwithspace_252115(g, ((NU8) 28), ((NimStringDesc*) &TMP1285));
	initcontext_252028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		NI LOC6;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*n).kindU.S6.Sons->data[(NI64)(length - 1)]);
		LOC6 = 0;
		LOC6 = lsub_250251((*n).kindU.S6.Sons->data[(NI64)(length - 2)]);
		LOC3 = (80 < (NI64)((NI64)((NI64)(LOC5 + LOC6) + 6) + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA7;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA7: ;
	gcomma_252248(g, n, c, 0, -3);
	put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
	putwithspace_252115(g, ((NU8) 34), ((NimStringDesc*) &TMP1286));
	gsub_252040(g, (*n).kindU.S6.Sons->data[(NI64)(length - 2)], c);
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	gcoms_250213(g);
	gstmts_252475(g, (*n).kindU.S6.Sons->data[(NI64)(length - 1)], c, NIM_TRUE);
}

N_NIMCALL(void, gblock_253513)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_252028((&c));
	{
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		putwithspace_252115(g, ((NU8) 9), ((NimStringDesc*) &TMP1287));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	goto LA1;
	LA3: ;
	{
		put_249432(g, ((NU8) 9), ((NimStringDesc*) &TMP1287));
	}
	LA1: ;
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	{
		NIM_BOOL LOC8;
		NI LOC10;
		LOC8 = 0;
		LOC8 = longmode_252420(n, 0, -1);
		if (LOC8) goto LA9;
		LOC10 = 0;
		LOC10 = lsub_250251((*n).kindU.S6.Sons->data[1]);
		LOC8 = (80 < (NI64)(LOC10 + (*g).Linelen));
		LA9: ;
		if (!LOC8) goto LA11;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA11: ;
	gcoms_250213(g);
	indentnl_249310(g);
	gstmts_252475(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
	dedent_249332(g);
}

N_NIMCALL(void, gstaticstmt_253609)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	putwithspace_252115(g, ((NU8) 59), ((NimStringDesc*) &TMP1248));
	putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
	initcontext_252028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC3 = (80 < (NI64)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_250213(g);
	gstmts_252475(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
}

N_NIMCALL(void, gasm_253668)(tsrcgen249023* g, tnode224816* n) {
	putwithspace_252115(g, ((NU8) 6), ((NimStringDesc*) &TMP1288));
	gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	gcoms_250213(g);
	gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
}

N_NIMCALL(NIM_BOOL, iskeyword_249089)(NimStringDesc* s) {
	NIM_BOOL result;
	tident199021* i;
	result = 0;
	i = getident_199472(s);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (1 <= (*i).Sup.Id);
		if (!(LOC3)) goto LA4;
		LOC3 = ((*i).Sup.Id <= 69);
		LA4: ;
		if (!LOC3) goto LA5;
		result = NIM_TRUE;
	}
	LA5: ;
	return result;
}

N_NIMCALL(NimStringDesc*, renderdefinitionname_249134)(tsym224846* s, NIM_BOOL noquotes) {
	NimStringDesc* result;
	NimStringDesc* x;
	result = 0;
	x = (*(*s).Name).S;
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC5;
		NIM_BOOL LOC7;
		LOC3 = 0;
		LOC3 = noquotes;
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = (((NU8)(x->data[0])) >= ((NU8)(97)) && ((NU8)(x->data[0])) <= ((NU8)(122)) || ((NU8)(x->data[0])) >= ((NU8)(65)) && ((NU8)(x->data[0])) <= ((NU8)(90)) || ((NU8)(x->data[0])) >= ((NU8)(128)) && ((NU8)(x->data[0])) <= ((NU8)(255)));
		if (!(LOC5)) goto LA6;
		LOC7 = 0;
		LOC7 = iskeyword_249089(x);
		LOC5 = !(LOC7);
		LA6: ;
		LOC3 = LOC5;
		LA4: ;
		if (!LOC3) goto LA8;
		result = copyString(x);
	}
	goto LA1;
	LA8: ;
	{
		NimStringDesc* LOC11;
		LOC11 = 0;
		LOC11 = rawNewString(x->Sup.len + 2);
appendChar(LOC11, 96);
appendString(LOC11, x);
appendChar(LOC11, 96);
		result = LOC11;
	}
	LA1: ;
	return result;
}

N_NIMCALL(void, gpattern_252852)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	put_249432(g, ((NU8) 96), ((NimStringDesc*) &TMP1249));
	initcontext_252028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_252420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_250251((*n).kindU.S6.Sons->data[0]);
		LOC3 = (80 < (NI64)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_250213(g);
	gstmts_252475(g, n, c, NIM_TRUE);
	put_249432(g, ((NU8) 97), ((NimStringDesc*) &TMP1250));
}

N_NIMCALL(void, gproc_253290)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	NIM_BOOL oldcheckanon;
	memset((void*)(&c), 0, sizeof(c));
	{
		NimStringDesc* LOC5;
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3))) goto LA3;
		LOC5 = 0;
		LOC5 = renderdefinitionname_249134((*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym, NIM_FALSE);
		put_249432(g, ((NU8) 2), LOC5);
	}
	goto LA1;
	LA3: ;
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	LA1: ;
	{
		if (!!(((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 1)))) goto LA9;
		gpattern_252852(g, (*n).kindU.S6.Sons->data[1]);
	}
	LA9: ;
	oldcheckanon = (*g).Checkanon;
	(*g).Checkanon = NIM_TRUE;
	gsub_252049(g, (*n).kindU.S6.Sons->data[2]);
	(*g).Checkanon = oldcheckanon;
	gsub_252049(g, (*n).kindU.S6.Sons->data[3]);
	gsub_252049(g, (*n).kindU.S6.Sons->data[4]);
	{
		if (!!((((*g).Flags &(1<<((((NU8) 1))&7)))!=0))) goto LA13;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[6]).Kind == ((NU8) 1)))) goto LA17;
			put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
			putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
			indentnl_249310(g);
			gcoms_250213(g);
			dedent_249332(g);
			initcontext_252028((&c));
			gstmts_252475(g, (*n).kindU.S6.Sons->data[6], c, NIM_TRUE);
			putnl_249279(g);
		}
		goto LA15;
		LA17: ;
		{
			indentnl_249310(g);
			gcoms_250213(g);
			dedent_249332(g);
		}
		LA15: ;
	}
	LA13: ;
}

N_NIMCALL(void, gsection_252364)(tsrcgen249023* g, tnode224816* n, tcontext252010 c, NU8 kind, NimStringDesc* k) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = sonslen_225249(n);
		if (!(LOC3 == 0)) goto LA4;
		goto BeforeRet;
	}
	LA4: ;
	putwithspace_252115(g, kind, k);
	gcoms_250213(g);
	indentnl_249310(g);
	{
		NI i_252384;
		NI HEX3Atmp_252400;
		NI LOC7;
		NI res_252403;
		i_252384 = 0;
		HEX3Atmp_252400 = 0;
		LOC7 = 0;
		LOC7 = sonslen_225249(n);
		HEX3Atmp_252400 = (NI64)(LOC7 - 1);
		res_252403 = 0;
		{
			while (1) {
				if (!(res_252403 <= HEX3Atmp_252400)) goto LA9;
				i_252384 = res_252403;
				optnl_249300(g);
				gsub_252040(g, (*n).kindU.S6.Sons->data[i_252384], c);
				gcoms_250213(g);
				res_252403 += 1;
			} LA9: ;
		}
	}
	dedent_249332(g);
	BeforeRet: ;
}

N_NIMCALL(void, gtypeclassty_253499)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	tnode224816* LOC1;
	tnode224816* LOC2;
	tnode224816* LOC3;
	tnode224816* LOC4;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_252028((&c));
	putwithspace_252115(g, ((NU8) 31), ((NimStringDesc*) &TMP1317));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_225698(n, 0);
	gsons_252308(g, LOC1, c, 0, -1);
	LOC2 = 0;
	LOC2 = HEX5BHEX5D_225698(n, 1);
	gsub_252049(g, LOC2);
	LOC3 = 0;
	LOC3 = HEX5BHEX5D_225698(n, 2);
	gsub_252049(g, LOC3);
	gcoms_250213(g);
	indentnl_249310(g);
	gcoms_250213(g);
	LOC4 = 0;
	LOC4 = HEX5BHEX5D_225698(n, 3);
	gstmts_252475(g, LOC4, c, NIM_TRUE);
	dedent_249332(g);
}

N_NIMCALL(void, gsub_252040)(tsrcgen249023* g, tnode224816* n, tcontext252010 c_252045) {
	tcontext252010 a;
	{
		if (!n == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!!(((*n).Comment == NIM_NIL))) goto LA7;
		pushcom_249875(g, n);
	}
	LA7: ;
	switch ((*n).Kind) {
	case ((NU8) 22):
	{
		putrawstr_249767(g, ((NU8) 88), (*n).kindU.S3.Strval);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 4):
	{
		NimStringDesc* LOC12;
		LOC12 = 0;
		LOC12 = atom_250469(n);
		put_249432(g, ((NU8) 0), LOC12);
	}
	break;
	case ((NU8) 3):
	case ((NU8) 2):
	{
		gident_253707(g, n);
	}
	break;
	case ((NU8) 6):
	{
		NimStringDesc* LOC15;
		LOC15 = 0;
		LOC15 = atom_250469(n);
		put_249432(g, ((NU8) 72), LOC15);
	}
	break;
	case ((NU8) 7):
	{
		NimStringDesc* LOC17;
		LOC17 = 0;
		LOC17 = atom_250469(n);
		put_249432(g, ((NU8) 73), LOC17);
	}
	break;
	case ((NU8) 8):
	{
		NimStringDesc* LOC19;
		LOC19 = 0;
		LOC19 = atom_250469(n);
		put_249432(g, ((NU8) 74), LOC19);
	}
	break;
	case ((NU8) 9):
	{
		NimStringDesc* LOC21;
		LOC21 = 0;
		LOC21 = atom_250469(n);
		put_249432(g, ((NU8) 75), LOC21);
	}
	break;
	case ((NU8) 10):
	{
		NimStringDesc* LOC23;
		LOC23 = 0;
		LOC23 = atom_250469(n);
		put_249432(g, ((NU8) 76), LOC23);
	}
	break;
	case ((NU8) 11):
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = atom_250469(n);
		put_249432(g, ((NU8) 77), LOC25);
	}
	break;
	case ((NU8) 12):
	{
		NimStringDesc* LOC27;
		LOC27 = 0;
		LOC27 = atom_250469(n);
		put_249432(g, ((NU8) 78), LOC27);
	}
	break;
	case ((NU8) 13):
	{
		NimStringDesc* LOC29;
		LOC29 = 0;
		LOC29 = atom_250469(n);
		put_249432(g, ((NU8) 79), LOC29);
	}
	break;
	case ((NU8) 14):
	{
		NimStringDesc* LOC31;
		LOC31 = 0;
		LOC31 = atom_250469(n);
		put_249432(g, ((NU8) 80), LOC31);
	}
	break;
	case ((NU8) 15):
	{
		NimStringDesc* LOC33;
		LOC33 = 0;
		LOC33 = atom_250469(n);
		put_249432(g, ((NU8) 81), LOC33);
	}
	break;
	case ((NU8) 16):
	{
		NimStringDesc* LOC35;
		LOC35 = 0;
		LOC35 = atom_250469(n);
		put_249432(g, ((NU8) 82), LOC35);
	}
	break;
	case ((NU8) 17):
	{
		NimStringDesc* LOC37;
		LOC37 = 0;
		LOC37 = atom_250469(n);
		put_249432(g, ((NU8) 83), LOC37);
	}
	break;
	case ((NU8) 18):
	{
		NimStringDesc* LOC39;
		LOC39 = 0;
		LOC39 = atom_250469(n);
		put_249432(g, ((NU8) 84), LOC39);
	}
	break;
	case ((NU8) 19):
	{
		NimStringDesc* LOC41;
		LOC41 = 0;
		LOC41 = atom_250469(n);
		put_249432(g, ((NU8) 85), LOC41);
	}
	break;
	case ((NU8) 20):
	{
		NimStringDesc* LOC43;
		LOC43 = 0;
		LOC43 = atom_250469(n);
		put_249432(g, ((NU8) 86), LOC43);
	}
	break;
	case ((NU8) 21):
	{
		NimStringDesc* LOC45;
		LOC45 = 0;
		LOC45 = atom_250469(n);
		put_249432(g, ((NU8) 87), LOC45);
	}
	break;
	case ((NU8) 5):
	{
		NimStringDesc* LOC47;
		LOC47 = 0;
		LOC47 = atom_250469(n);
		put_249432(g, ((NU8) 91), LOC47);
	}
	break;
	case ((NU8) 23):
	{
		NimStringDesc* LOC49;
		LOC49 = 0;
		LOC49 = atom_250469(n);
		put_249432(g, ((NU8) 45), LOC49);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 60):
	case ((NU8) 25):
	case ((NU8) 152):
	case ((NU8) 38):
	{
		{
			NI LOC53;
			LOC53 = 0;
			LOC53 = sonslen_225249(n);
			if (!(1 <= LOC53)) goto LA54;
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA54: ;
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252278(g, n, 1, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 28):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		{
			NimStringDesc* LOC61;
			tnode224816* LOC62;
			NimStringDesc* LOC63;
			if (!((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 21))) goto LA59;
			LOC61 = 0;
			LOC62 = 0;
			LOC62 = HEX5BHEX5D_225698(n, 1);
			LOC63 = 0;
			LOC63 = nsuReplaceStr((*LOC62).kindU.S3.Strval, ((NimStringDesc*) &TMP1214), ((NimStringDesc*) &TMP1220));
			LOC61 = rawNewString(LOC63->Sup.len + 2);
appendChar(LOC61, 34);
appendString(LOC61, LOC63);
appendChar(LOC61, 34);
			put_249432(g, ((NU8) 87), LOC61);
		}
		goto LA57;
		LA59: ;
		{
			gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		}
		LA57: ;
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 32):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 61):
	{
		put_249432(g, ((NU8) 12), ((NimStringDesc*) &TMP1244));
		put_249432(g, ((NU8) 94), ((NimStringDesc*) &TMP1245));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 95), ((NimStringDesc*) &TMP1246));
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 63):
	{
		put_249432(g, ((NU8) 3), ((NimStringDesc*) &TMP1247));
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 62):
	{
		put_249432(g, ((NU8) 59), ((NimStringDesc*) &TMP1248));
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 42):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 94), ((NimStringDesc*) &TMP1245));
		gcomma_252278(g, n, 1, -1);
		put_249432(g, ((NU8) 95), ((NimStringDesc*) &TMP1246));
	}
	break;
	case ((NU8) 40):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 96), ((NimStringDesc*) &TMP1249));
		gcomma_252278(g, n, 1, -1);
		put_249432(g, ((NU8) 97), ((NimStringDesc*) &TMP1250));
	}
	break;
	case ((NU8) 43):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		gcomma_252278(g, n, 1, -1);
	}
	break;
	case ((NU8) 26):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		gcomma_252278(g, n, 1, -1);
	}
	break;
	case ((NU8) 33):
	case ((NU8) 73):
	case ((NU8) 74):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 68):
	{
		put_249432(g, ((NU8) 2), ((NimStringDesc*) &TMP1252));
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252278(g, n, 0, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 69):
	{
		put_249432(g, ((NU8) 2), ((NimStringDesc*) &TMP1253));
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252278(g, n, 0, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 70):
	{
		put_249432(g, ((NU8) 2), ((NimStringDesc*) &TMP1254));
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252278(g, n, 0, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 66):
	case ((NU8) 67):
	case ((NU8) 71):
	case ((NU8) 72):
	{
		{
			NI LOC80;
			LOC80 = 0;
			LOC80 = sonslen_225249(n);
			if (!(1 <= LOC80)) goto LA81;
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA81: ;
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252278(g, n, 1, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 56):
	case ((NU8) 57):
	{
		NimStringDesc* LOC104;
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		{
			NI i_254241;
			NI HEX3Atmp_255768;
			NI LOC85;
			NI res_255771;
			i_254241 = 0;
			HEX3Atmp_255768 = 0;
			LOC85 = 0;
			LOC85 = sonslen_225249(n);
			HEX3Atmp_255768 = (NI64)(LOC85 - 1);
			res_255771 = 0;
			{
				while (1) {
					if (!(res_255771 <= HEX3Atmp_255768)) goto LA87;
					i_254241 = res_255771;
					{
						if (!(0 < i_254241)) goto LA90;
						put_249432(g, ((NU8) 111), ((NimStringDesc*) &TMP1255));
					}
					LA90: ;
					{
						tsym224846* s;
						tnode224816* LOC96;
						tnode224816* LOC102;
						if (!((*(*n).kindU.S6.Sons->data[i_254241]).Kind == ((NU8) 3))) goto LA94;
						LOC96 = 0;
						LOC96 = HEX5BHEX5D_225698(n, i_254241);
						s = (*LOC96).kindU.S4.Sym;
						{
							tnode224816* LOC101;
							if (!!(((*s).Owner == NIM_NIL))) goto LA99;
							LOC101 = 0;
							LOC101 = HEX5BHEX5D_225698(n, i_254241);
							put_249432(g, ((NU8) 2), (*(*(*(*LOC101).kindU.S4.Sym).Owner).Name).S);
							put_249432(g, ((NU8) 111), ((NimStringDesc*) &TMP1256));
						}
						LA99: ;
						LOC102 = 0;
						LOC102 = HEX5BHEX5D_225698(n, i_254241);
						put_249432(g, ((NU8) 2), (*(*(*LOC102).kindU.S4.Sym).Name).S);
					}
					goto LA92;
					LA94: ;
					{
						gsub_252040(g, (*n).kindU.S6.Sons->data[i_254241], c_252045);
					}
					LA92: ;
					res_255771 += 1;
				} LA87: ;
			}
		}
		LOC104 = 0;
		{
			if (!((*n).Kind == ((NU8) 57))) goto LA107;
			LOC104 = copyString(((NimStringDesc*) &TMP1257));
		}
		goto LA105;
		LA107: ;
		{
			LOC104 = copyString(((NimStringDesc*) &TMP1243));
		}
		LA105: ;
		put_249432(g, ((NU8) 93), LOC104);
	}
	break;
	case ((NU8) 37):
	case ((NU8) 154):
	{
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252248(g, n, c_252045, 0, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 39):
	{
		put_249432(g, ((NU8) 96), ((NimStringDesc*) &TMP1249));
		gcomma_252248(g, n, c_252045, 0, -1);
		put_249432(g, ((NU8) 97), ((NimStringDesc*) &TMP1250));
	}
	break;
	case ((NU8) 151):
	{
		gcomma_252248(g, n, c_252045, 0, -1);
	}
	break;
	case ((NU8) 54):
	{
		put_249432(g, ((NU8) 96), ((NimStringDesc*) &TMP1249));
		{
			NI LOC116;
			LOC116 = 0;
			LOC116 = len_225364(n);
			if (!(0 < LOC116)) goto LA117;
			gcomma_252248(g, n, c_252045, 0, -1);
		}
		goto LA114;
		LA117: ;
		{
			put_249432(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		}
		LA114: ;
		put_249432(g, ((NU8) 97), ((NimStringDesc*) &TMP1250));
	}
	break;
	case ((NU8) 41):
	{
		put_249432(g, ((NU8) 94), ((NimStringDesc*) &TMP1245));
		gcomma_252248(g, n, c_252045, 0, -1);
		put_249432(g, ((NU8) 95), ((NimStringDesc*) &TMP1246));
	}
	break;
	case ((NU8) 45):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 109), ((NimStringDesc*) &TMP1256));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 55):
	{
		putwithspace_252115(g, ((NU8) 8), ((NimStringDesc*) &TMP1259));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 46):
	case ((NU8) 64):
	case ((NU8) 65):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 51):
	{
		putwithspace_252115(g, ((NU8) 52), ((NimStringDesc*) &TMP1260));
		gsub_252049(g, (*n).kindU.S6.Sons->data[3]);
		gsub_252049(g, (*n).kindU.S6.Sons->data[4]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
		gsub_252049(g, (*n).kindU.S6.Sons->data[6]);
	}
	break;
	case ((NU8) 52):
	{
		putwithspace_252115(g, ((NU8) 20), ((NimStringDesc*) &TMP1261));
		doparamsaux_253901(g, (*n).kindU.S6.Sons->data[3]);
		gsub_252049(g, (*n).kindU.S6.Sons->data[4]);
		put_249432(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gsub_252049(g, (*n).kindU.S6.Sons->data[6]);
	}
	break;
	case ((NU8) 102):
	case ((NU8) 35):
	{
		NI l;
		gcomma_252278(g, n, 0, -3);
		l = sonslen_225249(n);
		{
			NIM_BOOL LOC129;
			LOC129 = 0;
			LOC129 = (2 <= l);
			if (!(LOC129)) goto LA130;
			LOC129 = !(((*(*n).kindU.S6.Sons->data[(NI64)(l - 2)]).Kind == ((NU8) 1)));
			LA130: ;
			if (!LOC129) goto LA131;
			putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
			gsub_252049(g, (*n).kindU.S6.Sons->data[(NI64)(l - 2)]);
		}
		LA131: ;
		{
			NIM_BOOL LOC135;
			LOC135 = 0;
			LOC135 = (1 <= l);
			if (!(LOC135)) goto LA136;
			LOC135 = !(((*(*n).kindU.S6.Sons->data[(NI64)(l - 1)]).Kind == ((NU8) 1)));
			LA136: ;
			if (!LOC135) goto LA137;
			put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
			putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
			gsub_252040(g, (*n).kindU.S6.Sons->data[(NI64)(l - 1)], c_252045);
		}
		LA137: ;
	}
	break;
	case ((NU8) 36):
	{
		tnode224816* LOC140;
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gcomma_252278(g, n, 0, -3);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
		LOC140 = 0;
		LOC140 = lastson_225261(n);
		gsub_252040(g, LOC140, c_252045);
	}
	break;
	case ((NU8) 34):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 29):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		{
			NI LOC145;
			NI LOC146;
			NIM_BOOL LOC147;
			LOC145 = 0;
			LOC145 = lsub_250251((*n).kindU.S6.Sons->data[2]);
			LOC146 = 0;
			LOC146 = lsub_250251((*n).kindU.S6.Sons->data[0]);
			LOC147 = 0;
			LOC147 = fits_251994((&(*g)), (NI64)((NI64)(LOC145 + LOC146) + 1));
			if (!!(LOC147)) goto LA148;
			optnl_249289(g, (NI64)((*g).Indent + 4));
		}
		goto LA143;
		LA148: ;
		{
			put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		}
		LA143: ;
		gsub_252049(g, (*n).kindU.S6.Sons->data[2]);
	}
	break;
	case ((NU8) 30):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		{
			NI LOC154;
			LOC154 = 0;
			LOC154 = len_225364(n);
			if (!(1 < LOC154)) goto LA155;
			put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
			{
				if (!((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 29))) goto LA159;
				put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
				gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
				put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
			}
			goto LA157;
			LA159: ;
			{
				gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
			}
			LA157: ;
		}
		LA155: ;
	}
	break;
	case ((NU8) 31):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 44):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 110), ((NimStringDesc*) &TMP1263));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 47):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 111), ((NimStringDesc*) &TMP1264));
	}
	break;
	case ((NU8) 53):
	{
		put_249432(g, ((NU8) 113), ((NimStringDesc*) &TMP1265));
		{
			NI LOC168;
			LOC168 = 0;
			LOC168 = len_225364(n);
			if (!(0 < LOC168)) goto LA169;
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA169: ;
		{
			NI i_254835;
			NI HEX3Atmp_255774;
			NI LOC172;
			NI res_255777;
			i_254835 = 0;
			HEX3Atmp_255774 = 0;
			LOC172 = 0;
			LOC172 = len_225364(n);
			HEX3Atmp_255774 = (LOC172 - 1);
			res_255777 = 1;
			{
				while (1) {
					if (!(res_255777 <= HEX3Atmp_255774)) goto LA174;
					i_254835 = res_255777;
					put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
					gsub_252049(g, (*n).kindU.S6.Sons->data[i_254835]);
					res_255777 += 1;
				} LA174: ;
			}
		}
		put_249432(g, ((NU8) 113), ((NimStringDesc*) &TMP1265));
	}
	break;
	case ((NU8) 48):
	{
		putwithspace_252115(g, ((NU8) 32), ((NimStringDesc*) &TMP1266));
		gsub_252049(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gsub_252049(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		gsons_252308(g, n, TMP1267, 1, -1);
	}
	break;
	case ((NU8) 49):
	{
		putwithspace_252115(g, ((NU8) 21), ((NimStringDesc*) &TMP1268));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 50):
	{
		put_249432(g, ((NU8) 22), ((NimStringDesc*) &TMP1269));
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 132):
	{
		putwithspace_252115(g, ((NU8) 63), ((NimStringDesc*) &TMP1270));
		{
			NI LOC181;
			LOC181 = 0;
			LOC181 = len_225364(n);
			if (!(0 < LOC181)) goto LA182;
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA182: ;
	}
	break;
	case ((NU8) 140):
	{
		{
			NI LOC187;
			LOC187 = 0;
			LOC187 = sonslen_225249(n);
			if (!(0 < LOC187)) goto LA188;
			putwithspace_252115(g, ((NU8) 55), ((NimStringDesc*) &TMP1271));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA185;
		LA188: ;
		{
			put_249432(g, ((NU8) 55), ((NimStringDesc*) &TMP1271));
		}
		LA185: ;
	}
	break;
	case ((NU8) 141):
	{
		{
			NI LOC194;
			LOC194 = 0;
			LOC194 = sonslen_225249(n);
			if (!(0 < LOC194)) goto LA195;
			putwithspace_252115(g, ((NU8) 53), ((NimStringDesc*) &TMP1272));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA192;
		LA195: ;
		{
			put_249432(g, ((NU8) 53), ((NimStringDesc*) &TMP1272));
		}
		LA192: ;
	}
	break;
	case ((NU8) 142):
	{
		{
			NI LOC201;
			LOC201 = 0;
			LOC201 = sonslen_225249(n);
			if (!(0 < LOC201)) goto LA202;
			putwithspace_252115(g, ((NU8) 65), ((NimStringDesc*) &TMP1273));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA199;
		LA202: ;
		{
			put_249432(g, ((NU8) 65), ((NimStringDesc*) &TMP1273));
		}
		LA199: ;
	}
	break;
	case ((NU8) 145):
	{
		{
			NI LOC208;
			LOC208 = 0;
			LOC208 = len_225364(n);
			if (!(0 < LOC208)) goto LA209;
			putwithspace_252115(g, ((NU8) 18), ((NimStringDesc*) &TMP1274));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
			{
				NI LOC213;
				tnode224816* LOC222;
				LOC213 = 0;
				LOC213 = len_225364(n);
				if (!(1 < LOC213)) goto LA214;
				{
					tnode224816* LOC218;
					LOC218 = 0;
					LOC218 = HEX5BHEX5D_225698(n, 1);
					if (!((*LOC218).Kind == ((NU8) 130))) goto LA219;
					putwithspace_252115(g, ((NU8) 68), ((NimStringDesc*) &TMP1275));
				}
				goto LA216;
				LA219: ;
				{
					putwithspace_252115(g, ((NU8) 69), ((NimStringDesc*) &TMP1276));
				}
				LA216: ;
				LOC222 = 0;
				LOC222 = HEX5BHEX5D_225698(n, 1);
				gcomma_252278(g, LOC222, 0, -1);
			}
			LA214: ;
		}
		goto LA206;
		LA209: ;
		{
			put_249432(g, ((NU8) 18), ((NimStringDesc*) &TMP1274));
		}
		LA206: ;
	}
	break;
	case ((NU8) 103):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		{
			if (!!(((*(*n).kindU.S6.Sons->data[2]).Kind == ((NU8) 1)))) goto LA227;
			putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
			gsub_252049(g, (*n).kindU.S6.Sons->data[2]);
		}
		LA227: ;
	}
	break;
	case ((NU8) 133):
	{
		{
			NI LOC232;
			LOC232 = 0;
			LOC232 = sonslen_225249(n);
			if (!(0 < LOC232)) goto LA233;
			putwithspace_252115(g, ((NU8) 48), ((NimStringDesc*) &TMP1277));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
			gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
			gcoms_250213(g);
			gsub_252049(g, (*n).kindU.S6.Sons->data[2]);
		}
		goto LA230;
		LA233: ;
		{
			put_249432(g, ((NU8) 48), ((NimStringDesc*) &TMP1277));
		}
		LA230: ;
	}
	break;
	case ((NU8) 137):
	{
		indentnl_249310(g);
		{
			NI i_255153;
			NI HEX3Atmp_255780;
			NI LOC238;
			NI res_255783;
			i_255153 = 0;
			HEX3Atmp_255780 = 0;
			LOC238 = 0;
			LOC238 = sonslen_225249(n);
			HEX3Atmp_255780 = (NI64)(LOC238 - 1);
			res_255783 = 0;
			{
				while (1) {
					if (!(res_255783 <= HEX3Atmp_255780)) goto LA240;
					i_255153 = res_255783;
					optnl_249300(g);
					gsub_252040(g, (*n).kindU.S6.Sons->data[i_255153], c_252045);
					gcoms_250213(g);
					res_255783 += 1;
				} LA240: ;
			}
		}
		dedent_249332(g);
		putnl_249279(g);
	}
	break;
	case ((NU8) 77):
	{
		putwithspace_252115(g, ((NU8) 49), ((NimStringDesc*) &TMP1278));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 146):
	{
		{
			NI LOC245;
			LOC245 = 0;
			LOC245 = sonslen_225249(n);
			if (!(0 < LOC245)) goto LA246;
			putwithspace_252115(g, ((NU8) 52), ((NimStringDesc*) &TMP1260));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
			gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		}
		goto LA243;
		LA246: ;
		{
			put_249432(g, ((NU8) 52), ((NimStringDesc*) &TMP1260));
		}
		LA243: ;
	}
	break;
	case ((NU8) 147):
	{
		{
			NI LOC252;
			LOC252 = 0;
			LOC252 = sonslen_225249(n);
			if (!(0 < LOC252)) goto LA253;
			putwithspace_252115(g, ((NU8) 39), ((NimStringDesc*) &TMP1279));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
			gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
		}
		goto LA250;
		LA253: ;
		{
			put_249432(g, ((NU8) 39), ((NimStringDesc*) &TMP1279));
		}
		LA250: ;
	}
	break;
	case ((NU8) 136):
	{
		put_249432(g, ((NU8) 59), ((NimStringDesc*) &TMP1248));
		put_249432(g, ((NU8) 94), ((NimStringDesc*) &TMP1245));
		{
			NI LOC259;
			LOC259 = 0;
			LOC259 = len_225364(n);
			if (!(0 < LOC259)) goto LA260;
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA260: ;
		put_249432(g, ((NU8) 95), ((NimStringDesc*) &TMP1246));
	}
	break;
	case ((NU8) 149):
	{
		{
			NI LOC265;
			LOC265 = 0;
			LOC265 = sonslen_225249(n);
			if (!(0 < LOC265)) goto LA266;
			putwithspace_252115(g, ((NU8) 24), ((NimStringDesc*) &TMP1280));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
			gcoms_250213(g);
			indentnl_249310(g);
			gcommaaux_252127(g, n, (*g).Indent, 1, -1, ((NU8) 104));
			gcoms_250213(g);
			dedent_249332(g);
		}
		goto LA263;
		LA266: ;
		{
			put_249432(g, ((NU8) 24), ((NimStringDesc*) &TMP1280));
		}
		LA263: ;
	}
	break;
	case ((NU8) 150):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 108), ((NimStringDesc*) &TMP1251));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	case ((NU8) 128):
	{
		gstmts_252475(g, n, TMP1267, NIM_TRUE);
	}
	break;
	case ((NU8) 92):
	{
		putwithspace_252115(g, ((NU8) 32), ((NimStringDesc*) &TMP1266));
		gif_252621(g, n);
	}
	break;
	case ((NU8) 93):
	case ((NU8) 139):
	{
		putwithspace_252115(g, ((NU8) 66), ((NimStringDesc*) &TMP1281));
		gif_252621(g, n);
	}
	break;
	case ((NU8) 96):
	{
		gwhile_252779(g, n);
	}
	break;
	case ((NU8) 91):
	{
		gpragmablock_252897(g, n);
	}
	break;
	case ((NU8) 97):
	case ((NU8) 138):
	{
		gcase_253176(g, n);
	}
	break;
	case ((NU8) 106):
	{
		gtry_252970(g, n);
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		gfor_253029(g, n);
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		gblock_253513(g, n);
	}
	break;
	case ((NU8) 113):
	{
		gstaticstmt_253609(g, n);
	}
	break;
	case ((NU8) 89):
	{
		gasm_253668(g, n);
	}
	break;
	case ((NU8) 79):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA284;
			putwithspace_252115(g, ((NU8) 52), ((NimStringDesc*) &TMP1260));
		}
		LA284: ;
		gproc_253290(g, n);
	}
	break;
	case ((NU8) 81):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA289;
			putwithspace_252115(g, ((NU8) 15), ((NimStringDesc*) &TMP1289));
		}
		LA289: ;
		gproc_253290(g, n);
	}
	break;
	case ((NU8) 80):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA294;
			putwithspace_252115(g, ((NU8) 42), ((NimStringDesc*) &TMP1290));
		}
		LA294: ;
		gproc_253290(g, n);
	}
	break;
	case ((NU8) 84):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA299;
			putwithspace_252115(g, ((NU8) 39), ((NimStringDesc*) &TMP1279));
		}
		LA299: ;
		gproc_253290(g, n);
	}
	break;
	case ((NU8) 82):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA304;
			putwithspace_252115(g, ((NU8) 41), ((NimStringDesc*) &TMP1291));
		}
		LA304: ;
		gproc_253290(g, n);
	}
	break;
	case ((NU8) 83):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA309;
			putwithspace_252115(g, ((NU8) 60), ((NimStringDesc*) &TMP1292));
		}
		LA309: ;
		gproc_253290(g, n);
	}
	break;
	case ((NU8) 98):
	{
		gsection_252364(g, n, TMP1267, ((NU8) 63), ((NimStringDesc*) &TMP1270));
	}
	break;
	case ((NU8) 101):
	{
		initcontext_252028((&a));
		a.Field1 |= ((NI8)1)<<((((NU8) 2))%(sizeof(NI8)*8));
		gsection_252364(g, n, a, ((NU8) 13), ((NimStringDesc*) &TMP1293));
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		NI l;
		l = sonslen_225249(n);
		{
			if (!(l == 0)) goto LA316;
			goto BeforeRet;
		}
		LA316: ;
		{
			if (!((*n).Kind == ((NU8) 99))) goto LA320;
			putwithspace_252115(g, ((NU8) 65), ((NimStringDesc*) &TMP1273));
		}
		goto LA318;
		LA320: ;
		{
			putwithspace_252115(g, ((NU8) 40), ((NimStringDesc*) &TMP1294));
		}
		LA318: ;
		{
			if (!(1 < l)) goto LA325;
			gcoms_250213(g);
			indentnl_249310(g);
			{
				NI i_255416;
				NI HEX3Atmp_255786;
				NI res_255789;
				i_255416 = 0;
				HEX3Atmp_255786 = 0;
				HEX3Atmp_255786 = (NI64)(l - 1);
				res_255789 = 0;
				{
					while (1) {
						if (!(res_255789 <= HEX3Atmp_255786)) goto LA329;
						i_255416 = res_255789;
						optnl_249300(g);
						gsub_252049(g, (*n).kindU.S6.Sons->data[i_255416]);
						gcoms_250213(g);
						res_255789 += 1;
					} LA329: ;
				}
			}
			dedent_249332(g);
		}
		goto LA323;
		LA325: ;
		{
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA323: ;
	}
	break;
	case ((NU8) 109):
	{
		putwithspace_252115(g, ((NU8) 56), ((NimStringDesc*) &TMP1295));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 108):
	{
		putwithspace_252115(g, ((NU8) 54), ((NimStringDesc*) &TMP1296));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 104):
	{
		putwithspace_252115(g, ((NU8) 71), ((NimStringDesc*) &TMP1297));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 114):
	{
		putwithspace_252115(g, ((NU8) 17), ((NimStringDesc*) &TMP1298));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 110):
	{
		putwithspace_252115(g, ((NU8) 10), ((NimStringDesc*) &TMP1299));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 111):
	{
		putwithspace_252115(g, ((NU8) 14), ((NimStringDesc*) &TMP1300));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 90):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 4))&7)))!=0))) goto LA340;
			{
				if (!((*g).Inpragma <= 0)) goto LA344;
				(*g).Inpragma += 1;
				put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
				put_249432(g, ((NU8) 100), ((NimStringDesc*) &TMP1301));
				gcomma_252248(g, n, TMP1267, 0, -1);
				put_249432(g, ((NU8) 101), ((NimStringDesc*) &TMP1302));
				(*g).Inpragma -= 1;
			}
			goto LA342;
			LA344: ;
			{
				gcomma_252248(g, n, TMP1267, 0, -1);
			}
			LA342: ;
		}
		LA340: ;
	}
	break;
	case ((NU8) 116):
	case ((NU8) 118):
	{
		{
			if (!((*n).Kind == ((NU8) 116))) goto LA350;
			putwithspace_252115(g, ((NU8) 33), ((NimStringDesc*) &TMP1303));
		}
		goto LA348;
		LA350: ;
		{
			putwithspace_252115(g, ((NU8) 26), ((NimStringDesc*) &TMP1304));
		}
		LA348: ;
		gcoms_250213(g);
		indentnl_249310(g);
		gcommaaux_252127(g, n, (*g).Indent, 0, -1, ((NU8) 104));
		dedent_249332(g);
		putnl_249279(g);
	}
	break;
	case ((NU8) 117):
	case ((NU8) 119):
	{
		{
			if (!((*n).Kind == ((NU8) 117))) goto LA356;
			putwithspace_252115(g, ((NU8) 33), ((NimStringDesc*) &TMP1303));
		}
		goto LA354;
		LA356: ;
		{
			putwithspace_252115(g, ((NU8) 26), ((NimStringDesc*) &TMP1304));
		}
		LA354: ;
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 25), ((NimStringDesc*) &TMP1305));
		gcommaaux_252127(g, n, (*g).Indent, 1, -1, ((NU8) 104));
		gcoms_250213(g);
		putnl_249279(g);
	}
	break;
	case ((NU8) 120):
	{
		putwithspace_252115(g, ((NU8) 29), ((NimStringDesc*) &TMP1306));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 33), ((NimStringDesc*) &TMP1303));
		gcomma_252248(g, n, TMP1267, 1, -1);
		putnl_249279(g);
	}
	break;
	case ((NU8) 121):
	{
		putwithspace_252115(g, ((NU8) 35), ((NimStringDesc*) &TMP1307));
		gcoms_250213(g);
		indentnl_249310(g);
		gcommaaux_252127(g, n, (*g).Indent, 0, -1, ((NU8) 104));
		dedent_249332(g);
		putnl_249279(g);
	}
	break;
	case ((NU8) 125):
	{
		gcoms_250213(g);
		optnl_249300(g);
	}
	break;
	case ((NU8) 85):
	{
		tnode224816* LOC363;
		optnl_249300(g);
		putwithspace_252115(g, ((NU8) 49), ((NimStringDesc*) &TMP1278));
		gcomma_252248(g, n, c_252045, 0, -2);
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gcoms_250213(g);
		LOC363 = 0;
		LOC363 = lastson_225261(n);
		gstmts_252475(g, LOC363, c_252045, NIM_TRUE);
	}
	break;
	case ((NU8) 78):
	{
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 114), ((NimStringDesc*) &TMP1241));
		putwithspace_252115(g, ((NU8) 5), ((NimStringDesc*) &TMP1308));
		gsub_252049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 122):
	{
		putwithspace_252115(g, ((NU8) 8), ((NimStringDesc*) &TMP1259));
		gcomma_252248(g, n, c_252045, 0, -1);
	}
	break;
	case ((NU8) 123):
	{
		putwithspace_252115(g, ((NU8) 43), ((NimStringDesc*) &TMP1309));
		gcomma_252248(g, n, c_252045, 0, -1);
	}
	break;
	case ((NU8) 86):
	{
		optnl_249300(g);
		putwithspace_252115(g, ((NU8) 21), ((NimStringDesc*) &TMP1310));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gcoms_250213(g);
		gstmts_252475(g, (*n).kindU.S6.Sons->data[1], c_252045, NIM_TRUE);
	}
	break;
	case ((NU8) 88):
	{
		optnl_249300(g);
		put_249432(g, ((NU8) 22), ((NimStringDesc*) &TMP1311));
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gcoms_250213(g);
		gstmts_252475(g, (*n).kindU.S6.Sons->data[0], c_252045, NIM_TRUE);
	}
	break;
	case ((NU8) 107):
	{
		optnl_249300(g);
		put_249432(g, ((NU8) 27), ((NimStringDesc*) &TMP1312));
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gcoms_250213(g);
		gstmts_252475(g, (*n).kindU.S6.Sons->data[0], c_252045, NIM_TRUE);
	}
	break;
	case ((NU8) 87):
	{
		tnode224816* LOC371;
		optnl_249300(g);
		putwithspace_252115(g, ((NU8) 25), ((NimStringDesc*) &TMP1305));
		gcomma_252278(g, n, 0, -2);
		putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
		gcoms_250213(g);
		LOC371 = 0;
		LOC371 = lastson_225261(n);
		gstmts_252475(g, LOC371, c_252045, NIM_TRUE);
	}
	break;
	case ((NU8) 75):
	{
		put_249432(g, ((NU8) 94), ((NimStringDesc*) &TMP1245));
		gcomma_252278(g, n, 0, -1);
		put_249432(g, ((NU8) 95), ((NimStringDesc*) &TMP1246));
	}
	break;
	case ((NU8) 76):
	{
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1240));
		gsemicolon_252293(g, n, 1, -1);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA376;
			putwithspace_252115(g, ((NU8) 106), ((NimStringDesc*) &TMP1258));
			gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA376: ;
	}
	break;
	case ((NU8) 134):
	{
		put_249432(g, ((NU8) 62), ((NimStringDesc*) &TMP1313));
		{
			NI LOC381;
			LOC381 = 0;
			LOC381 = sonslen_225249(n);
			if (!(0 < LOC381)) goto LA382;
			put_249432(g, ((NU8) 94), ((NimStringDesc*) &TMP1245));
			gcomma_252278(g, n, 0, -1);
			put_249432(g, ((NU8) 95), ((NimStringDesc*) &TMP1246));
		}
		LA382: ;
	}
	break;
	case ((NU8) 24):
	{
		put_249432(g, ((NU8) 92), ((NimStringDesc*) &TMP1314));
		gsub_252049(g, (*n).kindU.S6.Sons->data[0]);
		put_249432(g, ((NU8) 93), ((NimStringDesc*) &TMP1243));
	}
	break;
	case ((NU8) 155):
	case ((NU8) 156):
	{
		tcontext252010 c;
		NimStringDesc* LOC386;
		memset((void*)(&c), 0, sizeof(c));
		initcontext_252028((&c));
		LOC386 = 0;
		{
			if (!((*n).Kind == ((NU8) 156))) goto LA389;
			LOC386 = copyString(((NimStringDesc*) &TMP1315));
		}
		goto LA387;
		LA389: ;
		{
			LOC386 = copyString(((NimStringDesc*) &TMP1316));
		}
		LA387: ;
		putwithspace_252115(g, ((NU8) 2), LOC386);
		gsons_252308(g, n, c, 0, -1);
	}
	break;
	case ((NU8) 135):
	{
		gtypeclassty_253499(g, n);
	}
	break;
	default:
	{
		NimStringDesc* LOC394;
		LOC394 = 0;
		LOC394 = rawNewString(reprEnum((*n).Kind, (&NTI224029))->Sup.len + 14);
appendString(LOC394, ((NimStringDesc*) &TMP1318));
appendString(LOC394, reprEnum((*n).Kind, (&NTI224029)));
appendChar(LOC394, 41);
		internalerror_196987((*n).Info, LOC394);
	}
	break;
	}
	BeforeRet: ;
}

N_NIMCALL(void, gsub_252049)(tsrcgen249023* g, tnode224816* n) {
	tcontext252010 c;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_252028((&c));
	gsub_252040(g, n, c);
}

N_NIMCALL(NimStringDesc*, rendertree_249058)(tnode224816* n, NU8 renderflags) {
	NimStringDesc* result;
	tsrcgen249023 g;
	result = 0;
	memset((void*)(&g), 0, sizeof(g));
	initsrcgen_249167((&g), renderflags);
	gsub_252049((&g), n);
	result = copyString(g.Buf);
	return result;
}

N_NIMCALL(void, inittokrender_249067)(tsrcgen249023* r, tnode224816* n, NU8 renderflags) {
	initsrcgen_249167(r, renderflags);
	gsub_252049(r, n);
}

N_NIMCALL(void, getnexttok_249078)(tsrcgen249023* r, NU8* kind, NimStringDesc** literal) {
	{
		NI length;
		if (!((*r).Idx < (*r).Tokens->Sup.len)) goto LA3;
		(*kind) = (*r).Tokens->data[(*r).Idx].Kind;
		length = ((NI) ((*r).Tokens->data[(*r).Idx].Length));
		unsureAsgnRef((void**) (&(*literal)), copyStrLast((*r).Buf, (*r).Pos, (NI64)((NI64)((*r).Pos + length) - 1)));
		(*r).Pos += length;
		(*r).Idx += 1;
	}
	goto LA1;
	LA3: ;
	{
		(*kind) = ((NU8) 1);
	}
	LA1: ;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_rendererInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_rendererDatInit)(void) {
static TNimNode* TMP1210[2];
static TNimNode TMP803[3];
NTI249019.size = sizeof(trendertok249019);
NTI249019.kind = 18;
NTI249019.base = 0;
NTI249019.flags = 3;
TMP1210[0] = &TMP803[1];
TMP803[1].kind = 1;
TMP803[1].offset = offsetof(trendertok249019, Kind);
TMP803[1].typ = (&NTI214022);
TMP803[1].name = "kind";
TMP1210[1] = &TMP803[2];
TMP803[2].kind = 1;
TMP803[2].offset = offsetof(trendertok249019, Length);
TMP803[2].typ = (&NTI112);
TMP803[2].name = "length";
TMP803[0].len = 2; TMP803[0].kind = 2; TMP803[0].sons = &TMP1210[0];
NTI249019.node = &TMP803[0];
NTI249021.size = sizeof(trendertokseq249021*);
NTI249021.kind = 24;
NTI249021.base = (&NTI249019);
NTI249021.flags = 2;
NTI249021.marker = TMP1211;
}

