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

#include <string.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tnode226816 tnode226816;
typedef struct tsrcgen251023 tsrcgen251023;
typedef struct trendertokseq251021 trendertokseq251021;
typedef struct trendertok251019 trendertok251019;
typedef struct tnodeseq226810 tnodeseq226810;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcontext254010 tcontext254010;
typedef struct ttype226852 ttype226852;
typedef struct tlineinfo196539 tlineinfo196539;
typedef struct tsym226846 tsym226846;
typedef struct tident201021 tident201021;
typedef struct tcell44933 tcell44933;
typedef struct tcellseq44949 tcellseq44949;
typedef struct tgcheap47016 tgcheap47016;
typedef struct tcellset44945 tcellset44945;
typedef struct tpagedesc44941 tpagedesc44941;
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 tidobj201015 tidobj201015;
typedef struct TNimObject TNimObject;
typedef struct ttypeseq226848 ttypeseq226848;
typedef struct tscope226840 tscope226840;
typedef struct TY226947 TY226947;
typedef struct tinstantiation226836 tinstantiation226836;
typedef struct tstrtable226820 tstrtable226820;
typedef struct tsymseq226818 tsymseq226818;
typedef struct tloc226830 tloc226830;
typedef struct trope178009 trope178009;
typedef struct tlib226834 tlib226834;
typedef struct tbasechunk26438 tbasechunk26438;
typedef struct tfreecell26430 tfreecell26430;
typedef struct TY226936 TY226936;
typedef struct tlistentry127022 tlistentry127022;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  trendertok251019  {
NU8 Kind;
NI16 Length;
};
struct  tsrcgen251023  {
NI Indent;
NI Linelen;
NI Pos;
NI Idx;
trendertokseq251021* Tokens;
NimStringDesc* Buf;
NI Pendingnl;
tnodeseq226810* 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 tcontext254010 {
NI Field0;
NU8 Field1;
};
struct  tlineinfo196539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode226816  {
ttype226852* Typ;
tlineinfo196539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym226846* Sym;
} S4;
struct {tident201021* Ident;
} S5;
struct {tnodeseq226810* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tcell44933  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq44949  {
NI Len;
NI Cap;
tcell44933** D;
};
struct  tcellset44945  {
NI Counter;
NI Max;
tpagedesc44941* Head;
tpagedesc44941** 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;
tcellseq44949 Zct;
tcellseq44949 Decstack;
tcellset44945 Cycleroots;
tcellseq44949 Tempstack;
NI Recgclock;
tmemregion27210 Region;
tgcstat47014 Stat;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tidobj201015  {
  TNimObject Sup;
NI Id;
};
struct  tident201021  {
  tidobj201015 Sup;
NimStringDesc* S;
tident201021* Next;
NI H;
};
struct  tstrtable226820  {
NI Counter;
tsymseq226818* Data;
};
struct  tloc226830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype226852* T;
trope178009* R;
trope178009* Heaproot;
};
struct  tsym226846  {
  tidobj201015 Sup;
NU8 Kind;
union {
struct {ttypeseq226848* Typeinstcache;
tscope226840* Typscope;
} S1;
struct {TY226947* Procinstcache;
tscope226840* Scope;
} S2;
struct {TY226947* Usedgenerics;
tstrtable226820 Tab;
} S3;
struct {tsym226846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype226852* Typ;
tident201021* Name;
tlineinfo196539 Info;
tsym226846* Owner;
NU32 Flags;
tnode226816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc226830 Loc;
tlib226834* Annex;
tnode226816* Constraint;
};
struct  ttype226852  {
  tidobj201015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq226848* Sons;
tnode226816* N;
tsym226846* Owner;
tsym226846* Sym;
tsym226846* Destructor;
tsym226846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc226830 Loc;
};
typedef NimStringDesc* TY216175[118];
typedef NI TY26420[16];
struct  tpagedesc44941  {
tpagedesc44941* 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  tscope226840  {
NI Depthlevel;
tstrtable226820 Symbols;
tnodeseq226810* Usingsyms;
tscope226840* Parent;
};
struct  tinstantiation226836  {
tsym226846* Sym;
ttypeseq226848* Concretetypes;
TY226936* Usedby;
};
struct  trope178009  {
  TNimObject Sup;
trope178009* Left;
trope178009* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry127022  {
  TNimObject Sup;
tlistentry127022* Prev;
tlistentry127022* Next;
};
struct  tlib226834  {
  tlistentry127022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope178009* Name;
tnode226816* Path;
};
struct  tfreecell26430  {
tfreecell26430* Next;
NI Zerofield;
};
struct trendertokseq251021 {
  TGenericSeq Sup;
  trendertok251019 data[SEQ_DECL_SIZE];
};
struct tnodeseq226810 {
  TGenericSeq Sup;
  tnode226816* data[SEQ_DECL_SIZE];
};
struct ttypeseq226848 {
  TGenericSeq Sup;
  ttype226852* data[SEQ_DECL_SIZE];
};
struct TY226947 {
  TGenericSeq Sup;
  tinstantiation226836* data[SEQ_DECL_SIZE];
};
struct tsymseq226818 {
  TGenericSeq Sup;
  tsym226846* data[SEQ_DECL_SIZE];
};
struct TY226936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, initsrcgen_251167)(tsrcgen251023* g, NU8 renderflags);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, TMP1213)(void* p, NI op);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, gsub_254049)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, initcontext_254028)(tcontext254010* c);
N_NIMCALL(void, gsub_254040)(tsrcgen251023* g, tnode226816* n, tcontext254010 c_254045);
N_NIMCALL(void, pushcom_251875)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell44933*, usrtocell_48646)(void* usr);
static N_INLINE(void, rtladdzct_50204)(tcell44933* c);
N_NOINLINE(void, addzct_48617)(tcellseq44949* s, tcell44933* c);
N_NIMCALL(void, putrawstr_251767)(tsrcgen251023* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(void, put_251432)(tsrcgen251023* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(void, addpendingnl_251258)(tsrcgen251023* g);
N_NIMCALL(void, addtok_251218)(tsrcgen251023* 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_251289)(tsrcgen251023* g, NI indent);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, atom_252469)(tnode226816* n);
N_NIMCALL(NimStringDesc*, makenimstring_251488)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, tonimchar_251470)(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_252257)(tnode226816* n, NI64 x, NI size);
N_NIMCALL(ttype226852*, skip_252263)(ttype226852* t);
static N_INLINE(ttype226852*, lastson_227267)(ttype226852* n);
static N_INLINE(NI, sonslen_227255)(ttype226852* n);
static N_INLINE(NI, len_227364)(tnode226816* 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_252418)(tnode226816* n, NI64 x, NI size);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(void, internalerror_199006)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_81107, TNimType* typ);
N_NIMCALL(void, gident_255707)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(NI, sonslen_227249)(tnode226816* n);
N_NIMCALL(void, gcomma_254278)(tsrcgen251023* g, tnode226816* n, NI start, NI theend);
N_NIMCALL(void, gcommaaux_254127)(tsrcgen251023* g, tnode226816* n, NI ind, NI start, NI theend, NU8 separator);
N_NIMCALL(NI, lsub_252251)(tnode226816* n);
N_NIMCALL(NIM_BOOL, containsnl_251837)(NimStringDesc* s);
N_NIMCALL(NI, lcomma_252948)(tnode226816* n, NI start, NI theend);
static N_INLINE(tnode226816*, HEX5BHEX5D_227698)(tnode226816* n, NI i);
N_NIMCALL(NI, lsons_253086)(tnode226816* n, NI start, NI theend);
static N_INLINE(tnode226816*, lastson_227261)(tnode226816* n);
N_NIMCALL(NIM_BOOL, fits_253994)(tsrcgen251023* g, NI x);
N_NIMCALL(void, putwithspace_254115)(tsrcgen251023* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(NIM_BOOL, hascom_254063)(tnode226816* n);
N_NIMCALL(void, gcoms_252213)(tsrcgen251023* g);
N_NIMCALL(void, gcom_252019)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(NIM_BOOL, shouldrendercomment_251981)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_NIMCALL(NI, maxlinelength_251682)(NimStringDesc* s);
N_NIMCALL(void, putcomment_251526)(tsrcgen251023* g, NimStringDesc* s);
N_NIMCALL(void, optnl_251300)(tsrcgen251023* g);
N_NIMCALL(void, popallcoms_251914)(tsrcgen251023* g);
N_NIMCALL(void, gcomma_254248)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NI start, NI theend);
N_NIMCALL(void, doparamsaux_255901)(tsrcgen251023* g, tnode226816* params);
N_NIMCALL(void, gsemicolon_254293)(tsrcgen251023* g, tnode226816* n, NI start, NI theend);
N_NIMCALL(void, gsons_254308)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NI start, NI theend);
N_NIMCALL(void, indentnl_251310)(tsrcgen251023* g);
N_NIMCALL(void, dedent_251332)(tsrcgen251023* g);
N_NIMCALL(void, putnl_251279)(tsrcgen251023* g);
N_NIMCALL(void, putnl_251268)(tsrcgen251023* g, NI indent);
N_NIMCALL(void, gstmts_254475)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NIM_BOOL doindent);
N_NIMCALL(void, gif_254621)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(NIM_BOOL, longmode_254420)(tnode226816* n, NI start, NI theend);
N_NIMCALL(void, gwhile_254779)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gpragmablock_254897)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gcase_255176)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gtry_254970)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gfor_255029)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gblock_255513)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gstaticstmt_255609)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gasm_255668)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gproc_255290)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(NimStringDesc*, renderdefinitionname_251134)(tsym226846* s, NIM_BOOL noquotes);
N_NIMCALL(NIM_BOOL, iskeyword_251089)(NimStringDesc* s);
N_NIMCALL(tident201021*, getident_201472)(NimStringDesc* identifier);
N_NIMCALL(void, gpattern_254852)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, gsection_254364)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NU8 kind, NimStringDesc* k);
N_NIMCALL(void, gtypeclassty_255499)(tsrcgen251023* g, tnode226816* n);
N_NIMCALL(void, internalerror_198987)(tlineinfo196539 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_75028, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
STRING_LITERAL(TMP1214, "", 0);
STRING_LITERAL(TMP1215, "\012", 1);
STRING_LITERAL(TMP1216, "\"", 1);
STRING_LITERAL(TMP1217, "\\0", 2);
STRING_LITERAL(TMP1218, "\\x", 2);
STRING_LITERAL(TMP1220, "r\"", 2);
STRING_LITERAL(TMP1222, "\"\"", 2);
STRING_LITERAL(TMP1223, "\"\"\"", 3);
STRING_LITERAL(TMP1224, "0b", 2);
STRING_LITERAL(TMP1225, "0o", 2);
STRING_LITERAL(TMP1226, "0x", 2);
STRING_LITERAL(TMP1227, "\'i8", 3);
STRING_LITERAL(TMP1228, "\'i16", 4);
STRING_LITERAL(TMP1229, "\'i32", 4);
STRING_LITERAL(TMP1230, "\'i64", 4);
STRING_LITERAL(TMP1231, "\'u", 2);
STRING_LITERAL(TMP1232, "\'u8", 3);
STRING_LITERAL(TMP1233, "\'u16", 4);
STRING_LITERAL(TMP1234, "\'u32", 4);
STRING_LITERAL(TMP1235, "\'u64", 4);
STRING_LITERAL(TMP1236, "\'f32", 4);
STRING_LITERAL(TMP1237, "\'f64", 4);
STRING_LITERAL(TMP1238, "nil", 3);
STRING_LITERAL(TMP1239, "[type node]", 11);
STRING_LITERAL(TMP1240, "rnimsyn.atom ", 13);
STRING_LITERAL(TMP1242, "(", 1);
STRING_LITERAL(TMP1243, " ", 1);
extern NIM_CONST TY216175 toktypetostr_216174;
STRING_LITERAL(TMP1244, "##", 2);
STRING_LITERAL(TMP1245, ")", 1);
STRING_LITERAL(TMP1246, "cast", 4);
STRING_LITERAL(TMP1247, "[", 1);
STRING_LITERAL(TMP1248, "]", 1);
STRING_LITERAL(TMP1249, "addr", 4);
STRING_LITERAL(TMP1250, "static", 6);
STRING_LITERAL(TMP1251, "{", 1);
STRING_LITERAL(TMP1252, "}", 1);
STRING_LITERAL(TMP1253, "=", 1);
STRING_LITERAL(TMP1254, "chckRangeF", 10);
STRING_LITERAL(TMP1255, "chckRange64", 11);
STRING_LITERAL(TMP1256, "chckRange", 9);
STRING_LITERAL(TMP1257, "|", 1);
STRING_LITERAL(TMP1258, ".", 1);
STRING_LITERAL(TMP1259, "|...)", 5);
STRING_LITERAL(TMP1260, ":", 1);
STRING_LITERAL(TMP1261, "bind", 4);
STRING_LITERAL(TMP1262, "proc", 4);
STRING_LITERAL(TMP1263, "do", 2);
STRING_LITERAL(TMP1264, "->", 2);
STRING_LITERAL(TMP1265, "..", 2);
STRING_LITERAL(TMP1266, "[]", 2);
STRING_LITERAL(TMP1267, "`", 1);
STRING_LITERAL(TMP1268, "if", 2);
NIM_CONST tcontext254010 TMP1269 = {0,
0}
;
STRING_LITERAL(TMP1270, " elif", 5);
STRING_LITERAL(TMP1271, " else", 5);
STRING_LITERAL(TMP1272, "type", 4);
STRING_LITERAL(TMP1273, "ref", 3);
STRING_LITERAL(TMP1274, "ptr", 3);
STRING_LITERAL(TMP1275, "var", 3);
STRING_LITERAL(TMP1276, "distinct", 8);
STRING_LITERAL(TMP1277, " with", 5);
STRING_LITERAL(TMP1278, " without", 8);
STRING_LITERAL(TMP1279, "object", 6);
STRING_LITERAL(TMP1280, "of", 2);
STRING_LITERAL(TMP1281, "iterator", 8);
STRING_LITERAL(TMP1282, "enum", 4);
STRING_LITERAL(TMP1283, "when", 4);
STRING_LITERAL(TMP1284, "while", 5);
STRING_LITERAL(TMP1285, "case", 4);
STRING_LITERAL(TMP1286, "try", 3);
STRING_LITERAL(TMP1287, "for", 3);
STRING_LITERAL(TMP1288, "in", 2);
STRING_LITERAL(TMP1289, "block", 5);
STRING_LITERAL(TMP1290, "asm", 3);
STRING_LITERAL(TMP1291, "converter", 9);
STRING_LITERAL(TMP1292, "method", 6);
STRING_LITERAL(TMP1293, "macro", 5);
STRING_LITERAL(TMP1294, "template", 8);
STRING_LITERAL(TMP1295, "const", 5);
STRING_LITERAL(TMP1296, "let", 3);
STRING_LITERAL(TMP1297, "return", 6);
STRING_LITERAL(TMP1298, "raise", 5);
STRING_LITERAL(TMP1299, "yield", 5);
STRING_LITERAL(TMP1300, "discard", 7);
STRING_LITERAL(TMP1301, "break", 5);
STRING_LITERAL(TMP1302, "continue", 8);
STRING_LITERAL(TMP1303, "{.", 2);
STRING_LITERAL(TMP1304, ".}", 2);
STRING_LITERAL(TMP1305, "import", 6);
STRING_LITERAL(TMP1306, "export", 6);
STRING_LITERAL(TMP1307, "except", 6);
STRING_LITERAL(TMP1308, "from", 4);
STRING_LITERAL(TMP1309, "include", 7);
STRING_LITERAL(TMP1310, "as", 2);
STRING_LITERAL(TMP1311, "mixin", 5);
STRING_LITERAL(TMP1312, "elif", 4);
STRING_LITERAL(TMP1313, "else", 4);
STRING_LITERAL(TMP1314, "finally", 7);
STRING_LITERAL(TMP1315, "tuple", 5);
STRING_LITERAL(TMP1316, "(META|", 6);
STRING_LITERAL(TMP1317, "state", 5);
STRING_LITERAL(TMP1318, "goto", 4);
STRING_LITERAL(TMP1319, "generic", 7);
STRING_LITERAL(TMP1320, "rnimsyn.gsub(", 13);
extern TNimType NTI226810; /* TNodeSeq */
TNimType NTI251019; /* TRenderTok */
extern TNimType NTI216022; /* TTokType */
extern TNimType NTI112; /* int16 */
TNimType NTI251021; /* TRenderTokSeq */
extern tgcheap47016 gch_47044;
extern TNimType NTI226029; /* TNodeKind */
N_NIMCALL(void, TMP1213)(void* p, NI op) {
	trendertokseq251021* a;
	NI LOC1;
	a = (trendertokseq251021*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}

N_NIMCALL(void, initsrcgen_251167)(tsrcgen251023* g, NU8 renderflags) {
	unsureAsgnRef((void**) (&(*g).Comstack), (tnodeseq226810*) newSeq((&NTI226810), 0));
	unsureAsgnRef((void**) (&(*g).Tokens), (trendertokseq251021*) newSeq((&NTI251021), 0));
	(*g).Indent = 0;
	(*g).Linelen = 0;
	(*g).Pos = 0;
	(*g).Idx = 0;
	unsureAsgnRef((void**) (&(*g).Buf), copyString(((NimStringDesc*) &TMP1214)));
	(*g).Flags = renderflags;
	(*g).Pendingnl = -1;
	(*g).Checkanon = NIM_FALSE;
}

N_NIMCALL(void, initcontext_254028)(tcontext254010* c) {
	(*c).Field0 = 0;
	(*c).Field1 = 0;
}

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

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

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

N_NIMCALL(void, pushcom_251875)(tsrcgen251023* g, tnode226816* n) {
	NI length;
	length = (*g).Comstack->Sup.len;
	(*g).Comstack = (tnodeseq226810*) setLengthSeq(&((*g).Comstack)->Sup, sizeof(tnode226816*), (NI32)(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)), (NI32)((*src).Sup.len + 1));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(void, addtok_251218)(tsrcgen251023* g, NU8 kind, NimStringDesc* s) {
	NI length;
	length = (*g).Tokens->Sup.len;
	(*g).Tokens = (trendertokseq251021*) setLengthSeq(&((*g).Tokens)->Sup, sizeof(trendertok251019), (NI32)(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_251258)(tsrcgen251023* 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*) &TMP1215));
appendString(LOC5, LOC6);
		addtok_251218(g, ((NU8) 114), LOC5);
		(*g).Linelen = (*g).Pendingnl;
		(*g).Pendingnl = -1;
	}
	LA3: ;
}

