/* Generated by Nimrod Compiler v0.9.5 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, i386, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing  -I/build/nimrod/src/nimrod/lib -o compiler/nimcache/renderer.o compiler/nimcache/renderer.c */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tnode188803 tnode188803;
typedef struct tsrcgen211021 tsrcgen211021;
typedef struct trendertokseq211019 trendertokseq211019;
typedef struct trendertok211017 trendertok211017;
typedef struct tnodeseq188797 tnodeseq188797;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcontext213992 tcontext213992;
typedef struct ttype188837 ttype188837;
typedef struct tlineinfo163527 tlineinfo163527;
typedef struct tsym188833 tsym188833;
typedef struct tident167019 tident167019;
typedef struct tcell41090 tcell41090;
typedef struct tcellseq41106 tcellseq41106;
typedef struct tgcheap43016 tgcheap43016;
typedef struct tcellset41102 tcellset41102;
typedef struct tpagedesc41098 tpagedesc41098;
typedef struct tmemregion23410 tmemregion23410;
typedef struct tsmallchunk22638 tsmallchunk22638;
typedef struct tllchunk23404 tllchunk23404;
typedef struct tbigchunk22640 tbigchunk22640;
typedef struct tintset22615 tintset22615;
typedef struct ttrunk22611 ttrunk22611;
typedef struct tavlnode23408 tavlnode23408;
typedef struct tgcstat43014 tgcstat43014;
typedef struct tidobj167013 tidobj167013;
typedef struct TNimObject TNimObject;
typedef struct ttypeseq188835 ttypeseq188835;
typedef struct tscope188827 tscope188827;
typedef struct TY188933 TY188933;
typedef struct tinstantiation188823 tinstantiation188823;
typedef struct tstrtable188807 tstrtable188807;
typedef struct tsymseq188805 tsymseq188805;
typedef struct tloc188817 tloc188817;
typedef struct trope145007 trope145007;
typedef struct tlib188821 tlib188821;
typedef struct tbasechunk22636 tbasechunk22636;
typedef struct tfreecell22628 tfreecell22628;
typedef struct TY188922 TY188922;
typedef struct tlistentry118017 tlistentry118017;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  trendertok211017  {
NU8 Kind;
NI16 Length;
};
struct  tsrcgen211021  {
NI Indent;
NI Linelen;
NI Pos;
NI Idx;
trendertokseq211019* Tokens;
NimStringDesc* Buf;
NI Pendingnl;
tnodeseq188797* Comstack;
NU8 Flags;
NIM_BOOL Checkanon;
};
typedef N_NIMCALL_PTR(void, TY2289) (void* p, NI op);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY2289 marker;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tcontext213992 {
NI Field0;
NU8 Field1;
};
struct  tlineinfo163527  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode188803  {
ttype188837* Typ;
tlineinfo163527 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym188833* Sym;
} S4;
struct {tident167019* Ident;
} S5;
struct {tnodeseq188797* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tcell41090  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq41106  {
NI Len;
NI Cap;
tcell41090** D;
};
struct  tcellset41102  {
NI Counter;
NI Max;
tpagedesc41098* Head;
tpagedesc41098** Data;
};
typedef tsmallchunk22638* TY23422[512];
typedef ttrunk22611* ttrunkbuckets22613[256];
struct  tintset22615  {
ttrunkbuckets22613 Data;
};
struct  tmemregion23410  {
NI Minlargeobj;
NI Maxlargeobj;
TY23422 Freesmallchunks;
tllchunk23404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk22640* Freechunkslist;
tintset22615 Chunkstarts;
tavlnode23408* Root;
tavlnode23408* Deleted;
tavlnode23408* Last;
tavlnode23408* Freeavlnodes;
};
struct  tgcstat43014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap43016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq41106 Zct;
tcellseq41106 Decstack;
tcellset41102 Cycleroots;
tcellseq41106 Tempstack;
NI Recgclock;
tmemregion23410 Region;
tgcstat43014 Stat;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tidobj167013  {
  TNimObject Sup;
NI Id;
};
struct  tident167019  {
  tidobj167013 Sup;
NimStringDesc* S;
tident167019* Next;
NI H;
};
struct  tstrtable188807  {
NI Counter;
tsymseq188805* Data;
};
struct  tloc188817  {
NU8 K;
NU8 S;
NU8 Flags;
ttype188837* T;
trope145007* R;
trope145007* Heaproot;
NI A;
};
struct  tsym188833  {
  tidobj167013 Sup;
NU8 Kind;
union {
struct {ttypeseq188835* Typeinstcache;
tscope188827* Typscope;
} S1;
struct {TY188933* Procinstcache;
tscope188827* Scope;
} S2;
struct {TY188933* Usedgenerics;
tstrtable188807 Tab;
} S3;
} kindU;
NU16 Magic;
ttype188837* Typ;
tident167019* Name;
tlineinfo163527 Info;
tsym188833* Owner;
NU32 Flags;
tnode188803* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc188817 Loc;
tlib188821* Annex;
tnode188803* Constraint;
};
struct  ttype188837  {
  tidobj167013 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq188835* Sons;
tnode188803* N;
tsym188833* Destructor;
tsym188833* Owner;
tsym188833* Sym;
NI64 Size;
NI Align;
tloc188817 Loc;
};
typedef NimStringDesc* TY180165[117];
typedef NI TY22618[16];
struct  tpagedesc41098  {
tpagedesc41098* Next;
NI Key;
TY22618 Bits;
};
struct  tbasechunk22636  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk22638  {
  tbasechunk22636 Sup;
tsmallchunk22638* Next;
tsmallchunk22638* Prev;
tfreecell22628* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk23404  {
NI Size;
NI Acc;
tllchunk23404* Next;
};
struct  tbigchunk22640  {
  tbasechunk22636 Sup;
tbigchunk22640* Next;
tbigchunk22640* Prev;
NI Align;
NF Data;
};
struct  ttrunk22611  {
ttrunk22611* Next;
NI Key;
TY22618 Bits;
};
typedef tavlnode23408* TY23414[2];
struct  tavlnode23408  {
TY23414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tscope188827  {
NI Depthlevel;
tstrtable188807 Symbols;
tnodeseq188797* Usingsyms;
tscope188827* Parent;
};
struct  tinstantiation188823  {
tsym188833* Sym;
ttypeseq188835* Concretetypes;
TY188922* Usedby;
};
struct  trope145007  {
  TNimObject Sup;
trope145007* Left;
trope145007* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry118017  {
  TNimObject Sup;
tlistentry118017* Prev;
tlistentry118017* Next;
};
struct  tlib188821  {
  tlistentry118017 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope145007* Name;
tnode188803* Path;
};
struct  tfreecell22628  {
tfreecell22628* Next;
NI Zerofield;
};
struct trendertokseq211019 {
  TGenericSeq Sup;
  trendertok211017 data[SEQ_DECL_SIZE];
};
struct tnodeseq188797 {
  TGenericSeq Sup;
  tnode188803* data[SEQ_DECL_SIZE];
};
struct ttypeseq188835 {
  TGenericSeq Sup;
  ttype188837* data[SEQ_DECL_SIZE];
};
struct TY188933 {
  TGenericSeq Sup;
  tinstantiation188823* data[SEQ_DECL_SIZE];
};
struct tsymseq188805 {
  TGenericSeq Sup;
  tsym188833* data[SEQ_DECL_SIZE];
};
struct TY188922 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, initsrcgen_211145)(tsrcgen211021* g, NU8 renderflags);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, TMP1575)(void* p, NI op);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, gsub_214021)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, initcontext_214006)(tcontext213992* c);
N_NIMCALL(void, gsub_214014)(tsrcgen211021* g, tnode188803* n, tcontext213992 c_214019);
N_NIMCALL(void, pushcom_211867)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell41090*, usrtocell_44443)(void* usr);
static N_INLINE(void, rtladdzct_46002)(tcell41090* c);
N_NOINLINE(void, addzct_44418)(tcellseq41106* s, tcell41090* c);
N_NIMCALL(void, putrawstr_211767)(tsrcgen211021* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(void, put_211436)(tsrcgen211021* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(void, addpendingnl_211228)(tsrcgen211021* g);
N_NIMCALL(void, addtok_211192)(tsrcgen211021* 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_211247)(tsrcgen211021* g, NI indent);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, atom_212419)(tnode188803* n);
N_NIMCALL(NimStringDesc*, makenimstring_211484)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, tonimchar_211470)(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_212237)(tnode188803* n, NI64 x, NI size);
N_NIMCALL(ttype188837*, skip_212243)(ttype188837* t);
static N_INLINE(ttype188837*, lastson_189193)(ttype188837* n);
static N_INLINE(NI, sonslen_189185)(ttype188837* n);
static N_INLINE(NI, len_189264)(tnode188803* 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_212372)(tnode188803* n, NI64 x, NI size);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF x);
N_NIMCALL(void, internalerror_165606)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_75880, TNimType* typ);
N_NIMCALL(void, gident_215527)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(NI, sonslen_189181)(tnode188803* n);
N_NIMCALL(void, gcomma_214210)(tsrcgen211021* g, tnode188803* n, NI start, NI theend);
N_NIMCALL(void, gcommaaux_214077)(tsrcgen211021* g, tnode188803* n, NI ind, NI start, NI theend, NU8 separator);
N_NIMCALL(NI, lsub_212233)(tnode188803* n);
N_NIMCALL(NIM_BOOL, containsnl_211843)(NimStringDesc* s);
N_NIMCALL(NI, lcomma_212894)(tnode188803* n, NI start, NI theend);
static N_INLINE(tnode188803*, HEX5BHEX5D_189694)(tnode188803* n, NI i);
N_NIMCALL(NI, lsons_213084)(tnode188803* n, NI start, NI theend);
static N_INLINE(tnode188803*, lastson_189189)(tnode188803* n);
N_NIMCALL(NIM_BOOL, fits_213980)(tsrcgen211021* g, NI x);
N_NIMCALL(void, putwithspace_214069)(tsrcgen211021* g, NU8 kind, NimStringDesc* s);
N_NIMCALL(NIM_BOOL, hascom_214031)(tnode188803* n);
N_NIMCALL(void, gcoms_212209)(tsrcgen211021* g);
N_NIMCALL(void, gcom_211993)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(NIM_BOOL, shouldrendercomment_211959)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_NIMCALL(NI, maxlinelength_211672)(NimStringDesc* s);
N_NIMCALL(void, putcomment_211508)(tsrcgen211021* g, NimStringDesc* s);
N_NIMCALL(void, optnl_211254)(tsrcgen211021* g);
N_NIMCALL(void, popallcoms_211902)(tsrcgen211021* g);
N_NIMCALL(void, gcomma_214184)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NI start, NI theend);
N_NIMCALL(void, doparamsaux_215717)(tsrcgen211021* g, tnode188803* params);
N_NIMCALL(void, gsemicolon_214221)(tsrcgen211021* g, tnode188803* n, NI start, NI theend);
N_NIMCALL(void, gsons_214232)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NI start, NI theend);
N_NIMCALL(void, indentnl_211260)(tsrcgen211021* g);
N_NIMCALL(void, dedent_211282)(tsrcgen211021* g);
N_NIMCALL(void, putnl_211241)(tsrcgen211021* g);
N_NIMCALL(void, putnl_211234)(tsrcgen211021* g, NI indent);
N_NIMCALL(void, gstmts_214357)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NIM_BOOL doindent);
N_NIMCALL(void, gif_214489)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(NIM_BOOL, longmode_214316)(tnode188803* n, NI start, NI theend);
N_NIMCALL(void, gwhile_214633)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gpragmablock_214757)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gcase_215020)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gtry_214826)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gfor_214881)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gblock_215345)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gstaticstmt_215437)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gasm_215492)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gproc_215130)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(NimStringDesc*, renderdefinitionname_211118)(tsym188833* s, NIM_BOOL noquotes);
N_NIMCALL(NIM_BOOL, iskeyword_211077)(NimStringDesc* s);
N_NIMCALL(tident167019*, getident_167456)(NimStringDesc* identifier);
N_NIMCALL(void, gpattern_214702)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, gsection_214274)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NU8 kind, NimStringDesc* k);
N_NIMCALL(void, gtypeclassty_215335)(tsrcgen211021* g, tnode188803* n);
N_NIMCALL(void, internalerror_165591)(tlineinfo163527 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_70624, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
STRING_LITERAL(TMP1576, "", 0);
STRING_LITERAL(TMP1577, "\012", 1);
STRING_LITERAL(TMP1578, "\"", 1);
STRING_LITERAL(TMP1579, "\\0", 2);
STRING_LITERAL(TMP1580, "\\x", 2);
STRING_LITERAL(TMP1582, "r\"", 2);
STRING_LITERAL(TMP1583, "\"\"", 2);
STRING_LITERAL(TMP1584, "\"\"\"", 3);
STRING_LITERAL(TMP1585, "0b", 2);
STRING_LITERAL(TMP1586, "0o", 2);
STRING_LITERAL(TMP1587, "0x", 2);
STRING_LITERAL(TMP1588, "\'i8", 3);
STRING_LITERAL(TMP1589, "\'i16", 4);
STRING_LITERAL(TMP1590, "\'i32", 4);
STRING_LITERAL(TMP1591, "\'i64", 4);
STRING_LITERAL(TMP1592, "\'u", 2);
STRING_LITERAL(TMP1593, "\'u8", 3);
STRING_LITERAL(TMP1594, "\'u16", 4);
STRING_LITERAL(TMP1595, "\'u32", 4);
STRING_LITERAL(TMP1596, "\'u64", 4);
STRING_LITERAL(TMP1597, "\'f32", 4);
STRING_LITERAL(TMP1598, "\'f64", 4);
STRING_LITERAL(TMP1599, "nil", 3);
STRING_LITERAL(TMP1600, "[type node]", 11);
STRING_LITERAL(TMP1601, "rnimsyn.atom ", 13);
STRING_LITERAL(TMP1603, "(", 1);
STRING_LITERAL(TMP1604, " ", 1);
extern NIM_CONST TY180165 toktypetostr_180164;
STRING_LITERAL(TMP1605, "##", 2);
STRING_LITERAL(TMP1606, ")", 1);
STRING_LITERAL(TMP1607, "cast", 4);
STRING_LITERAL(TMP1608, "[", 1);
STRING_LITERAL(TMP1609, "]", 1);
STRING_LITERAL(TMP1610, "addr", 4);
STRING_LITERAL(TMP1611, "static", 6);
STRING_LITERAL(TMP1612, "{", 1);
STRING_LITERAL(TMP1613, "}", 1);
STRING_LITERAL(TMP1614, "=", 1);
STRING_LITERAL(TMP1615, "chckRangeF", 10);
STRING_LITERAL(TMP1616, "chckRange64", 11);
STRING_LITERAL(TMP1617, "chckRange", 9);
STRING_LITERAL(TMP1618, "|", 1);
STRING_LITERAL(TMP1619, ":", 1);
STRING_LITERAL(TMP1620, ".", 1);
STRING_LITERAL(TMP1621, "bind", 4);
STRING_LITERAL(TMP1622, "proc", 4);
STRING_LITERAL(TMP1623, "do", 2);
STRING_LITERAL(TMP1624, "->", 2);
STRING_LITERAL(TMP1625, "..", 2);
STRING_LITERAL(TMP1626, "[]", 2);
STRING_LITERAL(TMP1627, "`", 1);
STRING_LITERAL(TMP1628, "if", 2);
NIM_CONST tcontext213992 TMP1629 = {0,
0}
;
STRING_LITERAL(TMP1630, " elif", 5);
STRING_LITERAL(TMP1631, " else", 5);
STRING_LITERAL(TMP1632, "type", 4);
STRING_LITERAL(TMP1633, "ref", 3);
STRING_LITERAL(TMP1634, "ptr", 3);
STRING_LITERAL(TMP1635, "var", 3);
STRING_LITERAL(TMP1636, "distinct", 8);
STRING_LITERAL(TMP1637, " with", 5);
STRING_LITERAL(TMP1638, " without", 8);
STRING_LITERAL(TMP1639, "object", 6);
STRING_LITERAL(TMP1640, "of", 2);
STRING_LITERAL(TMP1641, "iterator", 8);
STRING_LITERAL(TMP1642, "enum", 4);
STRING_LITERAL(TMP1643, "when", 4);
STRING_LITERAL(TMP1644, "while", 5);
STRING_LITERAL(TMP1645, "case", 4);
STRING_LITERAL(TMP1646, "try", 3);
STRING_LITERAL(TMP1647, "for", 3);
STRING_LITERAL(TMP1648, "in", 2);
STRING_LITERAL(TMP1649, "block", 5);
STRING_LITERAL(TMP1650, "asm", 3);
STRING_LITERAL(TMP1651, "converter", 9);
STRING_LITERAL(TMP1652, "method", 6);
STRING_LITERAL(TMP1653, "macro", 5);
STRING_LITERAL(TMP1654, "template", 8);
STRING_LITERAL(TMP1655, "const", 5);
STRING_LITERAL(TMP1656, "let", 3);
STRING_LITERAL(TMP1657, "return", 6);
STRING_LITERAL(TMP1658, "raise", 5);
STRING_LITERAL(TMP1659, "yield", 5);
STRING_LITERAL(TMP1660, "discard", 7);
STRING_LITERAL(TMP1661, "break", 5);
STRING_LITERAL(TMP1662, "continue", 8);
STRING_LITERAL(TMP1663, "{.", 2);
STRING_LITERAL(TMP1664, ".}", 2);
STRING_LITERAL(TMP1665, "import", 6);
STRING_LITERAL(TMP1666, "export", 6);
STRING_LITERAL(TMP1667, "except", 6);
STRING_LITERAL(TMP1668, "from", 4);
STRING_LITERAL(TMP1669, "include", 7);
STRING_LITERAL(TMP1670, "as", 2);
STRING_LITERAL(TMP1671, "mixin", 5);
STRING_LITERAL(TMP1672, "elif", 4);
STRING_LITERAL(TMP1673, "else", 4);
STRING_LITERAL(TMP1674, "finally", 7);
STRING_LITERAL(TMP1675, "tuple", 5);
STRING_LITERAL(TMP1676, "(META|", 6);
STRING_LITERAL(TMP1677, "state", 5);
STRING_LITERAL(TMP1678, "goto", 4);
STRING_LITERAL(TMP1679, "generic", 7);
STRING_LITERAL(TMP1680, "rnimsyn.gsub(", 13);
extern TNimType NTI188797; /* TNodeSeq */
TNimType NTI211017; /* TRenderTok */
extern TNimType NTI180015; /* TTokType */
extern TNimType NTI110; /* int16 */
TNimType NTI211019; /* TRenderTokSeq */
extern tgcheap43016 gch_43044;
extern TNimType NTI188023; /* TNodeKind */
N_NIMCALL(void, TMP1575)(void* p, NI op) {
	trendertokseq211019* a;
	NI LOC1;
	a = (trendertokseq211019*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}

N_NIMCALL(void, initsrcgen_211145)(tsrcgen211021* g, NU8 renderflags) {
	unsureAsgnRef((void**) &(*g).Comstack, (tnodeseq188797*) newSeq((&NTI188797), 0));
	unsureAsgnRef((void**) &(*g).Tokens, (trendertokseq211019*) newSeq((&NTI211019), 0));
	(*g).Indent = 0;
	(*g).Linelen = 0;
	(*g).Pos = 0;
	(*g).Idx = 0;
	unsureAsgnRef((void**) &(*g).Buf, copyString(((NimStringDesc*) &TMP1576)));
	(*g).Flags = renderflags;
	(*g).Pendingnl = -1;
	(*g).Checkanon = NIM_FALSE;
}

N_NIMCALL(void, initcontext_214006)(tcontext213992* c) {
	(*c).Field0 = 0;
	(*c).Field1 = 0;
}

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

static N_INLINE(void, rtladdzct_46002)(tcell41090* c) {
	addzct_44418(&gch_43044.Zct, c);
}

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

N_NIMCALL(void, pushcom_211867)(tsrcgen211021* g, tnode188803* n) {
	NI length;
	length = (*g).Comstack->Sup.len;
	(*g).Comstack = (tnodeseq188797*) setLengthSeq(&((*g).Comstack)->Sup, sizeof(tnode188803*), (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_211192)(tsrcgen211021* g, NU8 kind, NimStringDesc* s) {
	NI length;
	length = (*g).Tokens->Sup.len;
	(*g).Tokens = (trendertokseq211019*) setLengthSeq(&((*g).Tokens)->Sup, sizeof(trendertok211017), (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_211228)(tsrcgen211021* 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*) &TMP1577));
appendString(LOC5, LOC6);
		addtok_211192(g, ((NU8) 113), LOC5);
		(*g).Linelen = (*g).Pendingnl;
		(*g).Pendingnl = -1;
	}
	LA3: ;
}

N_NIMCALL(void, put_211436)(tsrcgen211021* g, NU8 kind, NimStringDesc* s) {
	addpendingnl_211228(g);
	{
		if (!(0 < s->Sup.len)) goto LA3;
		addtok_211192(g, kind, s);
		(*g).Linelen += s->Sup.len;
	}
	LA3: ;
}

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

N_NIMCALL(void, putrawstr_211767)(tsrcgen211021* g, NU8 kind, NimStringDesc* s) {
	NI i;
	NI hi;
	NimStringDesc* str;
	i = 0;
	hi = (NI32)(s->Sup.len - 1);
	str = copyString(((NimStringDesc*) &TMP1576));
	while (1) {
		if (!(i <= hi)) goto LA1;
		switch (((NU8)(s->data[i]))) {
		case 13:
		{
			put_211436(g, kind, str);
			str = copyString(((NimStringDesc*) &TMP1576));
			i += 1;
			{
				NIM_BOOL LOC5;
				LOC5 = 0;
				LOC5 = (i <= hi);
				if (!(LOC5)) goto LA6;
				LOC5 = ((NU8)(s->data[i]) == (NU8)(10));
				LA6: ;
				if (!LOC5) goto LA7;
				i += 1;
			}
			LA7: ;
			optnl_211247(g, 0);
		}
		break;
		case 10:
		{
			put_211436(g, kind, str);
			str = copyString(((NimStringDesc*) &TMP1576));
			i += 1;
			optnl_211247(g, 0);
		}
		break;
		default:
		{
			str = addChar(str, s->data[i]);
			i += 1;
		}
		break;
		}
	} LA1: ;
	put_211436(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_211470)(NIM_CHAR c) {
	NimStringDesc* result;
	result = 0;
	switch (((NU8)(c))) {
	case 0:
	{
		result = copyString(((NimStringDesc*) &TMP1579));
	}
	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*) &TMP1580));
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*) &TMP1576));
		result = LOC8;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, makenimstring_211484)(NimStringDesc* s) {
	NimStringDesc* result;
	NI i_211500;
	NI HEX3Atmp_211501;
	NI res_211503;
	result = 0;
	result = copyString(((NimStringDesc*) &TMP1578));
	i_211500 = 0;
	HEX3Atmp_211501 = 0;
	HEX3Atmp_211501 = (NI32)(s->Sup.len - 1);
	res_211503 = 0;
	while (1) {
		NimStringDesc* LOC2;
		if (!(res_211503 <= HEX3Atmp_211501)) goto LA1;
		i_211500 = res_211503;
		LOC2 = 0;
		LOC2 = tonimchar_211470(s->data[i_211500]);
		result = resizeString(result, LOC2->Sup.len + 0);
appendString(result, LOC2);
		res_211503 += 1;
	} LA1: ;
	result = addChar(result, 34);
	return result;
}

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

