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

#include <string.h>

#include <setjmp.h>

#include <stdio.h>
typedef struct Tident167021 Tident167021;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Tcell46347 Tcell46347;
typedef struct TNimType TNimType;
typedef struct Tcellseq46363 Tcellseq46363;
typedef struct Tgcheap48216 Tgcheap48216;
typedef struct Tcellset46359 Tcellset46359;
typedef struct Tpagedesc46355 Tpagedesc46355;
typedef struct Tmemregion28210 Tmemregion28210;
typedef struct Tsmallchunk27440 Tsmallchunk27440;
typedef struct Tllchunk28204 Tllchunk28204;
typedef struct Tbigchunk27442 Tbigchunk27442;
typedef struct Tintset27417 Tintset27417;
typedef struct Ttrunk27413 Ttrunk27413;
typedef struct Tavlnode28208 Tavlnode28208;
typedef struct Tgcstat48214 Tgcstat48214;
typedef struct TNimNode TNimNode;
typedef struct Tlexer181185 Tlexer181185;
typedef struct Tbaselexer179024 Tbaselexer179024;
typedef struct TNimObject TNimObject;
typedef struct Tllstream178204 Tllstream178204;
typedef struct Tlineinfo163338 Tlineinfo163338;
typedef struct TY522942 TY522942;
typedef struct TY522945 TY522945;
typedef struct Ttoken181181 Ttoken181181;
typedef struct Tidobj167015 Tidobj167015;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct Valueerror3449 Valueerror3449;
typedef struct Tbasechunk27438 Tbasechunk27438;
typedef struct Tfreecell27430 Tfreecell27430;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Tcell46347  {
NI refcount;
TNimType* typ;
};
struct  Tcellseq46363  {
NI len;
NI cap;
Tcell46347** d;
};
struct  Tcellset46359  {
NI counter;
NI max;
Tpagedesc46355* head;
Tpagedesc46355** data;
};
typedef Tsmallchunk27440* TY28222[512];
typedef Ttrunk27413* Ttrunkbuckets27415[256];
struct  Tintset27417  {
Ttrunkbuckets27415 data;
};
struct  Tmemregion28210  {
NI minlargeobj;
NI maxlargeobj;
TY28222 freesmallchunks;
Tllchunk28204* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Tbigchunk27442* freechunkslist;
Tintset27417 chunkstarts;
Tavlnode28208* root;
Tavlnode28208* deleted;
Tavlnode28208* last;
Tavlnode28208* freeavlnodes;
};
struct  Tgcstat48214  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Tgcheap48216  {
void* stackbottom;
NI cyclethreshold;
Tcellseq46363 zct;
Tcellseq46363 decstack;
Tcellset46359 cycleroots;
Tcellseq46363 tempstack;
NI recgclock;
Tmemregion28210 region;
Tgcstat48214 stat;
};
typedef N_NIMCALL_PTR(void, TY3289) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3294) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3289 marker;
TY3294 deepcopy;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tbaselexer179024  {
  TNimObject Sup;
NI bufpos;
NCSTRING buf;
NI buflen;
Tllstream178204* stream;
NI linenumber;
NI sentinel;
NI linestart;
};
struct  Tlineinfo163338  {
NI16 line;
NI16 col;
NI32 fileindex;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (Tlineinfo163338 info, NU16 msg, NimStringDesc* arg, void* ClEnv);
void* ClEnv;
} Terrorhandler181183;
struct  Tlexer181185  {
  Tbaselexer179024 Sup;
NI32 fileidx;
NI indentahead;
NI currlineindent;
NIM_BOOL strongspaces;
Terrorhandler181183 errorhandler;
};
struct TY522942 {
void* Field0;
TY522945* Field1;
};
struct TY522945 {
char dummy;
};
struct  Ttoken181181  {
NU8 toktype;
NI indent;
Tident167021* ident;
NI64 inumber;
NF fnumber;
NU8 base;
NI8 strongspacea;
NI8 strongspaceb;
NimStringDesc* literal;
NI line;
NI col;
};
struct  Tllstream178204  {
  TNimObject Sup;
NU8 kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineoffset;
};
typedef N_CLOSURE_PTR(void, TMP1112) (Tlineinfo163338 info, NU16 msg, NimStringDesc* arg);
struct  Tidobj167015  {
  TNimObject Sup;
NI id;
};
struct  Tident167021  {
  Tidobj167015 Sup;
NimStringDesc* s;
Tident167021* next;
NI h;
};
typedef NU8 TY178407[32];
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e, void* ClEnv);
void* ClEnv;
} TY15609;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY15609 raiseAction;
};
struct  Valueerror3449  {
  Exception Sup;
};
typedef NimStringDesc* TY181170[119];
typedef NI TY27420[8];
struct  Tpagedesc46355  {
Tpagedesc46355* next;
NI key;
TY27420 bits;
};
struct  Tbasechunk27438  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Tsmallchunk27440  {
  Tbasechunk27438 Sup;
Tsmallchunk27440* next;
Tsmallchunk27440* prev;
Tfreecell27430* freelist;
NI free;
NI acc;
NF data;
};
struct  Tllchunk28204  {
NI size;
NI acc;
Tllchunk28204* next;
};
struct  Tbigchunk27442  {
  Tbasechunk27438 Sup;
Tbigchunk27442* next;
Tbigchunk27442* prev;
NI align;
NF data;
};
struct  Ttrunk27413  {
Ttrunk27413* next;
NI key;
TY27420 bits;
};
typedef Tavlnode28208* TY28214[2];
struct  Tavlnode28208  {
TY28214 link;
NI key;
NI upperbound;
NI level;
};
struct  Tfreecell27430  {
Tfreecell27430* next;
NI zerofield;
};
N_NIMCALL(Tident167021*, getident_167463)(NimStringDesc* identifier);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Tcell46347*, usrtocell_49846)(void* usr);
static N_INLINE(void, rtladdzct_51404)(Tcell46347* c);
N_NOINLINE(void, addzct_49817)(Tcellseq46363* s, Tcell46347* c);
N_NIMCALL(void, TMP1099)(void* p, NI op);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, openbaselexer_179035)(Tbaselexer179024* L, Tllstream178204* inputstream, NI buflen);
N_NIMCALL(void, filltoken_181380)(Ttoken181181* L);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(void, skip_184437)(Tlexer181185* L, Ttoken181181* tok);
N_NIMCALL(void, lexmessagepos_181507)(Tlexer181185* L, NU16 msg, NI pos, NimStringDesc* arg);
N_NIMCALL(Tlineinfo163338, newlineinfo_163866)(NI32 fileinfoidx, NI line, NI col);
N_NIMCALL(void, dispmessage_181463)(Tlexer181185* L, Tlineinfo163338 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, message_165188)(Tlineinfo163338 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NI, handlecrlf_182706)(Tlexer181185* L, NI pos);
N_NIMCALL(NI, getcolnumber_179059)(Tbaselexer179024* L, NI pos);
N_NIMCALL(NimStringDesc*, newstring_182659)(NCSTRING s, NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(void, addsourceline_165254)(NI32 fileidx, NimStringDesc* line);
N_NIMCALL(NI, handlecr_179066)(Tbaselexer179024* L, NI pos);
N_NIMCALL(NI, handlelf_179074)(Tbaselexer179024* L, NI pos);
N_NIMCALL(void, getsymbol_182961)(Tlexer181185* L, Ttoken181181* tok);
static N_INLINE(NI, HEX21HEX26_131025)(NI h, NI val);
N_NIMCALL(void, lexmessage_181483)(Tlexer181185* L, NU16 msg, NimStringDesc* arg);
N_NIMCALL(Tlineinfo163338, getlineinfo_181453)(Tlexer181185* L);
static N_INLINE(NI, HEX21HEX24_131054)(NI h);
N_NIMCALL(Tident167021*, getident_167248)(NCSTRING identifier, NI length, NI h);
N_NIMCALL(void, scancomment_183202)(Tlexer181185* L, Ttoken181181* tok);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
static N_INLINE(void, endoperator_183090)(Tlexer181185* L, Ttoken181181* tok, NI pos, NI hash);
N_NIMCALL(void, getoperator_183115)(Tlexer181185* L, Ttoken181181* tok);
N_NIMCALL(void, getstring_182764)(Tlexer181185* L, Ttoken181181* tok, NIM_BOOL rawmode);
N_NIMCALL(void, getescapedchar_182514)(Tlexer181185* L, Ttoken181181* tok);
N_NIMCALL(void, handlehexchar_182364)(Tlexer181185* L, NI* xi);
N_NIMCALL(NIM_BOOL, matchtwochars_181582)(Tlexer181185* L, NIM_CHAR first, TY178407 second);
N_NIMCALL(void, handledecchars_182458)(Tlexer181185* L, NI* xi);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, getcharacter_182911)(Tlexer181185* L, Ttoken181181* tok);
N_NIMCALL(void, getnumber_181747)(Tlexer181185* L, Ttoken181181* Result);
N_NIMCALL(void, matchunderscorechars_181521)(Tlexer181185* L, Ttoken181181* tok, TY178407 chars);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_NIMCALL(void, internalerror_165199)(Tlineinfo163338 info, NimStringDesc* errmsg);
N_NIMCALL(NIM_BOOL, isfloatliteral_181605)(NimStringDesc* s);
N_NIMCALL(NF, nsuParseFloat)(NimStringDesc* s);
N_NIMCALL(NI, unsafeparseuint_181659)(NimStringDesc* s, NI64* b, NI start);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(void, raiseException)(Exception* e, NCSTRING ename);
N_NIMCALL(NI64, nsuParseBiggestInt)(NimStringDesc* s);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, getCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_52222)(Tcell46347* c);
static N_INLINE(NIM_BOOL, canbecycleroot_49867)(Tcell46347* c);
static N_INLINE(void, rtladdcycleroot_50623)(Tcell46347* c);
N_NOINLINE(void, incl_47065)(Tcellset46359* s, Tcell46347* cell);
static N_INLINE(void, decref_51804)(Tcell46347* c);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(NIM_BOOL, iskeyword_181229)(NU8 kind);
N_NIMCALL(NimStringDesc*, toktostr_181323)(Ttoken181181* tok);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(void, internalerror_165218)(NimStringDesc* errmsg);
N_NIMCALL(void, closebaselexer_179045)(Tbaselexer179024* L);
N_NIMCALL(void, openlexer_181391)(Tlexer181185* lex, NI32 fileidx, Tllstream178204* inputstream);
N_NIMCALL(NI32, fileinfoidx_163853)(NimStringDesc* filename);
N_NIMCALL(void, msgwriteln_164536)(NimStringDesc* s);
STRING_LITERAL(TMP715, "", 0);
STRING_LITERAL(TMP1113, "use \'# [\' instead; \'#[\'", 23);
STRING_LITERAL(TMP1114, "_", 1);
STRING_LITERAL(TMP1115, "[]", 2);
STRING_LITERAL(TMP1116, "use \'## [\' instead; \'##[\'", 25);
STRING_LITERAL(TMP1117, "\012", 1);
static NIM_CONST TY178407 TMP1118 = {
0x00, 0x00, 0x00, 0x00, 0x72, 0xEC, 0x00, 0xF4,
0x01, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
;
static NIM_CONST TY178407 TMP1119 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP1120, " (\\", 3);
static NIM_CONST TY178407 TMP1121 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
0x7E, 0x00, 0x00, 0x01, 0x7E, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST TY178407 TMP1122 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
0x0C, 0x00, 0x00, 0x00, 0x0C, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP1123, "\'f", 2);
STRING_LITERAL(TMP1124, "\'i", 2);
STRING_LITERAL(TMP1125, "\'", 1);
STRING_LITERAL(TMP1127, "getNumber", 9);
STRING_LITERAL(TMP1128, "invalid integer: ", 17);
STRING_LITERAL(TMP1149, "tkInvalid", 9);
STRING_LITERAL(TMP1150, "[EOF]", 5);
STRING_LITERAL(TMP1151, "tkSymbol", 8);
STRING_LITERAL(TMP1152, "addr", 4);
STRING_LITERAL(TMP1153, "and", 3);
STRING_LITERAL(TMP1154, "as", 2);
STRING_LITERAL(TMP1155, "asm", 3);
STRING_LITERAL(TMP1156, "atomic", 6);
STRING_LITERAL(TMP1157, "bind", 4);
STRING_LITERAL(TMP1158, "block", 5);
STRING_LITERAL(TMP1159, "break", 5);
STRING_LITERAL(TMP1160, "case", 4);
STRING_LITERAL(TMP1161, "cast", 4);
STRING_LITERAL(TMP1162, "concept", 7);
STRING_LITERAL(TMP1163, "const", 5);
STRING_LITERAL(TMP1164, "continue", 8);
STRING_LITERAL(TMP1165, "converter", 9);
STRING_LITERAL(TMP1166, "defer", 5);
STRING_LITERAL(TMP1167, "discard", 7);
STRING_LITERAL(TMP1168, "distinct", 8);
STRING_LITERAL(TMP1169, "div", 3);
STRING_LITERAL(TMP1170, "do", 2);
STRING_LITERAL(TMP1171, "elif", 4);
STRING_LITERAL(TMP1172, "else", 4);
STRING_LITERAL(TMP1173, "end", 3);
STRING_LITERAL(TMP1174, "enum", 4);
STRING_LITERAL(TMP1175, "except", 6);
STRING_LITERAL(TMP1176, "export", 6);
STRING_LITERAL(TMP1177, "finally", 7);
STRING_LITERAL(TMP1178, "for", 3);
STRING_LITERAL(TMP1179, "from", 4);
STRING_LITERAL(TMP1180, "func", 4);
STRING_LITERAL(TMP1181, "generic", 7);
STRING_LITERAL(TMP1182, "if", 2);
STRING_LITERAL(TMP1183, "import", 6);
STRING_LITERAL(TMP1184, "in", 2);
STRING_LITERAL(TMP1185, "include", 7);
STRING_LITERAL(TMP1186, "interface", 9);
STRING_LITERAL(TMP1187, "is", 2);
STRING_LITERAL(TMP1188, "isnot", 5);
STRING_LITERAL(TMP1189, "iterator", 8);
STRING_LITERAL(TMP1190, "let", 3);
STRING_LITERAL(TMP1191, "macro", 5);
STRING_LITERAL(TMP1192, "method", 6);
STRING_LITERAL(TMP1193, "mixin", 5);
STRING_LITERAL(TMP1194, "mod", 3);
STRING_LITERAL(TMP1195, "nil", 3);
STRING_LITERAL(TMP1196, "not", 3);
STRING_LITERAL(TMP1197, "notin", 5);
STRING_LITERAL(TMP1198, "object", 6);
STRING_LITERAL(TMP1199, "of", 2);
STRING_LITERAL(TMP1200, "or", 2);
STRING_LITERAL(TMP1201, "out", 3);
STRING_LITERAL(TMP1202, "proc", 4);
STRING_LITERAL(TMP1203, "ptr", 3);
STRING_LITERAL(TMP1204, "raise", 5);
STRING_LITERAL(TMP1205, "ref", 3);
STRING_LITERAL(TMP1206, "return", 6);
STRING_LITERAL(TMP1207, "shl", 3);
STRING_LITERAL(TMP1208, "shr", 3);
STRING_LITERAL(TMP1209, "static", 6);
STRING_LITERAL(TMP1210, "template", 8);
STRING_LITERAL(TMP1211, "try", 3);
STRING_LITERAL(TMP1212, "tuple", 5);
STRING_LITERAL(TMP1213, "type", 4);
STRING_LITERAL(TMP1214, "using", 5);
STRING_LITERAL(TMP1215, "var", 3);
STRING_LITERAL(TMP1216, "when", 4);
STRING_LITERAL(TMP1217, "while", 5);
STRING_LITERAL(TMP1218, "with", 4);
STRING_LITERAL(TMP1219, "without", 7);
STRING_LITERAL(TMP1220, "xor", 3);
STRING_LITERAL(TMP1221, "yield", 5);
STRING_LITERAL(TMP1222, "tkIntLit", 8);
STRING_LITERAL(TMP1223, "tkInt8Lit", 9);
STRING_LITERAL(TMP1224, "tkInt16Lit", 10);
STRING_LITERAL(TMP1225, "tkInt32Lit", 10);
STRING_LITERAL(TMP1226, "tkInt64Lit", 10);
STRING_LITERAL(TMP1227, "tkUIntLit", 9);
STRING_LITERAL(TMP1228, "tkUInt8Lit", 10);
STRING_LITERAL(TMP1229, "tkUInt16Lit", 11);
STRING_LITERAL(TMP1230, "tkUInt32Lit", 11);
STRING_LITERAL(TMP1231, "tkUInt64Lit", 11);
STRING_LITERAL(TMP1232, "tkFloatLit", 10);
STRING_LITERAL(TMP1233, "tkFloat32Lit", 12);
STRING_LITERAL(TMP1234, "tkFloat64Lit", 12);
STRING_LITERAL(TMP1235, "tkFloat128Lit", 13);
STRING_LITERAL(TMP1236, "tkStrLit", 8);
STRING_LITERAL(TMP1237, "tkRStrLit", 9);
STRING_LITERAL(TMP1238, "tkTripleStrLit", 14);
STRING_LITERAL(TMP1239, "tkGStrLit", 9);
STRING_LITERAL(TMP1240, "tkGTripleStrLit", 15);
STRING_LITERAL(TMP1241, "tkCharLit", 9);
STRING_LITERAL(TMP1242, "(", 1);
STRING_LITERAL(TMP1243, ")", 1);
STRING_LITERAL(TMP1244, "[", 1);
STRING_LITERAL(TMP1245, "]", 1);
STRING_LITERAL(TMP1246, "{", 1);
STRING_LITERAL(TMP1247, "}", 1);
STRING_LITERAL(TMP1248, "[.", 2);
STRING_LITERAL(TMP1249, ".]", 2);
STRING_LITERAL(TMP1250, "{.", 2);
STRING_LITERAL(TMP1251, ".}", 2);
STRING_LITERAL(TMP1252, "(.", 2);
STRING_LITERAL(TMP1253, ".)", 2);
STRING_LITERAL(TMP1254, ",", 1);
STRING_LITERAL(TMP1255, ";", 1);
STRING_LITERAL(TMP1256, ":", 1);
STRING_LITERAL(TMP1257, "::", 2);
STRING_LITERAL(TMP1258, "=", 1);
STRING_LITERAL(TMP1259, ".", 1);
STRING_LITERAL(TMP1260, "..", 2);
STRING_LITERAL(TMP1261, "tkOpr", 5);
STRING_LITERAL(TMP1262, "tkComment", 9);
STRING_LITERAL(TMP1263, "`", 1);
STRING_LITERAL(TMP1264, "tkSpaces", 8);
STRING_LITERAL(TMP1265, "tkInfixOpr", 10);
STRING_LITERAL(TMP1266, "tkPrefixOpr", 11);
STRING_LITERAL(TMP1267, "tkPostfixOpr", 12);
NIM_CONST TY181170 Toktypetostr_181169 = {((NimStringDesc*) &TMP1149),
((NimStringDesc*) &TMP1150),
((NimStringDesc*) &TMP1151),
((NimStringDesc*) &TMP1152),
((NimStringDesc*) &TMP1153),
((NimStringDesc*) &TMP1154),
((NimStringDesc*) &TMP1155),
((NimStringDesc*) &TMP1156),
((NimStringDesc*) &TMP1157),
((NimStringDesc*) &TMP1158),
((NimStringDesc*) &TMP1159),
((NimStringDesc*) &TMP1160),
((NimStringDesc*) &TMP1161),
((NimStringDesc*) &TMP1162),
((NimStringDesc*) &TMP1163),
((NimStringDesc*) &TMP1164),
((NimStringDesc*) &TMP1165),
((NimStringDesc*) &TMP1166),
((NimStringDesc*) &TMP1167),
((NimStringDesc*) &TMP1168),
((NimStringDesc*) &TMP1169),
((NimStringDesc*) &TMP1170),
((NimStringDesc*) &TMP1171),
((NimStringDesc*) &TMP1172),
((NimStringDesc*) &TMP1173),
((NimStringDesc*) &TMP1174),
((NimStringDesc*) &TMP1175),
((NimStringDesc*) &TMP1176),
((NimStringDesc*) &TMP1177),
((NimStringDesc*) &TMP1178),
((NimStringDesc*) &TMP1179),
((NimStringDesc*) &TMP1180),
((NimStringDesc*) &TMP1181),
((NimStringDesc*) &TMP1182),
((NimStringDesc*) &TMP1183),
((NimStringDesc*) &TMP1184),
((NimStringDesc*) &TMP1185),
((NimStringDesc*) &TMP1186),
((NimStringDesc*) &TMP1187),
((NimStringDesc*) &TMP1188),
((NimStringDesc*) &TMP1189),
((NimStringDesc*) &TMP1190),
((NimStringDesc*) &TMP1191),
((NimStringDesc*) &TMP1192),
((NimStringDesc*) &TMP1193),
((NimStringDesc*) &TMP1194),
((NimStringDesc*) &TMP1195),
((NimStringDesc*) &TMP1196),
((NimStringDesc*) &TMP1197),
((NimStringDesc*) &TMP1198),
((NimStringDesc*) &TMP1199),
((NimStringDesc*) &TMP1200),
((NimStringDesc*) &TMP1201),
((NimStringDesc*) &TMP1202),
((NimStringDesc*) &TMP1203),
((NimStringDesc*) &TMP1204),
((NimStringDesc*) &TMP1205),
((NimStringDesc*) &TMP1206),
((NimStringDesc*) &TMP1207),
((NimStringDesc*) &TMP1208),
((NimStringDesc*) &TMP1209),
((NimStringDesc*) &TMP1210),
((NimStringDesc*) &TMP1211),
((NimStringDesc*) &TMP1212),
((NimStringDesc*) &TMP1213),
((NimStringDesc*) &TMP1214),
((NimStringDesc*) &TMP1215),
((NimStringDesc*) &TMP1216),
((NimStringDesc*) &TMP1217),
((NimStringDesc*) &TMP1218),
((NimStringDesc*) &TMP1219),
((NimStringDesc*) &TMP1220),
((NimStringDesc*) &TMP1221),
((NimStringDesc*) &TMP1222),
((NimStringDesc*) &TMP1223),
((NimStringDesc*) &TMP1224),
((NimStringDesc*) &TMP1225),
((NimStringDesc*) &TMP1226),
((NimStringDesc*) &TMP1227),
((NimStringDesc*) &TMP1228),
((NimStringDesc*) &TMP1229),
((NimStringDesc*) &TMP1230),
((NimStringDesc*) &TMP1231),
((NimStringDesc*) &TMP1232),
((NimStringDesc*) &TMP1233),
((NimStringDesc*) &TMP1234),
((NimStringDesc*) &TMP1235),
((NimStringDesc*) &TMP1236),
((NimStringDesc*) &TMP1237),
((NimStringDesc*) &TMP1238),
((NimStringDesc*) &TMP1239),
((NimStringDesc*) &TMP1240),
((NimStringDesc*) &TMP1241),
((NimStringDesc*) &TMP1242),
((NimStringDesc*) &TMP1243),
((NimStringDesc*) &TMP1244),
((NimStringDesc*) &TMP1245),
((NimStringDesc*) &TMP1246),
((NimStringDesc*) &TMP1247),
((NimStringDesc*) &TMP1248),
((NimStringDesc*) &TMP1249),
((NimStringDesc*) &TMP1250),
((NimStringDesc*) &TMP1251),
((NimStringDesc*) &TMP1252),
((NimStringDesc*) &TMP1253),
((NimStringDesc*) &TMP1254),
((NimStringDesc*) &TMP1255),
((NimStringDesc*) &TMP1256),
((NimStringDesc*) &TMP1257),
((NimStringDesc*) &TMP1258),
((NimStringDesc*) &TMP1259),
((NimStringDesc*) &TMP1260),
((NimStringDesc*) &TMP1261),
((NimStringDesc*) &TMP1262),
((NimStringDesc*) &TMP1263),
((NimStringDesc*) &TMP1264),
((NimStringDesc*) &TMP1265),
((NimStringDesc*) &TMP1266),
((NimStringDesc*) &TMP1267)}
;
STRING_LITERAL(TMP1268, "keyword ", 8);
STRING_LITERAL(TMP1272, "tokToStr", 8);
STRING_LITERAL(TMP4973, "\011", 1);
STRING_LITERAL(TMP4974, " ", 1);
NI glinescompiled_181213;
Tident167021* dummyident_181364;
extern Tgcheap48216 gch_48244;
extern TNimType NTI179024; /* TBaseLexer */
TNimType NTI181185; /* TLexer */
extern TNimType NTI114; /* int32 */
extern TNimType NTI108; /* int */
extern TNimType NTI138; /* bool */
TNimType NTI181183; /* (pointer, ref tuple[]) */
extern TNimType NTI153; /* pointer */
TNimType NTI522945; /* tuple[] */
TNimType NTI522944; /* ref tuple[] */
TNimType NTI181181; /* TToken */
TNimType NTI181022; /* TTokType */
extern TNimType NTI167019; /* PIdent */
extern TNimType NTI5710; /* BiggestInt */
extern TNimType NTI5712; /* BiggestFloat */
TNimType NTI181179; /* TNumericalBase */
extern TNimType NTI110; /* int8 */
extern TNimType NTI149; /* string */
extern NU32 gglobaloptions_154128;
extern NimStringDesc* tnl_159626;
extern TSafePoint* exchandler_17043;
extern TNimType NTI22401; /* ref ValueError */
extern TNimType NTI3449; /* ValueError */
extern Exception* currexception_17045;
extern TNimType NTI3443; /* OverflowError */
extern TNimType NTI3459; /* RangeError */

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

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

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