N_NIMCALL(void, put_251432)(tsrcgen251023* g, NU8 kind, NimStringDesc* s) {
	addpendingnl_251258(g);
	{
		if (!(0 < s->Sup.len)) goto LA3;
		addtok_251218(g, kind, s);
		(*g).Linelen += s->Sup.len;
	}
	LA3: ;
}

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

N_NIMCALL(void, putrawstr_251767)(tsrcgen251023* g, NU8 kind, NimStringDesc* s) {
	NI i;
	NI hi;
	NimStringDesc* str;
	i = 0;
	hi = (NI32)(s->Sup.len - 1);
	str = copyString(((NimStringDesc*) &TMP1214));
	{
		while (1) {
			if (!(i <= hi)) goto LA2;
			switch (((NU8)(s->data[i]))) {
			case 13:
			{
				put_251432(g, kind, str);
				str = copyString(((NimStringDesc*) &TMP1214));
				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_251289(g, 0);
			}
			break;
			case 10:
			{
				put_251432(g, kind, str);
				str = copyString(((NimStringDesc*) &TMP1214));
				i += 1;
				optnl_251289(g, 0);
			}
			break;
			default:
			{
				str = addChar(str, s->data[i]);
				i += 1;
			}
			break;
			}
		} LA2: ;
	}
	put_251432(g, kind, str);
}

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

N_NIMCALL(NimStringDesc*, tonimchar_251470)(NIM_CHAR c) {
	NimStringDesc* result;
	result = 0;
	switch (((NU8)(c))) {
	case 0:
	{
		result = copyString(((NimStringDesc*) &TMP1217));
	}
	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*) &TMP1218));
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*) &TMP1214));
		result = LOC8;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, makenimstring_251488)(NimStringDesc* s) {
	NimStringDesc* result;
	result = 0;
	result = copyString(((NimStringDesc*) &TMP1216));
	{
		NI i_251504;
		NI HEX3Atmp_251506;
		NI res_251509;
		i_251504 = 0;
		HEX3Atmp_251506 = 0;
		HEX3Atmp_251506 = (NI32)(s->Sup.len - 1);
		res_251509 = 0;
		{
			while (1) {
				NimStringDesc* LOC4;
				if (!(res_251509 <= HEX3Atmp_251506)) goto LA3;
				i_251504 = res_251509;
				LOC4 = 0;
				LOC4 = tonimchar_251470(s->data[i_251504]);
				result = resizeString(result, LOC4->Sup.len + 0);
appendString(result, LOC4);
				res_251509 += 1;
			} LA3: ;
		}
	}
	result = addChar(result, 34);
	return result;
}

static N_INLINE(NI, sonslen_227255)(ttype226852* 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(ttype226852*, lastson_227267)(ttype226852* n) {
	ttype226852* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_227255(n);
	result = (*n).Sons->data[(NI32)(LOC1 - 1)];
	return result;
}

N_NIMCALL(ttype226852*, skip_252263)(ttype226852* t) {
	ttype226852* result;
	result = 0;
	result = t;
	{
		while (1) {
			if (!((*result).Kind == ((NU8) 11) || (*result).Kind == ((NU8) 20) || (*result).Kind == ((NU8) 23) || (*result).Kind == ((NU8) 13) || (*result).Kind == ((NU8) 15) || (*result).Kind == ((NU8) 46) || (*result).Kind == ((NU8) 47))) goto LA2;
			result = lastson_227267(result);
		} LA2: ;
	}
	return result;
}

static N_INLINE(NI, len_227364)(tnode226816* 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_252257)(tnode226816* n, NI64 x, NI size) {
	NimStringDesc* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		ttype226852* LOC5;
		tnode226816* enumfields;
		ttype226852* LOC8;
		LOC3 = 0;
		LOC3 = !(((*n).Typ == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = skip_252263((*n).Typ);
		LOC3 = ((*LOC5).Kind == ((NU8) 1) || (*LOC5).Kind == ((NU8) 14));
		LA4: ;
		if (!LOC3) goto LA6;
		LOC8 = 0;
		LOC8 = skip_252263((*n).Typ);
		enumfields = (*LOC8).N;
		{
			tnode226816* e_252314;
			e_252314 = 0;
			{
				NI i_252386;
				NI HEX3Atmp_252388;
				NI LOC11;
				NI res_252390;
				i_252386 = 0;
				HEX3Atmp_252388 = 0;
				LOC11 = 0;
				LOC11 = len_227364(enumfields);
				HEX3Atmp_252388 = (LOC11 - 1);
				res_252390 = 0;
				{
					while (1) {
						if (!(res_252390 <= HEX3Atmp_252388)) goto LA13;
						i_252386 = res_252390;
						e_252314 = (*enumfields).kindU.S6.Sons->data[i_252386];
						{
							if (!(((NI64) ((*(*e_252314).kindU.S4.Sym).Position)) == x)) goto LA16;
							result = copyString((*(*(*e_252314).kindU.S4.Sym).Name).S);
							goto BeforeRet;
						}
						LA16: ;
						res_252390 += 1;
					} LA13: ;
				}
			}
		}
	}
	LA6: ;
	{
		NimStringDesc* LOC22;
		NimStringDesc* LOC23;
		if (!(((*n).Flags &(1<<((((NU8) 1))&15)))!=0)) goto LA20;
		LOC22 = 0;
		LOC23 = 0;
		LOC23 = nsuToBin(x, (NI32)(size * 8));
		LOC22 = rawNewString(LOC23->Sup.len + 2);
appendString(LOC22, ((NimStringDesc*) &TMP1224));
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, (NI32)(size * 3));
		LOC27 = rawNewString(LOC28->Sup.len + 2);
appendString(LOC27, ((NimStringDesc*) &TMP1225));
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, (NI32)(size * 2));
		LOC32 = rawNewString(LOC33->Sup.len + 2);
appendString(LOC32, ((NimStringDesc*) &TMP1226));
appendString(LOC32, LOC33);
		result = LOC32;
	}
	goto LA18;
	LA30: ;
	{
		result = nimInt64ToStr(x);
	}
	LA18: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NimStringDesc*, ulitaux_252418)(tnode226816* 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, (NI32)(size * 8));
		LOC5 = rawNewString(LOC6->Sup.len + 2);