N_NIMCALL(ttype188837*, skip_212243)(ttype188837* t) {
	ttype188837* 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 LA1;
		result = lastson_189193(result);
	} LA1: ;
	return result;
}

static N_INLINE(NI, len_189264)(tnode188803* 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_212237)(tnode188803* n, NI64 x, NI size) {
	NimStringDesc* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		ttype188837* LOC5;
		tnode188803* enumfields;
		ttype188837* LOC8;
		tnode188803* e_212295;
		NI i_212364;
		NI HEX3Atmp_212366;
		NI LOC9;
		NI res_212368;
		LOC3 = 0;
		LOC3 = !(((*n).Typ == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = skip_212243((*n).Typ);
		LOC3 = ((*LOC5).Kind == ((NU8) 1) || (*LOC5).Kind == ((NU8) 14));
		LA4: ;
		if (!LOC3) goto LA6;
		LOC8 = 0;
		LOC8 = skip_212243((*n).Typ);
		enumfields = (*LOC8).N;
		e_212295 = 0;
		i_212364 = 0;
		HEX3Atmp_212366 = 0;
		LOC9 = 0;
		LOC9 = len_189264(enumfields);
		HEX3Atmp_212366 = LOC9 - 1;
		res_212368 = 0;
		while (1) {
			if (!(res_212368 <= HEX3Atmp_212366)) goto LA10;
			i_212364 = res_212368;
			e_212295 = (*enumfields).kindU.S6.Sons->data[i_212364];
			{
				if (!(((NI64) ((*(*e_212295).kindU.S4.Sym).Position)) == x)) goto LA13;
				result = copyString((*(*(*e_212295).kindU.S4.Sym).Name).S);
				goto BeforeRet;
			}
			LA13: ;
			res_212368 += 1;
		} LA10: ;
	}
	LA6: ;
	{
		NimStringDesc* LOC19;
		NimStringDesc* LOC20;
		if (!(((*n).Flags &(1<<((((NU8) 1))&15)))!=0)) goto LA17;
		LOC19 = 0;
		LOC20 = 0;
		LOC20 = nsuToBin(x, (NI32)(size * 8));
		LOC19 = rawNewString(LOC20->Sup.len + 2);
appendString(LOC19, ((NimStringDesc*) &TMP1585));
appendString(LOC19, LOC20);
		result = LOC19;
	}
	goto LA15;
	LA17: ;
	{
		NimStringDesc* LOC24;
		NimStringDesc* LOC25;
		if (!(((*n).Flags &(1<<((((NU8) 2))&15)))!=0)) goto LA22;
		LOC24 = 0;
		LOC25 = 0;
		LOC25 = nsuToOct(x, (NI32)(size * 3));
		LOC24 = rawNewString(LOC25->Sup.len + 2);
appendString(LOC24, ((NimStringDesc*) &TMP1586));
appendString(LOC24, LOC25);
		result = LOC24;
	}
	goto LA15;
	LA22: ;
	{
		NimStringDesc* LOC29;
		NimStringDesc* LOC30;
		if (!(((*n).Flags &(1<<((((NU8) 3))&15)))!=0)) goto LA27;
		LOC29 = 0;
		LOC30 = 0;
		LOC30 = nsuToHex(x, (NI32)(size * 2));
		LOC29 = rawNewString(LOC30->Sup.len + 2);
appendString(LOC29, ((NimStringDesc*) &TMP1587));
appendString(LOC29, LOC30);
		result = LOC29;
	}
	goto LA15;
	LA27: ;
	{
		result = nimInt64ToStr(x);
	}
	LA15: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NimStringDesc*, ulitaux_212372)(tnode188803* 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*) &TMP1585));
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*) &TMP1586));
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*) &TMP1587));
appendString(LOC15, LOC16);
		result = LOC15;
	}
	goto LA1;
	LA13: ;
	{
		result = nimInt64ToStr(x);
	}
	LA1: ;
	return result;
}