N_NIMCALL(void, inittoken_181369)(Ttoken181181* L) {
	(*L).toktype = ((NU8) 0);
	(*L).inumber = IL64(0);
	(*L).indent = ((NI) 0);
	(*L).strongspacea = ((NI8) 0);
	unsureAsgnRef((void**) (&(*L).literal), copyString(((NimStringDesc*) &TMP715)));
	(*L).fnumber = 0.0;
	(*L).base = ((NU8) 0);
	unsureAsgnRef((void**) (&(*L).ident), dummyident_181364);
}

N_NIMCALL(void, openlexer_181391)(Tlexer181185* lex, NI32 fileidx, Tllstream178204* inputstream) {
	Tbaselexer179024* LOC1;
	LOC1 = 0;
	LOC1 = &lex->Sup;
	openbaselexer_179035(LOC1, inputstream, ((NI) 8192));
	(*lex).fileidx = fileidx;
	(*lex).indentahead = ((NI) -1);
	(*lex).currlineindent = ((NI) 0);
	(*lex).Sup.linenumber += (*inputstream).lineoffset;
}

N_NIMCALL(void, filltoken_181380)(Ttoken181181* L) {
	(*L).toktype = ((NU8) 0);
	(*L).inumber = IL64(0);
	(*L).indent = ((NI) 0);
	(*L).strongspacea = ((NI8) 0);
	(*L).literal = setLengthStr((*L).literal, ((NI) 0));
	(*L).fnumber = 0.0;
	(*L).base = ((NU8) 0);
	unsureAsgnRef((void**) (&(*L).ident), dummyident_181364);
}