appendString(LOC5, ((NimStringDesc*) &TMP1224));
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, (NI32)(size * 3));
		LOC10 = rawNewString(LOC11->Sup.len + 2);
appendString(LOC10, ((NimStringDesc*) &TMP1225));
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, (NI32)(size * 2));
		LOC15 = rawNewString(LOC16->Sup.len + 2);
appendString(LOC15, ((NimStringDesc*) &TMP1226));
appendString(LOC15, LOC16);
		result = LOC15;
	}
	goto LA1;
	LA13: ;
	{
		result = nimInt64ToStr(x);
	}
	LA1: ;
	return result;
}

N_NIMCALL(NimStringDesc*, atom_252469)(tnode226816* n) {
	NimStringDesc* result;
	NF32 f;
	result = 0;
	f = 0;
	switch ((*n).Kind) {
	case ((NU8) 1):
	{
		result = copyString(((NimStringDesc*) &TMP1214));
	}
	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_251488((*n).kindU.S3.Strval);
	}
	break;
	case ((NU8) 21):
	{
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		LOC6 = 0;
		LOC7 = 0;
		LOC7 = nsuReplaceStr((*n).kindU.S3.Strval, ((NimStringDesc*) &TMP1216), ((NimStringDesc*) &TMP1222));
		LOC6 = rawNewString(LOC7->Sup.len + 3);
appendString(LOC6, ((NimStringDesc*) &TMP1220));
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*) &TMP1223));
appendString(LOC9, (*n).kindU.S3.Strval);
appendString(LOC9, ((NimStringDesc*) &TMP1223));
		result = LOC9;
	}
	break;
	case ((NU8) 5):
	{
		NimStringDesc* LOC11;
		NimStringDesc* LOC12;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = tonimchar_251470(((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_252257(n, (*n).kindU.S1.Intval, 4);
	}
	break;
	case ((NU8) 7):
	{
		NimStringDesc* LOC15;
		NimStringDesc* LOC16;
		LOC15 = 0;
		LOC16 = 0;
		LOC16 = litaux_252257(n, (*n).kindU.S1.Intval, 1);
		LOC15 = rawNewString(LOC16->Sup.len + 3);
appendString(LOC15, LOC16);
appendString(LOC15, ((NimStringDesc*) &TMP1227));
		result = LOC15;
	}
	break;
	case ((NU8) 8):
	{
		NimStringDesc* LOC18;
		NimStringDesc* LOC19;
		LOC18 = 0;
		LOC19 = 0;
		LOC19 = litaux_252257(n, (*n).kindU.S1.Intval, 2);
		LOC18 = rawNewString(LOC19->Sup.len + 4);
appendString(LOC18, LOC19);
appendString(LOC18, ((NimStringDesc*) &TMP1228));
		result = LOC18;
	}
	break;
	case ((NU8) 9):
	{
		NimStringDesc* LOC21;
		NimStringDesc* LOC22;
		LOC21 = 0;
		LOC22 = 0;
		LOC22 = litaux_252257(n, (*n).kindU.S1.Intval, 4);
		LOC21 = rawNewString(LOC22->Sup.len + 4);
appendString(LOC21, LOC22);
appendString(LOC21, ((NimStringDesc*) &TMP1229));
		result = LOC21;
	}
	break;
	case ((NU8) 10):
	{
		NimStringDesc* LOC24;
		NimStringDesc* LOC25;
		LOC24 = 0;
		LOC25 = 0;
		LOC25 = litaux_252257(n, (*n).kindU.S1.Intval, 8);
		LOC24 = rawNewString(LOC25->Sup.len + 4);
appendString(LOC24, LOC25);
appendString(LOC24, ((NimStringDesc*) &TMP1230));
		result = LOC24;
	}
	break;
	case ((NU8) 11):
	{
		NimStringDesc* LOC27;
		NimStringDesc* LOC28;
		LOC27 = 0;
		LOC28 = 0;
		LOC28 = ulitaux_252418(n, (*n).kindU.S1.Intval, 4);
		LOC27 = rawNewString(LOC28->Sup.len + 2);
appendString(LOC27, LOC28);
appendString(LOC27, ((NimStringDesc*) &TMP1231));
		result = LOC27;
	}
	break;
	case ((NU8) 12):
	{
		NimStringDesc* LOC30;
		NimStringDesc* LOC31;
		LOC30 = 0;
		LOC31 = 0;
		LOC31 = ulitaux_252418(n, (*n).kindU.S1.Intval, 1);
		LOC30 = rawNewString(LOC31->Sup.len + 3);
appendString(LOC30, LOC31);
appendString(LOC30, ((NimStringDesc*) &TMP1232));
		result = LOC30;
	}
	break;
	case ((NU8) 13):
	{
		NimStringDesc* LOC33;
		NimStringDesc* LOC34;
		LOC33 = 0;
		LOC34 = 0;
		LOC34 = ulitaux_252418(n, (*n).kindU.S1.Intval, 2);
		LOC33 = rawNewString(LOC34->Sup.len + 4);
appendString(LOC33, LOC34);
appendString(LOC33, ((NimStringDesc*) &TMP1233));
		result = LOC33;
	}
	break;
	case ((NU8) 14):
	{
		NimStringDesc* LOC36;
		NimStringDesc* LOC37;
		LOC36 = 0;
		LOC37 = 0;
		LOC37 = ulitaux_252418(n, (*n).kindU.S1.Intval, 4);
		LOC36 = rawNewString(LOC37->Sup.len + 4);
appendString(LOC36, LOC37);
appendString(LOC36, ((NimStringDesc*) &TMP1234));
		result = LOC36;
	}
	break;
	case ((NU8) 15):
	{
		NimStringDesc* LOC39;
		NimStringDesc* LOC40;
		LOC39 = 0;
		LOC40 = 0;
		LOC40 = ulitaux_252418(n, (*n).kindU.S1.Intval, 8);
		LOC39 = rawNewString(LOC40->Sup.len + 4);
appendString(LOC39, LOC40);
appendString(LOC39, ((NimStringDesc*) &TMP1235));
		result = LOC39;
	}
	break;
	case ((NU8) 16):
	{
		{
			if (!(((*n).Flags & 14) == 0)) goto LA44;
			result = nimFloatToStr((*n).kindU.S2.Floatval);
		}
		goto LA42;
		LA44: ;
		{
			result = litaux_252257(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*) &TMP1236));
			result = LOC52;
		}
		goto LA48;
		LA50: ;
		{
			NimStringDesc* LOC55;
			NimStringDesc* LOC56;
			f = ((NF32) ((*n).kindU.S2.Floatval));
			LOC55 = 0;
			LOC56 = 0;
			LOC56 = litaux_252257(n, ((NI64) ((*((NI32*) ((&f)))))), 4);
			LOC55 = rawNewString(LOC56->Sup.len + 4);
appendString(LOC55, LOC56);
appendString(LOC55, ((NimStringDesc*) &TMP1236));
			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*) &TMP1237));
			result = LOC62;
		}
		goto LA58;
		LA60: ;
		{
			NimStringDesc* LOC65;
			NimStringDesc* LOC66;
			LOC65 = 0;
			LOC66 = 0;
			LOC66 = litaux_252257(n, (*((NI64*) ((&(*n).kindU.S2.Floatval)))), 8);
			LOC65 = rawNewString(LOC66->Sup.len + 4);
appendString(LOC65, LOC66);
appendString(LOC65, ((NimStringDesc*) &TMP1237));
			result = LOC65;
		}
		LA58: ;
	}
	break;
	case ((NU8) 23):
	{
		result = copyString(((NimStringDesc*) &TMP1238));
	}
	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*) &TMP1239));
		}
		LA69: ;
	}
	break;
	default:
	{
		NimStringDesc* LOC77;
		LOC77 = 0;
		LOC77 = rawNewString(reprEnum((*n).Kind, (&NTI226029))->Sup.len + 13);
appendString(LOC77, ((NimStringDesc*) &TMP1240));
appendString(LOC77, reprEnum((*n).Kind, (&NTI226029)));
		internalerror_199006(LOC77);
		result = copyString(((NimStringDesc*) &TMP1214));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, gident_255707)(tsrcgen251023* g, tnode226816* 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_252469(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) ((NI32)((*(*n).kindU.S5.Ident).Sup.Id + 2)));
			}
			LA17: ;
		}
		goto LA13;
		LA15: ;
		{
			t = ((NU8) 2);
		}
		LA13: ;
	}
	goto LA9;
	LA11: ;
	{
		t = ((NU8) 111);
	}
	LA9: ;
	put_251432(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_251432(g, ((NU8) 72), LOC32);
	}
	LA30: ;
	BeforeRet: ;
}

static N_INLINE(NI, sonslen_227249)(tnode226816* 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_251837)(NimStringDesc* s) {
	NIM_BOOL result;
	result = 0;
	{
		NI i_251853;
		NI HEX3Atmp_251855;
		NI res_251858;
		i_251853 = 0;
		HEX3Atmp_251855 = 0;
		HEX3Atmp_251855 = (NI32)(s->Sup.len - 1);
		res_251858 = 0;
		{
			while (1) {
				if (!(res_251858 <= HEX3Atmp_251855)) goto LA3;
				i_251853 = res_251858;
				switch (((NU8)(s->data[i_251853]))) {
				case 13:
				case 10:
				{
					result = NIM_TRUE;
					goto BeforeRet;
				}
				break;
				default:
				{
				}
				break;
				}
				res_251858 += 1;
			} LA3: ;
		}
	}
	result = NIM_FALSE;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NI, lcomma_252948)(tnode226816* n, NI start, NI theend) {
	NI result;
	result = 0;
	result = 0;
	{
		NI i_253013;
		NI HEX3Atmp_253066;
		NI LOC2;
		NI res_253069;
		i_253013 = 0;
		HEX3Atmp_253066 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_253066 = (NI32)(LOC2 + theend);
		res_253069 = start;
		{
			while (1) {
				NI LOC5;
				if (!(res_253069 <= HEX3Atmp_253066)) goto LA4;
				i_253013 = res_253069;
				LOC5 = 0;
				LOC5 = lsub_252251((*n).kindU.S6.Sons->data[i_253013]);
				result += LOC5;
				result += 2;
				res_253069 += 1;
			} LA4: ;
		}
	}
	{
		if (!(0 < result)) goto LA8;
		result -= 2;
	}
	LA8: ;
	return result;
}

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

N_NIMCALL(NI, lsons_253086)(tnode226816* n, NI start, NI theend) {
	NI result;
	result = 0;
	result = 0;
	{
		NI i_253213;
		NI HEX3Atmp_253241;
		NI LOC2;
		NI res_253244;
		i_253213 = 0;
		HEX3Atmp_253241 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_253241 = (NI32)(LOC2 + theend);
		res_253244 = start;
		{
			while (1) {
				NI LOC5;
				if (!(res_253244 <= HEX3Atmp_253241)) goto LA4;
				i_253213 = res_253244;
				LOC5 = 0;
				LOC5 = lsub_252251((*n).kindU.S6.Sons->data[i_253213]);
				result += LOC5;
				res_253244 += 1;
			} LA4: ;
		}
	}
	return result;
}

static N_INLINE(tnode226816*, lastson_227261)(tnode226816* n) {
	tnode226816* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_227249(n);
	result = (*n).kindU.S6.Sons->data[(NI32)(LOC1 - 1)];
	return result;
}

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