N_NIMCALL(NimStringDesc*, atom_212419)(tnode188803* n) {
	NimStringDesc* result;
	NF32 f;
	result = 0;
	f = 0;
	switch ((*n).Kind) {
	case ((NU8) 1):
	{
		result = copyString(((NimStringDesc*) &TMP1576));
	}
	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_211484((*n).kindU.S3.Strval);
	}
	break;
	case ((NU8) 21):
	{
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		LOC6 = 0;
		LOC7 = 0;
		LOC7 = nsuReplaceStr((*n).kindU.S3.Strval, ((NimStringDesc*) &TMP1578), ((NimStringDesc*) &TMP1583));
		LOC6 = rawNewString(LOC7->Sup.len + 3);
appendString(LOC6, ((NimStringDesc*) &TMP1582));
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*) &TMP1584));
appendString(LOC9, (*n).kindU.S3.Strval);
appendString(LOC9, ((NimStringDesc*) &TMP1584));
		result = LOC9;
	}
	break;
	case ((NU8) 5):
	{
		NimStringDesc* LOC11;
		NimStringDesc* LOC12;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = tonimchar_211470(((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_212237(n, (*n).kindU.S1.Intval, 4);
	}
	break;
	case ((NU8) 7):
	{
		NimStringDesc* LOC15;
		NimStringDesc* LOC16;
		LOC15 = 0;
		LOC16 = 0;
		LOC16 = litaux_212237(n, (*n).kindU.S1.Intval, 1);
		LOC15 = rawNewString(LOC16->Sup.len + 3);
appendString(LOC15, LOC16);
appendString(LOC15, ((NimStringDesc*) &TMP1588));
		result = LOC15;
	}
	break;
	case ((NU8) 8):
	{
		NimStringDesc* LOC18;
		NimStringDesc* LOC19;
		LOC18 = 0;
		LOC19 = 0;
		LOC19 = litaux_212237(n, (*n).kindU.S1.Intval, 2);
		LOC18 = rawNewString(LOC19->Sup.len + 4);
appendString(LOC18, LOC19);
appendString(LOC18, ((NimStringDesc*) &TMP1589));
		result = LOC18;
	}
	break;
	case ((NU8) 9):
	{
		NimStringDesc* LOC21;
		NimStringDesc* LOC22;
		LOC21 = 0;
		LOC22 = 0;
		LOC22 = litaux_212237(n, (*n).kindU.S1.Intval, 4);
		LOC21 = rawNewString(LOC22->Sup.len + 4);
appendString(LOC21, LOC22);
appendString(LOC21, ((NimStringDesc*) &TMP1590));
		result = LOC21;
	}
	break;
	case ((NU8) 10):
	{
		NimStringDesc* LOC24;
		NimStringDesc* LOC25;
		LOC24 = 0;
		LOC25 = 0;
		LOC25 = litaux_212237(n, (*n).kindU.S1.Intval, 8);
		LOC24 = rawNewString(LOC25->Sup.len + 4);
appendString(LOC24, LOC25);
appendString(LOC24, ((NimStringDesc*) &TMP1591));
		result = LOC24;
	}
	break;
	case ((NU8) 11):
	{
		NimStringDesc* LOC27;
		NimStringDesc* LOC28;
		LOC27 = 0;
		LOC28 = 0;
		LOC28 = ulitaux_212372(n, (*n).kindU.S1.Intval, 4);
		LOC27 = rawNewString(LOC28->Sup.len + 2);
appendString(LOC27, LOC28);
appendString(LOC27, ((NimStringDesc*) &TMP1592));
		result = LOC27;
	}
	break;
	case ((NU8) 12):
	{
		NimStringDesc* LOC30;
		NimStringDesc* LOC31;
		LOC30 = 0;
		LOC31 = 0;
		LOC31 = ulitaux_212372(n, (*n).kindU.S1.Intval, 1);
		LOC30 = rawNewString(LOC31->Sup.len + 3);
appendString(LOC30, LOC31);
appendString(LOC30, ((NimStringDesc*) &TMP1593));
		result = LOC30;
	}
	break;
	case ((NU8) 13):
	{
		NimStringDesc* LOC33;
		NimStringDesc* LOC34;
		LOC33 = 0;
		LOC34 = 0;
		LOC34 = ulitaux_212372(n, (*n).kindU.S1.Intval, 2);
		LOC33 = rawNewString(LOC34->Sup.len + 4);
appendString(LOC33, LOC34);
appendString(LOC33, ((NimStringDesc*) &TMP1594));
		result = LOC33;
	}
	break;
	case ((NU8) 14):
	{
		NimStringDesc* LOC36;
		NimStringDesc* LOC37;
		LOC36 = 0;
		LOC37 = 0;
		LOC37 = ulitaux_212372(n, (*n).kindU.S1.Intval, 4);
		LOC36 = rawNewString(LOC37->Sup.len + 4);
appendString(LOC36, LOC37);
appendString(LOC36, ((NimStringDesc*) &TMP1595));
		result = LOC36;
	}
	break;
	case ((NU8) 15):
	{
		NimStringDesc* LOC39;
		NimStringDesc* LOC40;
		LOC39 = 0;
		LOC40 = 0;
		LOC40 = ulitaux_212372(n, (*n).kindU.S1.Intval, 8);
		LOC39 = rawNewString(LOC40->Sup.len + 4);
appendString(LOC39, LOC40);
appendString(LOC39, ((NimStringDesc*) &TMP1596));
		result = LOC39;
	}
	break;
	case ((NU8) 16):
	{
		{
			if (!(((*n).Flags & 14) == 0)) goto LA44;
			result = nimFloatToStr((*n).kindU.S2.Floatval);
		}
		goto LA42;
		LA44: ;
		{
			result = litaux_212237(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*) &TMP1597));
			result = LOC52;
		}
		goto LA48;
		LA50: ;
		{
			NimStringDesc* LOC55;
			NimStringDesc* LOC56;
			f = ((NF32) ((*n).kindU.S2.Floatval));
			LOC55 = 0;
			LOC56 = 0;
			LOC56 = litaux_212237(n, ((NI64) ((*((NI32*) (&f))))), 4);
			LOC55 = rawNewString(LOC56->Sup.len + 4);
appendString(LOC55, LOC56);
appendString(LOC55, ((NimStringDesc*) &TMP1597));
			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*) &TMP1598));
			result = LOC62;
		}
		goto LA58;
		LA60: ;
		{
			NimStringDesc* LOC65;
			NimStringDesc* LOC66;
			LOC65 = 0;
			LOC66 = 0;
			LOC66 = litaux_212237(n, (*((NI64*) (&(*n).kindU.S2.Floatval))), 8);
			LOC65 = rawNewString(LOC66->Sup.len + 4);
appendString(LOC65, LOC66);
appendString(LOC65, ((NimStringDesc*) &TMP1598));
			result = LOC65;
		}
		LA58: ;
	}
	break;
	case ((NU8) 23):
	{
		result = copyString(((NimStringDesc*) &TMP1599));
	}
	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*) &TMP1600));
		}
		LA69: ;
	}
	break;
	default:
	{
		NimStringDesc* LOC77;
		LOC77 = 0;
		LOC77 = rawNewString(reprEnum((*n).Kind, (&NTI188023))->Sup.len + 13);
appendString(LOC77, ((NimStringDesc*) &TMP1601));
appendString(LOC77, reprEnum((*n).Kind, (&NTI188023)));
		internalerror_165606(LOC77);
		result = copyString(((NimStringDesc*) &TMP1576));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, gident_215527)(tsrcgen211021* g, tnode188803* 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_212419(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 = (68 < (*(*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) 110);
	}
	LA9: ;
	put_211436(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_211436(g, ((NU8) 71), LOC32);
	}
	LA30: ;
	BeforeRet: ;
}

static N_INLINE(NI, sonslen_189181)(tnode188803* 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_211843)(NimStringDesc* s) {
	NIM_BOOL result;
	NI i_211859;
	NI HEX3Atmp_211860;
	NI res_211862;
	result = 0;
	i_211859 = 0;
	HEX3Atmp_211860 = 0;
	HEX3Atmp_211860 = (NI32)(s->Sup.len - 1);
	res_211862 = 0;
	while (1) {
		if (!(res_211862 <= HEX3Atmp_211860)) goto LA1;
		i_211859 = res_211862;
		switch (((NU8)(s->data[i_211859]))) {
		case 13:
		case 10:
		{
			result = NIM_TRUE;
			goto BeforeRet;
		}
		break;
		default:
		{
		}
		break;
		}
		res_211862 += 1;
	} LA1: ;
	result = NIM_FALSE;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NI, lcomma_212894)(tnode188803* n, NI start, NI theend) {
	NI result;
	NI i_213013;
	NI HEX3Atmp_213077;
	NI LOC1;
	NI res_213079;
	result = 0;
	result = 0;
	i_213013 = 0;
	HEX3Atmp_213077 = 0;
	LOC1 = 0;
	LOC1 = sonslen_189181(n);
	HEX3Atmp_213077 = (NI32)(LOC1 + theend);
	res_213079 = start;
	while (1) {
		NI LOC3;
		if (!(res_213079 <= HEX3Atmp_213077)) goto LA2;
		i_213013 = res_213079;
		LOC3 = 0;
		LOC3 = lsub_212233((*n).kindU.S6.Sons->data[i_213013]);
		result += LOC3;
		result += 2;
		res_213079 += 1;
	} LA2: ;
	{
		if (!(0 < result)) goto LA6;
		result -= 2;
	}
	LA6: ;
	return result;
}

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

N_NIMCALL(NI, lsons_213084)(tnode188803* n, NI start, NI theend) {
	NI result;
	NI i_213213;
	NI HEX3Atmp_213244;
	NI LOC1;
	NI res_213246;
	result = 0;
	result = 0;
	i_213213 = 0;
	HEX3Atmp_213244 = 0;
	LOC1 = 0;
	LOC1 = sonslen_189181(n);
	HEX3Atmp_213244 = (NI32)(LOC1 + theend);
	res_213246 = start;
	while (1) {
		NI LOC3;
		if (!(res_213246 <= HEX3Atmp_213244)) goto LA2;
		i_213213 = res_213246;
		LOC3 = 0;
		LOC3 = lsub_212233((*n).kindU.S6.Sons->data[i_213213]);
		result += LOC3;
		res_213246 += 1;
	} LA2: ;
	return result;
}

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

N_NIMCALL(NI, lsub_212233)(tnode188803* 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_211843((*n).kindU.S3.Strval);
			if (!LOC13) goto LA14;
			result = 81;
		}
		goto LA11;
		LA14: ;
		{
			NimStringDesc* LOC17;
			LOC17 = 0;
			LOC17 = atom_212419(n);
			result = LOC17->Sup.len;
		}
		LA11: ;
	}
	break;
	case ((NU8) 2) ... ((NU8) 21):
	case ((NU8) 23) ... ((NU8) 23):
	{
		NimStringDesc* LOC19;
		LOC19 = 0;
		LOC19 = atom_212419(n);
		result = LOC19->Sup.len;
	}
	break;
	case ((NU8) 27):
	case ((NU8) 42):
	case ((NU8) 40):
	case ((NU8) 60):
	case ((NU8) 151):
	case ((NU8) 38):
	{
		NI LOC21;
		NI LOC22;
		LOC21 = 0;
		LOC21 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		LOC22 = 0;
		LOC22 = lcomma_212894(n, 1, -1);
		result = (NI32)((NI32)(LOC21 + LOC22) + 2);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 32):
	{
		tnode188803* LOC24;
		LOC24 = 0;
		LOC24 = HEX5BHEX5D_189694(n, 1);
		result = lsub_212233(LOC24);
	}
	break;
	case ((NU8) 61):
	{
		NI LOC26;
		NI LOC27;
		LOC26 = 0;
		LOC26 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		LOC27 = 0;
		LOC27 = lsub_212233((*n).kindU.S6.Sons->data[1]);
		result = (NI32)((NI32)(LOC26 + LOC27) + 8);
	}
	break;
	case ((NU8) 63):
	{
		NI LOC29;
		LOC29 = 0;
		LOC29 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC29 + 6);
	}
	break;
	case ((NU8) 62):
	{
		NI LOC31;
		LOC31 = 0;
		LOC31 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC31 + 7);
	}
	break;
	case ((NU8) 64):
	case ((NU8) 65):
	{
		result = lsub_212233((*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 26):
	{
		NI LOC34;
		NI LOC35;
		LOC34 = 0;
		LOC34 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		LOC35 = 0;
		LOC35 = lcomma_212894(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_213084(n, 0, -1);
		result = (NI32)(LOC37 + 3);
	}
	break;
	case ((NU8) 37):
	case ((NU8) 39):
	case ((NU8) 41):
	case ((NU8) 153):
	{
		NI LOC39;
		LOC39 = 0;
		LOC39 = lcomma_212894(n, 0, -1);
		result = (NI32)(LOC39 + 2);
	}
	break;
	case ((NU8) 150):
	{
		result = lcomma_212894(n, 0, -1);
	}
	break;
	case ((NU8) 54):
	{
		{
			NI LOC44;
			NI LOC47;
			LOC44 = 0;
			LOC44 = len_189264(n);
			if (!(0 < LOC44)) goto LA45;
			LOC47 = 0;
			LOC47 = lcomma_212894(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_213084(n, 0, -1);
		LOC51 = 0;
		LOC51 = sonslen_189181(n);
		result = (NI32)((NI32)((NI32)(LOC50 + 2) + LOC51) - 1);
	}
	break;
	case ((NU8) 133):
	{
		NI LOC53;
		LOC53 = 0;
		LOC53 = lcomma_212894(n, 0, -1);
		result = (NI32)(LOC53 + 7);
	}
	break;
	case ((NU8) 45):
	{
		NI LOC55;
		LOC55 = 0;
		LOC55 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC55 + 1);
	}
	break;
	case ((NU8) 55):
	{
		NI LOC57;
		LOC57 = 0;
		LOC57 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC57 + 5);
	}
	break;
	case ((NU8) 121):
	{
		NI LOC59;
		LOC59 = 0;
		LOC59 = lcomma_212894(n, 0, -1);
		result = (NI32)(LOC59 + 5);
	}
	break;
	case ((NU8) 122):
	{
		NI LOC61;
		LOC61 = 0;
		LOC61 = lcomma_212894(n, 0, -1);
		result = (NI32)(LOC61 + 6);
	}
	break;
	case ((NU8) 46):
	{
		result = lsub_212233((*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 51):
	{
		NI LOC64;
		LOC64 = 0;
		LOC64 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC64 + 8);
	}
	break;
	case ((NU8) 52):
	{
		NI LOC66;
		LOC66 = 0;
		LOC66 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC66 + 6);
	}
	break;
	case ((NU8) 102):
	case ((NU8) 35):
	{
		NI l;
		result = lcomma_212894(n, 0, -3);
		l = sonslen_189181(n);
		{
			NI LOC72;
			if (!!(((*(*n).kindU.S6.Sons->data[(NI32)(l - 2)]).Kind == ((NU8) 1)))) goto LA70;
			LOC72 = 0;
			LOC72 = lsub_212233((*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_212233((*n).kindU.S6.Sons->data[(NI32)(l - 1)]);
			result = (NI32)((NI32)(result + LOC77) + 3);
		}
		LA75: ;
	}
	break;
	case ((NU8) 36):
	{
		NI LOC79;
		tnode188803* LOC80;
		NI LOC81;
		LOC79 = 0;
		LOC79 = lcomma_212894(n, 0, -3);
		LOC80 = 0;
		LOC80 = lastson_189189(n);
		LOC81 = 0;
		LOC81 = lsub_212233(LOC80);
		result = (NI32)((NI32)(LOC79 + 5) + LOC81);
	}
	break;
	case ((NU8) 68):
	{
		NI LOC83;
		LOC83 = 0;
		LOC83 = lcomma_212894(n, 0, -1);
		result = (NI32)(12 + LOC83);
	}
	break;
	case ((NU8) 69):
	{
		NI LOC85;
		LOC85 = 0;
		LOC85 = lcomma_212894(n, 0, -1);
		result = (NI32)(13 + LOC85);
	}
	break;
	case ((NU8) 70):
	{
		NI LOC87;
		LOC87 = 0;
		LOC87 = lcomma_212894(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_189181(n);
			if (!(1 <= LOC91)) goto LA92;
			LOC94 = 0;
			LOC94 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			result = (NI32)(result + LOC94);
		}
		LA92: ;
		LOC95 = 0;
		LOC95 = lcomma_212894(n, 1, -1);
		result = (NI32)(result + LOC95);
	}
	break;
	case ((NU8) 34):
	{
		NI LOC97;
		LOC97 = 0;
		LOC97 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC97 + 2);
	}
	break;
	case ((NU8) 29):
	{
		NI LOC99;
		LOC99 = 0;
		LOC99 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC99 + 2);
	}
	break;
	case ((NU8) 30):
	{
		NI LOC101;
		NI LOC102;
		LOC101 = 0;
		LOC101 = lsons_213084(n, 0, -1);
		LOC102 = 0;
		{
			NIM_BOOL LOC105;
			NI LOC106;
			LOC105 = 0;
			LOC106 = 0;
			LOC106 = len_189264(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_213084(n, 0, -1);
	}
	break;
	case ((NU8) 28):
	{
		result = lsons_213084(n, 0, -1);
	}
	break;
	case ((NU8) 43):
	{
		NI LOC114;
		NI LOC115;
		LOC114 = 0;
		LOC114 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		LOC115 = 0;
		LOC115 = lcomma_212894(n, 1, -1);
		result = (NI32)(LOC114 + LOC115);
	}
	break;
	case ((NU8) 44):
	{
		NI LOC117;
		LOC117 = 0;
		LOC117 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC117 + 2);
	}
	break;
	case ((NU8) 47):
	{
		NI LOC119;
		LOC119 = 0;
		LOC119 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC119 + 2);
	}
	break;
	case ((NU8) 53):
	{
		NI LOC121;
		LOC121 = 0;
		LOC121 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC121 + 2);
	}
	break;
	case ((NU8) 48):
	{
		NI LOC123;
		NI LOC124;
		NI LOC125;
		LOC123 = 0;
		LOC123 = lsub_212233((*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
		LOC124 = 0;
		LOC124 = lsub_212233((*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		LOC125 = 0;
		LOC125 = lsons_213084(n, 1, -1);
		result = (NI32)((NI32)((NI32)(LOC123 + LOC124) + LOC125) + 5);
	}
	break;
	case ((NU8) 49):
	{
		NI LOC127;
		LOC127 = 0;
		LOC127 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC127 + 8);
	}
	break;
	case ((NU8) 50):
	{
		NI LOC129;
		LOC129 = 0;
		LOC129 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC129 + 7);
	}
	break;
	case ((NU8) 131):
	{
		NI LOC131;
		LOC131 = 0;
		LOC131 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC131 + 5);
	}
	break;
	case ((NU8) 139):
	{
		NI LOC133;
		LOC133 = 0;
		{
			NI LOC136;
			NI LOC139;
			LOC136 = 0;
			LOC136 = len_189264(n);
			if (!(0 < LOC136)) goto LA137;
			LOC139 = 0;
			LOC139 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			LOC133 = (NI32)(LOC139 + 1);
		}
		goto LA134;
		LA137: ;
		{
			LOC133 = 0;
		}
		LA134: ;
		result = (NI32)(LOC133 + 3);
	}
	break;
	case ((NU8) 140):
	{
		NI LOC142;
		LOC142 = 0;
		{
			NI LOC145;
			NI LOC148;
			LOC145 = 0;
			LOC145 = len_189264(n);
			if (!(0 < LOC145)) goto LA146;
			LOC148 = 0;
			LOC148 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			LOC142 = (NI32)(LOC148 + 1);
		}
		goto LA143;
		LA146: ;
		{
			LOC142 = 0;
		}
		LA143: ;
		result = (NI32)(LOC142 + 3);
	}
	break;
	case ((NU8) 141):
	{
		NI LOC151;
		LOC151 = 0;
		{
			NI LOC154;
			NI LOC157;
			LOC154 = 0;
			LOC154 = len_189264(n);
			if (!(0 < LOC154)) goto LA155;
			LOC157 = 0;
			LOC157 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			LOC151 = (NI32)(LOC157 + 1);
		}
		goto LA152;
		LA155: ;
		{
			LOC151 = 0;
		}
		LA152: ;
		result = (NI32)(LOC151 + 3);
	}
	break;
	case ((NU8) 144):
	{
		NI LOC160;
		LOC160 = 0;
		{
			NI LOC163;
			NI LOC166;
			LOC163 = 0;
			LOC163 = len_189264(n);
			if (!(0 < LOC163)) goto LA164;
			LOC166 = 0;
			LOC166 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			LOC160 = (NI32)(LOC166 + 1);
		}
		goto LA161;
		LA164: ;
		{
			LOC160 = 0;
		}
		LA161: ;
		result = (NI32)(8 + LOC160);
		{
			NI LOC170;
			NI LOC173;
			tnode188803* LOC180;
			NI LOC181;
			LOC170 = 0;
			LOC170 = len_189264(n);
			if (!(1 < LOC170)) goto LA171;
			LOC173 = 0;
			{
				tnode188803* LOC176;
				LOC176 = 0;
				LOC176 = HEX5BHEX5D_189694(n, 1);
				if (!((*LOC176).Kind == ((NU8) 129))) goto LA177;
				LOC173 = 6;
			}
			goto LA174;
			LA177: ;
			{
				LOC173 = 9;
			}
			LA174: ;
			result += LOC173;
			LOC180 = 0;
			LOC180 = HEX5BHEX5D_189694(n, 1);
			LOC181 = 0;
			LOC181 = lcomma_212894(LOC180, 0, -1);
			result += LOC181;
		}
		LA171: ;
	}
	break;
	case ((NU8) 135):
	{
		NI LOC183;
		LOC183 = 0;
		{
			NI LOC186;
			LOC186 = 0;
			LOC186 = len_189264(n);
			if (!(0 < LOC186)) goto LA187;
			LOC183 = lsub_212233((*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_213084(n, 0, -1);
		result = (NI32)(LOC191 + 3);
	}
	break;
	case ((NU8) 77):
	{
		NI LOC193;
		LOC193 = 0;
		LOC193 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC193 + 3);
	}
	break;
	case ((NU8) 145):
	{
		NI LOC195;
		LOC195 = 0;
		LOC195 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC195 + 5);
	}
	break;
	case ((NU8) 146):
	{
		NI LOC197;
		LOC197 = 0;
		LOC197 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC197 + 9);
	}
	break;
	case ((NU8) 147):
	{
		NI LOC199;
		LOC199 = 0;
		LOC199 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC199 + 7);
	}
	break;
	case ((NU8) 148):
	{
		{
			NI LOC203;
			NI LOC206;
			NI LOC207;
			LOC203 = 0;
			LOC203 = sonslen_189181(n);
			if (!(0 < LOC203)) goto LA204;
			LOC206 = 0;
			LOC206 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			LOC207 = 0;
			LOC207 = lcomma_212894(n, 1, -1);
			result = (NI32)((NI32)(LOC206 + LOC207) + 5);
		}
		goto LA201;
		LA204: ;
		{
			result = 4;
		}
		LA201: ;
	}
	break;
	case ((NU8) 149):
	{
		NI LOC210;
		LOC210 = 0;
		LOC210 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC210 + 3);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		{
			NI LOC214;
			LOC214 = 0;
			LOC214 = sonslen_189181(n);
			if (!(1 < LOC214)) goto LA215;
			result = 81;
		}
		goto LA212;
		LA215: ;
		{
			NI LOC218;
			LOC218 = 0;
			LOC218 = lsons_213084(n, 0, -1);
			result = (NI32)(LOC218 + 4);
		}
		LA212: ;
	}
	break;
	case ((NU8) 108):
	{
		NI LOC220;
		LOC220 = 0;
		LOC220 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC220 + 7);
	}
	break;
	case ((NU8) 107):
	{
		NI LOC222;
		LOC222 = 0;
		LOC222 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC222 + 6);
	}
	break;
	case ((NU8) 104):
	{
		NI LOC224;
		LOC224 = 0;
		LOC224 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC224 + 6);
	}
	break;
	case ((NU8) 113):
	{
		NI LOC226;
		LOC226 = 0;
		LOC226 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC226 + 8);
	}
	break;
	case ((NU8) 109):
	{
		NI LOC228;
		LOC228 = 0;
		LOC228 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC228 + 6);
	}
	break;
	case ((NU8) 110):
	{
		NI LOC230;
		LOC230 = 0;
		LOC230 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC230 + 9);
	}
	break;
	case ((NU8) 90):
	{
		NI LOC232;
		LOC232 = 0;
		LOC232 = lcomma_212894(n, 0, -1);
		result = (NI32)(LOC232 + 4);
	}
	break;
	case ((NU8) 124):
	{
		result = (*n).Comment->Sup.len;
	}
	break;
	case ((NU8) 85):
	{
		NI LOC235;
		tnode188803* LOC236;
		NI LOC237;
		LOC235 = 0;
		LOC235 = lcomma_212894(n, 0, -2);
		LOC236 = 0;
		LOC236 = lastson_189189(n);
		LOC237 = 0;
		LOC237 = lsub_212233(LOC236);
		result = (NI32)((NI32)(LOC235 + LOC237) + 5);
	}
	break;
	case ((NU8) 78):
	{
		NI LOC239;
		NI LOC240;
		LOC239 = 0;
		LOC239 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		LOC240 = 0;
		LOC240 = lsub_212233((*n).kindU.S6.Sons->data[1]);
		result = (NI32)((NI32)(LOC239 + 4) + LOC240);
	}
	break;
	case ((NU8) 86):
	{
		NI LOC242;
		LOC242 = 0;
		LOC242 = lsons_213084(n, 0, -1);
		result = (NI32)(LOC242 + 7);
	}
	break;
	case ((NU8) 88):
	{
		NI LOC244;
		LOC244 = 0;
		LOC244 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC244 + 6);
	}
	break;
	case ((NU8) 106):
	{
		NI LOC246;
		LOC246 = 0;
		LOC246 = lsub_212233((*n).kindU.S6.Sons->data[0]);
		result = (NI32)(LOC246 + 9);
	}
	break;
	case ((NU8) 75):
	{
		NI LOC248;
		LOC248 = 0;
		LOC248 = lcomma_212894(n, 0, -1);
		result = (NI32)(LOC248 + 2);
	}
	break;
	case ((NU8) 76):
	{
		NI LOC250;
		LOC250 = 0;
		LOC250 = lcomma_212894(n, 1, -1);
		result = (NI32)(LOC250 + 2);
		{
			NI LOC255;
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA253;
			LOC255 = 0;
			LOC255 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			result = (NI32)((NI32)(result + LOC255) + 2);
		}
		LA253: ;
	}
	break;
	case ((NU8) 87):
	{
		NI LOC257;
		tnode188803* LOC258;
		NI LOC259;
		LOC257 = 0;
		LOC257 = lcomma_212894(n, 0, -2);
		LOC258 = 0;
		LOC258 = lastson_189189(n);
		LOC259 = 0;
		LOC259 = lsub_212233(LOC258);
		result = (NI32)((NI32)(LOC257 + LOC259) + 9);
	}
	break;
	default:
	{
		result = 81;
	}
	break;
	}
	BeforeRet: ;
	return result;
}

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