N_NIMCALL(void, dispmessage_181463)(Tlexer181185* L, Tlineinfo163338 info, NU16 msg, NimStringDesc* arg) {
	{
		if (!(*L).errorhandler.ClPrc == 0) goto LA3;
		message_165188(info, msg, arg);
	}
	goto LA1;
	LA3: ;
	{
		(*L).errorhandler.ClEnv? (*L).errorhandler.ClPrc(info, msg, arg, (*L).errorhandler.ClEnv):((TMP1112)((*L).errorhandler.ClPrc))(info, msg, arg);
	}
	LA1: ;
}

N_NIMCALL(void, lexmessagepos_181507)(Tlexer181185* L, NU16 msg, NI pos, NimStringDesc* arg) {
	Tlineinfo163338 info;
	info = newlineinfo_163866((*L).fileidx, (*L).Sup.linenumber, (NI)(pos - (*L).Sup.linestart));
	dispmessage_181463((&(*L)), info, msg, arg);
}

N_NIMCALL(NimStringDesc*, newstring_182659)(NCSTRING s, NI len) {
	NimStringDesc* result;
	result = 0;
	result = mnewString(((NI) (len)));
	{
		NI i_182682;
		NI HEX3Atmp_182684;
		NI res_182687;
		i_182682 = 0;
		HEX3Atmp_182684 = 0;
		HEX3Atmp_182684 = (len - 1);
		res_182687 = ((NI) 0);
		{
			while (1) {
				if (!(res_182687 <= HEX3Atmp_182684)) goto LA3;
				i_182682 = res_182687;
				result->data[i_182682] = s[i_182682];
				res_182687 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}

N_NIMCALL(NI, handlecrlf_182706)(Tlexer181185* L, NI pos) {
	NI result;
	result = 0;
	switch (((NU8)((*L).Sup.buf[pos]))) {
	case 13:
	{
		NI col_182723;
		Tbaselexer179024* LOC10;
		col_182723 = getcolnumber_179059((&(*L).Sup), pos);
		{
			if (!(((NI) 80) < col_182723)) goto LA4;
			lexmessagepos_181507(L, ((NU16) 263), pos, ((NimStringDesc*) &TMP715));
		}
		LA4: ;
		{
			NI linestart_182725;
			NimStringDesc* line_182727;
			if (!((gglobaloptions_154128 &(1<<((((NU8) 27))&31)))!=0)) goto LA8;
			linestart_182725 = (NI)(((NI) ((*L).Sup.buf)) + (*L).Sup.linestart);
			line_182727 = newstring_182659(((NCSTRING) (linestart_182725)), col_182723);
			addsourceline_165254((*L).fileidx, line_182727);
		}
		LA8: ;
		LOC10 = 0;
		LOC10 = &L->Sup;
		result = handlecr_179066(LOC10, pos);
	}
	break;
	case 10:
	{
		NI col_182739;
		Tbaselexer179024* LOC20;
		col_182739 = getcolnumber_179059((&(*L).Sup), pos);
		{
			if (!(((NI) 80) < col_182739)) goto LA14;
			lexmessagepos_181507(L, ((NU16) 263), pos, ((NimStringDesc*) &TMP715));
		}
		LA14: ;
		{
			NI linestart_182741;
			NimStringDesc* line_182743;
			if (!((gglobaloptions_154128 &(1<<((((NU8) 27))&31)))!=0)) goto LA18;
			linestart_182741 = (NI)(((NI) ((*L).Sup.buf)) + (*L).Sup.linestart);
			line_182743 = newstring_182659(((NCSTRING) (linestart_182741)), col_182739);
			addsourceline_165254((*L).fileidx, line_182743);
		}
		LA18: ;
		LOC20 = 0;
		LOC20 = &L->Sup;
		result = handlelf_179074(LOC20, pos);
	}
	break;
	default:
	{
		result = pos;
	}
	break;
	}
	return result;
}

N_NIMCALL(void, skip_184437)(Tlexer181185* L, Ttoken181181* tok) {
	NI pos;
	NCSTRING buf;
	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	(*tok).strongspacea = ((NI8) 0);
	{
		while (1) {
			switch (((NU8)(buf[pos]))) {
			case 32:
			{
				pos += ((NI) 1);
				(*tok).strongspacea += ((NI) 1);
			}
			break;
			case 9:
			{
				lexmessagepos_181507(L, ((NU16) 11), pos, ((NimStringDesc*) &TMP715));
				pos += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				NI indent;
				pos = handlecrlf_182706(L, pos);
				buf = (*L).Sup.buf;
				indent = ((NI) 0);
				{
					while (1) {
						if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA7;
						pos += ((NI) 1);
						indent += ((NI) 1);
					} LA7: ;
				}
				(*tok).strongspacea = ((NI8) 0);
				{
					NIM_BOOL LOC10;
					NIM_BOOL LOC12;
					LOC10 = 0;
					LOC10 = ((NU8)(32) < (NU8)(buf[pos]));
					if (!(LOC10)) goto LA11;
					LOC12 = 0;
					LOC12 = !(((NU8)(buf[pos]) == (NU8)(35)));
					if (LOC12) goto LA13;
					LOC12 = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
					LA13: ;
					LOC10 = LOC12;
					LA11: ;
					if (!LOC10) goto LA14;
					(*tok).indent = indent;
					(*L).currlineindent = indent;
					goto LA1;
				}
				LA14: ;
			}
			break;
			case 35:
			{
				{
					if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35))) goto LA19;
					goto LA1;
				}
				LA19: ;
				{
					if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(91))) goto LA23;
					lexmessagepos_181507(L, ((NU16) 234), pos, ((NimStringDesc*) &TMP1113));
				}
				LA23: ;
				{
					while (1) {
						if (!!((((NU8)(buf[pos])) == ((NU8)(13)) || ((NU8)(buf[pos])) == ((NU8)(10)) || ((NU8)(buf[pos])) == ((NU8)(0))))) goto LA26;
						pos += ((NI) 1);
					} LA26: ;
				}
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	(*L).Sup.bufpos = pos;
}

static N_INLINE(NI, HEX21HEX26_131025)(NI h, NI val) {
	NI result;
	result = 0;
	result = (NI)((NU64)(h) + (NU64)(val));
	result = (NI)((NU64)(result) + (NU64)((NI)((NU64)(result) << (NU64)(((NI) 10)))));
	result = (NI)(result ^ (NI)((NU64)(result) >> (NU64)(((NI) 6))));
	return result;
}

N_NIMCALL(Tlineinfo163338, getlineinfo_181453)(Tlexer181185* L) {
	Tlineinfo163338 result;
	NI LOC1;
	memset((void*)(&result), 0, sizeof(result));
	LOC1 = 0;
	LOC1 = getcolnumber_179059((&(*L).Sup), (*L).Sup.bufpos);
	result = newlineinfo_163866((*L).fileidx, (*L).Sup.linenumber, LOC1);
	return result;
}

N_NIMCALL(void, lexmessage_181483)(Tlexer181185* L, NU16 msg, NimStringDesc* arg) {
	Tlineinfo163338 LOC1;
	LOC1 = getlineinfo_181453(L);
	dispmessage_181463(L, LOC1, msg, arg);
}

static N_INLINE(NI, HEX21HEX24_131054)(NI h) {
	NI result;
	result = 0;
	result = (NI)((NU64)(h) + (NU64)((NI)((NU64)(h) << (NU64)(((NI) 3)))));
	result = (NI)(result ^ (NI)((NU64)(result) >> (NU64)(((NI) 11))));
	result = (NI)((NU64)(result) + (NU64)((NI)((NU64)(result) << (NU64)(((NI) 15)))));
	return result;
}

N_NIMCALL(void, getsymbol_182961)(Tlexer181185* L, Ttoken181181* tok) {
	NI h;
	NI pos;
	NCSTRING buf;
	h = ((NI) 0);
	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	{
		while (1) {
			NIM_CHAR c;
			c = buf[pos];
			switch (((NU8)(c))) {
			case 97 ... 122:
			case 48 ... 57:
			case 128 ... 255:
			{
				h = HEX21HEX26_131025(h, ((NI) (((NU8)(c)))));
			}
			break;
			case 65 ... 90:
			{
				c = ((NIM_CHAR) (((NI) ((NI)(((NI) (((NU8)(c)))) + ((NI) 32))))));
				h = HEX21HEX26_131025(h, ((NI) (((NU8)(c)))));
			}
			break;
			case 95:
			{
				{
					if (!!((((NU8)(buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)(buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)(buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)(buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)(buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)(buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(57)) || ((NU8)(buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(128)) && ((NU8)(buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(255))))) goto LA8;
					lexmessage_181483((&(*L)), ((NU16) 12), ((NimStringDesc*) &TMP1114));
					goto LA1;
				}
				LA8: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			pos += ((NI) 1);
		}
	} LA1: ;
	h = HEX21HEX24_131054(h);
	unsureAsgnRef((void**) (&(*tok).ident), getident_167248(((NCSTRING) ((&(*L).Sup.buf[(*L).Sup.bufpos]))), (NI)(pos - (*L).Sup.bufpos), h));
	(*L).Sup.bufpos = pos;
	{
		NIM_BOOL LOC13;
		LOC13 = 0;
		LOC13 = ((*(*tok).ident).Sup.id < ((NI) 1));
		if (LOC13) goto LA14;
		LOC13 = (((NI) 70) < (*(*tok).ident).Sup.id);
		LA14: ;
		if (!LOC13) goto LA15;
		(*tok).toktype = ((NU8) 2);
	}
	goto LA11;
	LA15: ;
	{
		(*tok).toktype = ((NU8) ((NI)((*(*tok).ident).Sup.id + ((NI) 2))));
	}
	LA11: ;
}

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

N_NIMCALL(void, scancomment_183202)(Tlexer181185* L, Ttoken181181* tok) {
	NI pos;
	NCSTRING buf;
{	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	{
		if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(91))) goto LA3;
		{
			if (!((NU8)(buf[(NI)(pos + ((NI) 3))]) == (NU8)(93))) goto LA7;
			(*tok).toktype = ((NU8) 113);
			unsureAsgnRef((void**) (&(*tok).literal), copyString(((NimStringDesc*) &TMP1115)));
			(*L).Sup.bufpos += ((NI) 4);
			goto BeforeRet;
		}
		goto LA5;
		LA7: ;
		{
			lexmessagepos_181507(L, ((NU16) 234), pos, ((NimStringDesc*) &TMP1116));
		}
		LA5: ;
	}
	LA3: ;
	(*tok).toktype = ((NU8) 113);
	(*tok).inumber = IL64(0);
	{
		while (1) {
			NI lastbackslash;
			NI indent;
			lastbackslash = ((NI) -1);
			{
				while (1) {
					if (!!((((NU8)(buf[pos])) == ((NU8)(13)) || ((NU8)(buf[pos])) == ((NU8)(10)) || ((NU8)(buf[pos])) == ((NU8)(0))))) goto LA13;
					{
						if (!((NU8)(buf[pos]) == (NU8)(92))) goto LA16;
						lastbackslash = (NI)(pos + ((NI) 1));
					}
					LA16: ;
					(*tok).literal = addChar((*tok).literal, buf[pos]);
					pos += ((NI) 1);
				} LA13: ;
			}
			pos = handlecrlf_182706(L, pos);
			buf = (*L).Sup.buf;
			indent = ((NI) 0);
			{
				while (1) {
					if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA19;
					pos += ((NI) 1);
					indent += ((NI) 1);
				} LA19: ;
			}
			{
				NIM_BOOL LOC22;
				LOC22 = 0;
				LOC22 = ((NU8)(buf[pos]) == (NU8)(35));
				if (!(LOC22)) goto LA23;
				LOC22 = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
				LA23: ;
				if (!LOC22) goto LA24;
				(*tok).literal = resizeString((*tok).literal, 1);
appendString((*tok).literal, ((NimStringDesc*) &TMP1117));
				(*tok).inumber += ((NI) 1);
			}
			goto LA20;
			LA24: ;
			{
				{
					if (!((NU8)(32) < (NU8)(buf[pos]))) goto LA29;
					(*L).indentahead = indent;
				}
				LA29: ;
				goto LA10;
			}
			LA20: ;
		}
	} LA10: ;
	(*L).Sup.bufpos = pos;
	}BeforeRet: ;
}

static N_INLINE(void, endoperator_183090)(Tlexer181185* L, Ttoken181181* tok, NI pos, NI hash) {
	NI h;
	h = HEX21HEX24_131054(hash);
	unsureAsgnRef((void**) (&(*tok).ident), getident_167248(((NCSTRING) ((&(*L).Sup.buf[(*L).Sup.bufpos]))), (NI)(pos - (*L).Sup.bufpos), h));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = ((*(*tok).ident).Sup.id < ((NI) 71));
		if (LOC3) goto LA4;
		LOC3 = (((NI) 75) < (*(*tok).ident).Sup.id);
		LA4: ;
		if (!LOC3) goto LA5;
		(*tok).toktype = ((NU8) 112);
	}
	goto LA1;
	LA5: ;
	{
		(*tok).toktype = ((NU8) ((NI)((NI)((*(*tok).ident).Sup.id - ((NI) 71)) + ((NI) 107))));
	}
	LA1: ;
	(*L).Sup.bufpos = pos;
}

N_NIMCALL(void, getoperator_183115)(Tlexer181185* L, Ttoken181181* tok) {
	NI pos;
	NCSTRING buf;
	NI h;
	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	h = ((NI) 0);
	{
		while (1) {
			NIM_CHAR c;
			c = buf[pos];
			{
				if (!!(((TMP1118[((NU8)(c))/8] &(1<<(((NU8)(c))%8)))!=0))) goto LA5;
				goto LA1;
			}
			LA5: ;
			h = HEX21HEX26_131025(h, ((NI) (((NU8)(c)))));
			pos += ((NI) 1);
		}
	} LA1: ;
	endoperator_183090(L, tok, pos, h);
	(*tok).strongspaceb = ((NI8) 0);
	{
		while (1) {
			if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA8;
			pos += ((NI) 1);
			(*tok).strongspaceb += ((NI) 1);
		} LA8: ;
	}
	{
		if (!(((NU8)(buf[pos])) == ((NU8)(13)) || ((NU8)(buf[pos])) == ((NU8)(10)) || ((NU8)(buf[pos])) == ((NU8)(0)))) goto LA11;
		(*tok).strongspaceb = ((NI8) -1);
	}
	LA11: ;
}

N_NIMCALL(void, handlehexchar_182364)(Tlexer181185* L, NI* xi) {
	switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
	case 48 ... 57:
	{
		(*xi) = (NI)((NI)((NU64)((*xi)) << (NU64)(((NI) 4))) | ((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])))) - ((NI) 48)))));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 97 ... 102:
	{
		(*xi) = (NI)((NI)((NU64)((*xi)) << (NU64)(((NI) 4))) | ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])))) - ((NI) 97)))) + ((NI) 10)))));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 65 ... 70:
	{
		(*xi) = (NI)((NI)((NU64)((*xi)) << (NU64)(((NI) 4))) | ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])))) - ((NI) 65)))) + ((NI) 10)))));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	default:
	{
	}
	break;
	}
}