N_NIMCALL(NIM_BOOL, fits_253994)(tsrcgen251023* g, NI x) {
	NIM_BOOL result;
	result = 0;
	result = ((NI32)(x + (*g).Linelen) <= 80);
	return result;
}

N_NIMCALL(void, putwithspace_254115)(tsrcgen251023* g, NU8 kind, NimStringDesc* s) {
	put_251432(g, kind, s);
	put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
}

N_NIMCALL(NIM_BOOL, hascom_254063)(tnode226816* 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_254079;
			NI HEX3Atmp_254095;
			NI LOC8;
			NI res_254098;
			i_254079 = 0;
			HEX3Atmp_254095 = 0;
			LOC8 = 0;
			LOC8 = sonslen_227249(n);
			HEX3Atmp_254095 = (NI32)(LOC8 - 1);
			res_254098 = 0;
			{
				while (1) {
					if (!(res_254098 <= HEX3Atmp_254095)) goto LA10;
					i_254079 = res_254098;
					{
						NIM_BOOL LOC13;
						LOC13 = 0;
						LOC13 = hascom_254063((*n).kindU.S6.Sons->data[i_254079]);
						if (!LOC13) goto LA14;
						result = NIM_TRUE;
						goto BeforeRet;
					}
					LA14: ;
					res_254098 += 1;
				} LA10: ;
			}
		}
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, shouldrendercomment_251981)(tsrcgen251023* g, tnode226816* 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*) &TMP1244));
		LA8: ;
		LOC5 = LOC7;
		LA6: ;
		result = LOC5;
	}
	LA3: ;
	return result;
}

N_NIMCALL(NI, maxlinelength_251682)(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_251300)(tsrcgen251023* g) {
	optnl_251289(g, (*g).Indent);
}

N_NIMCALL(void, putcomment_251526)(tsrcgen251023* 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*) &TMP1214));
	{
		while (1) {
			switch (((NU8)(s->data[i]))) {
			case 0:
			{
				goto LA7;
			}
			break;
			case 13:
			{
				put_251432(g, ((NU8) 112), com);
				com = copyString(((NimStringDesc*) &TMP1214));
				i += 1;
				{
					if (!((NU8)(s->data[i]) == (NU8)(10))) goto LA13;
					i += 1;
				}
				LA13: ;
				optnl_251289(g, ind);
			}
			break;
			case 10:
			{
				put_251432(g, ((NU8) 112), com);
				com = copyString(((NimStringDesc*) &TMP1214));
				i += 1;
				optnl_251289(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 < (NI32)((*g).Linelen + (NI32)(j - i)));
					LA26: ;
					if (!LOC25) goto LA27;
					put_251432(g, ((NU8) 112), com);
					optnl_251289(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_251432(g, ((NU8) 112), com);
	optnl_251300(g);
	BeforeRet: ;
}

N_NIMCALL(void, gcom_252019)(tsrcgen251023* g, tnode226816* n) {
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = shouldrendercomment_251981(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[(NI32)((*g).Buf->Sup.len - 1)]) == (NU8)(32)));
			LA11: ;
			if (!LOC8) goto LA12;
			put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		}
		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_251682((*n).Comment);
			{
				NimStringDesc* LOC26;
				if (!((NI32)(ml + 30) <= 80)) goto LA24;
				LOC26 = 0;
				LOC26 = nsuRepeatChar((NI32)(30 - (*g).Linelen), 32);
				put_251432(g, ((NU8) 114), LOC26);
			}
			LA24: ;
		}
		LA20: ;
		putcomment_251526(g, (*n).Comment);
	}
	LA4: ;
}

N_NIMCALL(void, popallcoms_251914)(tsrcgen251023* g) {
	(*g).Comstack = (tnodeseq226810*) setLengthSeq(&((*g).Comstack)->Sup, sizeof(tnode226816*), 0);
}

N_NIMCALL(void, gcoms_252213)(tsrcgen251023* g) {
	{
		NI i_252229;
		NI HEX3Atmp_252231;
		NI res_252234;
		i_252229 = 0;
		HEX3Atmp_252231 = 0;
		HEX3Atmp_252231 = ((*g).Comstack->Sup.len-1);
		res_252234 = 0;
		{
			while (1) {
				if (!(res_252234 <= HEX3Atmp_252231)) goto LA3;
				i_252229 = res_252234;
				gcom_252019(g, (*g).Comstack->data[i_252229]);
				res_252234 += 1;
			} LA3: ;
		}
	}
	popallcoms_251914(g);
}