N_NIMCALL(void, putwithspace_214069)(tsrcgen211021* g, NU8 kind, NimStringDesc* s) {
	put_211436(g, kind, s);
	put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
}

N_NIMCALL(NIM_BOOL, hascom_214031)(tnode188803* 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_214047;
		NI HEX3Atmp_214062;
		NI LOC7;
		NI res_214064;
		i_214047 = 0;
		HEX3Atmp_214062 = 0;
		LOC7 = 0;
		LOC7 = sonslen_189181(n);
		HEX3Atmp_214062 = (NI32)(LOC7 - 1);
		res_214064 = 0;
		while (1) {
			if (!(res_214064 <= HEX3Atmp_214062)) goto LA8;
			i_214047 = res_214064;
			{
				NIM_BOOL LOC11;
				LOC11 = 0;
				LOC11 = hascom_214031((*n).kindU.S6.Sons->data[i_214047]);
				if (!LOC11) goto LA12;
				result = NIM_TRUE;
				goto BeforeRet;
			}
			LA12: ;
			res_214064 += 1;
		} LA8: ;
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, shouldrendercomment_211959)(tsrcgen211021* g, tnode188803* 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*) &TMP1605));
		LA8: ;
		LOC5 = LOC7;
		LA6: ;
		result = LOC5;
	}
	LA3: ;
	return result;
}