N_NIMCALL(NIM_BOOL, matchtwochars_181582)(Tlexer181185* L, NIM_CHAR first, TY178407 second) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(first));
	if (!(LOC1)) goto LA2;
	LOC1 = ((second[((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]))/8] &(1<<(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]))%8)))!=0);
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, handledecchars_182458)(Tlexer181185* L, NI* xi) {
	{
		while (1) {
			if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(57)))) goto LA2;
			(*xi) = (NI)((NI)((*xi) * ((NI) 10)) + ((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])))) - ((NI) 48)))));
			(*L).Sup.bufpos += ((NI) 1);
		} LA2: ;
	}
}

N_NIMCALL(void, getescapedchar_182514)(Tlexer181185* L, Ttoken181181* tok) {
	(*L).Sup.bufpos += ((NI) 1);
	switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
	case 110:
	case 78:
	{
		{
			if (!((*tok).toktype == ((NU8) 92))) goto LA4;
			lexmessage_181483((&(*L)), ((NU16) 16), ((NimStringDesc*) &TMP715));
		}
		LA4: ;
		(*tok).literal = resizeString((*tok).literal, tnl_159626->Sup.len + 0);
appendString((*tok).literal, tnl_159626);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 114:
	case 82:
	case 99:
	case 67:
	{
		(*tok).literal = addChar((*tok).literal, 13);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 108:
	case 76:
	{
		(*tok).literal = addChar((*tok).literal, 10);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 102:
	case 70:
	{
		(*tok).literal = addChar((*tok).literal, 12);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 101:
	case 69:
	{
		(*tok).literal = addChar((*tok).literal, 27);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 97:
	case 65:
	{
		(*tok).literal = addChar((*tok).literal, 7);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 98:
	case 66:
	{
		(*tok).literal = addChar((*tok).literal, 8);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 118:
	case 86:
	{
		(*tok).literal = addChar((*tok).literal, 11);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 116:
	case 84:
	{
		(*tok).literal = addChar((*tok).literal, 9);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 39:
	case 34:
	{
		(*tok).literal = addChar((*tok).literal, (*L).Sup.buf[(*L).Sup.bufpos]);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 92:
	{
		(*tok).literal = addChar((*tok).literal, 92);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 120:
	case 88:
	{
		NI xi;
		(*L).Sup.bufpos += ((NI) 1);
		xi = ((NI) 0);
		handlehexchar_182364(L, (&xi));
		handlehexchar_182364(L, (&xi));
		(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) (((NI) (xi)))));
	}
	break;
	case 48 ... 57:
	{
		NI xi;
		{
			NIM_BOOL LOC20;
			LOC20 = 0;
			LOC20 = matchtwochars_181582((&(*L)), 48, TMP1119);
			if (!LOC20) goto LA21;
			lexmessage_181483((&(*L)), ((NU16) 231), ((NimStringDesc*) &TMP715));
		}
		LA21: ;
		xi = ((NI) 0);
		handledecchars_182458(L, (&xi));
		{
			if (!(xi <= ((NI) 255))) goto LA25;
			(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) (((NI) (xi)))));
		}
		goto LA23;
		LA25: ;
		{
			lexmessage_181483((&(*L)), ((NU16) 8), ((NimStringDesc*) &TMP715));
		}
		LA23: ;
	}
	break;
	default:
	{
		lexmessage_181483((&(*L)), ((NU16) 8), ((NimStringDesc*) &TMP715));
	}
	break;
	}
}

N_NIMCALL(void, getstring_182764)(Tlexer181185* L, Ttoken181181* tok, NIM_BOOL rawmode) {
	NI pos;
	NCSTRING buf;
	NI line;
	pos = (NI)((*L).Sup.bufpos + ((NI) 1));
	buf = (*L).Sup.buf;
	line = (*L).Sup.linenumber;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = ((NU8)(buf[pos]) == (NU8)(34));
		if (!(LOC3)) goto LA4;
		LOC3 = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
		LA4: ;
		if (!LOC3) goto LA5;
		(*tok).toktype = ((NU8) 89);
		pos += ((NI) 2);
		{
			NI newpos;
			if (!(((NU8)(buf[pos])) == ((NU8)(32)) || ((NU8)(buf[pos])) == ((NU8)(9)))) goto LA9;
			newpos = (NI)(pos + ((NI) 1));
			{
				while (1) {
					if (!(((NU8)(buf[newpos])) == ((NU8)(32)) || ((NU8)(buf[newpos])) == ((NU8)(9)))) goto LA12;
					newpos += ((NI) 1);
				} LA12: ;
			}
			{
				if (!(((NU8)(buf[newpos])) == ((NU8)(13)) || ((NU8)(buf[newpos])) == ((NU8)(10)))) goto LA15;
				pos = newpos;
			}
			LA15: ;
		}
		LA9: ;
		pos = handlecrlf_182706(L, pos);
		buf = (*L).Sup.buf;
		{
			while (1) {
				switch (((NU8)(buf[pos]))) {
				case 34:
				{
					{
						NIM_BOOL LOC22;
						NIM_BOOL LOC23;
						LOC22 = 0;
						LOC23 = 0;
						LOC23 = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
						if (!(LOC23)) goto LA24;
						LOC23 = ((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(34));
						LA24: ;
						LOC22 = LOC23;
						if (!(LOC22)) goto LA25;
						LOC22 = !(((NU8)(buf[(NI)(pos + ((NI) 3))]) == (NU8)(34)));
						LA25: ;
						if (!LOC22) goto LA26;
						(*L).Sup.bufpos = (NI)(pos + ((NI) 3));
						goto LA17;
					}
					LA26: ;
					(*tok).literal = addChar((*tok).literal, 34);
					pos += ((NI) 1);
				}
				break;
				case 13:
				case 10:
				{
					pos = handlecrlf_182706(L, pos);
					buf = (*L).Sup.buf;
					(*tok).literal = resizeString((*tok).literal, tnl_159626->Sup.len + 0);
appendString((*tok).literal, tnl_159626);
				}
				break;
				case 0:
				{
					NI line2;
					line2 = (*L).Sup.linenumber;
					(*L).Sup.linenumber = line;
					lexmessagepos_181507(L, ((NU16) 9), (*L).Sup.linestart, ((NimStringDesc*) &TMP715));
					(*L).Sup.linenumber = line2;
					goto LA17;
				}
				break;
				default:
				{
					(*tok).literal = addChar((*tok).literal, buf[pos]);
					pos += ((NI) 1);
				}
				break;
				}
			}
		} LA17: ;
	}
	goto LA1;
	LA5: ;
	{
		{
			if (!rawmode) goto LA34;
			(*tok).toktype = ((NU8) 88);
		}
		goto LA32;
		LA34: ;
		{
			(*tok).toktype = ((NU8) 87);
		}
		LA32: ;
		{
			while (1) {
				NIM_CHAR c;
				c = buf[pos];
				{
					if (!((NU8)(c) == (NU8)(34))) goto LA41;
					{
						NIM_BOOL LOC45;
						LOC45 = 0;
						LOC45 = rawmode;
						if (!(LOC45)) goto LA46;
						LOC45 = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
						LA46: ;
						if (!LOC45) goto LA47;
						pos += ((NI) 2);
						(*tok).literal = addChar((*tok).literal, 34);
					}
					goto LA43;
					LA47: ;
					{
						pos += ((NI) 1);
						goto LA37;
					}
					LA43: ;
				}
				goto LA39;
				LA41: ;
				{
					if (!(((NU8)(c)) == ((NU8)(13)) || ((NU8)(c)) == ((NU8)(10)) || ((NU8)(c)) == ((NU8)(0)))) goto LA51;
					lexmessage_181483((&(*L)), ((NU16) 10), ((NimStringDesc*) &TMP715));
					goto LA37;
				}
				goto LA39;
				LA51: ;
				{
					NIM_BOOL LOC54;
					LOC54 = 0;
					LOC54 = ((NU8)(c) == (NU8)(92));
					if (!(LOC54)) goto LA55;
					LOC54 = !(rawmode);
					LA55: ;
					if (!LOC54) goto LA56;
					(*L).Sup.bufpos = pos;
					getescapedchar_182514(L, tok);
					pos = (*L).Sup.bufpos;
				}
				goto LA39;
				LA56: ;
				{
					(*tok).literal = addChar((*tok).literal, c);
					pos += ((NI) 1);
				}
				LA39: ;
			}
		} LA37: ;
		(*L).Sup.bufpos = pos;
	}
	LA1: ;
}

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

N_NIMCALL(void, getcharacter_182911)(Tlexer181185* L, Ttoken181181* tok) {
	NIM_CHAR c;
	(*L).Sup.bufpos += ((NI) 1);
	c = (*L).Sup.buf[(*L).Sup.bufpos];
	switch (((NU8)(c))) {
	case 0 ... 31:
	case 39:
	{
		lexmessage_181483((&(*L)), ((NU16) 8), ((NimStringDesc*) &TMP715));
	}
	break;
	case 92:
	{
		getescapedchar_182514(L, tok);
	}
	break;
	default:
	{
		unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	}
	{
		if (!!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(39)))) goto LA6;
		lexmessage_181483((&(*L)), ((NU16) 18), ((NimStringDesc*) &TMP715));
	}
	LA6: ;
	(*L).Sup.bufpos += ((NI) 1);
}

N_NIMCALL(void, matchunderscorechars_181521)(Tlexer181185* L, Ttoken181181* tok, TY178407 chars) {
	NI pos;
	NCSTRING buf;
	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	{
		while (1) {
			{
				if (!((chars[((NU8)(buf[pos]))/8] &(1<<(((NU8)(buf[pos]))%8)))!=0)) goto LA5;
				(*tok).literal = addChar((*tok).literal, buf[pos]);
				pos += ((NI) 1);
			}
			goto LA3;
			LA5: ;
			{
				goto LA1;
			}
			LA3: ;
			{
				if (!((NU8)(buf[pos]) == (NU8)(95))) goto LA10;
				{
					if (!!(((chars[((NU8)(buf[(NI)(pos + ((NI) 1))]))/8] &(1<<(((NU8)(buf[(NI)(pos + ((NI) 1))]))%8)))!=0))) goto LA14;
					lexmessage_181483((&(*L)), ((NU16) 12), ((NimStringDesc*) &TMP1114));
					goto LA1;
				}
				LA14: ;
				(*tok).literal = addChar((*tok).literal, 95);
				pos += ((NI) 1);
			}
			LA10: ;
		}
	} LA1: ;
	(*L).Sup.bufpos = pos;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).hasRaiseAction = NIM_FALSE;
	(*s).prev = exchandler_17043;
	exchandler_17043 = s;
}

N_NIMCALL(NIM_BOOL, isfloatliteral_181605)(NimStringDesc* s) {
	NIM_BOOL result;
{	result = 0;
	{
		NI i_181621;
		NI HEX3Atmp_181634;
		NI res_181637;
		i_181621 = 0;
		HEX3Atmp_181634 = 0;
		HEX3Atmp_181634 = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
		res_181637 = ((NI) 0);
		{
			while (1) {
				if (!(res_181637 <= HEX3Atmp_181634)) goto LA3;
				i_181621 = res_181637;
				{
					if (!(((NU8)(s->data[i_181621])) == ((NU8)(46)) || ((NU8)(s->data[i_181621])) == ((NU8)(101)) || ((NU8)(s->data[i_181621])) == ((NU8)(69)))) goto LA6;
					result = NIM_TRUE;
					goto BeforeRet;
				}
				LA6: ;
				res_181637 += ((NI) 1);
			} LA3: ;
		}
	}
	result = NIM_FALSE;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NI, unsafeparseuint_181659)(NimStringDesc* s, NI64* b, NI start) {
	NI result;
	NI i;
	result = 0;
	i = start;
	{
		if (!(((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)))) goto LA3;
		(*b) = IL64(0);
		{
			while (1) {
				if (!(((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)))) goto LA6;
				(*b) = (NI64)((NI64)((*b) * IL64(10)) + ((NI64) ((NI)(((NI) (((NU8)(s->data[i])))) - ((NI) 48)))));
				i += ((NI) 1);
				{
					while (1) {
						if (!((NU8)(s->data[i]) == (NU8)(95))) goto LA8;
						i += ((NI) 1);
					} LA8: ;
				}
			} LA6: ;
		}
		result = (NI)(i - start);
	}
	LA3: ;
	return result;
}

static N_INLINE(void, popSafePoint)(void) {
	exchandler_17043 = (*exchandler_17043).prev;
}

static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	result = 0;
	result = currexception_17045;
	return result;
}

static N_INLINE(NIM_BOOL, canbecycleroot_49867)(Tcell46347* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_50623)(Tcell46347* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_47065((&gch_48244.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_52222)(Tcell46347* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_49867(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_50623(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_51804)(Tcell46347* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_51404(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_49867(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_50623(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Tcell46347* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_49846(src);
		incref_52222(LOC5);
	}
	LA3: ;
	{
		Tcell46347* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_49846((*dest));
		decref_51804(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currexception_17045), (*currexception_17045).parent);
}

N_NIMCALL(void, getnumber_181747)(Tlexer181185* L, Ttoken181181* Result) {
	NI pos;
	NI endpos;
	NI64 volatile xi;
	NIM_BOOL eallowed;
	TSafePoint TMP1126;
	pos = 0;
	endpos = 0;
	xi = 0;
	(*Result).toktype = ((NU8) 73);
	unsureAsgnRef((void**) (&(*Result).literal), copyString(((NimStringDesc*) &TMP715)));
	(*Result).base = ((NU8) 0);
	pos = (*L).Sup.bufpos;
	eallowed = NIM_FALSE;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = ((NU8)((*L).Sup.buf[pos]) == (NU8)(48));
		if (!(LOC3)) goto LA4;
		LOC3 = (((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(120)));
		LA4: ;
		if (!LOC3) goto LA5;
		matchunderscorechars_181521(L, Result, TMP1121);
	}
	goto LA1;
	LA5: ;
	{
		matchunderscorechars_181521(L, Result, TMP1122);
		eallowed = NIM_TRUE;
	}
	LA1: ;
	{
		NIM_BOOL LOC10;
		LOC10 = 0;
		LOC10 = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
		if (!(LOC10)) goto LA11;
		LOC10 = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)));
		LA11: ;
		if (!LOC10) goto LA12;
		(*Result).literal = addChar((*Result).literal, 46);
		(*L).Sup.bufpos += ((NI) 1);
		matchunderscorechars_181521(L, Result, TMP1119);
		eallowed = NIM_TRUE;
	}
	LA12: ;
	{
		NIM_BOOL LOC16;
		LOC16 = 0;
		LOC16 = eallowed;
		if (!(LOC16)) goto LA17;
		LOC16 = (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(101)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(69)));
		LA17: ;
		if (!LOC16) goto LA18;
		(*Result).literal = addChar((*Result).literal, 101);
		(*L).Sup.bufpos += ((NI) 1);
		{
			if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(43)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(45)))) goto LA22;
			(*Result).literal = addChar((*Result).literal, (*L).Sup.buf[(*L).Sup.bufpos]);
			(*L).Sup.bufpos += ((NI) 1);
		}
		LA22: ;
		matchunderscorechars_181521(L, Result, TMP1119);
	}
	LA18: ;
	endpos = (*L).Sup.bufpos;
	{
		if (!(((NU8)((*L).Sup.buf[endpos])) == ((NU8)(39)) || ((NU8)((*L).Sup.buf[endpos])) == ((NU8)(102)) || ((NU8)((*L).Sup.buf[endpos])) == ((NU8)(70)) || ((NU8)((*L).Sup.buf[endpos])) == ((NU8)(105)) || ((NU8)((*L).Sup.buf[endpos])) == ((NU8)(73)) || ((NU8)((*L).Sup.buf[endpos])) == ((NU8)(117)) || ((NU8)((*L).Sup.buf[endpos])) == ((NU8)(85)))) goto LA26;
		{
			if (!((NU8)((*L).Sup.buf[endpos]) == (NU8)(39))) goto LA30;
			endpos += ((NI) 1);
		}
		LA30: ;
		(*L).Sup.bufpos = pos;
		switch (((NU8)((*L).Sup.buf[endpos]))) {
		case 102:
		case 70:
		{
			endpos += ((NI) 1);
			{
				NIM_BOOL LOC35;
				LOC35 = 0;
				LOC35 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(51));
				if (!(LOC35)) goto LA36;
				LOC35 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(50));
				LA36: ;
				if (!LOC35) goto LA37;
				(*Result).toktype = ((NU8) 84);
				endpos += ((NI) 2);
			}
			goto LA33;
			LA37: ;
			{
				NIM_BOOL LOC40;
				LOC40 = 0;
				LOC40 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(54));
				if (!(LOC40)) goto LA41;
				LOC40 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(52));
				LA41: ;
				if (!LOC40) goto LA42;
				(*Result).toktype = ((NU8) 85);
				endpos += ((NI) 2);
			}
			goto LA33;
			LA42: ;
			{
				NIM_BOOL LOC45;
				NIM_BOOL LOC46;
				LOC45 = 0;
				LOC46 = 0;
				LOC46 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(49));
				if (!(LOC46)) goto LA47;
				LOC46 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(50));
				LA47: ;
				LOC45 = LOC46;
				if (!(LOC45)) goto LA48;
				LOC45 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 2))]) == (NU8)(56));
				LA48: ;
				if (!LOC45) goto LA49;
				(*Result).toktype = ((NU8) 86);
				endpos += ((NI) 3);
			}
			goto LA33;
			LA49: ;
			{
				NimStringDesc* LOC52;
				LOC52 = 0;
				LOC52 = rawNewString((*Result).literal->Sup.len + 3);
appendString(LOC52, (*Result).literal);
appendString(LOC52, ((NimStringDesc*) &TMP1123));
appendChar(LOC52, (*L).Sup.buf[endpos]);
				lexmessage_181483((&(*L)), ((NU16) 14), LOC52);
			}
			LA33: ;
		}
		break;
		case 105:
		case 73:
		{
			endpos += ((NI) 1);
			{
				NIM_BOOL LOC56;
				LOC56 = 0;
				LOC56 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(54));
				if (!(LOC56)) goto LA57;
				LOC56 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(52));
				LA57: ;
				if (!LOC56) goto LA58;
				(*Result).toktype = ((NU8) 77);
				endpos += ((NI) 2);
			}
			goto LA54;
			LA58: ;
			{
				NIM_BOOL LOC61;
				LOC61 = 0;
				LOC61 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(51));
				if (!(LOC61)) goto LA62;
				LOC61 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(50));
				LA62: ;
				if (!LOC61) goto LA63;
				(*Result).toktype = ((NU8) 76);
				endpos += ((NI) 2);
			}
			goto LA54;
			LA63: ;
			{
				NIM_BOOL LOC66;
				LOC66 = 0;
				LOC66 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(49));
				if (!(LOC66)) goto LA67;
				LOC66 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(54));
				LA67: ;
				if (!LOC66) goto LA68;
				(*Result).toktype = ((NU8) 75);
				endpos += ((NI) 2);
			}
			goto LA54;
			LA68: ;
			{
				if (!((NU8)((*L).Sup.buf[endpos]) == (NU8)(56))) goto LA71;
				(*Result).toktype = ((NU8) 74);
				endpos += ((NI) 1);
			}
			goto LA54;
			LA71: ;
			{
				NimStringDesc* LOC74;
				LOC74 = 0;
				LOC74 = rawNewString((*Result).literal->Sup.len + 3);
appendString(LOC74, (*Result).literal);
appendString(LOC74, ((NimStringDesc*) &TMP1124));
appendChar(LOC74, (*L).Sup.buf[endpos]);
				lexmessage_181483((&(*L)), ((NU16) 14), LOC74);
			}
			LA54: ;
		}
		break;
		case 117:
		case 85:
		{
			endpos += ((NI) 1);
			{
				NIM_BOOL LOC78;
				LOC78 = 0;
				LOC78 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(54));
				if (!(LOC78)) goto LA79;
				LOC78 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(52));
				LA79: ;
				if (!LOC78) goto LA80;
				(*Result).toktype = ((NU8) 82);
				endpos += ((NI) 2);
			}
			goto LA76;
			LA80: ;
			{
				NIM_BOOL LOC83;
				LOC83 = 0;
				LOC83 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(51));
				if (!(LOC83)) goto LA84;
				LOC83 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(50));
				LA84: ;
				if (!LOC83) goto LA85;
				(*Result).toktype = ((NU8) 81);
				endpos += ((NI) 2);
			}
			goto LA76;
			LA85: ;
			{
				NIM_BOOL LOC88;
				LOC88 = 0;
				LOC88 = ((NU8)((*L).Sup.buf[endpos]) == (NU8)(49));
				if (!(LOC88)) goto LA89;
				LOC88 = ((NU8)((*L).Sup.buf[(NI)(endpos + ((NI) 1))]) == (NU8)(54));
				LA89: ;
				if (!LOC88) goto LA90;
				(*Result).toktype = ((NU8) 80);
				endpos += ((NI) 2);
			}
			goto LA76;
			LA90: ;
			{
				if (!((NU8)((*L).Sup.buf[endpos]) == (NU8)(56))) goto LA93;
				(*Result).toktype = ((NU8) 79);
				endpos += ((NI) 1);
			}
			goto LA76;
			LA93: ;
			{
				(*Result).toktype = ((NU8) 78);
			}
			LA76: ;
		}
		break;
		default:
		{
			NimStringDesc* LOC97;
			LOC97 = 0;
			LOC97 = rawNewString((*Result).literal->Sup.len + 2);
appendString(LOC97, (*Result).literal);
appendString(LOC97, ((NimStringDesc*) &TMP1125));
appendChar(LOC97, (*L).Sup.buf[endpos]);
			lexmessage_181483((&(*L)), ((NU16) 14), LOC97);
		}
		break;
		}
	}
	goto LA24;
	LA26: ;
	{
		(*L).Sup.bufpos = pos;
	}
	LA24: ;
	pushSafePoint(&TMP1126);
	TMP1126.status = _setjmp(TMP1126.context);
	if (TMP1126.status == 0) {
		{
			NIM_BOOL LOC102;
			LOC102 = 0;
			LOC102 = ((NU8)((*L).Sup.buf[pos]) == (NU8)(48));
			if (!(LOC102)) goto LA103;
			LOC102 = (((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(120)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(98)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(66)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(79)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(99)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(67)));
			LA103: ;
			if (!LOC102) goto LA104;
			pos += ((NI) 2);
			xi = IL64(0);
			switch (((NU8)((*L).Sup.buf[(NI)(pos - ((NI) 1))]))) {
			case 98:
			case 66:
			{
				(*Result).base = ((NU8) 1);
				{
					while (1) {
						switch (((NU8)((*L).Sup.buf[pos]))) {
						case 50 ... 57:
						case 46:
						{
							lexmessage_181483((&(*L)), ((NU16) 14), (*Result).literal);
							pos += ((NI) 1);
						}
						break;
						case 95:
						{
							{
								if (!!((((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(49))))) goto LA113;
								lexmessage_181483((&(*L)), ((NU16) 12), ((NimStringDesc*) &TMP1114));
								goto LA107;
							}
							LA113: ;
							pos += ((NI) 1);
						}
						break;
						case 48:
						case 49:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(IL64(1))) | ((NI64) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 48)))));
							pos += ((NI) 1);
						}
						break;
						default:
						{
							goto LA107;
						}
						break;
						}
					}
				} LA107: ;
			}
			break;
			case 111:
			case 99:
			case 67:
			{
				(*Result).base = ((NU8) 2);
				{
					while (1) {
						switch (((NU8)((*L).Sup.buf[pos]))) {
						case 56 ... 57:
						case 46:
						{
							lexmessage_181483((&(*L)), ((NU16) 14), (*Result).literal);
							pos += ((NI) 1);
						}
						break;
						case 95:
						{
							{
								if (!!((((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(55))))) goto LA124;
								lexmessage_181483((&(*L)), ((NU16) 12), ((NimStringDesc*) &TMP1114));
								goto LA118;
							}
							LA124: ;
							pos += ((NI) 1);
						}
						break;
						case 48 ... 55:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(IL64(3))) | ((NI64) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 48)))));
							pos += ((NI) 1);
						}
						break;
						default:
						{
							goto LA118;
						}
						break;
						}
					}
				} LA118: ;
			}
			break;
			case 79:
			{
				lexmessage_181483((&(*L)), ((NU16) 14), (*Result).literal);
			}
			break;
			case 120:
			case 88:
			{
				(*Result).base = ((NU8) 3);
				{
					while (1) {
						switch (((NU8)((*L).Sup.buf[pos]))) {
						case 95:
						{
							{
								if (!!((((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(102)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(70))))) goto LA135;
								lexmessage_181483((&(*L)), ((NU16) 12), ((NimStringDesc*) &TMP1114));
								goto LA130;
							}
							LA135: ;
							pos += ((NI) 1);
						}
						break;
						case 48 ... 57:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(IL64(4))) | ((NI64) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 48)))));
							pos += ((NI) 1);
						}
						break;
						case 97 ... 102:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(IL64(4))) | ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 97)))) + ((NI) 10)))));
							pos += ((NI) 1);
						}
						break;
						case 65 ... 70:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(IL64(4))) | ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 65)))) + ((NI) 10)))));
							pos += ((NI) 1);
						}
						break;
						default:
						{
							goto LA130;
						}
						break;
						}
					}
				} LA130: ;
			}
			break;
			default:
			{
				Tlineinfo163338 LOC142;
				LOC142 = getlineinfo_181453((&(*L)));
				internalerror_165199(LOC142, ((NimStringDesc*) &TMP1127));
			}
			break;
			}
			switch ((*Result).toktype) {
			case ((NU8) 73):
			case ((NU8) 77):
			{
				(*Result).inumber = xi;
			}
			break;
			case ((NU8) 74):
			{
				(*Result).inumber = ((NI64) (((NI8)(NU8)(NU)(((NI) (xi))))));
			}
			break;
			case ((NU8) 75):
			{
				(*Result).inumber = ((NI64) (((NI16)(NU16)(NU)(((NI) (xi))))));
			}
			break;
			case ((NU8) 76):
			{
				(*Result).inumber = ((NI64) (((NI32)(NU32)(NU64)(xi))));
			}
			break;
			case ((NU8) 78):
			case ((NU8) 82):
			{
				(*Result).inumber = xi;
			}
			break;
			case ((NU8) 79):
			{
				(*Result).inumber = ((NI64) (((NI8)(NU8)(NU)(((NI) (xi))))));
			}
			break;
			case ((NU8) 80):
			{
				(*Result).inumber = ((NI64) (((NI16)(NU16)(NU)(((NI) (xi))))));
			}
			break;
			case ((NU8) 81):
			{
				(*Result).inumber = ((NI64) (((NI32)(NU32)(NU64)(xi))));
			}
			break;
			case ((NU8) 84):
			{
				(*Result).fnumber = ((NF) ((*((NF32*) ((&xi))))));
			}
			break;
			case ((NU8) 85):
			{
				(*Result).fnumber = (*((NF*) ((&xi))));
			}
			break;
			default:
			{
				Tlineinfo163338 LOC154;
				LOC154 = getlineinfo_181453((&(*L)));
				internalerror_165199(LOC154, ((NimStringDesc*) &TMP1127));
			}
			break;
			}
		}
		goto LA100;
		LA104: ;
		{
			NIM_BOOL LOC156;
			NIM_BOOL LOC157;
			LOC156 = 0;
			LOC157 = 0;
			LOC157 = isfloatliteral_181605((*Result).literal);
			if (LOC157) goto LA158;
			LOC157 = ((*Result).toktype == ((NU8) 84));
			LA158: ;
			LOC156 = LOC157;
			if (LOC156) goto LA159;
			LOC156 = ((*Result).toktype == ((NU8) 85));
			LA159: ;
			if (!LOC156) goto LA160;
			(*Result).fnumber = nsuParseFloat((*Result).literal);
			{
				if (!((*Result).toktype == ((NU8) 73))) goto LA164;
				(*Result).toktype = ((NU8) 83);
			}
			LA164: ;
		}
		goto LA100;
		LA160: ;
		{
			NI len;
			if (!((*Result).toktype == ((NU8) 82))) goto LA167;
			xi = IL64(0);
			len = unsafeparseuint_181659((*Result).literal, (&xi), ((NI) 0));
			{
				NIM_BOOL LOC171;
				Valueerror3449* volatile e_182255;
				NimStringDesc* LOC175;
				NimStringDesc* LOC176;
				LOC171 = 0;
				LOC171 = !((len == ((*Result).literal ? (*Result).literal->Sup.len : 0)));
				if (LOC171) goto LA172;
				LOC171 = (len == ((NI) 0));
				LA172: ;
				if (!LOC171) goto LA173;
				e_182255 = 0;
				e_182255 = (Valueerror3449*) newObj((&NTI22401), sizeof(Valueerror3449));
				(*e_182255).Sup.Sup.m_type = (&NTI3449);
				LOC175 = 0;
				LOC176 = 0;
				LOC176 = nimInt64ToStr(xi);
				LOC175 = rawNewString(LOC176->Sup.len + 17);
appendString(LOC175, ((NimStringDesc*) &TMP1128));
appendString(LOC175, LOC176);
				asgnRefNoCycle((void**) (&(*e_182255).Sup.message), LOC175);
				raiseException((Exception*)e_182255, "ValueError");
			}
			LA173: ;
			(*Result).inumber = xi;
		}
		goto LA100;
		LA167: ;
		{
			(*Result).inumber = nsuParseBiggestInt((*Result).literal);
			{
				NIM_BOOL LOC180;
				LOC180 = 0;
				LOC180 = ((*Result).inumber < IL64(-2147483648));
				if (LOC180) goto LA181;
				LOC180 = (IL64(2147483647) < (*Result).inumber);
				LA181: ;
				if (!LOC180) goto LA182;
				{
					if (!((*Result).toktype == ((NU8) 73))) goto LA186;
					(*Result).toktype = ((NU8) 77);
				}
				goto LA184;
				LA186: ;
				{
					if (!((*Result).toktype == ((NU8) 74) || (*Result).toktype == ((NU8) 75) || (*Result).toktype == ((NU8) 76))) goto LA189;
					lexmessage_181483((&(*L)), ((NU16) 15), (*Result).literal);
				}
				goto LA184;
				LA189: ;
				LA184: ;
			}
			goto LA178;
			LA182: ;
			{
				NIM_BOOL LOC192;
				NIM_BOOL LOC194;
				LOC192 = 0;
				LOC192 = ((*Result).toktype == ((NU8) 74));
				if (!(LOC192)) goto LA193;
				LOC194 = 0;
				LOC194 = ((*Result).inumber < IL64(-128));
				if (LOC194) goto LA195;
				LOC194 = (IL64(127) < (*Result).inumber);
				LA195: ;
				LOC192 = LOC194;
				LA193: ;
				if (!LOC192) goto LA196;
				lexmessage_181483((&(*L)), ((NU16) 15), (*Result).literal);
			}
			goto LA178;
			LA196: ;
			{
				NIM_BOOL LOC199;
				NIM_BOOL LOC201;
				LOC199 = 0;
				LOC199 = ((*Result).toktype == ((NU8) 75));
				if (!(LOC199)) goto LA200;
				LOC201 = 0;
				LOC201 = ((*Result).inumber < IL64(-32768));
				if (LOC201) goto LA202;
				LOC201 = (IL64(32767) < (*Result).inumber);
				LA202: ;
				LOC199 = LOC201;
				LA200: ;
				if (!LOC199) goto LA203;
				lexmessage_181483((&(*L)), ((NU16) 15), (*Result).literal);
			}
			goto LA178;
			LA203: ;
			LA178: ;
		}
		LA100: ;
		popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(getCurrentException()->Sup.m_type, (&NTI3449))) {
			TMP1126.status = 0;
			lexmessage_181483((&(*L)), ((NU16) 14), (*Result).literal);
			popCurrentException();
		}
		else 		if (isObj(getCurrentException()->Sup.m_type, (&NTI3443))||isObj(getCurrentException()->Sup.m_type, (&NTI3459))) {
			TMP1126.status = 0;
			lexmessage_181483((&(*L)), ((NU16) 15), (*Result).literal);
			popCurrentException();
		}
	}
	if (TMP1126.status != 0) reraiseException();
	(*L).Sup.bufpos = endpos;
}