N_NIMCALL(void, gcommaaux_254127)(tsrcgen251023* g, tnode226816* n, NI ind, NI start, NI theend, NU8 separator) {
	{
		NI i_254148;
		NI HEX3Atmp_254228;
		NI LOC2;
		NI res_254231;
		i_254148 = 0;
		HEX3Atmp_254228 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_254228 = (NI32)(LOC2 + theend);
		res_254231 = start;
		{
			while (1) {
				NIM_BOOL c;
				NI LOC5;
				NI sublen;
				NI LOC6;
				NI oldlen;
				if (!(res_254231 <= HEX3Atmp_254228)) goto LA4;
				i_254148 = res_254231;
				LOC5 = 0;
				LOC5 = sonslen_227249(n);
				c = (i_254148 < (NI32)(LOC5 + theend));
				LOC6 = 0;
				LOC6 = lsub_252251((*n).kindU.S6.Sons->data[i_254148]);
				sublen = (NI32)(LOC6 + ((NI) (c)));
				{
					NIM_BOOL LOC9;
					NIM_BOOL LOC10;
					LOC9 = 0;
					LOC10 = 0;
					LOC10 = fits_253994((&(*g)), sublen);
					LOC9 = !(LOC10);
					if (!(LOC9)) goto LA11;
					LOC9 = ((NI32)(ind + sublen) < 80);
					LA11: ;
					if (!LOC9) goto LA12;
					optnl_251289(g, ind);
				}
				LA12: ;
				oldlen = (*g).Tokens->Sup.len;
				gsub_254049(g, (*n).kindU.S6.Sons->data[i_254148]);
				{
					if (!c) goto LA16;
					{
						if (!(oldlen < (*g).Tokens->Sup.len)) goto LA20;
						putwithspace_254115(g, separator, toktypetostr_216174[(separator)- 0]);
					}
					LA20: ;
					{
						NIM_BOOL LOC24;
						LOC24 = 0;
						LOC24 = hascom_254063((*n).kindU.S6.Sons->data[i_254148]);
						if (!LOC24) goto LA25;
						gcoms_252213(g);
						optnl_251289(g, ind);
					}
					LA25: ;
				}
				LA16: ;
				res_254231 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gcomma_254278)(tsrcgen251023* g, tnode226816* n, NI start, NI theend) {
	NI ind;
	ind = (*g).Linelen;
	{
		if (!(40 < ind)) goto LA3;
		ind = (NI32)((*g).Indent + 4);
	}
	LA3: ;
	gcommaaux_254127(g, n, ind, start, theend, ((NU8) 104));
}

N_NIMCALL(void, gcomma_254248)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NI start, NI theend) {
	NI ind;
	ind = 0;
	{
		if (!((c.Field1 &(1<<((((NU8) 2))&7)))!=0)) goto LA3;
		ind = (NI32)((*g).Indent + 2);
	}
	goto LA1;
	LA3: ;
	{
		ind = (*g).Linelen;
		{
			if (!(40 < ind)) goto LA8;
			ind = (NI32)((*g).Indent + 4);
		}
		LA8: ;
	}
	LA1: ;
	gcommaaux_254127(g, n, ind, start, theend, ((NU8) 104));
}

N_NIMCALL(void, gsemicolon_254293)(tsrcgen251023* g, tnode226816* n, NI start, NI theend) {
	NI ind;
	ind = (*g).Linelen;
	{
		if (!(40 < ind)) goto LA3;
		ind = (NI32)((*g).Indent + 4);
	}
	LA3: ;
	gcommaaux_254127(g, n, ind, start, theend, ((NU8) 105));
}

N_NIMCALL(void, doparamsaux_255901)(tsrcgen251023* g, tnode226816* params) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = len_227364(params);
		if (!(1 < LOC3)) goto LA4;
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gsemicolon_254293(g, params, 1, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	LA4: ;
	{
		if (!!(((*(*params).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA8;
		putwithspace_254115(g, ((NU8) 111), ((NimStringDesc*) &TMP1264));
		gsub_254049(g, (*params).kindU.S6.Sons->data[0]);
	}
	LA8: ;
}

N_NIMCALL(void, gsons_254308)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NI start, NI theend) {
	{
		NI i_254328;
		NI HEX3Atmp_254344;
		NI LOC2;
		NI res_254347;
		i_254328 = 0;
		HEX3Atmp_254344 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_254344 = (NI32)(LOC2 + theend);
		res_254347 = start;
		{
			while (1) {
				if (!(res_254347 <= HEX3Atmp_254344)) goto LA4;
				i_254328 = res_254347;
				gsub_254040(g, (*n).kindU.S6.Sons->data[i_254328], c);
				res_254347 += 1;
			} LA4: ;
		}
	}
}

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

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

N_NIMCALL(void, putnl_251268)(tsrcgen251023* g, NI indent) {
	{
		if (!(0 <= (*g).Pendingnl)) goto LA3;
		addpendingnl_251258(g);
	}
	goto LA1;
	LA3: ;
	{
		addtok_251218(g, ((NU8) 114), ((NimStringDesc*) &TMP1215));
	}
	LA1: ;
	(*g).Pendingnl = indent;
	(*g).Linelen = indent;
}

N_NIMCALL(void, putnl_251279)(tsrcgen251023* g) {
	putnl_251268(g, (*g).Indent);
}

N_NIMCALL(void, gstmts_254475)(tsrcgen251023* g, tnode226816* n, tcontext254010 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_251310(g);
		}
		LA11: ;
		{
			NI i_254517;
			NI HEX3Atmp_254601;
			NI LOC14;
			NI res_254604;
			i_254517 = 0;
			HEX3Atmp_254601 = 0;
			LOC14 = 0;
			LOC14 = sonslen_227249(n);
			HEX3Atmp_254601 = (NI32)(LOC14 - 1);
			res_254604 = 0;
			{
				while (1) {
					if (!(res_254604 <= HEX3Atmp_254601)) goto LA16;
					i_254517 = res_254604;
					optnl_251300(g);
					{
						if (!((*(*n).kindU.S6.Sons->data[i_254517]).Kind == ((NU8) 115) || (*(*n).kindU.S6.Sons->data[i_254517]).Kind == ((NU8) 126) || (*(*n).kindU.S6.Sons->data[i_254517]).Kind == ((NU8) 128))) goto LA19;
						gstmts_254475(g, (*n).kindU.S6.Sons->data[i_254517], c, NIM_FALSE);
					}
					goto LA17;
					LA19: ;
					{
						gsub_254049(g, (*n).kindU.S6.Sons->data[i_254517]);
					}
					LA17: ;
					gcoms_252213(g);
					res_254604 += 1;
				} LA16: ;
			}
		}
		{
			if (!doindent) goto LA24;
			dedent_251332(g);
		}
		LA24: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!((c.Field1 &(1<<((((NU8) 0))&7)))!=0)) goto LA29;
			indentnl_251310(g);
		}
		LA29: ;
		gsub_254049(g, n);
		gcoms_252213(g);
		optnl_251300(g);
		{
			if (!((c.Field1 &(1<<((((NU8) 0))&7)))!=0)) goto LA33;
			dedent_251332(g);
		}
		LA33: ;
	}
	LA5: ;
	BeforeRet: ;
}

N_NIMCALL(NIM_BOOL, longmode_254420)(tnode226816* n, NI start, NI theend) {
	NIM_BOOL result;
	result = 0;
	result = !(((*n).Comment == NIM_NIL));
	{
		if (!!(result)) goto LA3;
		{
			NI i_254438;
			NI HEX3Atmp_254455;
			NI LOC6;
			NI res_254458;
			i_254438 = 0;
			HEX3Atmp_254455 = 0;
			LOC6 = 0;
			LOC6 = sonslen_227249(n);
			HEX3Atmp_254455 = (NI32)(LOC6 + theend);
			res_254458 = start;
			{
				while (1) {
					if (!(res_254458 <= HEX3Atmp_254455)) goto LA8;
					i_254438 = res_254458;
					{
						NI LOC11;
						LOC11 = 0;
						LOC11 = lsub_252251((*n).kindU.S6.Sons->data[i_254438]);
						if (!(80 < LOC11)) goto LA12;
						result = NIM_TRUE;
						goto LA5;
					}
					LA12: ;
					res_254458 += 1;
				} LA8: ;
			}
		} LA5: ;
	}
	LA3: ;
	return result;
}

N_NIMCALL(void, gif_254621)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	NI length;
	memset((void*)(&c), 0, sizeof(c));
	gsub_254049(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
	initcontext_254028((&c));
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		LOC3 = (80 < (NI32)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_252213(g);
	gstmts_254475(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1], c, NIM_TRUE);
	length = sonslen_227249(n);
	{
		NI i_254742;
		NI HEX3Atmp_254759;
		NI res_254762;
		i_254742 = 0;
		HEX3Atmp_254759 = 0;
		HEX3Atmp_254759 = (NI32)(length - 1);
		res_254762 = 1;
		{
			while (1) {
				if (!(res_254762 <= HEX3Atmp_254759)) goto LA10;
				i_254742 = res_254762;
				optnl_251300(g);
				gsub_254040(g, (*n).kindU.S6.Sons->data[i_254742], c);
				res_254762 += 1;
			} LA10: ;
		}
	}
}

N_NIMCALL(void, gwhile_254779)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	putwithspace_254115(g, ((NU8) 67), ((NimStringDesc*) &TMP1284));
	gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	initcontext_254028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*n).kindU.S6.Sons->data[1]);
		LOC3 = (80 < (NI32)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_252213(g);
	gstmts_254475(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
}

N_NIMCALL(void, gpragmablock_254897)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	initcontext_254028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*n).kindU.S6.Sons->data[1]);
		LOC3 = (80 < (NI32)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_252213(g);
	gstmts_254475(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
}

N_NIMCALL(void, gcase_255176)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	NI length;
	NI last;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_254028((&c));
	length = sonslen_227249(n);
	{
		if (!((*(*n).kindU.S6.Sons->data[(NI32)(length - 1)]).Kind == ((NU8) 88))) goto LA3;
		last = -2;
	}
	goto LA1;
	LA3: ;
	{
		last = -1;
	}
	LA1: ;
	{
		NIM_BOOL LOC8;
		LOC8 = 0;
		LOC8 = longmode_254420(n, 0, last);
		if (!LOC8) goto LA9;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA9: ;
	putwithspace_254115(g, ((NU8) 11), ((NimStringDesc*) &TMP1285));
	gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	gcoms_252213(g);
	optnl_251300(g);
	gsons_254308(g, n, c, 1, last);
	{
		if (!(last == -2)) goto LA13;
		initcontext_254028((&c));
		{
			NIM_BOOL LOC17;
			LOC17 = 0;
			LOC17 = longmode_254420((*n).kindU.S6.Sons->data[(NI32)(length - 1)], 0, -1);
			if (!LOC17) goto LA18;
			c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
		}
		LA18: ;
		gsub_254040(g, (*n).kindU.S6.Sons->data[(NI32)(length - 1)], c);
	}
	LA13: ;
}

N_NIMCALL(void, gtry_254970)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	put_251432(g, ((NU8) 61), ((NimStringDesc*) &TMP1286));
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	initcontext_254028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*n).kindU.S6.Sons->data[0]);
		LOC3 = (80 < (NI32)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_252213(g);
	gstmts_254475(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
	gsons_254308(g, n, c, 1, -1);
}

N_NIMCALL(void, gfor_255029)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	NI length;
	memset((void*)(&c), 0, sizeof(c));
	length = sonslen_227249(n);
	putwithspace_254115(g, ((NU8) 28), ((NimStringDesc*) &TMP1287));
	initcontext_254028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		NI LOC6;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*n).kindU.S6.Sons->data[(NI32)(length - 1)]);
		LOC6 = 0;
		LOC6 = lsub_252251((*n).kindU.S6.Sons->data[(NI32)(length - 2)]);
		LOC3 = (80 < (NI32)((NI32)((NI32)(LOC5 + LOC6) + 6) + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA7;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA7: ;
	gcomma_254248(g, n, c, 0, -3);
	put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
	putwithspace_254115(g, ((NU8) 34), ((NimStringDesc*) &TMP1288));
	gsub_254040(g, (*n).kindU.S6.Sons->data[(NI32)(length - 2)], c);
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	gcoms_252213(g);
	gstmts_254475(g, (*n).kindU.S6.Sons->data[(NI32)(length - 1)], c, NIM_TRUE);
}

N_NIMCALL(void, gblock_255513)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_254028((&c));
	{
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		putwithspace_254115(g, ((NU8) 9), ((NimStringDesc*) &TMP1289));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	goto LA1;
	LA3: ;
	{
		put_251432(g, ((NU8) 9), ((NimStringDesc*) &TMP1289));
	}
	LA1: ;
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	{
		NIM_BOOL LOC8;
		NI LOC10;
		LOC8 = 0;
		LOC8 = longmode_254420(n, 0, -1);
		if (LOC8) goto LA9;
		LOC10 = 0;
		LOC10 = lsub_252251((*n).kindU.S6.Sons->data[1]);
		LOC8 = (80 < (NI32)(LOC10 + (*g).Linelen));
		LA9: ;
		if (!LOC8) goto LA11;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA11: ;
	gcoms_252213(g);
	indentnl_251310(g);
	gstmts_254475(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
	dedent_251332(g);
}

N_NIMCALL(void, gstaticstmt_255609)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	putwithspace_254115(g, ((NU8) 59), ((NimStringDesc*) &TMP1250));
	putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
	initcontext_254028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*n).kindU.S6.Sons->data[0]);
		LOC3 = (80 < (NI32)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_252213(g);
	gstmts_254475(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
}

N_NIMCALL(void, gasm_255668)(tsrcgen251023* g, tnode226816* n) {
	putwithspace_254115(g, ((NU8) 6), ((NimStringDesc*) &TMP1290));
	gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	gcoms_252213(g);
	gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
}

N_NIMCALL(NIM_BOOL, iskeyword_251089)(NimStringDesc* s) {
	NIM_BOOL result;
	tident201021* i;
	result = 0;
	i = getident_201472(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_251134)(tsym226846* 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_251089(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_254852)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	put_251432(g, ((NU8) 96), ((NimStringDesc*) &TMP1251));
	initcontext_254028((&c));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_254420(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_252251((*n).kindU.S6.Sons->data[0]);
		LOC3 = (80 < (NI32)(LOC5 + (*g).Linelen));
		LA4: ;
		if (!LOC3) goto LA6;
		c.Field1 |= ((NI8)1)<<((((NU8) 0))%(sizeof(NI8)*8));
	}
	LA6: ;
	gcoms_252213(g);
	gstmts_254475(g, n, c, NIM_TRUE);
	put_251432(g, ((NU8) 97), ((NimStringDesc*) &TMP1252));
}

N_NIMCALL(void, gproc_255290)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 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_251134((*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym, NIM_FALSE);
		put_251432(g, ((NU8) 2), LOC5);
	}
	goto LA1;
	LA3: ;
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	LA1: ;
	{
		if (!!(((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 1)))) goto LA9;
		gpattern_254852(g, (*n).kindU.S6.Sons->data[1]);
	}
	LA9: ;
	oldcheckanon = (*g).Checkanon;
	(*g).Checkanon = NIM_TRUE;
	gsub_254049(g, (*n).kindU.S6.Sons->data[2]);
	(*g).Checkanon = oldcheckanon;
	gsub_254049(g, (*n).kindU.S6.Sons->data[3]);
	gsub_254049(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_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
			putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
			indentnl_251310(g);
			gcoms_252213(g);
			dedent_251332(g);
			initcontext_254028((&c));
			gstmts_254475(g, (*n).kindU.S6.Sons->data[6], c, NIM_TRUE);
			putnl_251279(g);
		}
		goto LA15;
		LA17: ;
		{
			indentnl_251310(g);
			gcoms_252213(g);
			dedent_251332(g);
		}
		LA15: ;
	}
	LA13: ;
}

N_NIMCALL(void, gsection_254364)(tsrcgen251023* g, tnode226816* n, tcontext254010 c, NU8 kind, NimStringDesc* k) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = sonslen_227249(n);
		if (!(LOC3 == 0)) goto LA4;
		goto BeforeRet;
	}
	LA4: ;
	putwithspace_254115(g, kind, k);
	gcoms_252213(g);
	indentnl_251310(g);
	{
		NI i_254384;
		NI HEX3Atmp_254400;
		NI LOC7;
		NI res_254403;
		i_254384 = 0;
		HEX3Atmp_254400 = 0;
		LOC7 = 0;
		LOC7 = sonslen_227249(n);
		HEX3Atmp_254400 = (NI32)(LOC7 - 1);
		res_254403 = 0;
		{
			while (1) {
				if (!(res_254403 <= HEX3Atmp_254400)) goto LA9;
				i_254384 = res_254403;
				optnl_251300(g);
				gsub_254040(g, (*n).kindU.S6.Sons->data[i_254384], c);
				gcoms_252213(g);
				res_254403 += 1;
			} LA9: ;
		}
	}
	dedent_251332(g);
	BeforeRet: ;
}

N_NIMCALL(void, gtypeclassty_255499)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	tnode226816* LOC1;
	tnode226816* LOC2;
	tnode226816* LOC3;
	tnode226816* LOC4;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_254028((&c));
	putwithspace_254115(g, ((NU8) 31), ((NimStringDesc*) &TMP1319));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_227698(n, 0);
	gsons_254308(g, LOC1, c, 0, -1);
	LOC2 = 0;
	LOC2 = HEX5BHEX5D_227698(n, 1);
	gsub_254049(g, LOC2);
	LOC3 = 0;
	LOC3 = HEX5BHEX5D_227698(n, 2);
	gsub_254049(g, LOC3);
	gcoms_252213(g);
	indentnl_251310(g);
	gcoms_252213(g);
	LOC4 = 0;
	LOC4 = HEX5BHEX5D_227698(n, 3);
	gstmts_254475(g, LOC4, c, NIM_TRUE);
	dedent_251332(g);
}