N_NIMCALL(NI, maxlinelength_211672)(NimStringDesc* s) {
	NI result;
	NI i;
	NI linelen;
	result = 0;
	result = 0;
	i = 0;
	linelen = 0;
	while (1) {
		switch (((NU8)(s->data[i]))) {
		case 0:
		{
			goto LA1;
		}
		break;
		case 13:
		{
			i += 1;
			{
				if (!((NU8)(s->data[i]) == (NU8)(10))) goto LA6;
				i += 1;
			}
			LA6: ;
			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;
		}
	} LA1: ;
	return result;
}

N_NIMCALL(void, optnl_211254)(tsrcgen211021* g) {
	optnl_211247(g, (*g).Indent);
}

N_NIMCALL(void, putcomment_211508)(tsrcgen211021* g, NimStringDesc* s) {
	NI i;
	NI comindent;
	NIM_BOOL iscode;
	NIM_BOOL LOC1;
	NI ind;
	NimStringDesc* com;
	i = 0;
	comindent = 1;
	LOC1 = 0;
	LOC1 = (2 <= s->Sup.len);
	if (!(LOC1)) goto LA2;
	LOC1 = !(((NU8)(s->data[1]) == (NU8)(32)));
	LA2: ;
	iscode = LOC1;
	ind = (*g).Linelen;
	com = copyString(((NimStringDesc*) &TMP1576));
	while (1) {
		switch (((NU8)(s->data[i]))) {
		case 0:
		{
			goto LA3;
		}
		break;
		case 13:
		{
			put_211436(g, ((NU8) 111), com);
			com = copyString(((NimStringDesc*) &TMP1576));
			i += 1;
			{
				if (!((NU8)(s->data[i]) == (NU8)(10))) goto LA8;
				i += 1;
			}
			LA8: ;
			optnl_211247(g, ind);
		}
		break;
		case 10:
		{
			put_211436(g, ((NU8) 111), com);
			com = copyString(((NimStringDesc*) &TMP1576));
			i += 1;
			optnl_211247(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 LA12;
				com = addChar(com, s->data[i]);
				i += 1;
				comindent += 1;
			} LA12: ;
		}
		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 LA15;
				j += 1;
			} LA15: ;
			{
				NIM_BOOL LOC18;
				NimStringDesc* LOC22;
				NimStringDesc* LOC23;
				LOC18 = 0;
				LOC18 = !(iscode);
				if (!(LOC18)) goto LA19;
				LOC18 = (80 < (NI32)((*g).Linelen + (NI32)(j - i)));
				LA19: ;
				if (!LOC18) goto LA20;
				put_211436(g, ((NU8) 111), com);
				optnl_211247(g, ind);
				LOC22 = 0;
				LOC23 = 0;
				LOC23 = nsuRepeatChar(comindent, 32);
				LOC22 = rawNewString(LOC23->Sup.len + 1);
appendChar(LOC22, 35);
appendString(LOC22, LOC23);
				com = LOC22;
			}
			LA20: ;
			while (1) {
				if (!((NU8)(32) < (NU8)(s->data[i]))) goto LA24;
				com = addChar(com, s->data[i]);
				i += 1;
			} LA24: ;
		}
		break;
		}
	} LA3: ;
	put_211436(g, ((NU8) 111), com);
	optnl_211254(g);
}

N_NIMCALL(void, gcom_211993)(tsrcgen211021* g, tnode188803* n) {
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = shouldrendercomment_211959(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_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		}
		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_211672((*n).Comment);
			{
				NimStringDesc* LOC26;
				if (!((NI32)(ml + 30) <= 80)) goto LA24;
				LOC26 = 0;
				LOC26 = nsuRepeatChar((NI32)(30 - (*g).Linelen), 32);
				put_211436(g, ((NU8) 113), LOC26);
			}
			LA24: ;
		}
		LA20: ;
		putcomment_211508(g, (*n).Comment);
	}
	LA4: ;
}

N_NIMCALL(void, popallcoms_211902)(tsrcgen211021* g) {
	(*g).Comstack = (tnodeseq188797*) setLengthSeq(&((*g).Comstack)->Sup, sizeof(tnode188803*), 0);
}

N_NIMCALL(void, gcoms_212209)(tsrcgen211021* g) {
	NI i_212225;
	NI HEX3Atmp_212226;
	NI res_212228;
	i_212225 = 0;
	HEX3Atmp_212226 = 0;
	HEX3Atmp_212226 = ((*g).Comstack->Sup.len-1);
	res_212228 = 0;
	while (1) {
		if (!(res_212228 <= HEX3Atmp_212226)) goto LA1;
		i_212225 = res_212228;
		gcom_211993(g, (*g).Comstack->data[i_212225]);
		res_212228 += 1;
	} LA1: ;
	popallcoms_211902(g);
}

N_NIMCALL(void, gcommaaux_214077)(tsrcgen211021* g, tnode188803* n, NI ind, NI start, NI theend, NU8 separator) {
	NI i_214098;
	NI HEX3Atmp_214177;
	NI LOC1;
	NI res_214179;
	i_214098 = 0;
	HEX3Atmp_214177 = 0;
	LOC1 = 0;
	LOC1 = sonslen_189181(n);
	HEX3Atmp_214177 = (NI32)(LOC1 + theend);
	res_214179 = start;
	while (1) {
		NIM_BOOL c;
		NI LOC3;
		NI sublen;
		NI LOC4;
		NI oldlen;
		if (!(res_214179 <= HEX3Atmp_214177)) goto LA2;
		i_214098 = res_214179;
		LOC3 = 0;
		LOC3 = sonslen_189181(n);
		c = (i_214098 < (NI32)(LOC3 + theend));
		LOC4 = 0;
		LOC4 = lsub_212233((*n).kindU.S6.Sons->data[i_214098]);
		sublen = (NI32)(LOC4 + ((NI) (c)));
		{
			NIM_BOOL LOC7;
			NIM_BOOL LOC8;
			LOC7 = 0;
			LOC8 = 0;
			LOC8 = fits_213980(&(*g), sublen);
			LOC7 = !(LOC8);
			if (!(LOC7)) goto LA9;
			LOC7 = ((NI32)(ind + sublen) < 80);
			LA9: ;
			if (!LOC7) goto LA10;
			optnl_211247(g, ind);
		}
		LA10: ;
		oldlen = (*g).Tokens->Sup.len;
		gsub_214021(g, (*n).kindU.S6.Sons->data[i_214098]);
		{
			if (!c) goto LA14;
			{
				if (!(oldlen < (*g).Tokens->Sup.len)) goto LA18;
				putwithspace_214069(g, separator, toktypetostr_180164[(separator)- 0]);
			}
			LA18: ;
			{
				NIM_BOOL LOC22;
				LOC22 = 0;
				LOC22 = hascom_214031((*n).kindU.S6.Sons->data[i_214098]);
				if (!LOC22) goto LA23;
				gcoms_212209(g);
				optnl_211247(g, ind);
			}
			LA23: ;
		}
		LA14: ;
		res_214179 += 1;
	} LA2: ;
}

N_NIMCALL(void, gcomma_214210)(tsrcgen211021* g, tnode188803* n, NI start, NI theend) {
	NI ind;
	ind = (*g).Linelen;
	{
		if (!(40 < ind)) goto LA3;
		ind = (NI32)((*g).Indent + 4);
	}
	LA3: ;
	gcommaaux_214077(g, n, ind, start, theend, ((NU8) 103));
}

N_NIMCALL(void, gcomma_214184)(tsrcgen211021* g, tnode188803* n, tcontext213992 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_214077(g, n, ind, start, theend, ((NU8) 103));
}

N_NIMCALL(void, gsemicolon_214221)(tsrcgen211021* g, tnode188803* n, NI start, NI theend) {
	NI ind;
	ind = (*g).Linelen;
	{
		if (!(40 < ind)) goto LA3;
		ind = (NI32)((*g).Indent + 4);
	}
	LA3: ;
	gcommaaux_214077(g, n, ind, start, theend, ((NU8) 104));
}