N_NIMCALL(void, rawgettok_184848)(Tlexer181185* L, Ttoken181181* tok) {
	NIM_CHAR c;
	filltoken_181380(tok);
	{
		if (!(((NI) 0) <= (*L).indentahead)) goto LA3;
		(*tok).indent = (*L).indentahead;
		(*L).currlineindent = (*L).indentahead;
		(*L).indentahead = ((NI) -1);
	}
	goto LA1;
	LA3: ;
	{
		(*tok).indent = ((NI) -1);
	}
	LA1: ;
	skip_184437(L, tok);
	c = (*L).Sup.buf[(*L).Sup.bufpos];
	(*tok).line = (*L).Sup.linenumber;
	(*tok).col = getcolnumber_179059((&(*L).Sup), (*L).Sup.bufpos);
	{
		if (!(((NU8)(c)) >= ((NU8)(65)) && ((NU8)(c)) <= ((NU8)(81)) || ((NU8)(c)) >= ((NU8)(83)) && ((NU8)(c)) <= ((NU8)(90)) || ((NU8)(c)) >= ((NU8)(97)) && ((NU8)(c)) <= ((NU8)(107)) || ((NU8)(c)) >= ((NU8)(109)) && ((NU8)(c)) <= ((NU8)(113)) || ((NU8)(c)) >= ((NU8)(115)) && ((NU8)(c)) <= ((NU8)(122)) || ((NU8)(c)) >= ((NU8)(128)) && ((NU8)(c)) <= ((NU8)(255)))) goto LA8;
		getsymbol_182961(L, tok);
	}
	goto LA6;
	LA8: ;
	{
		switch (((NU8)(c))) {
		case 35:
		{
			scancomment_183202(L, tok);
		}
		break;
		case 42:
		{
			{
				NIM_BOOL LOC15;
				NI h;
				LOC15 = 0;
				LOC15 = ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(58));
				if (!(LOC15)) goto LA16;
				LOC15 = !(((TMP1118[((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 2))]))/8] &(1<<(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 2))]))%8)))!=0));
				LA16: ;
				if (!LOC15) goto LA17;
				h = HEX21HEX26_131025(((NI) 0), ((NI) 42));
				endoperator_183090(L, tok, (NI)((*L).Sup.bufpos + ((NI) 1)), h);
			}
			goto LA13;
			LA17: ;
			{
				getoperator_183115(L, tok);
			}
			LA13: ;
		}
		break;
		case 44:
		{
			(*tok).toktype = ((NU8) 105);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 108:
		{
			{
				if (!!((((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(95)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(255))))) goto LA24;
				lexmessage_181483((&(*L)), ((NU16) 236), ((NimStringDesc*) &TMP715));
			}
			LA24: ;
			getsymbol_182961(L, tok);
		}
		break;
		case 114:
		case 82:
		{
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(34))) goto LA29;
				(*L).Sup.bufpos += ((NI) 1);
				getstring_182764(L, tok, NIM_TRUE);
			}
			goto LA27;
			LA29: ;
			{
				getsymbol_182961(L, tok);
			}
			LA27: ;
		}
		break;
		case 40:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC35;
				LOC35 = 0;
				LOC35 = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(LOC35)) goto LA36;
				LOC35 = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA36: ;
				if (!LOC35) goto LA37;
				(*tok).toktype = ((NU8) 103);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA33;
			LA37: ;
			{
				(*tok).toktype = ((NU8) 93);
			}
			LA33: ;
		}
		break;
		case 41:
		{
			(*tok).toktype = ((NU8) 94);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 91:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC44;
				LOC44 = 0;
				LOC44 = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(LOC44)) goto LA45;
				LOC44 = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA45: ;
				if (!LOC44) goto LA46;
				(*tok).toktype = ((NU8) 99);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA42;
			LA46: ;
			{
				(*tok).toktype = ((NU8) 95);
			}
			LA42: ;
		}
		break;
		case 93:
		{
			(*tok).toktype = ((NU8) 96);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 46:
		{
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(93))) goto LA53;
				(*tok).toktype = ((NU8) 100);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA51;
			LA53: ;
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(125))) goto LA56;
				(*tok).toktype = ((NU8) 102);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA51;
			LA56: ;
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(41))) goto LA59;
				(*tok).toktype = ((NU8) 104);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA51;
			LA59: ;
			{
				getoperator_183115(L, tok);
			}
			LA51: ;
		}
		break;
		case 123:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC65;
				LOC65 = 0;
				LOC65 = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(LOC65)) goto LA66;
				LOC65 = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA66: ;
				if (!LOC65) goto LA67;
				(*tok).toktype = ((NU8) 101);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA63;
			LA67: ;
			{
				(*tok).toktype = ((NU8) 97);
			}
			LA63: ;
		}
		break;
		case 125:
		{
			(*tok).toktype = ((NU8) 98);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 59:
		{
			(*tok).toktype = ((NU8) 106);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 96:
		{
			(*tok).toktype = ((NU8) 114);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 95:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				if (!!((((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(255))))) goto LA76;
				(*tok).toktype = ((NU8) 2);
				unsureAsgnRef((void**) (&(*tok).ident), getident_167463(((NimStringDesc*) &TMP1114)));
			}
			goto LA74;
			LA76: ;
			{
				NimStringDesc* LOC79;
				NimStringDesc* LOC80;
				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
				(*tok).toktype = ((NU8) 0);
				LOC79 = 0;
				LOC80 = 0;
				LOC80 = nimIntToStr(((NI) (((NU8)(c)))));
				LOC79 = rawNewString(LOC80->Sup.len + 5);
appendChar(LOC79, c);
appendString(LOC79, ((NimStringDesc*) &TMP1120));
appendString(LOC79, LOC80);
appendChar(LOC79, 41);
				lexmessage_181483((&(*L)), ((NU16) 12), LOC79);
			}
			LA74: ;
		}
		break;
		case 34:
		{
			NIM_BOOL rawmode;
			NIM_BOOL LOC82;
			LOC82 = 0;
			LOC82 = (((NI) 0) < (*L).Sup.bufpos);
			if (!(LOC82)) goto LA83;
			LOC82 = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(255)));
			LA83: ;
			rawmode = LOC82;
			getstring_182764(L, tok, rawmode);
			{
				if (!rawmode) goto LA86;
				(*tok).toktype += ((NI) 2);
			}
			LA86: ;
		}
		break;
		case 39:
		{
			(*tok).toktype = ((NU8) 92);
			getcharacter_182911(L, tok);
			(*tok).toktype = ((NU8) 92);
		}
		break;
		case 48 ... 57:
		{
			getnumber_181747(L, (&(*tok)));
		}
		break;
		default:
		{
			{
				if (!((TMP1118[((NU8)(c))/8] &(1<<(((NU8)(c))%8)))!=0)) goto LA93;
				getoperator_183115(L, tok);
			}
			goto LA91;
			LA93: ;
			{
				if (!((NU8)(c) == (NU8)(0))) goto LA96;
				(*tok).toktype = ((NU8) 1);
				(*tok).indent = ((NI) 0);
			}
			goto LA91;
			LA96: ;
			{
				NimStringDesc* LOC99;
				NimStringDesc* LOC100;
				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
				(*tok).toktype = ((NU8) 0);
				LOC99 = 0;
				LOC100 = 0;
				LOC100 = nimIntToStr(((NI) (((NU8)(c)))));
				LOC99 = rawNewString(LOC100->Sup.len + 5);
appendChar(LOC99, c);
appendString(LOC99, ((NimStringDesc*) &TMP1120));
appendString(LOC99, LOC100);
appendChar(LOC99, 41);
				lexmessage_181483((&(*L)), ((NU16) 12), LOC99);
				(*L).Sup.bufpos += ((NI) 1);
			}
			LA91: ;
		}
		break;
		}
	}
	LA6: ;
}