N_NIMCALL(void, gsub_254040)(tsrcgen251023* g, tnode226816* n, tcontext254010 c_254045) {
	tcontext254010 a;
	{
		if (!n == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!!(((*n).Comment == NIM_NIL))) goto LA7;
		pushcom_251875(g, n);
	}
	LA7: ;
	switch ((*n).Kind) {
	case ((NU8) 22):
	{
		putrawstr_251767(g, ((NU8) 88), (*n).kindU.S3.Strval);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 4):
	{
		NimStringDesc* LOC12;
		LOC12 = 0;
		LOC12 = atom_252469(n);
		put_251432(g, ((NU8) 0), LOC12);
	}
	break;
	case ((NU8) 3):
	case ((NU8) 2):
	{
		gident_255707(g, n);
	}
	break;
	case ((NU8) 6):
	{
		NimStringDesc* LOC15;
		LOC15 = 0;
		LOC15 = atom_252469(n);
		put_251432(g, ((NU8) 72), LOC15);
	}
	break;
	case ((NU8) 7):
	{
		NimStringDesc* LOC17;
		LOC17 = 0;
		LOC17 = atom_252469(n);
		put_251432(g, ((NU8) 73), LOC17);
	}
	break;
	case ((NU8) 8):
	{
		NimStringDesc* LOC19;
		LOC19 = 0;
		LOC19 = atom_252469(n);
		put_251432(g, ((NU8) 74), LOC19);
	}
	break;
	case ((NU8) 9):
	{
		NimStringDesc* LOC21;
		LOC21 = 0;
		LOC21 = atom_252469(n);
		put_251432(g, ((NU8) 75), LOC21);
	}
	break;
	case ((NU8) 10):
	{
		NimStringDesc* LOC23;
		LOC23 = 0;
		LOC23 = atom_252469(n);
		put_251432(g, ((NU8) 76), LOC23);
	}
	break;
	case ((NU8) 11):
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = atom_252469(n);
		put_251432(g, ((NU8) 77), LOC25);
	}
	break;
	case ((NU8) 12):
	{
		NimStringDesc* LOC27;
		LOC27 = 0;
		LOC27 = atom_252469(n);
		put_251432(g, ((NU8) 78), LOC27);
	}
	break;
	case ((NU8) 13):
	{
		NimStringDesc* LOC29;
		LOC29 = 0;
		LOC29 = atom_252469(n);
		put_251432(g, ((NU8) 79), LOC29);
	}
	break;
	case ((NU8) 14):
	{
		NimStringDesc* LOC31;
		LOC31 = 0;
		LOC31 = atom_252469(n);
		put_251432(g, ((NU8) 80), LOC31);
	}
	break;
	case ((NU8) 15):
	{
		NimStringDesc* LOC33;
		LOC33 = 0;
		LOC33 = atom_252469(n);
		put_251432(g, ((NU8) 81), LOC33);
	}
	break;
	case ((NU8) 16):
	{
		NimStringDesc* LOC35;
		LOC35 = 0;
		LOC35 = atom_252469(n);
		put_251432(g, ((NU8) 82), LOC35);
	}
	break;
	case ((NU8) 17):
	{
		NimStringDesc* LOC37;
		LOC37 = 0;
		LOC37 = atom_252469(n);
		put_251432(g, ((NU8) 83), LOC37);
	}
	break;
	case ((NU8) 18):
	{
		NimStringDesc* LOC39;
		LOC39 = 0;
		LOC39 = atom_252469(n);
		put_251432(g, ((NU8) 84), LOC39);
	}
	break;
	case ((NU8) 19):
	{
		NimStringDesc* LOC41;
		LOC41 = 0;
		LOC41 = atom_252469(n);
		put_251432(g, ((NU8) 85), LOC41);
	}
	break;
	case ((NU8) 20):
	{
		NimStringDesc* LOC43;
		LOC43 = 0;
		LOC43 = atom_252469(n);
		put_251432(g, ((NU8) 86), LOC43);
	}
	break;
	case ((NU8) 21):
	{
		NimStringDesc* LOC45;
		LOC45 = 0;
		LOC45 = atom_252469(n);
		put_251432(g, ((NU8) 87), LOC45);
	}
	break;
	case ((NU8) 5):
	{
		NimStringDesc* LOC47;
		LOC47 = 0;
		LOC47 = atom_252469(n);
		put_251432(g, ((NU8) 91), LOC47);
	}
	break;
	case ((NU8) 23):
	{
		NimStringDesc* LOC49;
		LOC49 = 0;
		LOC49 = atom_252469(n);
		put_251432(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_227249(n);
			if (!(1 <= LOC53)) goto LA54;
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA54: ;
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254278(g, n, 1, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 28):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		{
			NimStringDesc* LOC61;
			tnode226816* LOC62;
			NimStringDesc* LOC63;
			if (!((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 21))) goto LA59;
			LOC61 = 0;
			LOC62 = 0;
			LOC62 = HEX5BHEX5D_227698(n, 1);
			LOC63 = 0;
			LOC63 = nsuReplaceStr((*LOC62).kindU.S3.Strval, ((NimStringDesc*) &TMP1216), ((NimStringDesc*) &TMP1222));
			LOC61 = rawNewString(LOC63->Sup.len + 2);
appendChar(LOC61, 34);
appendString(LOC61, LOC63);
appendChar(LOC61, 34);
			put_251432(g, ((NU8) 87), LOC61);
		}
		goto LA57;
		LA59: ;
		{
			gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		}
		LA57: ;
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 32):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 61):
	{
		put_251432(g, ((NU8) 12), ((NimStringDesc*) &TMP1246));
		put_251432(g, ((NU8) 94), ((NimStringDesc*) &TMP1247));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 95), ((NimStringDesc*) &TMP1248));
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 63):
	{
		put_251432(g, ((NU8) 3), ((NimStringDesc*) &TMP1249));
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 62):
	{
		put_251432(g, ((NU8) 59), ((NimStringDesc*) &TMP1250));
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 42):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 94), ((NimStringDesc*) &TMP1247));
		gcomma_254278(g, n, 1, -1);
		put_251432(g, ((NU8) 95), ((NimStringDesc*) &TMP1248));
	}
	break;
	case ((NU8) 40):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 96), ((NimStringDesc*) &TMP1251));
		gcomma_254278(g, n, 1, -1);
		put_251432(g, ((NU8) 97), ((NimStringDesc*) &TMP1252));
	}
	break;
	case ((NU8) 43):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		gcomma_254278(g, n, 1, -1);
	}
	break;
	case ((NU8) 26):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		gcomma_254278(g, n, 1, -1);
	}
	break;
	case ((NU8) 33):
	case ((NU8) 73):
	case ((NU8) 74):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 68):
	{
		put_251432(g, ((NU8) 2), ((NimStringDesc*) &TMP1254));
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254278(g, n, 0, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 69):
	{
		put_251432(g, ((NU8) 2), ((NimStringDesc*) &TMP1255));
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254278(g, n, 0, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 70):
	{
		put_251432(g, ((NU8) 2), ((NimStringDesc*) &TMP1256));
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254278(g, n, 0, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 66):
	case ((NU8) 67):
	case ((NU8) 71):
	case ((NU8) 72):
	{
		{
			NI LOC80;
			LOC80 = 0;
			LOC80 = sonslen_227249(n);
			if (!(1 <= LOC80)) goto LA81;
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA81: ;
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254278(g, n, 1, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 56):
	case ((NU8) 57):
	{
		NimStringDesc* LOC104;
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		{
			NI i_256241;
			NI HEX3Atmp_257768;
			NI LOC85;
			NI res_257771;
			i_256241 = 0;
			HEX3Atmp_257768 = 0;
			LOC85 = 0;
			LOC85 = sonslen_227249(n);
			HEX3Atmp_257768 = (NI32)(LOC85 - 1);
			res_257771 = 0;
			{
				while (1) {
					if (!(res_257771 <= HEX3Atmp_257768)) goto LA87;
					i_256241 = res_257771;
					{
						if (!(0 < i_256241)) goto LA90;
						put_251432(g, ((NU8) 111), ((NimStringDesc*) &TMP1257));
					}
					LA90: ;
					{
						tsym226846* s;
						tnode226816* LOC96;
						tnode226816* LOC102;
						if (!((*(*n).kindU.S6.Sons->data[i_256241]).Kind == ((NU8) 3))) goto LA94;
						LOC96 = 0;
						LOC96 = HEX5BHEX5D_227698(n, i_256241);
						s = (*LOC96).kindU.S4.Sym;
						{
							tnode226816* LOC101;
							if (!!(((*s).Owner == NIM_NIL))) goto LA99;
							LOC101 = 0;
							LOC101 = HEX5BHEX5D_227698(n, i_256241);
							put_251432(g, ((NU8) 2), (*(*(*(*LOC101).kindU.S4.Sym).Owner).Name).S);
							put_251432(g, ((NU8) 111), ((NimStringDesc*) &TMP1258));
						}
						LA99: ;
						LOC102 = 0;
						LOC102 = HEX5BHEX5D_227698(n, i_256241);
						put_251432(g, ((NU8) 2), (*(*(*LOC102).kindU.S4.Sym).Name).S);
					}
					goto LA92;
					LA94: ;
					{
						gsub_254040(g, (*n).kindU.S6.Sons->data[i_256241], c_254045);
					}
					LA92: ;
					res_257771 += 1;
				} LA87: ;
			}
		}
		LOC104 = 0;
		{
			if (!((*n).Kind == ((NU8) 57))) goto LA107;
			LOC104 = copyString(((NimStringDesc*) &TMP1259));
		}
		goto LA105;
		LA107: ;
		{
			LOC104 = copyString(((NimStringDesc*) &TMP1245));
		}
		LA105: ;
		put_251432(g, ((NU8) 93), LOC104);
	}
	break;
	case ((NU8) 37):
	case ((NU8) 154):
	{
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254248(g, n, c_254045, 0, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 39):
	{
		put_251432(g, ((NU8) 96), ((NimStringDesc*) &TMP1251));
		gcomma_254248(g, n, c_254045, 0, -1);
		put_251432(g, ((NU8) 97), ((NimStringDesc*) &TMP1252));
	}
	break;
	case ((NU8) 151):
	{
		gcomma_254248(g, n, c_254045, 0, -1);
	}
	break;
	case ((NU8) 54):
	{
		put_251432(g, ((NU8) 96), ((NimStringDesc*) &TMP1251));
		{
			NI LOC116;
			LOC116 = 0;
			LOC116 = len_227364(n);
			if (!(0 < LOC116)) goto LA117;
			gcomma_254248(g, n, c_254045, 0, -1);
		}
		goto LA114;
		LA117: ;
		{
			put_251432(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		}
		LA114: ;
		put_251432(g, ((NU8) 97), ((NimStringDesc*) &TMP1252));
	}
	break;
	case ((NU8) 41):
	{
		put_251432(g, ((NU8) 94), ((NimStringDesc*) &TMP1247));
		gcomma_254248(g, n, c_254045, 0, -1);
		put_251432(g, ((NU8) 95), ((NimStringDesc*) &TMP1248));
	}
	break;
	case ((NU8) 45):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 109), ((NimStringDesc*) &TMP1258));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 55):
	{
		putwithspace_254115(g, ((NU8) 8), ((NimStringDesc*) &TMP1261));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 46):
	case ((NU8) 64):
	case ((NU8) 65):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 51):
	{
		putwithspace_254115(g, ((NU8) 52), ((NimStringDesc*) &TMP1262));
		gsub_254049(g, (*n).kindU.S6.Sons->data[3]);
		gsub_254049(g, (*n).kindU.S6.Sons->data[4]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
		gsub_254049(g, (*n).kindU.S6.Sons->data[6]);
	}
	break;
	case ((NU8) 52):
	{
		putwithspace_254115(g, ((NU8) 20), ((NimStringDesc*) &TMP1263));
		doparamsaux_255901(g, (*n).kindU.S6.Sons->data[3]);
		gsub_254049(g, (*n).kindU.S6.Sons->data[4]);
		put_251432(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gsub_254049(g, (*n).kindU.S6.Sons->data[6]);
	}
	break;
	case ((NU8) 102):
	case ((NU8) 35):
	{
		NI l;
		gcomma_254278(g, n, 0, -3);
		l = sonslen_227249(n);
		{
			NIM_BOOL LOC129;
			LOC129 = 0;
			LOC129 = (2 <= l);
			if (!(LOC129)) goto LA130;
			LOC129 = !(((*(*n).kindU.S6.Sons->data[(NI32)(l - 2)]).Kind == ((NU8) 1)));
			LA130: ;
			if (!LOC129) goto LA131;
			putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
			gsub_254049(g, (*n).kindU.S6.Sons->data[(NI32)(l - 2)]);
		}
		LA131: ;
		{
			NIM_BOOL LOC135;
			LOC135 = 0;
			LOC135 = (1 <= l);
			if (!(LOC135)) goto LA136;
			LOC135 = !(((*(*n).kindU.S6.Sons->data[(NI32)(l - 1)]).Kind == ((NU8) 1)));
			LA136: ;
			if (!LOC135) goto LA137;
			put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
			putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
			gsub_254040(g, (*n).kindU.S6.Sons->data[(NI32)(l - 1)], c_254045);
		}
		LA137: ;
	}
	break;
	case ((NU8) 36):
	{
		tnode226816* LOC140;
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gcomma_254278(g, n, 0, -3);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
		LOC140 = 0;
		LOC140 = lastson_227261(n);
		gsub_254040(g, LOC140, c_254045);
	}
	break;
	case ((NU8) 34):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 29):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		{
			NI LOC145;
			NI LOC146;
			NIM_BOOL LOC147;
			LOC145 = 0;
			LOC145 = lsub_252251((*n).kindU.S6.Sons->data[2]);
			LOC146 = 0;
			LOC146 = lsub_252251((*n).kindU.S6.Sons->data[0]);
			LOC147 = 0;
			LOC147 = fits_253994((&(*g)), (NI32)((NI32)(LOC145 + LOC146) + 1));
			if (!!(LOC147)) goto LA148;
			optnl_251289(g, (NI32)((*g).Indent + 4));
		}
		goto LA143;
		LA148: ;
		{
			put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		}
		LA143: ;
		gsub_254049(g, (*n).kindU.S6.Sons->data[2]);
	}
	break;
	case ((NU8) 30):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		{
			NI LOC154;
			LOC154 = 0;
			LOC154 = len_227364(n);
			if (!(1 < LOC154)) goto LA155;
			put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
			{
				if (!((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 29))) goto LA159;
				put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
				gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
				put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
			}
			goto LA157;
			LA159: ;
			{
				gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
			}
			LA157: ;
		}
		LA155: ;
	}
	break;
	case ((NU8) 31):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 44):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 110), ((NimStringDesc*) &TMP1265));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 47):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 111), ((NimStringDesc*) &TMP1266));
	}
	break;
	case ((NU8) 53):
	{
		put_251432(g, ((NU8) 113), ((NimStringDesc*) &TMP1267));
		{
			NI LOC168;
			LOC168 = 0;
			LOC168 = len_227364(n);
			if (!(0 < LOC168)) goto LA169;
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA169: ;
		{
			NI i_256835;
			NI HEX3Atmp_257774;
			NI LOC172;
			NI res_257777;
			i_256835 = 0;
			HEX3Atmp_257774 = 0;
			LOC172 = 0;
			LOC172 = len_227364(n);
			HEX3Atmp_257774 = (LOC172 - 1);
			res_257777 = 1;
			{
				while (1) {
					if (!(res_257777 <= HEX3Atmp_257774)) goto LA174;
					i_256835 = res_257777;
					put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
					gsub_254049(g, (*n).kindU.S6.Sons->data[i_256835]);
					res_257777 += 1;
				} LA174: ;
			}
		}
		put_251432(g, ((NU8) 113), ((NimStringDesc*) &TMP1267));
	}
	break;
	case ((NU8) 48):
	{
		putwithspace_254115(g, ((NU8) 32), ((NimStringDesc*) &TMP1268));
		gsub_254049(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gsub_254049(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		gsons_254308(g, n, TMP1269, 1, -1);
	}
	break;
	case ((NU8) 49):
	{
		putwithspace_254115(g, ((NU8) 21), ((NimStringDesc*) &TMP1270));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 50):
	{
		put_251432(g, ((NU8) 22), ((NimStringDesc*) &TMP1271));
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 132):
	{
		putwithspace_254115(g, ((NU8) 63), ((NimStringDesc*) &TMP1272));
		{
			NI LOC181;
			LOC181 = 0;
			LOC181 = len_227364(n);
			if (!(0 < LOC181)) goto LA182;
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA182: ;
	}
	break;
	case ((NU8) 140):
	{
		{
			NI LOC187;
			LOC187 = 0;
			LOC187 = sonslen_227249(n);
			if (!(0 < LOC187)) goto LA188;
			putwithspace_254115(g, ((NU8) 55), ((NimStringDesc*) &TMP1273));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA185;
		LA188: ;
		{
			put_251432(g, ((NU8) 55), ((NimStringDesc*) &TMP1273));
		}
		LA185: ;
	}
	break;
	case ((NU8) 141):
	{
		{
			NI LOC194;
			LOC194 = 0;
			LOC194 = sonslen_227249(n);
			if (!(0 < LOC194)) goto LA195;
			putwithspace_254115(g, ((NU8) 53), ((NimStringDesc*) &TMP1274));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA192;
		LA195: ;
		{
			put_251432(g, ((NU8) 53), ((NimStringDesc*) &TMP1274));
		}
		LA192: ;
	}
	break;
	case ((NU8) 142):
	{
		{
			NI LOC201;
			LOC201 = 0;
			LOC201 = sonslen_227249(n);
			if (!(0 < LOC201)) goto LA202;
			putwithspace_254115(g, ((NU8) 65), ((NimStringDesc*) &TMP1275));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA199;
		LA202: ;
		{
			put_251432(g, ((NU8) 65), ((NimStringDesc*) &TMP1275));
		}
		LA199: ;
	}
	break;
	case ((NU8) 145):
	{
		{
			NI LOC208;
			LOC208 = 0;
			LOC208 = len_227364(n);
			if (!(0 < LOC208)) goto LA209;
			putwithspace_254115(g, ((NU8) 18), ((NimStringDesc*) &TMP1276));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
			{
				NI LOC213;
				tnode226816* LOC222;
				LOC213 = 0;
				LOC213 = len_227364(n);
				if (!(1 < LOC213)) goto LA214;
				{
					tnode226816* LOC218;
					LOC218 = 0;
					LOC218 = HEX5BHEX5D_227698(n, 1);
					if (!((*LOC218).Kind == ((NU8) 130))) goto LA219;
					putwithspace_254115(g, ((NU8) 68), ((NimStringDesc*) &TMP1277));
				}
				goto LA216;
				LA219: ;
				{
					putwithspace_254115(g, ((NU8) 69), ((NimStringDesc*) &TMP1278));
				}
				LA216: ;
				LOC222 = 0;
				LOC222 = HEX5BHEX5D_227698(n, 1);
				gcomma_254278(g, LOC222, 0, -1);
			}
			LA214: ;
		}
		goto LA206;
		LA209: ;
		{
			put_251432(g, ((NU8) 18), ((NimStringDesc*) &TMP1276));
		}
		LA206: ;
	}
	break;
	case ((NU8) 103):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		{
			if (!!(((*(*n).kindU.S6.Sons->data[2]).Kind == ((NU8) 1)))) goto LA227;
			putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
			gsub_254049(g, (*n).kindU.S6.Sons->data[2]);
		}
		LA227: ;
	}
	break;
	case ((NU8) 133):
	{
		{
			NI LOC232;
			LOC232 = 0;
			LOC232 = sonslen_227249(n);
			if (!(0 < LOC232)) goto LA233;
			putwithspace_254115(g, ((NU8) 48), ((NimStringDesc*) &TMP1279));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
			gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
			gcoms_252213(g);
			gsub_254049(g, (*n).kindU.S6.Sons->data[2]);
		}
		goto LA230;
		LA233: ;
		{
			put_251432(g, ((NU8) 48), ((NimStringDesc*) &TMP1279));
		}
		LA230: ;
	}
	break;
	case ((NU8) 137):
	{
		indentnl_251310(g);
		{
			NI i_257153;
			NI HEX3Atmp_257780;
			NI LOC238;
			NI res_257783;
			i_257153 = 0;
			HEX3Atmp_257780 = 0;
			LOC238 = 0;
			LOC238 = sonslen_227249(n);
			HEX3Atmp_257780 = (NI32)(LOC238 - 1);
			res_257783 = 0;
			{
				while (1) {
					if (!(res_257783 <= HEX3Atmp_257780)) goto LA240;
					i_257153 = res_257783;
					optnl_251300(g);
					gsub_254040(g, (*n).kindU.S6.Sons->data[i_257153], c_254045);
					gcoms_252213(g);
					res_257783 += 1;
				} LA240: ;
			}
		}
		dedent_251332(g);
		putnl_251279(g);
	}
	break;
	case ((NU8) 77):
	{
		putwithspace_254115(g, ((NU8) 49), ((NimStringDesc*) &TMP1280));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 146):
	{
		{
			NI LOC245;
			LOC245 = 0;
			LOC245 = sonslen_227249(n);
			if (!(0 < LOC245)) goto LA246;
			putwithspace_254115(g, ((NU8) 52), ((NimStringDesc*) &TMP1262));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
			gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		}
		goto LA243;
		LA246: ;
		{
			put_251432(g, ((NU8) 52), ((NimStringDesc*) &TMP1262));
		}
		LA243: ;
	}
	break;
	case ((NU8) 147):
	{
		{
			NI LOC252;
			LOC252 = 0;
			LOC252 = sonslen_227249(n);
			if (!(0 < LOC252)) goto LA253;
			putwithspace_254115(g, ((NU8) 39), ((NimStringDesc*) &TMP1281));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
			gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
		}
		goto LA250;
		LA253: ;
		{
			put_251432(g, ((NU8) 39), ((NimStringDesc*) &TMP1281));
		}
		LA250: ;
	}
	break;
	case ((NU8) 136):
	{
		put_251432(g, ((NU8) 59), ((NimStringDesc*) &TMP1250));
		put_251432(g, ((NU8) 94), ((NimStringDesc*) &TMP1247));
		{
			NI LOC259;
			LOC259 = 0;
			LOC259 = len_227364(n);
			if (!(0 < LOC259)) goto LA260;
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA260: ;
		put_251432(g, ((NU8) 95), ((NimStringDesc*) &TMP1248));
	}
	break;
	case ((NU8) 149):
	{
		{
			NI LOC265;
			LOC265 = 0;
			LOC265 = sonslen_227249(n);
			if (!(0 < LOC265)) goto LA266;
			putwithspace_254115(g, ((NU8) 24), ((NimStringDesc*) &TMP1282));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
			gcoms_252213(g);
			indentnl_251310(g);
			gcommaaux_254127(g, n, (*g).Indent, 1, -1, ((NU8) 104));
			gcoms_252213(g);
			dedent_251332(g);
		}
		goto LA263;
		LA266: ;
		{
			put_251432(g, ((NU8) 24), ((NimStringDesc*) &TMP1282));
		}
		LA263: ;
	}
	break;
	case ((NU8) 150):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 108), ((NimStringDesc*) &TMP1253));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	case ((NU8) 128):
	{
		gstmts_254475(g, n, TMP1269, NIM_TRUE);
	}
	break;
	case ((NU8) 92):
	{
		putwithspace_254115(g, ((NU8) 32), ((NimStringDesc*) &TMP1268));
		gif_254621(g, n);
	}
	break;
	case ((NU8) 93):
	case ((NU8) 139):
	{
		putwithspace_254115(g, ((NU8) 66), ((NimStringDesc*) &TMP1283));
		gif_254621(g, n);
	}
	break;
	case ((NU8) 96):
	{
		gwhile_254779(g, n);
	}
	break;
	case ((NU8) 91):
	{
		gpragmablock_254897(g, n);
	}
	break;
	case ((NU8) 97):
	case ((NU8) 138):
	{
		gcase_255176(g, n);
	}
	break;
	case ((NU8) 106):
	{
		gtry_254970(g, n);
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		gfor_255029(g, n);
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		gblock_255513(g, n);
	}
	break;
	case ((NU8) 113):
	{
		gstaticstmt_255609(g, n);
	}
	break;
	case ((NU8) 89):
	{
		gasm_255668(g, n);
	}
	break;
	case ((NU8) 79):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA284;
			putwithspace_254115(g, ((NU8) 52), ((NimStringDesc*) &TMP1262));
		}
		LA284: ;
		gproc_255290(g, n);
	}
	break;
	case ((NU8) 81):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA289;
			putwithspace_254115(g, ((NU8) 15), ((NimStringDesc*) &TMP1291));
		}
		LA289: ;
		gproc_255290(g, n);
	}
	break;
	case ((NU8) 80):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA294;
			putwithspace_254115(g, ((NU8) 42), ((NimStringDesc*) &TMP1292));
		}
		LA294: ;
		gproc_255290(g, n);
	}
	break;
	case ((NU8) 84):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA299;
			putwithspace_254115(g, ((NU8) 39), ((NimStringDesc*) &TMP1281));
		}
		LA299: ;
		gproc_255290(g, n);
	}
	break;
	case ((NU8) 82):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA304;
			putwithspace_254115(g, ((NU8) 41), ((NimStringDesc*) &TMP1293));
		}
		LA304: ;
		gproc_255290(g, n);
	}
	break;
	case ((NU8) 83):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA309;
			putwithspace_254115(g, ((NU8) 60), ((NimStringDesc*) &TMP1294));
		}
		LA309: ;
		gproc_255290(g, n);
	}
	break;
	case ((NU8) 98):
	{
		gsection_254364(g, n, TMP1269, ((NU8) 63), ((NimStringDesc*) &TMP1272));
	}
	break;
	case ((NU8) 101):
	{
		initcontext_254028((&a));
		a.Field1 |= ((NI8)1)<<((((NU8) 2))%(sizeof(NI8)*8));
		gsection_254364(g, n, a, ((NU8) 13), ((NimStringDesc*) &TMP1295));
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		NI l;
		l = sonslen_227249(n);
		{
			if (!(l == 0)) goto LA316;
			goto BeforeRet;
		}
		LA316: ;
		{
			if (!((*n).Kind == ((NU8) 99))) goto LA320;
			putwithspace_254115(g, ((NU8) 65), ((NimStringDesc*) &TMP1275));
		}
		goto LA318;
		LA320: ;
		{
			putwithspace_254115(g, ((NU8) 40), ((NimStringDesc*) &TMP1296));
		}
		LA318: ;
		{
			if (!(1 < l)) goto LA325;
			gcoms_252213(g);
			indentnl_251310(g);
			{
				NI i_257416;
				NI HEX3Atmp_257786;
				NI res_257789;
				i_257416 = 0;
				HEX3Atmp_257786 = 0;
				HEX3Atmp_257786 = (NI32)(l - 1);
				res_257789 = 0;
				{
					while (1) {
						if (!(res_257789 <= HEX3Atmp_257786)) goto LA329;
						i_257416 = res_257789;
						optnl_251300(g);
						gsub_254049(g, (*n).kindU.S6.Sons->data[i_257416]);
						gcoms_252213(g);
						res_257789 += 1;
					} LA329: ;
				}
			}
			dedent_251332(g);
		}
		goto LA323;
		LA325: ;
		{
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA323: ;
	}
	break;
	case ((NU8) 109):
	{
		putwithspace_254115(g, ((NU8) 56), ((NimStringDesc*) &TMP1297));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 108):
	{
		putwithspace_254115(g, ((NU8) 54), ((NimStringDesc*) &TMP1298));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 104):
	{
		putwithspace_254115(g, ((NU8) 71), ((NimStringDesc*) &TMP1299));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 114):
	{
		putwithspace_254115(g, ((NU8) 17), ((NimStringDesc*) &TMP1300));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 110):
	{
		putwithspace_254115(g, ((NU8) 10), ((NimStringDesc*) &TMP1301));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 111):
	{
		putwithspace_254115(g, ((NU8) 14), ((NimStringDesc*) &TMP1302));
		gsub_254049(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_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
				put_251432(g, ((NU8) 100), ((NimStringDesc*) &TMP1303));
				gcomma_254248(g, n, TMP1269, 0, -1);
				put_251432(g, ((NU8) 101), ((NimStringDesc*) &TMP1304));
				(*g).Inpragma -= 1;
			}
			goto LA342;
			LA344: ;
			{
				gcomma_254248(g, n, TMP1269, 0, -1);
			}
			LA342: ;
		}
		LA340: ;
	}
	break;
	case ((NU8) 116):
	case ((NU8) 118):
	{
		{
			if (!((*n).Kind == ((NU8) 116))) goto LA350;
			putwithspace_254115(g, ((NU8) 33), ((NimStringDesc*) &TMP1305));
		}
		goto LA348;
		LA350: ;
		{
			putwithspace_254115(g, ((NU8) 26), ((NimStringDesc*) &TMP1306));
		}
		LA348: ;
		gcoms_252213(g);
		indentnl_251310(g);
		gcommaaux_254127(g, n, (*g).Indent, 0, -1, ((NU8) 104));
		dedent_251332(g);
		putnl_251279(g);
	}
	break;
	case ((NU8) 117):
	case ((NU8) 119):
	{
		{
			if (!((*n).Kind == ((NU8) 117))) goto LA356;
			putwithspace_254115(g, ((NU8) 33), ((NimStringDesc*) &TMP1305));
		}
		goto LA354;
		LA356: ;
		{
			putwithspace_254115(g, ((NU8) 26), ((NimStringDesc*) &TMP1306));
		}
		LA354: ;
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 25), ((NimStringDesc*) &TMP1307));
		gcommaaux_254127(g, n, (*g).Indent, 1, -1, ((NU8) 104));
		gcoms_252213(g);
		putnl_251279(g);
	}
	break;
	case ((NU8) 120):
	{
		putwithspace_254115(g, ((NU8) 29), ((NimStringDesc*) &TMP1308));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 33), ((NimStringDesc*) &TMP1305));
		gcomma_254248(g, n, TMP1269, 1, -1);
		putnl_251279(g);
	}
	break;
	case ((NU8) 121):
	{
		putwithspace_254115(g, ((NU8) 35), ((NimStringDesc*) &TMP1309));
		gcoms_252213(g);
		indentnl_251310(g);
		gcommaaux_254127(g, n, (*g).Indent, 0, -1, ((NU8) 104));
		dedent_251332(g);
		putnl_251279(g);
	}
	break;
	case ((NU8) 125):
	{
		gcoms_252213(g);
		optnl_251300(g);
	}
	break;
	case ((NU8) 85):
	{
		tnode226816* LOC363;
		optnl_251300(g);
		putwithspace_254115(g, ((NU8) 49), ((NimStringDesc*) &TMP1280));
		gcomma_254248(g, n, c_254045, 0, -2);
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gcoms_252213(g);
		LOC363 = 0;
		LOC363 = lastson_227261(n);
		gstmts_254475(g, LOC363, c_254045, NIM_TRUE);
	}
	break;
	case ((NU8) 78):
	{
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 114), ((NimStringDesc*) &TMP1243));
		putwithspace_254115(g, ((NU8) 5), ((NimStringDesc*) &TMP1310));
		gsub_254049(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 122):
	{
		putwithspace_254115(g, ((NU8) 8), ((NimStringDesc*) &TMP1261));
		gcomma_254248(g, n, c_254045, 0, -1);
	}
	break;
	case ((NU8) 123):
	{
		putwithspace_254115(g, ((NU8) 43), ((NimStringDesc*) &TMP1311));
		gcomma_254248(g, n, c_254045, 0, -1);
	}
	break;
	case ((NU8) 86):
	{
		optnl_251300(g);
		putwithspace_254115(g, ((NU8) 21), ((NimStringDesc*) &TMP1312));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gcoms_252213(g);
		gstmts_254475(g, (*n).kindU.S6.Sons->data[1], c_254045, NIM_TRUE);
	}
	break;
	case ((NU8) 88):
	{
		optnl_251300(g);
		put_251432(g, ((NU8) 22), ((NimStringDesc*) &TMP1313));
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gcoms_252213(g);
		gstmts_254475(g, (*n).kindU.S6.Sons->data[0], c_254045, NIM_TRUE);
	}
	break;
	case ((NU8) 107):
	{
		optnl_251300(g);
		put_251432(g, ((NU8) 27), ((NimStringDesc*) &TMP1314));
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gcoms_252213(g);
		gstmts_254475(g, (*n).kindU.S6.Sons->data[0], c_254045, NIM_TRUE);
	}
	break;
	case ((NU8) 87):
	{
		tnode226816* LOC371;
		optnl_251300(g);
		putwithspace_254115(g, ((NU8) 25), ((NimStringDesc*) &TMP1307));
		gcomma_254278(g, n, 0, -2);
		putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
		gcoms_252213(g);
		LOC371 = 0;
		LOC371 = lastson_227261(n);
		gstmts_254475(g, LOC371, c_254045, NIM_TRUE);
	}
	break;
	case ((NU8) 75):
	{
		put_251432(g, ((NU8) 94), ((NimStringDesc*) &TMP1247));
		gcomma_254278(g, n, 0, -1);
		put_251432(g, ((NU8) 95), ((NimStringDesc*) &TMP1248));
	}
	break;
	case ((NU8) 76):
	{
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1242));
		gsemicolon_254293(g, n, 1, -1);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA376;
			putwithspace_254115(g, ((NU8) 106), ((NimStringDesc*) &TMP1260));
			gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA376: ;
	}
	break;
	case ((NU8) 134):
	{
		put_251432(g, ((NU8) 62), ((NimStringDesc*) &TMP1315));
		{
			NI LOC381;
			LOC381 = 0;
			LOC381 = sonslen_227249(n);
			if (!(0 < LOC381)) goto LA382;
			put_251432(g, ((NU8) 94), ((NimStringDesc*) &TMP1247));
			gcomma_254278(g, n, 0, -1);
			put_251432(g, ((NU8) 95), ((NimStringDesc*) &TMP1248));
		}
		LA382: ;
	}
	break;
	case ((NU8) 24):
	{
		put_251432(g, ((NU8) 92), ((NimStringDesc*) &TMP1316));
		gsub_254049(g, (*n).kindU.S6.Sons->data[0]);
		put_251432(g, ((NU8) 93), ((NimStringDesc*) &TMP1245));
	}
	break;
	case ((NU8) 155):
	case ((NU8) 156):
	{
		tcontext254010 c;
		NimStringDesc* LOC386;
		memset((void*)(&c), 0, sizeof(c));
		initcontext_254028((&c));
		LOC386 = 0;
		{
			if (!((*n).Kind == ((NU8) 156))) goto LA389;
			LOC386 = copyString(((NimStringDesc*) &TMP1317));
		}
		goto LA387;
		LA389: ;
		{
			LOC386 = copyString(((NimStringDesc*) &TMP1318));
		}
		LA387: ;
		putwithspace_254115(g, ((NU8) 2), LOC386);
		gsons_254308(g, n, c, 0, -1);
	}
	break;
	case ((NU8) 135):
	{
		gtypeclassty_255499(g, n);
	}
	break;
	default:
	{
		NimStringDesc* LOC394;
		LOC394 = 0;
		LOC394 = rawNewString(reprEnum((*n).Kind, (&NTI226029))->Sup.len + 14);
appendString(LOC394, ((NimStringDesc*) &TMP1320));
appendString(LOC394, reprEnum((*n).Kind, (&NTI226029)));
appendChar(LOC394, 41);
		internalerror_198987((*n).Info, LOC394);
	}
	break;
	}
	BeforeRet: ;
}