N_NIMCALL(void, doparamsaux_215717)(tsrcgen211021* g, tnode188803* params) {
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = len_189264(params);
		if (!(1 < LOC3)) goto LA4;
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gsemicolon_214221(g, params, 1, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	LA4: ;
	{
		if (!!(((*(*params).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA8;
		putwithspace_214069(g, ((NU8) 110), ((NimStringDesc*) &TMP1624));
		gsub_214021(g, (*params).kindU.S6.Sons->data[0]);
	}
	LA8: ;
}

N_NIMCALL(void, gsons_214232)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NI start, NI theend) {
	NI i_214252;
	NI HEX3Atmp_214267;
	NI LOC1;
	NI res_214269;
	i_214252 = 0;
	HEX3Atmp_214267 = 0;
	LOC1 = 0;
	LOC1 = sonslen_189181(n);
	HEX3Atmp_214267 = (NI32)(LOC1 + theend);
	res_214269 = start;
	while (1) {
		if (!(res_214269 <= HEX3Atmp_214267)) goto LA2;
		i_214252 = res_214269;
		gsub_214014(g, (*n).kindU.S6.Sons->data[i_214252], c);
		res_214269 += 1;
	} LA2: ;
}

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

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

N_NIMCALL(void, putnl_211234)(tsrcgen211021* g, NI indent) {
	{
		if (!(0 <= (*g).Pendingnl)) goto LA3;
		addpendingnl_211228(g);
	}
	goto LA1;
	LA3: ;
	{
		addtok_211192(g, ((NU8) 113), ((NimStringDesc*) &TMP1577));
	}
	LA1: ;
	(*g).Pendingnl = indent;
	(*g).Linelen = indent;
}

N_NIMCALL(void, putnl_211241)(tsrcgen211021* g) {
	putnl_211234(g, (*g).Indent);
}

N_NIMCALL(void, gstmts_214357)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NIM_BOOL doindent) {
	{
		if (!((*n).Kind == ((NU8) 1))) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	{
		NI i_214399;
		NI HEX3Atmp_214482;
		NI LOC13;
		NI res_214484;
		if (!((*n).Kind == ((NU8) 114) || (*n).Kind == ((NU8) 125) || (*n).Kind == ((NU8) 127))) goto LA7;
		{
			if (!doindent) goto LA11;
			indentnl_211260(g);
		}
		LA11: ;
		i_214399 = 0;
		HEX3Atmp_214482 = 0;
		LOC13 = 0;
		LOC13 = sonslen_189181(n);
		HEX3Atmp_214482 = (NI32)(LOC13 - 1);
		res_214484 = 0;
		while (1) {
			if (!(res_214484 <= HEX3Atmp_214482)) goto LA14;
			i_214399 = res_214484;
			optnl_211254(g);
			{
				if (!((*(*n).kindU.S6.Sons->data[i_214399]).Kind == ((NU8) 114) || (*(*n).kindU.S6.Sons->data[i_214399]).Kind == ((NU8) 125) || (*(*n).kindU.S6.Sons->data[i_214399]).Kind == ((NU8) 127))) goto LA17;
				gstmts_214357(g, (*n).kindU.S6.Sons->data[i_214399], c, NIM_FALSE);
			}
			goto LA15;
			LA17: ;
			{
				gsub_214021(g, (*n).kindU.S6.Sons->data[i_214399]);
			}
			LA15: ;
			gcoms_212209(g);
			res_214484 += 1;
		} LA14: ;
		{
			if (!doindent) goto LA22;
			dedent_211282(g);
		}
		LA22: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!((c.Field1 &(1<<((((NU8) 0))&7)))!=0)) goto LA27;
			indentnl_211260(g);
		}
		LA27: ;
		gsub_214021(g, n);
		gcoms_212209(g);
		optnl_211254(g);
		{
			if (!((c.Field1 &(1<<((((NU8) 0))&7)))!=0)) goto LA31;
			dedent_211282(g);
		}
		LA31: ;
	}
	LA5: ;
	BeforeRet: ;
}

N_NIMCALL(NIM_BOOL, longmode_214316)(tnode188803* n, NI start, NI theend) {
	NIM_BOOL result;
	result = 0;
	result = !(((*n).Comment == NIM_NIL));
	{
		NI i_214334;
		NI HEX3Atmp_214350;
		NI LOC5;
		NI res_214352;
		if (!!(result)) goto LA3;
		i_214334 = 0;
		HEX3Atmp_214350 = 0;
		LOC5 = 0;
		LOC5 = sonslen_189181(n);
		HEX3Atmp_214350 = (NI32)(LOC5 + theend);
		res_214352 = start;
		while (1) {
			if (!(res_214352 <= HEX3Atmp_214350)) goto LA6;
			i_214334 = res_214352;
			{
				NI LOC9;
				LOC9 = 0;
				LOC9 = lsub_212233((*n).kindU.S6.Sons->data[i_214334]);
				if (!(80 < LOC9)) goto LA10;
				result = NIM_TRUE;
				goto LA6;
			}
			LA10: ;
			res_214352 += 1;
		} LA6: ;
	}
	LA3: ;
	return result;
}

N_NIMCALL(void, gif_214489)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	NI length;
	NI i_214610;
	NI HEX3Atmp_214626;
	NI res_214628;
	memset((void*)&c, 0, sizeof(c));
	gsub_214021(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
	initcontext_214006(&c);
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*(*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_212209(g);
	gstmts_214357(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1], c, NIM_TRUE);
	length = sonslen_189181(n);
	i_214610 = 0;
	HEX3Atmp_214626 = 0;
	HEX3Atmp_214626 = (NI32)(length - 1);
	res_214628 = 1;
	while (1) {
		if (!(res_214628 <= HEX3Atmp_214626)) goto LA8;
		i_214610 = res_214628;
		optnl_211254(g);
		gsub_214014(g, (*n).kindU.S6.Sons->data[i_214610], c);
		res_214628 += 1;
	} LA8: ;
}

N_NIMCALL(void, gwhile_214633)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	putwithspace_214069(g, ((NU8) 66), ((NimStringDesc*) &TMP1644));
	gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	initcontext_214006(&c);
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*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_212209(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
}

N_NIMCALL(void, gpragmablock_214757)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	initcontext_214006(&c);
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*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_212209(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
}

N_NIMCALL(void, gcase_215020)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	NI length;
	NI last;
	memset((void*)&c, 0, sizeof(c));
	initcontext_214006(&c);
	length = sonslen_189181(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_214316(n, 0, last);
		if (!LOC8) goto LA9;
		c.Field1 |=((NI8)(1)<<((((NU8) 0))%(sizeof(NI8)*8)));
	}
	LA9: ;
	putwithspace_214069(g, ((NU8) 11), ((NimStringDesc*) &TMP1645));
	gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	gcoms_212209(g);
	optnl_211254(g);
	gsons_214232(g, n, c, 1, last);
	{
		if (!(last == -2)) goto LA13;
		initcontext_214006(&c);
		{
			NIM_BOOL LOC17;
			LOC17 = 0;
			LOC17 = longmode_214316((*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_214014(g, (*n).kindU.S6.Sons->data[(NI32)(length - 1)], c);
	}
	LA13: ;
}

N_NIMCALL(void, gtry_214826)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	put_211436(g, ((NU8) 60), ((NimStringDesc*) &TMP1646));
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	initcontext_214006(&c);
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*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_212209(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
	gsons_214232(g, n, c, 1, -1);
}

N_NIMCALL(void, gfor_214881)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	NI length;
	memset((void*)&c, 0, sizeof(c));
	length = sonslen_189181(n);
	putwithspace_214069(g, ((NU8) 27), ((NimStringDesc*) &TMP1647));
	initcontext_214006(&c);
	{
		NIM_BOOL LOC3;
		NI LOC5;
		NI LOC6;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*n).kindU.S6.Sons->data[(NI32)(length - 1)]);
		LOC6 = 0;
		LOC6 = lsub_212233((*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_214184(g, n, c, 0, -3);
	put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
	putwithspace_214069(g, ((NU8) 32), ((NimStringDesc*) &TMP1648));
	gsub_214014(g, (*n).kindU.S6.Sons->data[(NI32)(length - 2)], c);
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	gcoms_212209(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[(NI32)(length - 1)], c, NIM_TRUE);
}

N_NIMCALL(void, gblock_215345)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	initcontext_214006(&c);
	{
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		putwithspace_214069(g, ((NU8) 9), ((NimStringDesc*) &TMP1649));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	goto LA1;
	LA3: ;
	{
		put_211436(g, ((NU8) 9), ((NimStringDesc*) &TMP1649));
	}
	LA1: ;
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	{
		NIM_BOOL LOC8;
		NI LOC10;
		LOC8 = 0;
		LOC8 = longmode_214316(n, 0, -1);
		if (LOC8) goto LA9;
		LOC10 = 0;
		LOC10 = lsub_212233((*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_212209(g);
	indentnl_211260(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[1], c, NIM_TRUE);
	dedent_211282(g);
}

N_NIMCALL(void, gstaticstmt_215437)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	putwithspace_214069(g, ((NU8) 58), ((NimStringDesc*) &TMP1611));
	putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
	initcontext_214006(&c);
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*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_212209(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
}

N_NIMCALL(void, gasm_215492)(tsrcgen211021* g, tnode188803* n) {
	putwithspace_214069(g, ((NU8) 6), ((NimStringDesc*) &TMP1650));
	gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	gcoms_212209(g);
	gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
}

N_NIMCALL(NIM_BOOL, iskeyword_211077)(NimStringDesc* s) {
	NIM_BOOL result;
	tident167019* i;
	result = 0;
	i = getident_167456(s);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (1 <= (*i).Sup.Id);
		if (!(LOC3)) goto LA4;
		LOC3 = ((*i).Sup.Id <= 68);
		LA4: ;
		if (!LOC3) goto LA5;
		result = NIM_TRUE;
	}
	LA5: ;
	return result;
}

N_NIMCALL(NimStringDesc*, renderdefinitionname_211118)(tsym188833* 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_211077(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_214702)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	put_211436(g, ((NU8) 95), ((NimStringDesc*) &TMP1612));
	initcontext_214006(&c);
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = 0;
		LOC3 = longmode_214316(n, 0, -1);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = lsub_212233((*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_212209(g);
	gstmts_214357(g, (*n).kindU.S6.Sons->data[0], c, NIM_TRUE);
	put_211436(g, ((NU8) 96), ((NimStringDesc*) &TMP1613));
}

N_NIMCALL(void, gproc_215130)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 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_211118((*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym, NIM_FALSE);
		put_211436(g, ((NU8) 2), LOC5);
	}
	goto LA1;
	LA3: ;
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	LA1: ;
	{
		if (!!(((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 1)))) goto LA9;
		gpattern_214702(g, (*n).kindU.S6.Sons->data[1]);
	}
	LA9: ;
	oldcheckanon = (*g).Checkanon;
	(*g).Checkanon = NIM_TRUE;
	gsub_214021(g, (*n).kindU.S6.Sons->data[2]);
	(*g).Checkanon = oldcheckanon;
	gsub_214021(g, (*n).kindU.S6.Sons->data[3]);
	gsub_214021(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_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
			putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
			indentnl_211260(g);
			gcoms_212209(g);
			dedent_211282(g);
			initcontext_214006(&c);
			gstmts_214357(g, (*n).kindU.S6.Sons->data[6], c, NIM_TRUE);
			putnl_211241(g);
		}
		goto LA15;
		LA17: ;
		{
			indentnl_211260(g);
			gcoms_212209(g);
			dedent_211282(g);
		}
		LA15: ;
	}
	LA13: ;
}

N_NIMCALL(void, gsection_214274)(tsrcgen211021* g, tnode188803* n, tcontext213992 c, NU8 kind, NimStringDesc* k) {
	NI i_214294;
	NI HEX3Atmp_214309;
	NI LOC6;
	NI res_214311;
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = sonslen_189181(n);
		if (!(LOC3 == 0)) goto LA4;
		goto BeforeRet;
	}
	LA4: ;
	putwithspace_214069(g, kind, k);
	gcoms_212209(g);
	indentnl_211260(g);
	i_214294 = 0;
	HEX3Atmp_214309 = 0;
	LOC6 = 0;
	LOC6 = sonslen_189181(n);
	HEX3Atmp_214309 = (NI32)(LOC6 - 1);
	res_214311 = 0;
	while (1) {
		if (!(res_214311 <= HEX3Atmp_214309)) goto LA7;
		i_214294 = res_214311;
		optnl_211254(g);
		gsub_214014(g, (*n).kindU.S6.Sons->data[i_214294], c);
		gcoms_212209(g);
		res_214311 += 1;
	} LA7: ;
	dedent_211282(g);
	BeforeRet: ;
}

N_NIMCALL(void, gtypeclassty_215335)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	tnode188803* LOC1;
	tnode188803* LOC2;
	tnode188803* LOC3;
	tnode188803* LOC4;
	memset((void*)&c, 0, sizeof(c));
	initcontext_214006(&c);
	putwithspace_214069(g, ((NU8) 29), ((NimStringDesc*) &TMP1679));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_189694(n, 0);
	gsons_214232(g, LOC1, c, 0, -1);
	LOC2 = 0;
	LOC2 = HEX5BHEX5D_189694(n, 1);
	gsub_214021(g, LOC2);
	LOC3 = 0;
	LOC3 = HEX5BHEX5D_189694(n, 2);
	gsub_214021(g, LOC3);
	gcoms_212209(g);
	indentnl_211260(g);
	gcoms_212209(g);
	LOC4 = 0;
	LOC4 = HEX5BHEX5D_189694(n, 3);
	gstmts_214357(g, LOC4, c, NIM_TRUE);
	dedent_211282(g);
}

N_NIMCALL(void, gsub_214014)(tsrcgen211021* g, tnode188803* n, tcontext213992 c_214019) {
	tcontext213992 a;
	{
		if (!n == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)&a, 0, sizeof(a));
	{
		if (!!(((*n).Comment == NIM_NIL))) goto LA7;
		pushcom_211867(g, n);
	}
	LA7: ;
	switch ((*n).Kind) {
	case ((NU8) 22):
	{
		putrawstr_211767(g, ((NU8) 87), (*n).kindU.S3.Strval);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 4):
	{
		NimStringDesc* LOC12;
		LOC12 = 0;
		LOC12 = atom_212419(n);
		put_211436(g, ((NU8) 0), LOC12);
	}
	break;
	case ((NU8) 3):
	case ((NU8) 2):
	{
		gident_215527(g, n);
	}
	break;
	case ((NU8) 6):
	{
		NimStringDesc* LOC15;
		LOC15 = 0;
		LOC15 = atom_212419(n);
		put_211436(g, ((NU8) 71), LOC15);
	}
	break;
	case ((NU8) 7):
	{
		NimStringDesc* LOC17;
		LOC17 = 0;
		LOC17 = atom_212419(n);
		put_211436(g, ((NU8) 72), LOC17);
	}
	break;
	case ((NU8) 8):
	{
		NimStringDesc* LOC19;
		LOC19 = 0;
		LOC19 = atom_212419(n);
		put_211436(g, ((NU8) 73), LOC19);
	}
	break;
	case ((NU8) 9):
	{
		NimStringDesc* LOC21;
		LOC21 = 0;
		LOC21 = atom_212419(n);
		put_211436(g, ((NU8) 74), LOC21);
	}
	break;
	case ((NU8) 10):
	{
		NimStringDesc* LOC23;
		LOC23 = 0;
		LOC23 = atom_212419(n);
		put_211436(g, ((NU8) 75), LOC23);
	}
	break;
	case ((NU8) 11):
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = atom_212419(n);
		put_211436(g, ((NU8) 76), LOC25);
	}
	break;
	case ((NU8) 12):
	{
		NimStringDesc* LOC27;
		LOC27 = 0;
		LOC27 = atom_212419(n);
		put_211436(g, ((NU8) 77), LOC27);
	}
	break;
	case ((NU8) 13):
	{
		NimStringDesc* LOC29;
		LOC29 = 0;
		LOC29 = atom_212419(n);
		put_211436(g, ((NU8) 78), LOC29);
	}
	break;
	case ((NU8) 14):
	{
		NimStringDesc* LOC31;
		LOC31 = 0;
		LOC31 = atom_212419(n);
		put_211436(g, ((NU8) 79), LOC31);
	}
	break;
	case ((NU8) 15):
	{
		NimStringDesc* LOC33;
		LOC33 = 0;
		LOC33 = atom_212419(n);
		put_211436(g, ((NU8) 80), LOC33);
	}
	break;
	case ((NU8) 16):
	{
		NimStringDesc* LOC35;
		LOC35 = 0;
		LOC35 = atom_212419(n);
		put_211436(g, ((NU8) 81), LOC35);
	}
	break;
	case ((NU8) 17):
	{
		NimStringDesc* LOC37;
		LOC37 = 0;
		LOC37 = atom_212419(n);
		put_211436(g, ((NU8) 82), LOC37);
	}
	break;
	case ((NU8) 18):
	{
		NimStringDesc* LOC39;
		LOC39 = 0;
		LOC39 = atom_212419(n);
		put_211436(g, ((NU8) 83), LOC39);
	}
	break;
	case ((NU8) 19):
	{
		NimStringDesc* LOC41;
		LOC41 = 0;
		LOC41 = atom_212419(n);
		put_211436(g, ((NU8) 84), LOC41);
	}
	break;
	case ((NU8) 20):
	{
		NimStringDesc* LOC43;
		LOC43 = 0;
		LOC43 = atom_212419(n);
		put_211436(g, ((NU8) 85), LOC43);
	}
	break;
	case ((NU8) 21):
	{
		NimStringDesc* LOC45;
		LOC45 = 0;
		LOC45 = atom_212419(n);
		put_211436(g, ((NU8) 86), LOC45);
	}
	break;
	case ((NU8) 5):
	{
		NimStringDesc* LOC47;
		LOC47 = 0;
		LOC47 = atom_212419(n);
		put_211436(g, ((NU8) 90), LOC47);
	}
	break;
	case ((NU8) 23):
	{
		NimStringDesc* LOC49;
		LOC49 = 0;
		LOC49 = atom_212419(n);
		put_211436(g, ((NU8) 44), LOC49);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 60):
	case ((NU8) 25):
	case ((NU8) 151):
	case ((NU8) 38):
	{
		{
			NI LOC53;
			LOC53 = 0;
			LOC53 = sonslen_189181(n);
			if (!(1 <= LOC53)) goto LA54;
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA54: ;
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214210(g, n, 1, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 28):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		{
			NimStringDesc* LOC61;
			tnode188803* LOC62;
			NimStringDesc* LOC63;
			if (!((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 21))) goto LA59;
			LOC61 = 0;
			LOC62 = 0;
			LOC62 = HEX5BHEX5D_189694(n, 1);
			LOC63 = 0;
			LOC63 = nsuReplaceStr((*LOC62).kindU.S3.Strval, ((NimStringDesc*) &TMP1578), ((NimStringDesc*) &TMP1583));
			LOC61 = rawNewString(LOC63->Sup.len + 2);
appendChar(LOC61, 34);
appendString(LOC61, LOC63);
appendChar(LOC61, 34);
			put_211436(g, ((NU8) 86), LOC61);
		}
		goto LA57;
		LA59: ;
		{
			gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		}
		LA57: ;
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 32):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 61):
	{
		put_211436(g, ((NU8) 12), ((NimStringDesc*) &TMP1607));
		put_211436(g, ((NU8) 93), ((NimStringDesc*) &TMP1608));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 94), ((NimStringDesc*) &TMP1609));
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 63):
	{
		put_211436(g, ((NU8) 3), ((NimStringDesc*) &TMP1610));
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 62):
	{
		put_211436(g, ((NU8) 58), ((NimStringDesc*) &TMP1611));
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 42):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 93), ((NimStringDesc*) &TMP1608));
		gcomma_214210(g, n, 1, -1);
		put_211436(g, ((NU8) 94), ((NimStringDesc*) &TMP1609));
	}
	break;
	case ((NU8) 40):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 95), ((NimStringDesc*) &TMP1612));
		gcomma_214210(g, n, 1, -1);
		put_211436(g, ((NU8) 96), ((NimStringDesc*) &TMP1613));
	}
	break;
	case ((NU8) 43):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		gcomma_214210(g, n, 1, -1);
	}
	break;
	case ((NU8) 26):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		gcomma_214210(g, n, 1, -1);
	}
	break;
	case ((NU8) 33):
	case ((NU8) 73):
	case ((NU8) 74):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 68):
	{
		put_211436(g, ((NU8) 2), ((NimStringDesc*) &TMP1615));
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214210(g, n, 0, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 69):
	{
		put_211436(g, ((NU8) 2), ((NimStringDesc*) &TMP1616));
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214210(g, n, 0, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 70):
	{
		put_211436(g, ((NU8) 2), ((NimStringDesc*) &TMP1617));
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214210(g, n, 0, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 66):
	case ((NU8) 67):
	case ((NU8) 71):
	case ((NU8) 72):
	{
		{
			NI LOC80;
			LOC80 = 0;
			LOC80 = sonslen_189181(n);
			if (!(1 <= LOC80)) goto LA81;
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA81: ;
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214210(g, n, 1, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 56):
	case ((NU8) 57):
	{
		NI i_216053;
		NI HEX3Atmp_217462;
		NI LOC84;
		NI res_217464;
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		i_216053 = 0;
		HEX3Atmp_217462 = 0;
		LOC84 = 0;
		LOC84 = sonslen_189181(n);
		HEX3Atmp_217462 = (NI32)(LOC84 - 1);
		res_217464 = 0;
		while (1) {
			if (!(res_217464 <= HEX3Atmp_217462)) goto LA85;
			i_216053 = res_217464;
			{
				if (!(0 < i_216053)) goto LA88;
				put_211436(g, ((NU8) 110), ((NimStringDesc*) &TMP1618));
			}
			LA88: ;
			gsub_214014(g, (*n).kindU.S6.Sons->data[i_216053], c_214019);
			res_217464 += 1;
		} LA85: ;
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 37):
	case ((NU8) 153):
	{
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214184(g, n, c_214019, 0, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 39):
	{
		put_211436(g, ((NU8) 95), ((NimStringDesc*) &TMP1612));
		gcomma_214184(g, n, c_214019, 0, -1);
		put_211436(g, ((NU8) 96), ((NimStringDesc*) &TMP1613));
	}
	break;
	case ((NU8) 150):
	{
		gcomma_214184(g, n, c_214019, 0, -1);
	}
	break;
	case ((NU8) 54):
	{
		put_211436(g, ((NU8) 95), ((NimStringDesc*) &TMP1612));
		{
			NI LOC96;
			LOC96 = 0;
			LOC96 = len_189264(n);
			if (!(0 < LOC96)) goto LA97;
			gcomma_214184(g, n, c_214019, 0, -1);
		}
		goto LA94;
		LA97: ;
		{
			put_211436(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		}
		LA94: ;
		put_211436(g, ((NU8) 96), ((NimStringDesc*) &TMP1613));
	}
	break;
	case ((NU8) 41):
	{
		put_211436(g, ((NU8) 93), ((NimStringDesc*) &TMP1608));
		gcomma_214184(g, n, c_214019, 0, -1);
		put_211436(g, ((NU8) 94), ((NimStringDesc*) &TMP1609));
	}
	break;
	case ((NU8) 45):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 108), ((NimStringDesc*) &TMP1620));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 55):
	{
		putwithspace_214069(g, ((NU8) 8), ((NimStringDesc*) &TMP1621));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 46):
	case ((NU8) 64):
	case ((NU8) 65):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 51):
	{
		putwithspace_214069(g, ((NU8) 38), ((NimStringDesc*) &TMP1622));
		gsub_214021(g, (*n).kindU.S6.Sons->data[3]);
		gsub_214021(g, (*n).kindU.S6.Sons->data[4]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
		gsub_214021(g, (*n).kindU.S6.Sons->data[6]);
	}
	break;
	case ((NU8) 52):
	{
		putwithspace_214069(g, ((NU8) 19), ((NimStringDesc*) &TMP1623));
		doparamsaux_215717(g, (*n).kindU.S6.Sons->data[3]);
		gsub_214021(g, (*n).kindU.S6.Sons->data[4]);
		put_211436(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gsub_214021(g, (*n).kindU.S6.Sons->data[6]);
	}
	break;
	case ((NU8) 102):
	case ((NU8) 35):
	{
		NI l;
		gcomma_214210(g, n, 0, -3);
		l = sonslen_189181(n);
		{
			if (!!(((*(*n).kindU.S6.Sons->data[(NI32)(l - 2)]).Kind == ((NU8) 1)))) goto LA109;
			putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
			gsub_214021(g, (*n).kindU.S6.Sons->data[(NI32)(l - 2)]);
		}
		LA109: ;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[(NI32)(l - 1)]).Kind == ((NU8) 1)))) goto LA113;
			put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
			putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
			gsub_214014(g, (*n).kindU.S6.Sons->data[(NI32)(l - 1)], c_214019);
		}
		LA113: ;
	}
	break;
	case ((NU8) 36):
	{
		tnode188803* LOC116;
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gcomma_214210(g, n, 0, -3);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
		LOC116 = 0;
		LOC116 = lastson_189189(n);
		gsub_214014(g, LOC116, c_214019);
	}
	break;
	case ((NU8) 34):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 29):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		{
			NI LOC121;
			NI LOC122;
			NIM_BOOL LOC123;
			LOC121 = 0;
			LOC121 = lsub_212233((*n).kindU.S6.Sons->data[2]);
			LOC122 = 0;
			LOC122 = lsub_212233((*n).kindU.S6.Sons->data[0]);
			LOC123 = 0;
			LOC123 = fits_213980(&(*g), (NI32)((NI32)(LOC121 + LOC122) + 1));
			if (!!(LOC123)) goto LA124;
			optnl_211247(g, (NI32)((*g).Indent + 4));
		}
		goto LA119;
		LA124: ;
		{
			put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		}
		LA119: ;
		gsub_214021(g, (*n).kindU.S6.Sons->data[2]);
	}
	break;
	case ((NU8) 30):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		{
			NI LOC130;
			LOC130 = 0;
			LOC130 = len_189264(n);
			if (!(1 < LOC130)) goto LA131;
			put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
			{
				if (!((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 29))) goto LA135;
				put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
				gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
				put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
			}
			goto LA133;
			LA135: ;
			{
				gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
			}
			LA133: ;
		}
		LA131: ;
	}
	break;
	case ((NU8) 31):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 44):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 109), ((NimStringDesc*) &TMP1625));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 47):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 110), ((NimStringDesc*) &TMP1626));
	}
	break;
	case ((NU8) 53):
	{
		NI i_216555;
		NI HEX3Atmp_217466;
		NI LOC147;
		NI res_217468;
		put_211436(g, ((NU8) 112), ((NimStringDesc*) &TMP1627));
		{
			NI LOC144;
			LOC144 = 0;
			LOC144 = len_189264(n);
			if (!(0 < LOC144)) goto LA145;
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA145: ;
		i_216555 = 0;
		HEX3Atmp_217466 = 0;
		LOC147 = 0;
		LOC147 = len_189264(n);
		HEX3Atmp_217466 = LOC147 - 1;
		res_217468 = 1;
		while (1) {
			if (!(res_217468 <= HEX3Atmp_217466)) goto LA148;
			i_216555 = res_217468;
			put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
			gsub_214021(g, (*n).kindU.S6.Sons->data[i_216555]);
			res_217468 += 1;
		} LA148: ;
		put_211436(g, ((NU8) 112), ((NimStringDesc*) &TMP1627));
	}
	break;
	case ((NU8) 48):
	{
		putwithspace_214069(g, ((NU8) 30), ((NimStringDesc*) &TMP1628));
		gsub_214021(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0]);
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gsub_214021(g, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[1]);
		gsons_214232(g, n, TMP1629, 1, -1);
	}
	break;
	case ((NU8) 49):
	{
		putwithspace_214069(g, ((NU8) 20), ((NimStringDesc*) &TMP1630));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 50):
	{
		put_211436(g, ((NU8) 21), ((NimStringDesc*) &TMP1631));
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 131):
	{
		putwithspace_214069(g, ((NU8) 62), ((NimStringDesc*) &TMP1632));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 139):
	{
		{
			NI LOC156;
			LOC156 = 0;
			LOC156 = sonslen_189181(n);
			if (!(0 < LOC156)) goto LA157;
			putwithspace_214069(g, ((NU8) 54), ((NimStringDesc*) &TMP1633));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA154;
		LA157: ;
		{
			put_211436(g, ((NU8) 54), ((NimStringDesc*) &TMP1633));
		}
		LA154: ;
	}
	break;
	case ((NU8) 140):
	{
		{
			NI LOC163;
			LOC163 = 0;
			LOC163 = sonslen_189181(n);
			if (!(0 < LOC163)) goto LA164;
			putwithspace_214069(g, ((NU8) 52), ((NimStringDesc*) &TMP1634));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA161;
		LA164: ;
		{
			put_211436(g, ((NU8) 52), ((NimStringDesc*) &TMP1634));
		}
		LA161: ;
	}
	break;
	case ((NU8) 141):
	{
		{
			NI LOC170;
			LOC170 = 0;
			LOC170 = sonslen_189181(n);
			if (!(0 < LOC170)) goto LA171;
			putwithspace_214069(g, ((NU8) 64), ((NimStringDesc*) &TMP1635));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA168;
		LA171: ;
		{
			put_211436(g, ((NU8) 64), ((NimStringDesc*) &TMP1635));
		}
		LA168: ;
	}
	break;
	case ((NU8) 144):
	{
		{
			NI LOC177;
			LOC177 = 0;
			LOC177 = len_189264(n);
			if (!(0 < LOC177)) goto LA178;
			putwithspace_214069(g, ((NU8) 17), ((NimStringDesc*) &TMP1636));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
			{
				NI LOC182;
				tnode188803* LOC191;
				LOC182 = 0;
				LOC182 = len_189264(n);
				if (!(1 < LOC182)) goto LA183;
				{
					tnode188803* LOC187;
					LOC187 = 0;
					LOC187 = HEX5BHEX5D_189694(n, 1);
					if (!((*LOC187).Kind == ((NU8) 129))) goto LA188;
					putwithspace_214069(g, ((NU8) 67), ((NimStringDesc*) &TMP1637));
				}
				goto LA185;
				LA188: ;
				{
					putwithspace_214069(g, ((NU8) 68), ((NimStringDesc*) &TMP1638));
				}
				LA185: ;
				LOC191 = 0;
				LOC191 = HEX5BHEX5D_189694(n, 1);
				gcomma_214210(g, LOC191, 0, -1);
			}
			LA183: ;
		}
		goto LA175;
		LA178: ;
		{
			put_211436(g, ((NU8) 17), ((NimStringDesc*) &TMP1636));
		}
		LA175: ;
	}
	break;
	case ((NU8) 103):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		{
			if (!!(((*(*n).kindU.S6.Sons->data[2]).Kind == ((NU8) 1)))) goto LA196;
			putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
			gsub_214021(g, (*n).kindU.S6.Sons->data[2]);
		}
		LA196: ;
	}
	break;
	case ((NU8) 132):
	{
		{
			NI LOC201;
			LOC201 = 0;
			LOC201 = sonslen_189181(n);
			if (!(0 < LOC201)) goto LA202;
			putwithspace_214069(g, ((NU8) 47), ((NimStringDesc*) &TMP1639));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
			gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
			gcoms_212209(g);
			gsub_214021(g, (*n).kindU.S6.Sons->data[2]);
		}
		goto LA199;
		LA202: ;
		{
			put_211436(g, ((NU8) 47), ((NimStringDesc*) &TMP1639));
		}
		LA199: ;
	}
	break;
	case ((NU8) 136):
	{
		NI i_216872;
		NI HEX3Atmp_217470;
		NI LOC206;
		NI res_217472;
		indentnl_211260(g);
		i_216872 = 0;
		HEX3Atmp_217470 = 0;
		LOC206 = 0;
		LOC206 = sonslen_189181(n);
		HEX3Atmp_217470 = (NI32)(LOC206 - 1);
		res_217472 = 0;
		while (1) {
			if (!(res_217472 <= HEX3Atmp_217470)) goto LA207;
			i_216872 = res_217472;
			optnl_211254(g);
			gsub_214014(g, (*n).kindU.S6.Sons->data[i_216872], c_214019);
			gcoms_212209(g);
			res_217472 += 1;
		} LA207: ;
		dedent_211282(g);
		putnl_211241(g);
	}
	break;
	case ((NU8) 77):
	{
		putwithspace_214069(g, ((NU8) 48), ((NimStringDesc*) &TMP1640));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 145):
	{
		{
			NI LOC212;
			LOC212 = 0;
			LOC212 = sonslen_189181(n);
			if (!(0 < LOC212)) goto LA213;
			putwithspace_214069(g, ((NU8) 51), ((NimStringDesc*) &TMP1622));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
			gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		}
		goto LA210;
		LA213: ;
		{
			put_211436(g, ((NU8) 51), ((NimStringDesc*) &TMP1622));
		}
		LA210: ;
	}
	break;
	case ((NU8) 146):
	{
		{
			NI LOC219;
			LOC219 = 0;
			LOC219 = sonslen_189181(n);
			if (!(0 < LOC219)) goto LA220;
			putwithspace_214069(g, ((NU8) 37), ((NimStringDesc*) &TMP1641));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
			gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
		}
		goto LA217;
		LA220: ;
		{
			put_211436(g, ((NU8) 37), ((NimStringDesc*) &TMP1641));
		}
		LA217: ;
	}
	break;
	case ((NU8) 135):
	{
		put_211436(g, ((NU8) 58), ((NimStringDesc*) &TMP1611));
		put_211436(g, ((NU8) 93), ((NimStringDesc*) &TMP1608));
		{
			NI LOC226;
			LOC226 = 0;
			LOC226 = len_189264(n);
			if (!(0 < LOC226)) goto LA227;
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA227: ;
		put_211436(g, ((NU8) 94), ((NimStringDesc*) &TMP1609));
	}
	break;
	case ((NU8) 148):
	{
		{
			NI LOC232;
			LOC232 = 0;
			LOC232 = sonslen_189181(n);
			if (!(0 < LOC232)) goto LA233;
			putwithspace_214069(g, ((NU8) 23), ((NimStringDesc*) &TMP1642));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
			gcoms_212209(g);
			indentnl_211260(g);
			gcommaaux_214077(g, n, (*g).Indent, 1, -1, ((NU8) 103));
			gcoms_212209(g);
			dedent_211282(g);
		}
		goto LA230;
		LA233: ;
		{
			put_211436(g, ((NU8) 23), ((NimStringDesc*) &TMP1642));
		}
		LA230: ;
	}
	break;
	case ((NU8) 149):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 107), ((NimStringDesc*) &TMP1614));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 114):
	case ((NU8) 125):
	case ((NU8) 127):
	{
		gstmts_214357(g, n, TMP1629, NIM_TRUE);
	}
	break;
	case ((NU8) 92):
	{
		putwithspace_214069(g, ((NU8) 30), ((NimStringDesc*) &TMP1628));
		gif_214489(g, n);
	}
	break;
	case ((NU8) 93):
	case ((NU8) 138):
	{
		putwithspace_214069(g, ((NU8) 65), ((NimStringDesc*) &TMP1643));
		gif_214489(g, n);
	}
	break;
	case ((NU8) 96):
	{
		gwhile_214633(g, n);
	}
	break;
	case ((NU8) 91):
	{
		gpragmablock_214757(g, n);
	}
	break;
	case ((NU8) 97):
	case ((NU8) 137):
	{
		gcase_215020(g, n);
	}
	break;
	case ((NU8) 105):
	{
		gtry_214826(g, n);
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		gfor_214881(g, n);
	}
	break;
	case ((NU8) 111):
	case ((NU8) 126):
	{
		gblock_215345(g, n);
	}
	break;
	case ((NU8) 112):
	{
		gstaticstmt_215437(g, n);
	}
	break;
	case ((NU8) 89):
	{
		gasm_215492(g, n);
	}
	break;
	case ((NU8) 79):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA251;
			putwithspace_214069(g, ((NU8) 51), ((NimStringDesc*) &TMP1622));
		}
		LA251: ;
		gproc_215130(g, n);
	}
	break;
	case ((NU8) 81):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA256;
			putwithspace_214069(g, ((NU8) 15), ((NimStringDesc*) &TMP1651));
		}
		LA256: ;
		gproc_215130(g, n);
	}
	break;
	case ((NU8) 80):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA261;
			putwithspace_214069(g, ((NU8) 41), ((NimStringDesc*) &TMP1652));
		}
		LA261: ;
		gproc_215130(g, n);
	}
	break;
	case ((NU8) 84):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA266;
			putwithspace_214069(g, ((NU8) 37), ((NimStringDesc*) &TMP1641));
		}
		LA266: ;
		gproc_215130(g, n);
	}
	break;
	case ((NU8) 82):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA271;
			putwithspace_214069(g, ((NU8) 40), ((NimStringDesc*) &TMP1653));
		}
		LA271: ;
		gproc_215130(g, n);
	}
	break;
	case ((NU8) 83):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 6))&7)))!=0))) goto LA276;
			putwithspace_214069(g, ((NU8) 59), ((NimStringDesc*) &TMP1654));
		}
		LA276: ;
		gproc_215130(g, n);
	}
	break;
	case ((NU8) 98):
	{
		gsection_214274(g, n, TMP1629, ((NU8) 62), ((NimStringDesc*) &TMP1632));
	}
	break;
	case ((NU8) 101):
	{
		initcontext_214006(&a);
		a.Field1 |=((NI8)(1)<<((((NU8) 2))%(sizeof(NI8)*8)));
		gsection_214274(g, n, a, ((NU8) 13), ((NimStringDesc*) &TMP1655));
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		NI l;
		l = sonslen_189181(n);
		{
			if (!(l == 0)) goto LA283;
			goto BeforeRet;
		}
		LA283: ;
		{
			if (!((*n).Kind == ((NU8) 99))) goto LA287;
			putwithspace_214069(g, ((NU8) 64), ((NimStringDesc*) &TMP1635));
		}
		goto LA285;
		LA287: ;
		{
			putwithspace_214069(g, ((NU8) 39), ((NimStringDesc*) &TMP1656));
		}
		LA285: ;
		{
			NI i_217135;
			NI HEX3Atmp_217474;
			NI res_217476;
			if (!(1 < l)) goto LA292;
			gcoms_212209(g);
			indentnl_211260(g);
			i_217135 = 0;
			HEX3Atmp_217474 = 0;
			HEX3Atmp_217474 = (NI32)(l - 1);
			res_217476 = 0;
			while (1) {
				if (!(res_217476 <= HEX3Atmp_217474)) goto LA294;
				i_217135 = res_217476;
				optnl_211254(g);
				gsub_214021(g, (*n).kindU.S6.Sons->data[i_217135]);
				gcoms_212209(g);
				res_217476 += 1;
			} LA294: ;
			dedent_211282(g);
		}
		goto LA290;
		LA292: ;
		{
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA290: ;
	}
	break;
	case ((NU8) 108):
	{
		putwithspace_214069(g, ((NU8) 55), ((NimStringDesc*) &TMP1657));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 107):
	{
		putwithspace_214069(g, ((NU8) 53), ((NimStringDesc*) &TMP1658));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 104):
	{
		putwithspace_214069(g, ((NU8) 70), ((NimStringDesc*) &TMP1659));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 113):
	{
		putwithspace_214069(g, ((NU8) 16), ((NimStringDesc*) &TMP1660));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 109):
	{
		putwithspace_214069(g, ((NU8) 10), ((NimStringDesc*) &TMP1661));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 110):
	{
		putwithspace_214069(g, ((NU8) 14), ((NimStringDesc*) &TMP1662));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
	}
	break;
	case ((NU8) 90):
	{
		{
			if (!!((((*g).Flags &(1<<((((NU8) 4))&7)))!=0))) goto LA305;
			put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
			put_211436(g, ((NU8) 99), ((NimStringDesc*) &TMP1663));
			gcomma_214184(g, n, TMP1629, 0, -1);
			put_211436(g, ((NU8) 100), ((NimStringDesc*) &TMP1664));
		}
		LA305: ;
	}
	break;
	case ((NU8) 115):
	case ((NU8) 117):
	{
		{
			if (!((*n).Kind == ((NU8) 115))) goto LA310;
			putwithspace_214069(g, ((NU8) 31), ((NimStringDesc*) &TMP1665));
		}
		goto LA308;
		LA310: ;
		{
			putwithspace_214069(g, ((NU8) 25), ((NimStringDesc*) &TMP1666));
		}
		LA308: ;
		gcoms_212209(g);
		indentnl_211260(g);
		gcommaaux_214077(g, n, (*g).Indent, 0, -1, ((NU8) 103));
		dedent_211282(g);
		putnl_211241(g);
	}
	break;
	case ((NU8) 116):
	case ((NU8) 118):
	{
		{
			if (!((*n).Kind == ((NU8) 116))) goto LA316;
			putwithspace_214069(g, ((NU8) 31), ((NimStringDesc*) &TMP1665));
		}
		goto LA314;
		LA316: ;
		{
			putwithspace_214069(g, ((NU8) 25), ((NimStringDesc*) &TMP1666));
		}
		LA314: ;
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 24), ((NimStringDesc*) &TMP1667));
		gcommaaux_214077(g, n, (*g).Indent, 1, -1, ((NU8) 103));
		gcoms_212209(g);
		putnl_211241(g);
	}
	break;
	case ((NU8) 119):
	{
		putwithspace_214069(g, ((NU8) 28), ((NimStringDesc*) &TMP1668));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 31), ((NimStringDesc*) &TMP1665));
		gcomma_214184(g, n, TMP1629, 1, -1);
		putnl_211241(g);
	}
	break;
	case ((NU8) 120):
	{
		putwithspace_214069(g, ((NU8) 33), ((NimStringDesc*) &TMP1669));
		gcoms_212209(g);
		indentnl_211260(g);
		gcommaaux_214077(g, n, (*g).Indent, 0, -1, ((NU8) 103));
		dedent_211282(g);
		putnl_211241(g);
	}
	break;
	case ((NU8) 124):
	{
		gcoms_212209(g);
		optnl_211254(g);
	}
	break;
	case ((NU8) 85):
	{
		tnode188803* LOC323;
		optnl_211254(g);
		putwithspace_214069(g, ((NU8) 48), ((NimStringDesc*) &TMP1640));
		gcomma_214184(g, n, c_214019, 0, -2);
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gcoms_212209(g);
		LOC323 = 0;
		LOC323 = lastson_189189(n);
		gstmts_214357(g, LOC323, c_214019, NIM_TRUE);
	}
	break;
	case ((NU8) 78):
	{
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 113), ((NimStringDesc*) &TMP1604));
		putwithspace_214069(g, ((NU8) 5), ((NimStringDesc*) &TMP1670));
		gsub_214021(g, (*n).kindU.S6.Sons->data[1]);
	}
	break;
	case ((NU8) 121):
	{
		putwithspace_214069(g, ((NU8) 8), ((NimStringDesc*) &TMP1621));
		gcomma_214184(g, n, c_214019, 0, -1);
	}
	break;
	case ((NU8) 122):
	{
		putwithspace_214069(g, ((NU8) 42), ((NimStringDesc*) &TMP1671));
		gcomma_214184(g, n, c_214019, 0, -1);
	}
	break;
	case ((NU8) 86):
	{
		optnl_211254(g);
		putwithspace_214069(g, ((NU8) 20), ((NimStringDesc*) &TMP1672));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gcoms_212209(g);
		gstmts_214357(g, (*n).kindU.S6.Sons->data[1], c_214019, NIM_TRUE);
	}
	break;
	case ((NU8) 88):
	{
		optnl_211254(g);
		put_211436(g, ((NU8) 21), ((NimStringDesc*) &TMP1673));
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gcoms_212209(g);
		gstmts_214357(g, (*n).kindU.S6.Sons->data[0], c_214019, NIM_TRUE);
	}
	break;
	case ((NU8) 106):
	{
		optnl_211254(g);
		put_211436(g, ((NU8) 26), ((NimStringDesc*) &TMP1674));
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gcoms_212209(g);
		gstmts_214357(g, (*n).kindU.S6.Sons->data[0], c_214019, NIM_TRUE);
	}
	break;
	case ((NU8) 87):
	{
		tnode188803* LOC331;
		optnl_211254(g);
		putwithspace_214069(g, ((NU8) 24), ((NimStringDesc*) &TMP1667));
		gcomma_214210(g, n, 0, -2);
		putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
		gcoms_212209(g);
		LOC331 = 0;
		LOC331 = lastson_189189(n);
		gstmts_214357(g, LOC331, c_214019, NIM_TRUE);
	}
	break;
	case ((NU8) 75):
	{
		put_211436(g, ((NU8) 93), ((NimStringDesc*) &TMP1608));
		gcomma_214210(g, n, 0, -1);
		put_211436(g, ((NU8) 94), ((NimStringDesc*) &TMP1609));
	}
	break;
	case ((NU8) 76):
	{
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1603));
		gsemicolon_214221(g, n, 1, -1);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA336;
			putwithspace_214069(g, ((NU8) 105), ((NimStringDesc*) &TMP1619));
			gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		}
		LA336: ;
	}
	break;
	case ((NU8) 133):
	{
		put_211436(g, ((NU8) 61), ((NimStringDesc*) &TMP1675));
		{
			NI LOC341;
			LOC341 = 0;
			LOC341 = sonslen_189181(n);
			if (!(0 < LOC341)) goto LA342;
			put_211436(g, ((NU8) 93), ((NimStringDesc*) &TMP1608));
			gcomma_214210(g, n, 0, -1);
			put_211436(g, ((NU8) 94), ((NimStringDesc*) &TMP1609));
		}
		LA342: ;
	}
	break;
	case ((NU8) 24):
	{
		put_211436(g, ((NU8) 91), ((NimStringDesc*) &TMP1676));
		gsub_214021(g, (*n).kindU.S6.Sons->data[0]);
		put_211436(g, ((NU8) 92), ((NimStringDesc*) &TMP1606));
	}
	break;
	case ((NU8) 154):
	case ((NU8) 155):
	{
		tcontext213992 c;
		NimStringDesc* LOC346;
		memset((void*)&c, 0, sizeof(c));
		initcontext_214006(&c);
		LOC346 = 0;
		{
			if (!((*n).Kind == ((NU8) 155))) goto LA349;
			LOC346 = copyString(((NimStringDesc*) &TMP1677));
		}
		goto LA347;
		LA349: ;
		{
			LOC346 = copyString(((NimStringDesc*) &TMP1678));
		}
		LA347: ;
		putwithspace_214069(g, ((NU8) 2), LOC346);
		gsons_214232(g, n, c, 0, -1);
	}
	break;
	case ((NU8) 134):
	{
		gtypeclassty_215335(g, n);
	}
	break;
	default:
	{
		NimStringDesc* LOC354;
		LOC354 = 0;
		LOC354 = rawNewString(reprEnum((*n).Kind, (&NTI188023))->Sup.len + 14);
appendString(LOC354, ((NimStringDesc*) &TMP1680));
appendString(LOC354, reprEnum((*n).Kind, (&NTI188023)));
appendChar(LOC354, 41);
		internalerror_165591((*n).Info, LOC354);
	}
	break;
	}
	BeforeRet: ;
}