N_NIMCALL(void, lexmessagetok_181494)(Tlexer181185* L, NU16 msg, Ttoken181181* tok, NimStringDesc* arg) {
	Tlineinfo163338 info;
	info = newlineinfo_163866((*L).fileidx, (*tok).line, (*tok).col);
	dispmessage_181463(L, info, msg, arg);
}

N_NIMCALL(NIM_BOOL, iskeyword_181229)(NU8 kind) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (((NU8) 3) <= kind);
	if (!(LOC1)) goto LA2;
	LOC1 = (kind <= ((NU8) 72));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(NimStringDesc*, toktostr_181323)(Ttoken181181* tok) {
	NimStringDesc* result;
	result = 0;
	switch ((*tok).toktype) {
	case ((NU8) 73) ... ((NU8) 77):
	{
		result = nimInt64ToStr((*tok).inumber);
	}
	break;
	case ((NU8) 83) ... ((NU8) 85):
	{
		result = nimFloatToStr((*tok).fnumber);
	}
	break;
	case ((NU8) 0):
	case ((NU8) 87) ... ((NU8) 92):
	case ((NU8) 113):
	{
		result = copyString((*tok).literal);
	}
	break;
	case ((NU8) 93) ... ((NU8) 107):
	case ((NU8) 1):
	case ((NU8) 114):
	{
		result = copyString(Toktypetostr_181169[((*tok).toktype)- 0]);
	}
	break;
	default:
	{
		{
			if (!!(((*tok).ident == NIM_NIL))) goto LA8;
			result = copyString((*(*tok).ident).s);
		}
		goto LA6;
		LA8: ;
		{
			internalerror_165218(((NimStringDesc*) &TMP1272));
			result = copyString(((NimStringDesc*) &TMP715));
		}
		LA6: ;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, prettytok_181345)(Ttoken181181* tok) {
	NimStringDesc* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = iskeyword_181229((*tok).toktype);
		if (!LOC3) goto LA4;
		LOC6 = 0;
		LOC6 = rawNewString((*(*tok).ident).s->Sup.len + 8);
appendString(LOC6, ((NimStringDesc*) &TMP1268));
appendString(LOC6, (*(*tok).ident).s);
		result = LOC6;
	}
	goto LA1;
	LA4: ;
	{
		result = toktostr_181323(tok);
	}
	LA1: ;
	return result;
}

N_NIMCALL(void, closelexer_181424)(Tlexer181185* lex) {
	Tbaselexer179024* LOC1;
	glinescompiled_181213 += (*lex).Sup.linenumber;
	LOC1 = 0;
	LOC1 = &lex->Sup;
	closebaselexer_179045(LOC1);
}

N_NIMCALL(NIM_BOOL, isnimidentifier_181257)(NimStringDesc* s) {
	NIM_BOOL result;
{	result = 0;
	{
		NI i;
		if (!(((NU8)(s->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)(s->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(90)) || ((NU8)(s->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(255)))) goto LA3;
		i = ((NI) 1);
		{
			while (1) {
				if (!(i < (s ? s->Sup.len : 0))) goto LA6;
				{
					if (!((NU8)(s->data[i]) == (NU8)(95))) goto LA9;
					i += ((NI) 1);
					{
						if (!!((((NU8)(s->data[i])) >= ((NU8)(97)) && ((NU8)(s->data[i])) <= ((NU8)(122)) || ((NU8)(s->data[i])) >= ((NU8)(65)) && ((NU8)(s->data[i])) <= ((NU8)(90)) || ((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) >= ((NU8)(128)) && ((NU8)(s->data[i])) <= ((NU8)(255))))) goto LA13;
						goto BeforeRet;
					}
					LA13: ;
				}
				LA9: ;
				{
					if (!!((((NU8)(s->data[i])) >= ((NU8)(97)) && ((NU8)(s->data[i])) <= ((NU8)(122)) || ((NU8)(s->data[i])) >= ((NU8)(65)) && ((NU8)(s->data[i])) <= ((NU8)(90)) || ((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) >= ((NU8)(128)) && ((NU8)(s->data[i])) <= ((NU8)(255))))) goto LA17;
					goto BeforeRet;
				}
				LA17: ;
				i += ((NI) 1);
			} LA6: ;
		}
		result = NIM_TRUE;
	}
	LA3: ;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, openlexer_181412)(Tlexer181185* lex, NimStringDesc* filename, Tllstream178204* inputstream) {
	NI32 LOC1;
	LOC1 = 0;
	LOC1 = fileinfoidx_163853(filename);
	openlexer_181391(lex, LOC1, inputstream);
}

N_NIMCALL(void, printtok_181355)(Ttoken181181* tok) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = nimIntToStr((*tok).line);
	LOC3 = 0;
	LOC3 = nimIntToStr((*tok).col);
	LOC4 = 0;
	LOC4 = toktostr_181323(tok);
	LOC1 = rawNewString(LOC2->Sup.len + LOC3->Sup.len + Toktypetostr_181169[((*tok).toktype)- 0]->Sup.len + LOC4->Sup.len + 3);
appendString(LOC1, LOC2);
appendString(LOC1, ((NimStringDesc*) &TMP1256));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP4973));
appendString(LOC1, Toktypetostr_181169[((*tok).toktype)- 0]);
appendString(LOC1, ((NimStringDesc*) &TMP4974));
appendString(LOC1, LOC4);
	msgwriteln_164536(LOC1);
}
NIM_EXTERNC N_NOINLINE(void, nimsrc_lexerInit)(void) {
	asgnRefNoCycle((void**) (&dummyident_181364), getident_167463(((NimStringDesc*) &TMP715)));
}

NIM_EXTERNC N_NOINLINE(void, nimsrc_lexerDatInit)(void) {
static TNimNode* TMP1097[5];
static TNimNode* TMP1098[2];
static TNimNode* TMP1100[11];
static TNimNode* TMP1101[119];
NI TMP1103;
static char* NIM_CONST TMP1102[119] = {
"tkInvalid", 
"tkEof", 
"tkSymbol", 
"tkAddr", 
"tkAnd", 
"tkAs", 
"tkAsm", 
"tkAtomic", 
"tkBind", 
"tkBlock", 
"tkBreak", 
"tkCase", 
"tkCast", 
"tkConcept", 
"tkConst", 
"tkContinue", 
"tkConverter", 
"tkDefer", 
"tkDiscard", 
"tkDistinct", 
"tkDiv", 
"tkDo", 
"tkElif", 
"tkElse", 
"tkEnd", 
"tkEnum", 
"tkExcept", 
"tkExport", 
"tkFinally", 
"tkFor", 
"tkFrom", 
"tkFunc", 
"tkGeneric", 
"tkIf", 
"tkImport", 
"tkIn", 
"tkInclude", 
"tkInterface", 
"tkIs", 
"tkIsnot", 
"tkIterator", 
"tkLet", 
"tkMacro", 
"tkMethod", 
"tkMixin", 
"tkMod", 
"tkNil", 
"tkNot", 
"tkNotin", 
"tkObject", 
"tkOf", 
"tkOr", 
"tkOut", 
"tkProc", 
"tkPtr", 
"tkRaise", 
"tkRef", 
"tkReturn", 
"tkShl", 
"tkShr", 
"tkStatic", 
"tkTemplate", 
"tkTry", 
"tkTuple", 
"tkType", 
"tkUsing", 
"tkVar", 
"tkWhen", 
"tkWhile", 
"tkWith", 
"tkWithout", 
"tkXor", 
"tkYield", 
"tkIntLit", 
"tkInt8Lit", 
"tkInt16Lit", 
"tkInt32Lit", 
"tkInt64Lit", 
"tkUIntLit", 
"tkUInt8Lit", 
"tkUInt16Lit", 
"tkUInt32Lit", 
"tkUInt64Lit", 
"tkFloatLit", 
"tkFloat32Lit", 
"tkFloat64Lit", 
"tkFloat128Lit", 
"tkStrLit", 
"tkRStrLit", 
"tkTripleStrLit", 
"tkGStrLit", 
"tkGTripleStrLit", 
"tkCharLit", 
"tkParLe", 
"tkParRi", 
"tkBracketLe", 
"tkBracketRi", 
"tkCurlyLe", 
"tkCurlyRi", 
"tkBracketDotLe", 
"tkBracketDotRi", 
"tkCurlyDotLe", 
"tkCurlyDotRi", 
"tkParDotLe", 
"tkParDotRi", 
"tkComma", 
"tkSemiColon", 
"tkColon", 
"tkColonColon", 
"tkEquals", 
"tkDot", 
"tkDotDot", 
"tkOpr", 
"tkComment", 
"tkAccent", 
"tkSpaces", 
"tkInfixOpr", 
"tkPrefixOpr", 
"tkPostfixOpr"};
static TNimNode* TMP1104[4];
NI TMP1106;
static char* NIM_CONST TMP1105[4] = {
"base10", 
"base2", 
"base8", 
"base16"};
static TNimNode TMP709[147];
NTI181185.size = sizeof(Tlexer181185);
NTI181185.kind = 17;
NTI181185.base = (&NTI179024);
TMP1097[0] = &TMP709[1];
TMP709[1].kind = 1;
TMP709[1].offset = offsetof(Tlexer181185, fileidx);
TMP709[1].typ = (&NTI114);
TMP709[1].name = "fileIdx";
TMP1097[1] = &TMP709[2];
TMP709[2].kind = 1;
TMP709[2].offset = offsetof(Tlexer181185, indentahead);
TMP709[2].typ = (&NTI108);
TMP709[2].name = "indentAhead";
TMP1097[2] = &TMP709[3];
TMP709[3].kind = 1;
TMP709[3].offset = offsetof(Tlexer181185, currlineindent);
TMP709[3].typ = (&NTI108);
TMP709[3].name = "currLineIndent";
TMP1097[3] = &TMP709[4];
TMP709[4].kind = 1;
TMP709[4].offset = offsetof(Tlexer181185, strongspaces);
TMP709[4].typ = (&NTI138);
TMP709[4].name = "strongSpaces";
TMP1097[4] = &TMP709[5];
NTI181183.size = sizeof(TY522942);
NTI181183.kind = 18;
NTI181183.base = 0;
NTI181183.flags = 2;
TMP1098[0] = &TMP709[7];
TMP709[7].kind = 1;
TMP709[7].offset = offsetof(TY522942, Field0);
TMP709[7].typ = (&NTI153);
TMP709[7].name = "Field0";
TMP1098[1] = &TMP709[8];
NTI522945.size = sizeof(TY522945);
NTI522945.kind = 18;
NTI522945.base = 0;
NTI522945.flags = 3;
TMP709[9].len = 0; TMP709[9].kind = 2;
NTI522945.node = &TMP709[9];
NTI522944.size = sizeof(TY522945*);
NTI522944.kind = 22;
NTI522944.base = (&NTI522945);
NTI522944.flags = 2;
NTI522944.marker = TMP1099;
TMP709[8].kind = 1;
TMP709[8].offset = offsetof(TY522942, Field1);
TMP709[8].typ = (&NTI522944);
TMP709[8].name = "Field1";
TMP709[6].len = 2; TMP709[6].kind = 2; TMP709[6].sons = &TMP1098[0];
NTI181183.node = &TMP709[6];
TMP709[5].kind = 1;
TMP709[5].offset = offsetof(Tlexer181185, errorhandler);
TMP709[5].typ = (&NTI181183);
TMP709[5].name = "errorHandler";
TMP709[0].len = 5; TMP709[0].kind = 2; TMP709[0].sons = &TMP1097[0];
NTI181185.node = &TMP709[0];
NTI181181.size = sizeof(Ttoken181181);
NTI181181.kind = 18;
NTI181181.base = 0;
NTI181181.flags = 2;
TMP1100[0] = &TMP709[11];
NTI181022.size = sizeof(NU8);
NTI181022.kind = 14;
NTI181022.base = 0;
NTI181022.flags = 3;
for (TMP1103 = 0; TMP1103 < 119; TMP1103++) {
TMP709[TMP1103+12].kind = 1;
TMP709[TMP1103+12].offset = TMP1103;
TMP709[TMP1103+12].name = TMP1102[TMP1103];
TMP1101[TMP1103] = &TMP709[TMP1103+12];
}
TMP709[131].len = 119; TMP709[131].kind = 2; TMP709[131].sons = &TMP1101[0];
NTI181022.node = &TMP709[131];
TMP709[11].kind = 1;
TMP709[11].offset = offsetof(Ttoken181181, toktype);
TMP709[11].typ = (&NTI181022);
TMP709[11].name = "tokType";
TMP1100[1] = &TMP709[132];
TMP709[132].kind = 1;
TMP709[132].offset = offsetof(Ttoken181181, indent);
TMP709[132].typ = (&NTI108);
TMP709[132].name = "indent";
TMP1100[2] = &TMP709[133];
TMP709[133].kind = 1;
TMP709[133].offset = offsetof(Ttoken181181, ident);
TMP709[133].typ = (&NTI167019);
TMP709[133].name = "ident";
TMP1100[3] = &TMP709[134];
TMP709[134].kind = 1;
TMP709[134].offset = offsetof(Ttoken181181, inumber);
TMP709[134].typ = (&NTI5710);
TMP709[134].name = "iNumber";
TMP1100[4] = &TMP709[135];
TMP709[135].kind = 1;
TMP709[135].offset = offsetof(Ttoken181181, fnumber);
TMP709[135].typ = (&NTI5712);
TMP709[135].name = "fNumber";
TMP1100[5] = &TMP709[136];
NTI181179.size = sizeof(NU8);
NTI181179.kind = 14;
NTI181179.base = 0;
NTI181179.flags = 3;
for (TMP1106 = 0; TMP1106 < 4; TMP1106++) {
TMP709[TMP1106+137].kind = 1;
TMP709[TMP1106+137].offset = TMP1106;
TMP709[TMP1106+137].name = TMP1105[TMP1106];
TMP1104[TMP1106] = &TMP709[TMP1106+137];
}
TMP709[141].len = 4; TMP709[141].kind = 2; TMP709[141].sons = &TMP1104[0];
NTI181179.node = &TMP709[141];
TMP709[136].kind = 1;
TMP709[136].offset = offsetof(Ttoken181181, base);
TMP709[136].typ = (&NTI181179);
TMP709[136].name = "base";
TMP1100[6] = &TMP709[142];
TMP709[142].kind = 1;
TMP709[142].offset = offsetof(Ttoken181181, strongspacea);
TMP709[142].typ = (&NTI110);
TMP709[142].name = "strongSpaceA";
TMP1100[7] = &TMP709[143];
TMP709[143].kind = 1;
TMP709[143].offset = offsetof(Ttoken181181, strongspaceb);
TMP709[143].typ = (&NTI110);
TMP709[143].name = "strongSpaceB";
TMP1100[8] = &TMP709[144];
TMP709[144].kind = 1;
TMP709[144].offset = offsetof(Ttoken181181, literal);
TMP709[144].typ = (&NTI149);
TMP709[144].name = "literal";
TMP1100[9] = &TMP709[145];
TMP709[145].kind = 1;
TMP709[145].offset = offsetof(Ttoken181181, line);
TMP709[145].typ = (&NTI108);
TMP709[145].name = "line";
TMP1100[10] = &TMP709[146];
TMP709[146].kind = 1;
TMP709[146].offset = offsetof(Ttoken181181, col);
TMP709[146].typ = (&NTI108);
TMP709[146].name = "col";
TMP709[10].len = 11; TMP709[10].kind = 2; TMP709[10].sons = &TMP1100[0];
NTI181181.node = &TMP709[10];
}