N_NIMCALL(void, gsub_254049)(tsrcgen251023* g, tnode226816* n) {
	tcontext254010 c;
	memset((void*)(&c), 0, sizeof(c));
	initcontext_254028((&c));
	gsub_254040(g, n, c);
}

N_NIMCALL(NimStringDesc*, rendertree_251058)(tnode226816* n, NU8 renderflags) {
	NimStringDesc* result;
	tsrcgen251023 g;
	result = 0;
	memset((void*)(&g), 0, sizeof(g));
	initsrcgen_251167((&g), renderflags);
	gsub_254049((&g), n);
	result = copyString(g.Buf);
	return result;
}

N_NIMCALL(void, inittokrender_251067)(tsrcgen251023* r, tnode226816* n, NU8 renderflags) {
	initsrcgen_251167(r, renderflags);
	gsub_254049(r, n);
}

N_NIMCALL(void, getnexttok_251078)(tsrcgen251023* 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, (NI32)((NI32)((*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* TMP1212[2];
static TNimNode TMP805[3];
NTI251019.size = sizeof(trendertok251019);
NTI251019.kind = 18;
NTI251019.base = 0;
NTI251019.flags = 3;
TMP1212[0] = &TMP805[1];
TMP805[1].kind = 1;
TMP805[1].offset = offsetof(trendertok251019, Kind);
TMP805[1].typ = (&NTI216022);
TMP805[1].name = "kind";
TMP1212[1] = &TMP805[2];
TMP805[2].kind = 1;
TMP805[2].offset = offsetof(trendertok251019, Length);
TMP805[2].typ = (&NTI112);
TMP805[2].name = "length";
TMP805[0].len = 2; TMP805[0].kind = 2; TMP805[0].sons = &TMP1212[0];
NTI251019.node = &TMP805[0];
NTI251021.size = sizeof(trendertokseq251021*);
NTI251021.kind = 24;
NTI251021.base = (&NTI251019);
NTI251021.flags = 2;
NTI251021.marker = TMP1213;
}