N_NIMCALL(void, gsub_214021)(tsrcgen211021* g, tnode188803* n) {
	tcontext213992 c;
	memset((void*)&c, 0, sizeof(c));
	initcontext_214006(&c);
	gsub_214014(g, n, c);
}

N_NIMCALL(NimStringDesc*, rendertree_211051)(tnode188803* n, NU8 renderflags) {
	NimStringDesc* result;
	tsrcgen211021 g;
	result = 0;
	memset((void*)&g, 0, sizeof(g));
	initsrcgen_211145(&g, renderflags);
	gsub_214021(&g, n);
	result = copyString(g.Buf);
	return result;
}

N_NIMCALL(void, inittokrender_211058)(tsrcgen211021* r, tnode188803* n, NU8 renderflags) {
	initsrcgen_211145(r, renderflags);
	gsub_214021(r, n);
}

N_NIMCALL(void, getnexttok_211067)(tsrcgen211021* 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: ;
}
N_NOINLINE(void, rendererInit)(void) {
}

N_NOINLINE(void, rendererDatInit)(void) {
static TNimNode* TMP1574[2];
static TNimNode TMP795[3];
NTI211017.size = sizeof(trendertok211017);
NTI211017.kind = 18;
NTI211017.base = 0;
NTI211017.flags = 3;
TMP1574[0] = &TMP795[1];
TMP795[1].kind = 1;
TMP795[1].offset = offsetof(trendertok211017, Kind);
TMP795[1].typ = (&NTI180015);
TMP795[1].name = "kind";
TMP1574[1] = &TMP795[2];
TMP795[2].kind = 1;
TMP795[2].offset = offsetof(trendertok211017, Length);
TMP795[2].typ = (&NTI110);
TMP795[2].name = "length";
TMP795[0].len = 2; TMP795[0].kind = 2; TMP795[0].sons = &TMP1574[0];
NTI211017.node = &TMP795[0];
NTI211019.size = sizeof(trendertokseq211019*);
NTI211019.kind = 24;
NTI211019.base = (&NTI211017);
NTI211019.flags = 2;
NTI211019.marker = TMP1575;
}

