/* Generated by Nim Compiler v0.17.2 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <setjmp.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef powerpc
#undef unix
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg;
typedef struct tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA;
typedef struct RootObj RootObj;
typedef struct tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw;
typedef struct tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyTuple_2uzTbg8jwom7zHhmM2RgHg tyTuple_2uzTbg8jwom7zHhmM2RgHg;
typedef struct tyObject_Env_lexerdotnim__sO5O0Qy9bzKs0atwA6HUBAw tyObject_Env_lexerdotnim__sO5O0Qy9bzKs0atwA6HUBAw;
typedef struct tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ;
typedef struct tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g;
typedef struct tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ;
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA {
  RootObj Sup;
NI bufpos;
NCSTRING buf;
NI bufLen;
tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
};
typedef NU8 tyEnum_CursorPosition_moKbK9a5baLOKMP3AQAcKoQ;
typedef NU16 tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc_l9buWVPY1qenw5uCj2k2Uqg;
struct tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg {
  tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyEnum_CursorPosition_moKbK9a5baLOKMP3AQAcKoQ cursor;
tyProc_l9buWVPY1qenw5uCj2k2Uqg errorHandler;
tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache;
};
struct tyTuple_2uzTbg8jwom7zHhmM2RgHg {
void* Field0;
tyObject_Env_lexerdotnim__sO5O0Qy9bzKs0atwA6HUBAw* Field1;
};
typedef NU8 tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA;
typedef NU8 tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q;
struct tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ {
tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA tokType;
NI indent;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* ident;
NI64 iNumber;
NF fNumber;
tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
typedef NU8 tyEnum_TLLStreamKind_jVcKY16LbOamXE9bxXUD6pQ;
struct tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw {
  RootObj Sup;
tyEnum_TLLStreamKind_jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
};
struct tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw {
NI16 line;
NI16 col;
NI32 fileIndex;
};
typedef N_CLOSURE_PTR(void, TM_4JpEWnGrmRM8CRqL3P2O1Q_15) (tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
typedef NU32 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg {
  RootObj Sup;
NI id;
};
struct tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g {
  tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg Sup;
NimStringDesc* s;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* next;
NI h;
};
typedef NU8 tySet_tyChar_nmiMWKVIe46vacnhAFrQvw[32];
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
Exception* up;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (Exception* e, void* ClE_0);
void* ClE_0;
} tyProc_KeeAOYBd84Ofsw6Y7LizaQ;
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
tyProc_KeeAOYBd84Ofsw6Y7LizaQ raiseAction;
};
struct tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA {
  Exception Sup;
};
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI lastSize;
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* freeChunksList;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
};
typedef NimStringDesc* tyArray_rhDLCy9aNYBAIsWVh16bA0A[119];
typedef NU8 tySet_tyEnum_MsgFlag_BzRTaQ6LrPDZKEKt9bswkOQ;
typedef tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* tyArray_CBfZt49asUfAsBVM7a3Rc9cw[8192];
struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw {
tyArray_CBfZt49asUfAsBVM7a3Rc9cw buckets;
NI wordCounter;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* idAnon;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* idDelegator;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* emptyIdent;
};
struct tyObject_Env_lexerdotnim__sO5O0Qy9bzKs0atwA6HUBAw {
  RootObj Sup;
};
struct tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w {
NI prevSize;
NI size;
};
struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ {
  tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* next;
tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ* freeList;
NI free;
NI acc;
NF data;
};
struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw {
NI size;
NI acc;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg {
  tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* next;
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NF data;
};
typedef NI tyArray_9a8QARi5WsUggNU9bom7kzTQ[8];
struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw {
tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
};
struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg {
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
};
struct tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ {
tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zeroField;
};
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, openBaseLexer_AhdjJJ6lkJ2zIxQnYdvcGQ)(tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L, tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw* inputstream, NI bufLen);
N_NIMCALL(void, fillToken_FTh5b29clR9cRU4ec2Lu61rA_2)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* L);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_NIMCALL(void, skip_HUKK9cILkwTBvMCbGFTZPSA_2)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(void, lexMessagePos_7djWaZAcRzxz15NpWpA9bHg)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NI pos, NimStringDesc* arg);
N_NIMCALL(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw, newLineInfo_Shbbzc11c9bnWkBc9b42npzA)(NI32 fileInfoIdx, NI line, NI col);
N_NIMCALL(void, dispMessage_olO3stLx9aJm9aCQZS85t8xQ)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(void, message_VpilfPWbplGz6ny7O9cfr2g_2)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(NI, handleCRLF_Dpj1gMjCw9bemAZV6KHW9cfw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, NI pos);
N_NIMCALL(NI, getColNumber_nRhrv4ZpI0tz0OPBe1mDKw)(tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L, NI pos);
N_NIMCALL(NimStringDesc*, newString_IDI9atgS7lyzs3XvOizultw)(NCSTRING s, NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(void, addSourceLine_mLTUCE9ahnN1BQlO7PtLymA)(NI32 fileIdx, NimStringDesc* line);
N_NIMCALL(NI, handleCR_BH0xyTNNGjFdfKKVBEL5rw)(tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L, NI pos);
N_NIMCALL(NI, handleLF_BH0xyTNNGjFdfKKVBEL5rw_3)(tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L, NI pos);
N_NIMCALL(void, skipMultiLineComment_GRATY1VQDIglUG1eI4jqeA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, NI start, NIM_BOOL isDoc);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, getSymbol_HUKK9cILkwTBvMCbGFTZPSA_3)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
static N_INLINE(NI, emarkamp__6dtCP6C39bxOkT4wrIPJwKghashes)(NI h, NI val);
N_NIMCALL(void, lexMessage_moxcy135mexMtB8c1DXBvA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw, getLineInfo_Ux0pJuM59b8dKTMi336q5DA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L);
static N_INLINE(NI, emarkdollar__zs9byUtT9cNi2e9clB27b2cUAhashes)(NI h);
N_NIMCALL(tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g*, getIdent_62GxCdwHvMBvMwCLnw1wyg)(tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* self, NCSTRING identifier, NI length, NI h);
N_NIMCALL(void, scanComment_HUKK9cILkwTBvMCbGFTZPSA_4)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
static N_INLINE(void, endOperator_QQWnqO8rfo8dE9cojAfTlVAlexer)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, NI pos, NI hash);
N_NIMCALL(void, getOperator_nJDzLaFCz6WphVhAQVrdqA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(void, getString_YG7m8w0rgfI3MdHCnA4maw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, NIM_BOOL rawMode);
N_NIMCALL(void, getEscapedChar_HUKK9cILkwTBvMCbGFTZPSA_5)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(void, handleHexChar_1e9csUsE2c69cW9cZBQwxW2Rw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, NI* xi);
N_NIMCALL(NIM_BOOL, matchTwoChars_c9bP1COYEYDhChM9c5lh9bDJQ)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, NIM_CHAR first, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw second);
N_NIMCALL(void, handleDecChars_1e9csUsE2c69cW9cZBQwxW2Rw_2)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, NI* xi);
N_NIMCALL(tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g*, getIdent_Y4Yr5rKoaxkzPcN8rPP9bWA)(tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* self, NimStringDesc* identifier);
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_HUKK9cILkwTBvMCbGFTZPSA_6)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(void, getNumber_9aBWWw9ce9azbTg8oMwTyFoEg)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* result);
N_NIMCALL(void, lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NI startpos);
N_NIMCALL(void, matchChars_f3XUyjUday2b0LWFkd9bI4Q)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars);
N_NIMCALL(void, matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars);
N_NIMCALL(void, internalError_MXmtqrCmYwtOPkDCFgUWKQ)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, NimStringDesc* errMsg);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_NIMCALL(NF, nsuParseFloat)(NimStringDesc* s);
N_NIMCALL(NI, unsafeParseUInt_bat7t0DiRlRbxAKUi9c9aqQw)(NimStringDesc* s, NI64* b, NI start);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
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);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(NIM_BOOL, isKeyword_W77DgLTdnCGF4HSY4vap5Q)(tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA kind);
N_NIMCALL(NimStringDesc*, tokToStr_TtD8kId4CzEkbAITBVCtzQ_2)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f);
N_NIMCALL(void, closeBaseLexer_cotVgXvyGKbiStcXgf0NTw_2)(tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L);
N_NIMCALL(void, openLexer_VnkJNxSy3Eov2D30qhzrvw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* lex, NI32 fileIdx, tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw* inputstream, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache);
N_NIMCALL(NI32, fileInfoIdx_RXxXBoV2drjjVnQa9abo19cQ)(NimStringDesc* filename);
N_NIMCALL(void, msgWriteln_mpdiFCyqIWmTQYjT6Mj9c6A)(NimStringDesc* s, tySet_tyEnum_MsgFlag_BzRTaQ6LrPDZKEKt9bswkOQ flags);
NI gLinesCompiled_A4hYMRw7F9b9aSLprP9aiou6Q;
extern TNimType NTI_z9a7O76kH1tJ9aXJ3h2MdEzA_;
TNimType NTI_IOWqYAjEw106AHiXcZcUGg_;
extern TNimType NTI_sVg18TP9cLifHyygRe9cro9aA_;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ_;
TNimType NTI_moKbK9a5baLOKMP3AQAcKoQ_;
TNimType NTI_l9buWVPY1qenw5uCj2k2Uqg_;
extern TNimType NTI_vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTI_58EFneeS9at7cA541QCoGAw_;
extern TNimType NTI_lnkYNZP9asc88UfiEGjLrbA_;
TNimType NTI_kLaEEPwLj8cag79cbYQIkHQ_;
TNimType NTI_vw8YkgaVtNadqP8v5OpXKA_;
extern TNimType NTI_1nh2T19a2BrGbBBQRS39bxRw_;
extern TNimType NTI_Aav8dQoMlCFnZRxA0IhTHQ_;
extern TNimType NTI_w9bl9a1ul9ctRJWiMl9cNnIMvg_;
TNimType NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_;
extern TNimType NTI_chXunH2dwinSkhpA6JnsXw_;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg_;
extern tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg;
extern NimStringDesc* tnl_Gp8EwkcsAP9am1klnCCHM4w;
extern TSafePoint* excHandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TNimType NTI_yCEN9anxCD6mzBxGjuaRBdg_;
extern TNimType NTI_Gi06FkNeykJn7mrqRZYrkA_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern Exception* currException_9bVPeDJlYTi9bQApZpfH8wjg;
extern TNimType NTI_I3Jtn27626sFBOls6BBQ2Q_;
extern TNimType NTI_wFuRaV3kWqFxI9b4hUjDJYA_;
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_14, "", 0);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_16, "\015\012", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_17, "end of multiline comment expected", 33);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_18, "_", 1);
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_19 = {
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}
;
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_20, "\357\277\277", 3);
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_21 = {
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(TM_4JpEWnGrmRM8CRqL3P2O1Q_22, " (\\", 3);
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_23 = {
0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0xFF, 0x03,
0x7E, 0x80, 0x00, 0x81, 0x7E, 0x82, 0x20, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_24 = {
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x50, 0x02, 0x20, 0x00, 0x50, 0x02, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_25 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
0x7E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_26 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_4JpEWnGrmRM8CRqL3P2O1Q_27 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00}
;
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_28, "getNumber", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_30, "invalid integer: ", 17);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_31, "tkInvalid", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_32, "[EOF]", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_33, "tkSymbol", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_34, "addr", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_35, "and", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_36, "as", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_37, "asm", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_38, "atomic", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_39, "bind", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_40, "block", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_41, "break", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_42, "case", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_43, "cast", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_44, "concept", 7);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_45, "const", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_46, "continue", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_47, "converter", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_48, "defer", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_49, "discard", 7);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_50, "distinct", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_51, "div", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_52, "do", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_53, "elif", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_54, "else", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_55, "end", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_56, "enum", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_57, "except", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_58, "export", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_59, "finally", 7);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_60, "for", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_61, "from", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_62, "func", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_63, "generic", 7);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_64, "if", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_65, "import", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_66, "in", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_67, "include", 7);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_68, "interface", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_69, "is", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_70, "isnot", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_71, "iterator", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_72, "let", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_73, "macro", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_74, "method", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_75, "mixin", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_76, "mod", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_77, "nil", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_78, "not", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_79, "notin", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_80, "object", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_81, "of", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_82, "or", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_83, "out", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_84, "proc", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_85, "ptr", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_86, "raise", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_87, "ref", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_88, "return", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_89, "shl", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_90, "shr", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_91, "static", 6);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_92, "template", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_93, "try", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_94, "tuple", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_95, "type", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_96, "using", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_97, "var", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_98, "when", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_99, "while", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_100, "with", 4);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_101, "without", 7);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_102, "xor", 3);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_103, "yield", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_104, "tkIntLit", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_105, "tkInt8Lit", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_106, "tkInt16Lit", 10);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_107, "tkInt32Lit", 10);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_108, "tkInt64Lit", 10);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_109, "tkUIntLit", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_110, "tkUInt8Lit", 10);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_111, "tkUInt16Lit", 11);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_112, "tkUInt32Lit", 11);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_113, "tkUInt64Lit", 11);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_114, "tkFloatLit", 10);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_115, "tkFloat32Lit", 12);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_116, "tkFloat64Lit", 12);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_117, "tkFloat128Lit", 13);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_118, "tkStrLit", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_119, "tkRStrLit", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_120, "tkTripleStrLit", 14);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_121, "tkGStrLit", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_122, "tkGTripleStrLit", 15);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_123, "tkCharLit", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_124, "(", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_125, ")", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_126, "[", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_127, "]", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_128, "{", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_129, "}", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_130, "[.", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_131, ".]", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_132, "{.", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_133, ".}", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_134, "(.", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_135, ".)", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_136, ",", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_137, ";", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_138, ":", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_139, "::", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_140, "=", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_141, ".", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_142, "..", 2);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_143, "tkOpr", 5);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_144, "tkComment", 9);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_145, "`", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_146, "tkSpaces", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_147, "tkInfixOpr", 10);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_148, "tkPrefixOpr", 11);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_149, "tkPostfixOpr", 12);
NIM_CONST tyArray_rhDLCy9aNYBAIsWVh16bA0A TokTypeToStr_7y4sYGQdJmj2c4r0emPULw = {((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_31),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_32),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_33),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_34),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_35),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_36),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_37),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_38),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_39),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_40),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_41),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_42),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_43),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_44),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_45),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_46),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_47),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_48),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_49),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_50),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_51),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_52),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_53),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_54),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_55),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_56),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_57),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_58),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_59),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_60),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_61),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_62),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_63),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_64),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_65),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_66),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_67),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_68),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_69),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_70),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_71),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_72),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_73),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_74),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_75),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_76),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_77),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_78),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_79),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_80),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_81),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_82),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_83),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_84),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_85),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_86),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_87),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_88),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_89),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_90),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_91),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_92),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_93),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_94),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_95),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_96),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_97),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_98),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_99),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_100),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_101),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_102),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_103),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_104),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_105),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_106),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_107),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_108),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_109),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_110),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_111),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_112),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_113),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_114),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_115),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_116),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_117),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_118),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_119),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_120),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_121),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_122),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_123),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_124),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_125),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_126),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_127),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_128),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_129),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_130),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_131),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_132),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_133),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_134),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_135),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_136),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_137),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_138),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_139),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_140),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_141),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_142),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_143),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_144),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_145),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_146),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_147),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_148),
((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_149)}
;
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_150, "keyword ", 8);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_151, "\011", 1);
STRING_LITERAL(TM_4JpEWnGrmRM8CRqL3P2O1Q_152, " ", 1);

N_NIMCALL(void, initToken_FTh5b29clR9cRU4ec2Lu61rA)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* L) {
	(*L).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 0);
	(*L).iNumber = IL64(0);
	(*L).indent = ((NI) 0);
	(*L).strongSpaceA = ((NI8) 0);
	unsureAsgnRef((void**) (&(*L).literal), copyString(((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14)));
	(*L).fNumber = 0.0;
	(*L).base = ((tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q) 0);
	unsureAsgnRef((void**) (&(*L).ident), NIM_NIL);
}

N_NIMCALL(void, openLexer_VnkJNxSy3Eov2D30qhzrvw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* lex, NI32 fileIdx, tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw* inputstream, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache) {
	tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* T1_;
	T1_ = (tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
	T1_ = &lex->Sup;
	openBaseLexer_AhdjJJ6lkJ2zIxQnYdvcGQ(T1_, inputstream, ((NI) 8192));
	(*lex).fileIdx = fileIdx;
	(*lex).indentAhead = ((NI) -1);
	(*lex).currLineIndent = ((NI) 0);
	(*lex).Sup.lineNumber += (*inputstream).lineOffset;
	unsureAsgnRef((void**) (&(*lex).cache), cache);
}

N_NIMCALL(void, fillToken_FTh5b29clR9cRU4ec2Lu61rA_2)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* L) {
	(*L).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 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 = ((tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q) 0);
	unsureAsgnRef((void**) (&(*L).ident), NIM_NIL);
}

N_NIMCALL(void, dispMessage_olO3stLx9aJm9aCQZS85t8xQ)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg) {
	{
		if (!((*L).errorHandler.ClP_0 == 0)) goto LA3_;
		message_VpilfPWbplGz6ny7O9cfr2g_2(info, msg, arg);
	}
	goto LA1_;
	LA3_: ;
	{
		(*L).errorHandler.ClE_0? (*L).errorHandler.ClP_0(info, msg, arg, (*L).errorHandler.ClE_0):((TM_4JpEWnGrmRM8CRqL3P2O1Q_15)((*L).errorHandler.ClP_0))(info, msg, arg);
	}
	LA1_: ;
}

N_NIMCALL(void, lexMessagePos_7djWaZAcRzxz15NpWpA9bHg)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NI pos, NimStringDesc* arg) {
	tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
	info = newLineInfo_Shbbzc11c9bnWkBc9b42npzA((*L).fileIdx, (*L).Sup.lineNumber, (NI)(pos - (*L).Sup.lineStart));
	dispMessage_olO3stLx9aJm9aCQZS85t8xQ((&(*L)), info, msg, arg);
}

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

N_NIMCALL(NI, handleCRLF_Dpj1gMjCw9bemAZV6KHW9cfw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, NI pos) {
	NI result;
	result = (NI)0;
	switch (((NU8)((*L).Sup.buf[pos]))) {
	case 13:
	{
		NI col;
		tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* T10_;
		col = getColNumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L).Sup), pos);
		{
			if (!(((NI) 80) < col)) goto LA4_;
			lexMessagePos_7djWaZAcRzxz15NpWpA9bHg(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 273), pos, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
		}
		LA4_: ;
		{
			NI lineStart;
			NimStringDesc* line;
			if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 27))&31U)))!=0)) goto LA8_;
			lineStart = (NI)(((NI) ((*L).Sup.buf)) + (*L).Sup.lineStart);
			line = newString_IDI9atgS7lyzs3XvOizultw(((NCSTRING) (lineStart)), col);
			addSourceLine_mLTUCE9ahnN1BQlO7PtLymA((*L).fileIdx, line);
		}
		LA8_: ;
		T10_ = (tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
		T10_ = &L->Sup;
		result = handleCR_BH0xyTNNGjFdfKKVBEL5rw(T10_, pos);
	}
	break;
	case 10:
	{
		NI col_2;
		tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* T20_;
		col_2 = getColNumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L).Sup), pos);
		{
			if (!(((NI) 80) < col_2)) goto LA14_;
			lexMessagePos_7djWaZAcRzxz15NpWpA9bHg(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 273), pos, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
		}
		LA14_: ;
		{
			NI lineStart_2;
			NimStringDesc* line_2;
			if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 27))&31U)))!=0)) goto LA18_;
			lineStart_2 = (NI)(((NI) ((*L).Sup.buf)) + (*L).Sup.lineStart);
			line_2 = newString_IDI9atgS7lyzs3XvOizultw(((NCSTRING) (lineStart_2)), col_2);
			addSourceLine_mLTUCE9ahnN1BQlO7PtLymA((*L).fileIdx, line_2);
		}
		LA18_: ;
		T20_ = (tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
		T20_ = &L->Sup;
		result = handleLF_BH0xyTNNGjFdfKKVBEL5rw_3(T20_, pos);
	}
	break;
	default:
	{
		result = pos;
	}
	break;
	}
	return result;
}

static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

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

N_NIMCALL(void, skipMultiLineComment_GRATY1VQDIglUG1eI4jqeA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, NI start, NIM_BOOL isDoc) {
	NI pos;
	NCSTRING buf;
	NI toStrip;
	NI nesting;
	pos = start;
	buf = (*L).Sup.buf;
	toStrip = ((NI) 0);
	{
		if (!isDoc) goto LA3_;
		toStrip = getColNumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L).Sup), pos);
		{
			while (1) {
				if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA6;
				pos += ((NI) 1);
			} LA6: ;
		}
		{
			if (!(((NU8)(buf[pos])) == ((NU8)(13)) || ((NU8)(buf[pos])) == ((NU8)(10)))) goto LA9_;
			pos = handleCRLF_Dpj1gMjCw9bemAZV6KHW9cfw(L, pos);
			buf = (*L).Sup.buf;
			toStrip = ((NI) 0);
			{
				while (1) {
					if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA12;
					pos += ((NI) 1);
					toStrip += ((NI) 1);
				} LA12: ;
			}
		}
		LA9_: ;
	}
	LA3_: ;
	nesting = ((NI) 0);
	{
		while (1) {
			switch (((NU8)(buf[pos]))) {
			case 35:
			{
				{
					if (!isDoc) goto LA18_;
					{
						NIM_BOOL T22_;
						T22_ = (NIM_BOOL)0;
						T22_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
						if (!(T22_)) goto LA23_;
						T22_ = ((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(91));
						LA23_: ;
						if (!T22_) goto LA24_;
						nesting += ((NI) 1);
					}
					LA24_: ;
					(*tok).literal = addChar((*tok).literal, 35);
				}
				goto LA16_;
				LA18_: ;
				{
					if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(91))) goto LA27_;
					nesting += ((NI) 1);
				}
				goto LA16_;
				LA27_: ;
				LA16_: ;
				pos += ((NI) 1);
			}
			break;
			case 93:
			{
				{
					if (!isDoc) goto LA32_;
					{
						NIM_BOOL T36_;
						T36_ = (NIM_BOOL)0;
						T36_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
						if (!(T36_)) goto LA37_;
						T36_ = ((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(35));
						LA37_: ;
						if (!T36_) goto LA38_;
						{
							if (!(nesting == ((NI) 0))) goto LA42_;
							pos += ((NI) 3);
							goto LA13;
						}
						LA42_: ;
						nesting -= ((NI) 1);
					}
					LA38_: ;
					(*tok).literal = addChar((*tok).literal, 93);
				}
				goto LA30_;
				LA32_: ;
				{
					if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35))) goto LA45_;
					{
						if (!(nesting == ((NI) 0))) goto LA49_;
						pos += ((NI) 2);
						goto LA13;
					}
					LA49_: ;
					nesting -= ((NI) 1);
				}
				goto LA30_;
				LA45_: ;
				LA30_: ;
				pos += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				pos = handleCRLF_Dpj1gMjCw9bemAZV6KHW9cfw(L, pos);
				buf = (*L).Sup.buf;
				{
					NI c;
					if (!isDoc) goto LA54_;
					(*tok).literal = resizeString((*tok).literal, 2);
appendString((*tok).literal, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_16));
					(*tok).iNumber += ((NI) 1);
					c = toStrip;
					{
						while (1) {
							NIM_BOOL T58_;
							T58_ = (NIM_BOOL)0;
							T58_ = ((NU8)(buf[pos]) == (NU8)(32));
							if (!(T58_)) goto LA59_;
							T58_ = (((NI) 0) < c);
							LA59_: ;
							if (!T58_) goto LA57;
							pos += ((NI) 1);
							c -= ((NI) 1);
						} LA57: ;
					}
				}
				LA54_: ;
			}
			break;
			case 0:
			{
				lexMessagePos_7djWaZAcRzxz15NpWpA9bHg(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 4), pos, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_17));
				goto LA13;
			}
			break;
			default:
			{
				{
					if (!isDoc) goto LA64_;
					(*tok).literal = addChar((*tok).literal, buf[pos]);
				}
				LA64_: ;
				pos += ((NI) 1);
			}
			break;
			}
		}
	} LA13: ;
	(*L).Sup.bufpos = pos;
}

N_NIMCALL(void, skip_HUKK9cILkwTBvMCbGFTZPSA_2)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* 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:
			{
				{
					if (!!((*L).allowTabs)) goto LA7_;
					lexMessagePos_7djWaZAcRzxz15NpWpA9bHg(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 11), pos, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
				}
				LA7_: ;
				pos += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				NI indent;
				pos = handleCRLF_Dpj1gMjCw9bemAZV6KHW9cfw(L, pos);
				buf = (*L).Sup.buf;
				indent = ((NI) 0);
				{
					while (1) {
						{
							if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA14_;
							pos += ((NI) 1);
							indent += ((NI) 1);
						}
						goto LA12_;
						LA14_: ;
						{
							NIM_BOOL T17_;
							T17_ = (NIM_BOOL)0;
							T17_ = ((NU8)(buf[pos]) == (NU8)(35));
							if (!(T17_)) goto LA18_;
							T17_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(91));
							LA18_: ;
							if (!T17_) goto LA19_;
							skipMultiLineComment_GRATY1VQDIglUG1eI4jqeA(L, tok, (NI)(pos + ((NI) 2)), NIM_FALSE);
							pos = (*L).Sup.bufpos;
							buf = (*L).Sup.buf;
						}
						goto LA12_;
						LA19_: ;
						{
							goto LA10;
						}
						LA12_: ;
					}
				} LA10: ;
				(*tok).strongSpaceA = ((NI8) 0);
				{
					NIM_BOOL T24_;
					NIM_BOOL T26_;
					T24_ = (NIM_BOOL)0;
					T24_ = ((NU8)(32) < (NU8)(buf[pos]));
					if (!(T24_)) goto LA25_;
					T26_ = (NIM_BOOL)0;
					T26_ = !(((NU8)(buf[pos]) == (NU8)(35)));
					if (T26_) goto LA27_;
					T26_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
					LA27_: ;
					T24_ = T26_;
					LA25_: ;
					if (!T24_) goto LA28_;
					(*tok).indent = indent;
					(*L).currLineIndent = indent;
					goto LA1;
				}
				LA28_: ;
			}
			break;
			case 35:
			{
				{
					if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35))) goto LA33_;
					goto LA1;
				}
				LA33_: ;
				{
					if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(91))) goto LA37_;
					skipMultiLineComment_GRATY1VQDIglUG1eI4jqeA(L, tok, (NI)(pos + ((NI) 2)), NIM_FALSE);
					pos = (*L).Sup.bufpos;
					buf = (*L).Sup.buf;
				}
				goto LA35_;
				LA37_: ;
				{
					{
						while (1) {
							if (!!((((NU8)(buf[pos])) == ((NU8)(13)) || ((NU8)(buf[pos])) == ((NU8)(10)) || ((NU8)(buf[pos])) == ((NU8)(0))))) goto LA41;
							pos += ((NI) 1);
						} LA41: ;
					}
				}
				LA35_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	(*L).Sup.bufpos = pos;
}

static N_INLINE(NI, emarkamp__6dtCP6C39bxOkT4wrIPJwKghashes)(NI h, NI val) {
	NI result;
	result = (NI)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(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw, getLineInfo_Ux0pJuM59b8dKTMi336q5DA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L) {
	tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw result;
	NI T1_;
	memset((void*)(&result), 0, sizeof(result));
	T1_ = (NI)0;
	T1_ = getColNumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L).Sup), (*L).Sup.bufpos);
	result = newLineInfo_Shbbzc11c9bnWkBc9b42npzA((*L).fileIdx, (*L).Sup.lineNumber, T1_);
	return result;
}

N_NIMCALL(void, lexMessage_moxcy135mexMtB8c1DXBvA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg) {
	tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw T1_;
	T1_ = getLineInfo_Ux0pJuM59b8dKTMi336q5DA(L);
	dispMessage_olO3stLx9aJm9aCQZS85t8xQ(L, T1_, msg, arg);
}

static N_INLINE(NI, emarkdollar__zs9byUtT9cNi2e9clB27b2cUAhashes)(NI h) {
	NI result;
	result = (NI)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_HUKK9cILkwTBvMCbGFTZPSA_3)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* 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 = emarkamp__6dtCP6C39bxOkT4wrIPJwKghashes(h, ((NI) (((NU8)(c)))));
				pos += ((NI) 1);
			}
			break;
			case 65 ... 90:
			{
				c = ((NIM_CHAR) (((NI) ((NI)(((NI) (((NU8)(c)))) + ((NI) 32))))));
				h = emarkamp__6dtCP6C39bxOkT4wrIPJwKghashes(h, ((NI) (((NU8)(c)))));
				pos += ((NI) 1);
			}
			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_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 12), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_18));
					goto LA1;
				}
				LA8_: ;
				pos += ((NI) 1);
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	h = emarkdollar__zs9byUtT9cNi2e9clB27b2cUAhashes(h);
	unsureAsgnRef((void**) (&(*tok).ident), getIdent_62GxCdwHvMBvMwCLnw1wyg((*L).cache, ((NCSTRING) ((&(*L).Sup.buf[(*L).Sup.bufpos]))), (NI)(pos - (*L).Sup.bufpos), h));
	(*L).Sup.bufpos = pos;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*(*tok).ident).Sup.id < ((NI) 1));
		if (T13_) goto LA14_;
		T13_ = (((NI) 70) < (*(*tok).ident).Sup.id);
		LA14_: ;
		if (!T13_) goto LA15_;
		(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 2);
	}
	goto LA11_;
	LA15_: ;
	{
		(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) ((NI)((*(*tok).ident).Sup.id + ((NI) 2))));
	}
	LA11_: ;
}

N_NIMCALL(void, scanComment_HUKK9cILkwTBvMCbGFTZPSA_4)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	NI pos;
	NCSTRING buf;
	NI toStrip;
{	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 113);
	(*tok).iNumber = IL64(0);
	{
		if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(91))) goto LA3_;
		skipMultiLineComment_GRATY1VQDIglUG1eI4jqeA(L, tok, (NI)(pos + ((NI) 3)), NIM_TRUE);
		goto BeforeRet_;
	}
	LA3_: ;
	pos += ((NI) 2);
	toStrip = ((NI) 0);
	{
		while (1) {
			if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA6;
			pos += ((NI) 1);
			toStrip += ((NI) 1);
		} LA6: ;
	}
	{
		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 LA10;
					{
						if (!((NU8)(buf[pos]) == (NU8)(92))) goto LA13_;
						lastBackslash = (NI)(pos + ((NI) 1));
					}
					LA13_: ;
					(*tok).literal = addChar((*tok).literal, buf[pos]);
					pos += ((NI) 1);
				} LA10: ;
			}
			pos = handleCRLF_Dpj1gMjCw9bemAZV6KHW9cfw(L, pos);
			buf = (*L).Sup.buf;
			indent = ((NI) 0);
			{
				while (1) {
					if (!((NU8)(buf[pos]) == (NU8)(32))) goto LA16;
					pos += ((NI) 1);
					indent += ((NI) 1);
				} LA16: ;
			}
			{
				NIM_BOOL T19_;
				NI c;
				T19_ = (NIM_BOOL)0;
				T19_ = ((NU8)(buf[pos]) == (NU8)(35));
				if (!(T19_)) goto LA20_;
				T19_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
				LA20_: ;
				if (!T19_) goto LA21_;
				(*tok).literal = resizeString((*tok).literal, 2);
appendString((*tok).literal, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_16));
				pos += ((NI) 2);
				c = toStrip;
				{
					while (1) {
						NIM_BOOL T25_;
						T25_ = (NIM_BOOL)0;
						T25_ = ((NU8)(buf[pos]) == (NU8)(32));
						if (!(T25_)) goto LA26_;
						T25_ = (((NI) 0) < c);
						LA26_: ;
						if (!T25_) goto LA24;
						pos += ((NI) 1);
						c -= ((NI) 1);
					} LA24: ;
				}
				(*tok).iNumber += ((NI) 1);
			}
			goto LA17_;
			LA21_: ;
			{
				{
					if (!((NU8)(32) < (NU8)(buf[pos]))) goto LA30_;
					(*L).indentAhead = indent;
				}
				LA30_: ;
				goto LA7;
			}
			LA17_: ;
		}
	} LA7: ;
	(*L).Sup.bufpos = pos;
	}BeforeRet_: ;
}

static N_INLINE(void, endOperator_QQWnqO8rfo8dE9cojAfTlVAlexer)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, NI pos, NI hash) {
	NI h;
	h = emarkdollar__zs9byUtT9cNi2e9clB27b2cUAhashes(hash);
	unsureAsgnRef((void**) (&(*tok).ident), getIdent_62GxCdwHvMBvMwCLnw1wyg((*L).cache, ((NCSTRING) ((&(*L).Sup.buf[(*L).Sup.bufpos]))), (NI)(pos - (*L).Sup.bufpos), h));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*tok).ident).Sup.id < ((NI) 71));
		if (T3_) goto LA4_;
		T3_ = (((NI) 75) < (*(*tok).ident).Sup.id);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 112);
	}
	goto LA1_;
	LA5_: ;
	{
		(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) ((NI)((NI)((*(*tok).ident).Sup.id - ((NI) 71)) + ((NI) 107))));
	}
	LA1_: ;
	(*L).Sup.bufpos = pos;
}

N_NIMCALL(void, getOperator_nJDzLaFCz6WphVhAQVrdqA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* 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 (!!(((TM_4JpEWnGrmRM8CRqL3P2O1Q_19[(NU)(((NU8)(c)))>>3] &(1U<<((NU)(((NU8)(c)))&7U)))!=0))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			h = emarkamp__6dtCP6C39bxOkT4wrIPJwKghashes(h, ((NI) (((NU8)(c)))));
			pos += ((NI) 1);
		}
	} LA1: ;
	endOperator_QQWnqO8rfo8dE9cojAfTlVAlexer(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_1e9csUsE2c69cW9cZBQwxW2Rw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* 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_c9bP1COYEYDhChM9c5lh9bDJQ)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, NIM_CHAR first, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw second) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(first));
	if (!(T1_)) goto LA2_;
	T1_ = ((second[(NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])))&7U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_NIMCALL(void, handleDecChars_1e9csUsE2c69cW9cZBQwxW2Rw_2)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* 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_HUKK9cILkwTBvMCbGFTZPSA_5)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	(*L).Sup.bufpos += ((NI) 1);
	switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
	case 110:
	case 78:
	{
		{
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 92))) goto LA4_;
			lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 17), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
		}
		LA4_: ;
		(*tok).literal = resizeString((*tok).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString((*tok).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w);
		(*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:
	case 117:
	case 85:
	{
		NIM_CHAR tp;
		NI xi;
		tp = (*L).Sup.buf[(*L).Sup.bufpos];
		(*L).Sup.bufpos += ((NI) 1);
		xi = ((NI) 0);
		handleHexChar_1e9csUsE2c69cW9cZBQwxW2Rw(L, (&xi));
		handleHexChar_1e9csUsE2c69cW9cZBQwxW2Rw(L, (&xi));
		{
			if (!(((NU8)(tp)) == ((NU8)(117)) || ((NU8)(tp)) == ((NU8)(85)))) goto LA19_;
			handleHexChar_1e9csUsE2c69cW9cZBQwxW2Rw(L, (&xi));
			handleHexChar_1e9csUsE2c69cW9cZBQwxW2Rw(L, (&xi));
			{
				if (!((NU64)(xi) <= (NU64)(((NI) 127)))) goto LA23_;
				(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) (xi)));
			}
			goto LA21_;
			LA23_: ;
			{
				if (!((NU64)(xi) <= (NU64)(((NI) 2047)))) goto LA26_;
				(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) ((NI)((NI)((NU64)(xi) >> (NU64)(((NI) 6))) | ((NI) 192)))));
				(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) ((NI)(((NI) ((NI)(xi & ((NI) 63)))) | ((NI) 128)))));
			}
			goto LA21_;
			LA26_: ;
			{
				if (!((NU64)(xi) <= (NU64)(((NI) 65535)))) goto LA29_;
				(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) ((NI)((NI)((NU64)(xi) >> (NU64)(((NI) 12))) | ((NI) 224)))));
				(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) ((NI)(((NI) ((NI)((NI)((NU64)(xi) >> (NU64)(((NI) 6))) & ((NI) 63)))) | ((NI) 128)))));
				(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) ((NI)(((NI) ((NI)(xi & ((NI) 63)))) | ((NI) 128)))));
			}
			goto LA21_;
			LA29_: ;
			{
				(*tok).literal = resizeString((*tok).literal, 3);
appendString((*tok).literal, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_20));
			}
			LA21_: ;
		}
		goto LA17_;
		LA19_: ;
		{
			(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) (((NI) (xi)))));
		}
		LA17_: ;
	}
	break;
	case 48 ... 57:
	{
		NI xi_2;
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			T36_ = matchTwoChars_c9bP1COYEYDhChM9c5lh9bDJQ((&(*L)), 48, TM_4JpEWnGrmRM8CRqL3P2O1Q_21);
			if (!T36_) goto LA37_;
			lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 241), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
		}
		LA37_: ;
		xi_2 = ((NI) 0);
		handleDecChars_1e9csUsE2c69cW9cZBQwxW2Rw_2(L, (&xi_2));
		{
			if (!(xi_2 <= ((NI) 255))) goto LA41_;
			(*tok).literal = addChar((*tok).literal, ((NIM_CHAR) (((NI) (xi_2)))));
		}
		goto LA39_;
		LA41_: ;
		{
			lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 8), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
		}
		LA39_: ;
	}
	break;
	default:
	{
		lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 8), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
	}
	break;
	}
}

N_NIMCALL(void, getString_YG7m8w0rgfI3MdHCnA4maw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* 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 T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((NU8)(buf[pos]) == (NU8)(34));
		if (!(T3_)) goto LA4_;
		T3_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 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_Dpj1gMjCw9bemAZV6KHW9cfw(L, pos);
		buf = (*L).Sup.buf;
		{
			while (1) {
				switch (((NU8)(buf[pos]))) {
				case 34:
				{
					{
						NIM_BOOL T22_;
						NIM_BOOL T23_;
						T22_ = (NIM_BOOL)0;
						T23_ = (NIM_BOOL)0;
						T23_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
						if (!(T23_)) goto LA24_;
						T23_ = ((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(34));
						LA24_: ;
						T22_ = T23_;
						if (!(T22_)) goto LA25_;
						T22_ = !(((NU8)(buf[(NI)(pos + ((NI) 3))]) == (NU8)(34)));
						LA25_: ;
						if (!T22_) 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_Dpj1gMjCw9bemAZV6KHW9cfw(L, pos);
					buf = (*L).Sup.buf;
					(*tok).literal = resizeString((*tok).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString((*tok).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w);
				}
				break;
				case 0:
				{
					NI line2;
					line2 = (*L).Sup.lineNumber;
					(*L).Sup.lineNumber = line;
					lexMessagePos_7djWaZAcRzxz15NpWpA9bHg(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 9), (*L).Sup.lineStart, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
					(*L).Sup.lineNumber = line2;
					(*L).Sup.bufpos = pos;
					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 = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 88);
		}
		goto LA32_;
		LA34_: ;
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 87);
		}
		LA32_: ;
		{
			while (1) {
				NIM_CHAR c;
				c = buf[pos];
				{
					if (!((NU8)(c) == (NU8)(34))) goto LA41_;
					{
						NIM_BOOL T45_;
						T45_ = (NIM_BOOL)0;
						T45_ = rawMode;
						if (!(T45_)) goto LA46_;
						T45_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
						LA46_: ;
						if (!T45_) 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_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 10), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
					goto LA37;
				}
				goto LA39_;
				LA51_: ;
				{
					NIM_BOOL T54_;
					T54_ = (NIM_BOOL)0;
					T54_ = ((NU8)(c) == (NU8)(92));
					if (!(T54_)) goto LA55_;
					T54_ = !(rawMode);
					LA55_: ;
					if (!T54_) goto LA56_;
					(*L).Sup.bufpos = pos;
					getEscapedChar_HUKK9cILkwTBvMCbGFTZPSA_5(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_HUKK9cILkwTBvMCbGFTZPSA_6)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* 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_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 8), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
	}
	break;
	case 92:
	{
		getEscapedChar_HUKK9cILkwTBvMCbGFTZPSA_5(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_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 19), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
	}
	LA6_: ;
	(*L).Sup.bufpos += ((NI) 1);
}

N_NIMCALL(void, matchChars_f3XUyjUday2b0LWFkd9bI4Q)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars) {
	NI pos;
	NCSTRING buf;
	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	{
		while (1) {
			if (!((chars[(NU)(((NU8)(buf[pos])))>>3] &(1U<<((NU)(((NU8)(buf[pos])))&7U)))!=0)) goto LA2;
			(*tok).literal = addChar((*tok).literal, buf[pos]);
			pos += ((NI) 1);
		} LA2: ;
	}
	(*L).Sup.bufpos = pos;
}

N_NIMCALL(void, lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NI startpos) {
	NI msgPos;
	tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ t;
	msgPos = (*L).Sup.bufpos;
	memset((void*)(&t), 0, sizeof(t));
	t.literal = copyString(((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
	(*L).Sup.bufpos = startpos;
	matchChars_f3XUyjUday2b0LWFkd9bI4Q(L, (&t), TM_4JpEWnGrmRM8CRqL3P2O1Q_23);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(43)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(45)));
		if (!(T3_)) goto LA4_;
		T3_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) == ((NU8)(101)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) == ((NU8)(69)));
		LA4_: ;
		if (!T3_) goto LA5_;
		t.literal = addChar(t.literal, (*L).Sup.buf[(*L).Sup.bufpos]);
		(*L).Sup.bufpos += ((NI) 1);
		matchChars_f3XUyjUday2b0LWFkd9bI4Q(L, (&t), TM_4JpEWnGrmRM8CRqL3P2O1Q_23);
	}
	LA5_: ;
	{
		if (!((TM_4JpEWnGrmRM8CRqL3P2O1Q_24[(NU)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])))&7U)))!=0)) goto LA9_;
		(*L).Sup.bufpos += ((NI) 1);
		t.literal = addChar(t.literal, (*L).Sup.buf[(*L).Sup.bufpos]);
		matchChars_f3XUyjUday2b0LWFkd9bI4Q(L, (&t), TM_4JpEWnGrmRM8CRqL3P2O1Q_21);
	}
	LA9_: ;
	(*L).Sup.bufpos = msgPos;
	lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), msg, t.literal);
}

N_NIMCALL(void, matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars) {
	NI pos;
	NCSTRING buf;
	pos = (*L).Sup.bufpos;
	buf = (*L).Sup.buf;
	{
		while (1) {
			{
				if (!((chars[(NU)(((NU8)(buf[pos])))>>3] &(1U<<((NU)(((NU8)(buf[pos])))&7U)))!=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[(NU)(((NU8)(buf[(NI)(pos + ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)(buf[(NI)(pos + ((NI) 1))])))&7U)))!=0))) goto LA14_;
					lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 12), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_18));
					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_rqLlY5bs9atDw2OXYqJEn5g;
	excHandler_rqLlY5bs9atDw2OXYqJEn5g = s;
}

N_NIMCALL(NI, unsafeParseUInt_bat7t0DiRlRbxAKUi9c9aqQw)(NimStringDesc* s, NI64* b, NI start) {
	NI result;
	NI i;
	result = (NI)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(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result;
}

static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
		if (!!((src == NIM_NIL))) goto LA3_;
		c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		(*c).refcount += ((NI) 8);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c_2;
		if (!!(((*dest) == NIM_NIL))) goto LA7_;
		c_2 = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		{
			(*c_2).refcount -= ((NI) 8);
			if (!((NU64)((*c_2).refcount) < (NU64)(((NI) 8)))) goto LA11_;
			rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c_2);
		}
		LA11_: ;
	}
	LA7_: ;
	(*dest) = src;
}

static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
}

static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		incRef_9cAA5YuQAAC3MVbnGeV86swsystem(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		decRef_MV4BBk6J1qu70IbBxwEn4wsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

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

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

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException_9bVPeDJlYTi9bQApZpfH8wjg), (*currException_9bVPeDJlYTi9bQApZpfH8wjg).up);
}

N_NIMCALL(void, getNumber_9aBWWw9ce9azbTg8oMwTyFoEg)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* result) {
	NI startpos;
	NI endpos;
	NI64 volatile xi;
	NIM_BOOL isBase10;
	NI postPos;
	NI volatile pos;
	TSafePoint TM_4JpEWnGrmRM8CRqL3P2O1Q_29;
	startpos = (NI)0;
	endpos = (NI)0;
	xi = (NI64)0;
	isBase10 = NIM_TRUE;
	(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 73);
	unsureAsgnRef((void**) (&(*result).literal), copyString(((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14)));
	(*result).base = ((tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q) 0);
	startpos = (*L).Sup.bufpos;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(48));
		if (!(T3_)) goto LA4_;
		T3_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(66)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(67)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(79)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(98)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(99)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(120)));
		LA4_: ;
		if (!T3_) goto LA5_;
		isBase10 = NIM_FALSE;
		(*result).literal = addChar((*result).literal, 48);
		(*L).Sup.bufpos += ((NI) 1);
		switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
		case 79:
		{
			lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 15), startpos);
		}
		break;
		case 120:
		case 88:
		{
			(*result).literal = addChar((*result).literal, 120);
			(*L).Sup.bufpos += ((NI) 1);
			matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw(L, result, TM_4JpEWnGrmRM8CRqL3P2O1Q_25);
		}
		break;
		case 111:
		case 99:
		case 67:
		{
			(*result).literal = addChar((*result).literal, 99);
			(*L).Sup.bufpos += ((NI) 1);
			matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw(L, result, TM_4JpEWnGrmRM8CRqL3P2O1Q_26);
		}
		break;
		case 98:
		case 66:
		{
			(*result).literal = addChar((*result).literal, 98);
			(*L).Sup.bufpos += ((NI) 1);
			matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw(L, result, TM_4JpEWnGrmRM8CRqL3P2O1Q_27);
		}
		break;
		default:
		{
			tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw T12_;
			T12_ = getLineInfo_Ux0pJuM59b8dKTMi336q5DA((&(*L)));
			internalError_MXmtqrCmYwtOPkDCFgUWKQ(T12_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_28));
		}
		break;
		}
	}
	goto LA1_;
	LA5_: ;
	{
		matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw(L, result, TM_4JpEWnGrmRM8CRqL3P2O1Q_21);
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
			if (!(T16_)) goto LA17_;
			T16_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)));
			LA17_: ;
			if (!T16_) goto LA18_;
			(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83);
			(*result).literal = addChar((*result).literal, 46);
			(*L).Sup.bufpos += ((NI) 1);
			matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw(L, result, TM_4JpEWnGrmRM8CRqL3P2O1Q_21);
		}
		LA18_: ;
		{
			if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(101)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(69)))) goto LA22_;
			(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83);
			(*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 LA26_;
				(*result).literal = addChar((*result).literal, (*L).Sup.buf[(*L).Sup.bufpos]);
				(*L).Sup.bufpos += ((NI) 1);
			}
			LA26_: ;
			matchUnderscoreChars_IfCeqHZ7PBYdKWp54UsjMw(L, result, TM_4JpEWnGrmRM8CRqL3P2O1Q_21);
		}
		LA22_: ;
	}
	LA1_: ;
	endpos = (*L).Sup.bufpos;
	postPos = endpos;
	{
		if (!((TM_4JpEWnGrmRM8CRqL3P2O1Q_24[(NU)(((NU8)((*L).Sup.buf[postPos])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[postPos])))&7U)))!=0)) goto LA30_;
		{
			if (!((NU8)((*L).Sup.buf[postPos]) == (NU8)(39))) goto LA34_;
			postPos += ((NI) 1);
		}
		LA34_: ;
		switch (((NU8)((*L).Sup.buf[postPos]))) {
		case 102:
		case 70:
		{
			postPos += ((NI) 1);
			{
				NIM_BOOL T39_;
				T39_ = (NIM_BOOL)0;
				T39_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(51));
				if (!(T39_)) goto LA40_;
				T39_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(50));
				LA40_: ;
				if (!T39_) goto LA41_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 84);
				postPos += ((NI) 2);
			}
			goto LA37_;
			LA41_: ;
			{
				NIM_BOOL T44_;
				T44_ = (NIM_BOOL)0;
				T44_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(54));
				if (!(T44_)) goto LA45_;
				T44_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(52));
				LA45_: ;
				if (!T44_) goto LA46_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85);
				postPos += ((NI) 2);
			}
			goto LA37_;
			LA46_: ;
			{
				NIM_BOOL T49_;
				NIM_BOOL T50_;
				T49_ = (NIM_BOOL)0;
				T50_ = (NIM_BOOL)0;
				T50_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(49));
				if (!(T50_)) goto LA51_;
				T50_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(50));
				LA51_: ;
				T49_ = T50_;
				if (!(T49_)) goto LA52_;
				T49_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 2))]) == (NU8)(56));
				LA52_: ;
				if (!T49_) goto LA53_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 86);
				postPos += ((NI) 3);
			}
			goto LA37_;
			LA53_: ;
			{
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 84);
			}
			LA37_: ;
		}
		break;
		case 100:
		case 68:
		{
			postPos += ((NI) 1);
			(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85);
		}
		break;
		case 105:
		case 73:
		{
			postPos += ((NI) 1);
			{
				NIM_BOOL T60_;
				T60_ = (NIM_BOOL)0;
				T60_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(54));
				if (!(T60_)) goto LA61_;
				T60_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(52));
				LA61_: ;
				if (!T60_) goto LA62_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 77);
				postPos += ((NI) 2);
			}
			goto LA58_;
			LA62_: ;
			{
				NIM_BOOL T65_;
				T65_ = (NIM_BOOL)0;
				T65_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(51));
				if (!(T65_)) goto LA66_;
				T65_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(50));
				LA66_: ;
				if (!T65_) goto LA67_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 76);
				postPos += ((NI) 2);
			}
			goto LA58_;
			LA67_: ;
			{
				NIM_BOOL T70_;
				T70_ = (NIM_BOOL)0;
				T70_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(49));
				if (!(T70_)) goto LA71_;
				T70_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(54));
				LA71_: ;
				if (!T70_) goto LA72_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 75);
				postPos += ((NI) 2);
			}
			goto LA58_;
			LA72_: ;
			{
				if (!((NU8)((*L).Sup.buf[postPos]) == (NU8)(56))) goto LA75_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 74);
				postPos += ((NI) 1);
			}
			goto LA58_;
			LA75_: ;
			{
				lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos);
			}
			LA58_: ;
		}
		break;
		case 117:
		case 85:
		{
			postPos += ((NI) 1);
			{
				NIM_BOOL T81_;
				T81_ = (NIM_BOOL)0;
				T81_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(54));
				if (!(T81_)) goto LA82_;
				T81_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(52));
				LA82_: ;
				if (!T81_) goto LA83_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 82);
				postPos += ((NI) 2);
			}
			goto LA79_;
			LA83_: ;
			{
				NIM_BOOL T86_;
				T86_ = (NIM_BOOL)0;
				T86_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(51));
				if (!(T86_)) goto LA87_;
				T86_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(50));
				LA87_: ;
				if (!T86_) goto LA88_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 81);
				postPos += ((NI) 2);
			}
			goto LA79_;
			LA88_: ;
			{
				NIM_BOOL T91_;
				T91_ = (NIM_BOOL)0;
				T91_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(49));
				if (!(T91_)) goto LA92_;
				T91_ = ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))]) == (NU8)(54));
				LA92_: ;
				if (!T91_) goto LA93_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 80);
				postPos += ((NI) 2);
			}
			goto LA79_;
			LA93_: ;
			{
				if (!((NU8)((*L).Sup.buf[postPos]) == (NU8)(56))) goto LA96_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 79);
				postPos += ((NI) 1);
			}
			goto LA79_;
			LA96_: ;
			{
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 78);
			}
			LA79_: ;
		}
		break;
		default:
		{
			lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos);
		}
		break;
		}
	}
	LA30_: ;
	{
		NIM_BOOL T102_;
		NIM_BOOL T104_;
		T102_ = (NIM_BOOL)0;
		T102_ = (((NU8)((*L).Sup.buf[postPos])) == ((NU8)(39)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(70)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(95)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(102)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(120)));
		if (T102_) goto LA103_;
		T104_ = (NIM_BOOL)0;
		T104_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(46));
		if (!(T104_)) goto LA105_;
		T104_ = (((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))])) <= ((NU8)(57)));
		LA105_: ;
		T102_ = T104_;
		LA103_: ;
		if (!T102_) goto LA106_;
		lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos);
	}
	LA106_: ;
	(*L).Sup.bufpos = startpos;
	pos = startpos;
	pushSafePoint(&TM_4JpEWnGrmRM8CRqL3P2O1Q_29);
	TM_4JpEWnGrmRM8CRqL3P2O1Q_29.status = setjmp(TM_4JpEWnGrmRM8CRqL3P2O1Q_29.context);
	if (TM_4JpEWnGrmRM8CRqL3P2O1Q_29.status == 0) {
		{
			NIM_BOOL T111_;
			T111_ = (NIM_BOOL)0;
			T111_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(48));
			if (!(T111_)) goto LA112_;
			T111_ = (((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(120)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(99)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(67)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(98)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(66)));
			LA112_: ;
			if (!T111_) goto LA113_;
			pos += ((NI) 2);
			xi = IL64(0);
			switch (((NU8)((*L).Sup.buf[(NI)(pos - ((NI) 1))]))) {
			case 98:
			case 66:
			{
				(*result).base = ((tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q) 1);
				{
					while (1) {
						if (!(pos < endpos)) goto LA117;
						{
							if (!!(((NU8)((*L).Sup.buf[pos]) == (NU8)(95)))) goto LA120_;
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 1))) | ((NI64) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 48)))));
						}
						LA120_: ;
						pos += ((NI) 1);
					} LA117: ;
				}
			}
			break;
			case 111:
			case 99:
			case 67:
			{
				(*result).base = ((tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q) 2);
				{
					while (1) {
						if (!(pos < endpos)) goto LA124;
						{
							if (!!(((NU8)((*L).Sup.buf[pos]) == (NU8)(95)))) goto LA127_;
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 3))) | ((NI64) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 48)))));
						}
						LA127_: ;
						pos += ((NI) 1);
					} LA124: ;
				}
			}
			break;
			case 120:
			case 88:
			{
				(*result).base = ((tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q) 3);
				{
					while (1) {
						if (!(pos < endpos)) goto LA131;
						switch (((NU8)((*L).Sup.buf[pos]))) {
						case 95:
						{
							pos += ((NI) 1);
						}
						break;
						case 48 ... 57:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 4))) | ((NI64) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 48)))));
							pos += ((NI) 1);
						}
						break;
						case 97 ... 102:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 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)(((NI) 4))) | ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L).Sup.buf[pos])))) - ((NI) 65)))) + ((NI) 10)))));
							pos += ((NI) 1);
						}
						break;
						default:
						{
							goto LA130;
						}
						break;
						}
					} LA131: ;
				} LA130: ;
			}
			break;
			default:
			{
				tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw T138_;
				T138_ = getLineInfo_Ux0pJuM59b8dKTMi336q5DA((&(*L)));
				internalError_MXmtqrCmYwtOPkDCFgUWKQ(T138_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_28));
			}
			break;
			}
			switch ((*result).tokType) {
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 73):
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 77):
			{
				(*result).iNumber = xi;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 74):
			{
				(*result).iNumber = ((NI64) (((NI8)(NU8)(NU)(((NI) (xi))))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 75):
			{
				(*result).iNumber = ((NI64) (((NI16)(NU16)(NU)(((NI) (xi))))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 76):
			{
				(*result).iNumber = ((NI64) (((NI32)(NU32)(NU64)(xi))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 78):
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 82):
			{
				(*result).iNumber = xi;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 79):
			{
				(*result).iNumber = ((NI64) (((NU8) (((NI8)(NU8)(NU)(((NI) (xi))))))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 80):
			{
				(*result).iNumber = ((NI64) (((NU16) (((NI16)(NU16)(NU)(((NI) (xi))))))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 81):
			{
				(*result).iNumber = ((NI64) (((NU32) (((NI32)(NU32)(NU64)(xi))))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 84):
			{
				(*result).fNumber = ((NF) ((*((NF32*) ((&xi))))));
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85):
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83):
			{
				(*result).fNumber = (*((NF*) ((&xi))));
			}
			break;
			default:
			{
				tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw T150_;
				T150_ = getLineInfo_Ux0pJuM59b8dKTMi336q5DA((&(*L)));
				internalError_MXmtqrCmYwtOPkDCFgUWKQ(T150_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_28));
			}
			break;
			}
			{
				NIM_BOOL outOfRange;
				if (!!(((*result).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83) || (*result).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 84) || (*result).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85) || (*result).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 86)))) goto LA153_;
				switch ((*result).tokType) {
				case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 79):
				case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 80):
				case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 81):
				{
					outOfRange = !(((*result).iNumber == xi));
				}
				break;
				case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 74):
				{
					outOfRange = (IL64(255) < xi);
				}
				break;
				case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 75):
				{
					outOfRange = (IL64(65535) < xi);
				}
				break;
				case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 76):
				{
					outOfRange = (IL64(4294967295) < xi);
				}
				break;
				default:
				{
					outOfRange = NIM_FALSE;
				}
				break;
				}
				{
					if (!outOfRange) goto LA162_;
					lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 16), startpos);
				}
				LA162_: ;
			}
			LA153_: ;
		}
		goto LA109_;
		LA113_: ;
		{
			NIM_BOOL outOfRange_2;
			switch ((*result).tokType) {
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83):
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 84):
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85):
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 86):
			{
				(*result).fNumber = nsuParseFloat((*result).literal);
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 82):
			{
				NI len;
				xi = IL64(0);
				len = unsafeParseUInt_bat7t0DiRlRbxAKUi9c9aqQw((*result).literal, (&xi), ((NI) 0));
				{
					NIM_BOOL T169_;
					tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA* volatile e;
					NimStringDesc* T173_;
					NimStringDesc* T174_;
					T169_ = (NIM_BOOL)0;
					T169_ = !((len == ((*result).literal ? (*result).literal->Sup.len : 0)));
					if (T169_) goto LA170_;
					T169_ = (len == ((NI) 0));
					LA170_: ;
					if (!T169_) goto LA171_;
					e = (tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA*)0;
					e = (tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA*) newObj((&NTI_yCEN9anxCD6mzBxGjuaRBdg_), sizeof(tyObject_ValueError_Gi06FkNeykJn7mrqRZYrkA));
					(*e).Sup.Sup.m_type = (&NTI_Gi06FkNeykJn7mrqRZYrkA_);
					T173_ = (NimStringDesc*)0;
					T174_ = (NimStringDesc*)0;
					T174_ = nimInt64ToStr(xi);
					T173_ = rawNewString(T174_->Sup.len + 17);
appendString(T173_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_30));
appendString(T173_, T174_);
					asgnRefNoCycle((void**) (&(*e).Sup.message), T173_);
					asgnRef((void**) (&(*e).Sup.parent), NIM_NIL);
					raiseException((Exception*)e, "ValueError");
				}
				LA171_: ;
				(*result).iNumber = xi;
			}
			break;
			default:
			{
				(*result).iNumber = nsuParseBiggestInt((*result).literal);
			}
			break;
			}
			switch ((*result).tokType) {
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 74):
			{
				NIM_BOOL T177_;
				T177_ = (NIM_BOOL)0;
				T177_ = ((*result).iNumber < IL64(-128));
				if (T177_) goto LA178_;
				T177_ = (IL64(127) < (*result).iNumber);
				LA178_: ;
				outOfRange_2 = T177_;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 79):
			{
				NIM_BOOL T180_;
				T180_ = (NIM_BOOL)0;
				T180_ = ((*result).iNumber < IL64(0));
				if (T180_) goto LA181_;
				T180_ = (IL64(255) < (*result).iNumber);
				LA181_: ;
				outOfRange_2 = T180_;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 75):
			{
				NIM_BOOL T183_;
				T183_ = (NIM_BOOL)0;
				T183_ = ((*result).iNumber < IL64(-32768));
				if (T183_) goto LA184_;
				T183_ = (IL64(32767) < (*result).iNumber);
				LA184_: ;
				outOfRange_2 = T183_;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 80):
			{
				NIM_BOOL T186_;
				T186_ = (NIM_BOOL)0;
				T186_ = ((*result).iNumber < IL64(0));
				if (T186_) goto LA187_;
				T186_ = (IL64(65535) < (*result).iNumber);
				LA187_: ;
				outOfRange_2 = T186_;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 76):
			{
				NIM_BOOL T189_;
				T189_ = (NIM_BOOL)0;
				T189_ = ((*result).iNumber < IL64(-2147483648));
				if (T189_) goto LA190_;
				T189_ = (IL64(2147483647) < (*result).iNumber);
				LA190_: ;
				outOfRange_2 = T189_;
			}
			break;
			case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 81):
			{
				NIM_BOOL T192_;
				T192_ = (NIM_BOOL)0;
				T192_ = ((*result).iNumber < IL64(0));
				if (T192_) goto LA193_;
				T192_ = (IL64(4294967295) < (*result).iNumber);
				LA193_: ;
				outOfRange_2 = T192_;
			}
			break;
			default:
			{
				outOfRange_2 = NIM_FALSE;
			}
			break;
			}
			{
				if (!outOfRange_2) goto LA197_;
				lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 16), startpos);
			}
			LA197_: ;
		}
		LA109_: ;
		{
			if (!((*result).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 73))) goto LA201_;
			{
				NIM_BOOL T205_;
				T205_ = (NIM_BOOL)0;
				T205_ = ((*result).iNumber < IL64(-2147483648));
				if (T205_) goto LA206_;
				T205_ = (IL64(2147483647) < (*result).iNumber);
				LA206_: ;
				if (!T205_) goto LA207_;
				(*result).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 77);
			}
			LA207_: ;
		}
		LA201_: ;
		popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(getCurrentException()->Sup.m_type, (&NTI_Gi06FkNeykJn7mrqRZYrkA_))) {
			TM_4JpEWnGrmRM8CRqL3P2O1Q_29.status = 0;
			lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos);
			popCurrentException();
		}
		else 		if (isObj(getCurrentException()->Sup.m_type, (&NTI_I3Jtn27626sFBOls6BBQ2Q_))||isObj(getCurrentException()->Sup.m_type, (&NTI_wFuRaV3kWqFxI9b4hUjDJYA_))) {
			TM_4JpEWnGrmRM8CRqL3P2O1Q_29.status = 0;
			lexMessageLitNum_DwofP5EpdR9c9bTDcmqtzTXA(L, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 16), startpos);
			popCurrentException();
		}
	}
	if (TM_4JpEWnGrmRM8CRqL3P2O1Q_29.status != 0) reraiseException();
	(*L).Sup.bufpos = postPos;
}

N_NIMCALL(void, rawGetTok_HUKK9cILkwTBvMCbGFTZPSA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	NIM_CHAR c;
	fillToken_FTh5b29clR9cRU4ec2Lu61rA_2(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_HUKK9cILkwTBvMCbGFTZPSA_2(L, tok);
	c = (*L).Sup.buf[(*L).Sup.bufpos];
	(*tok).line = (*L).Sup.lineNumber;
	(*tok).col = getColNumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*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_HUKK9cILkwTBvMCbGFTZPSA_3(L, tok);
	}
	goto LA6_;
	LA8_: ;
	{
		switch (((NU8)(c))) {
		case 35:
		{
			scanComment_HUKK9cILkwTBvMCbGFTZPSA_4(L, tok);
		}
		break;
		case 42:
		{
			{
				NIM_BOOL T15_;
				NI h;
				T15_ = (NIM_BOOL)0;
				T15_ = ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(58));
				if (!(T15_)) goto LA16_;
				T15_ = !(((TM_4JpEWnGrmRM8CRqL3P2O1Q_19[(NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 2))])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 2))])))&7U)))!=0));
				LA16_: ;
				if (!T15_) goto LA17_;
				h = emarkamp__6dtCP6C39bxOkT4wrIPJwKghashes(((NI) 0), ((NI) 42));
				endOperator_QQWnqO8rfo8dE9cojAfTlVAlexer(L, tok, (NI)((*L).Sup.bufpos + ((NI) 1)), h);
			}
			goto LA13_;
			LA17_: ;
			{
				getOperator_nJDzLaFCz6WphVhAQVrdqA(L, tok);
			}
			LA13_: ;
		}
		break;
		case 44:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 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_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 246), ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
			}
			LA24_: ;
			getSymbol_HUKK9cILkwTBvMCbGFTZPSA_3(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_YG7m8w0rgfI3MdHCnA4maw(L, tok, NIM_TRUE);
			}
			goto LA27_;
			LA29_: ;
			{
				getSymbol_HUKK9cILkwTBvMCbGFTZPSA_3(L, tok);
			}
			LA27_: ;
		}
		break;
		case 40:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL T35_;
				T35_ = (NIM_BOOL)0;
				T35_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(T35_)) goto LA36_;
				T35_ = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA36_: ;
				if (!T35_) goto LA37_;
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 103);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA33_;
			LA37_: ;
			{
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 93);
			}
			LA33_: ;
		}
		break;
		case 41:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 94);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 91:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL T44_;
				T44_ = (NIM_BOOL)0;
				T44_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(T44_)) goto LA45_;
				T44_ = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA45_: ;
				if (!T44_) goto LA46_;
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 99);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA42_;
			LA46_: ;
			{
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 95);
			}
			LA42_: ;
		}
		break;
		case 93:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 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 = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 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 = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 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 = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 104);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA51_;
			LA59_: ;
			{
				getOperator_nJDzLaFCz6WphVhAQVrdqA(L, tok);
			}
			LA51_: ;
		}
		break;
		case 123:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL T65_;
				T65_ = (NIM_BOOL)0;
				T65_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(T65_)) goto LA66_;
				T65_ = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA66_: ;
				if (!T65_) goto LA67_;
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 101);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA63_;
			LA67_: ;
			{
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 97);
			}
			LA63_: ;
		}
		break;
		case 125:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 98);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 59:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 106);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 96:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 114);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 95:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				if (!!((((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)(65)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(95)) || ((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)(128)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(255))))) goto LA76_;
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 2);
				unsureAsgnRef((void**) (&(*tok).ident), getIdent_Y4Yr5rKoaxkzPcN8rPP9bWA((*L).cache, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_18)));
			}
			goto LA74_;
			LA76_: ;
			{
				NimStringDesc* T79_;
				NimStringDesc* T80_;
				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 0);
				T79_ = (NimStringDesc*)0;
				T80_ = (NimStringDesc*)0;
				T80_ = nimIntToStr(((NI) (((NU8)(c)))));
				T79_ = rawNewString(T80_->Sup.len + 5);
appendChar(T79_, c);
appendString(T79_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_22));
appendString(T79_, T80_);
appendChar(T79_, 41);
				lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 12), T79_);
			}
			LA74_: ;
		}
		break;
		case 34:
		{
			NIM_BOOL rawMode;
			NIM_BOOL T82_;
			T82_ = (NIM_BOOL)0;
			T82_ = (((NI) 0) < (*L).Sup.bufpos);
			if (!(T82_)) goto LA83_;
			T82_ = (((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 = T82_;
			getString_YG7m8w0rgfI3MdHCnA4maw(L, tok, rawMode);
			{
				if (!rawMode) goto LA86_;
				(*tok).tokType += ((NI) 2);
			}
			LA86_: ;
		}
		break;
		case 39:
		{
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 92);
			getCharacter_HUKK9cILkwTBvMCbGFTZPSA_6(L, tok);
			(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 92);
		}
		break;
		case 48 ... 57:
		{
			NIM_CHAR c_2;
			getNumber_9aBWWw9ce9azbTg8oMwTyFoEg(L, tok);
			c_2 = (*L).Sup.buf[(*L).Sup.bufpos];
			{
				NimStringDesc* T94_;
				NimStringDesc* T95_;
				if (!(((NU8)(c_2)) >= ((NU8)(48)) && ((NU8)(c_2)) <= ((NU8)(57)) || ((NU8)(c_2)) >= ((NU8)(65)) && ((NU8)(c_2)) <= ((NU8)(90)) || ((NU8)(c_2)) == ((NU8)(95)) || ((NU8)(c_2)) >= ((NU8)(97)) && ((NU8)(c_2)) <= ((NU8)(122)) || ((NU8)(c_2)) >= ((NU8)(128)) && ((NU8)(c_2)) <= ((NU8)(255)))) goto LA92_;
				T94_ = (NimStringDesc*)0;
				T95_ = (NimStringDesc*)0;
				T95_ = nimIntToStr(((NI) (((NU8)(c_2)))));
				T94_ = rawNewString(T95_->Sup.len + 5);
appendChar(T94_, c_2);
appendString(T94_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_22));
appendString(T94_, T95_);
appendChar(T94_, 41);
				lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 12), T94_);
			}
			LA92_: ;
		}
		break;
		default:
		{
			{
				if (!((TM_4JpEWnGrmRM8CRqL3P2O1Q_19[(NU)(((NU8)(c)))>>3] &(1U<<((NU)(((NU8)(c)))&7U)))!=0)) goto LA99_;
				getOperator_nJDzLaFCz6WphVhAQVrdqA(L, tok);
			}
			goto LA97_;
			LA99_: ;
			{
				if (!((NU8)(c) == (NU8)(0))) goto LA102_;
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 1);
				(*tok).indent = ((NI) 0);
			}
			goto LA97_;
			LA102_: ;
			{
				NimStringDesc* T105_;
				NimStringDesc* T106_;
				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
				(*tok).tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 0);
				T105_ = (NimStringDesc*)0;
				T106_ = (NimStringDesc*)0;
				T106_ = nimIntToStr(((NI) (((NU8)(c)))));
				T105_ = rawNewString(T106_->Sup.len + 5);
appendChar(T105_, c);
appendString(T105_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_22));
appendString(T105_, T106_);
appendChar(T105_, 41);
				lexMessage_moxcy135mexMtB8c1DXBvA((&(*L)), ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 12), T105_);
				(*L).Sup.bufpos += ((NI) 1);
			}
			LA97_: ;
		}
		break;
		}
	}
	LA6_: ;
}

N_NIMCALL(void, lexMessageTok_X1XZ8VwEvx9a1eSLEKrIW6w)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* L, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, NimStringDesc* arg) {
	tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
	info = newLineInfo_Shbbzc11c9bnWkBc9b42npzA((*L).fileIdx, (*tok).line, (*tok).col);
	dispMessage_olO3stLx9aJm9aCQZS85t8xQ(L, info, msg, arg);
}

N_NIMCALL(NIM_BOOL, isKeyword_W77DgLTdnCGF4HSY4vap5Q)(tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA kind) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 3) <= kind);
	if (!(T1_)) goto LA2_;
	T1_ = (kind <= ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 72));
	LA2_: ;
	result = T1_;
	return result;
}

N_NIMCALL(NimStringDesc*, tokToStr_TtD8kId4CzEkbAITBVCtzQ_2)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	switch ((*tok).tokType) {
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 73) ... ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 77):
	{
		result = nimInt64ToStr((*tok).iNumber);
	}
	break;
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83) ... ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85):
	{
		result = nimFloatToStr((*tok).fNumber);
	}
	break;
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 0):
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 87) ... ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 92):
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 113):
	{
		result = copyString((*tok).literal);
	}
	break;
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 93) ... ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 107):
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 1):
	case ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 114):
	{
		result = copyString(TokTypeToStr_7y4sYGQdJmj2c4r0emPULw[((*tok).tokType)- 0]);
	}
	break;
	default:
	{
		{
			if (!!(((*tok).ident == NIM_NIL))) goto LA8_;
			result = copyString((*(*tok).ident).s);
		}
		goto LA6_;
		LA8_: ;
		{
			result = copyString(((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_14));
		}
		LA6_: ;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, prettyTok_TtD8kId4CzEkbAITBVCtzQ)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isKeyword_W77DgLTdnCGF4HSY4vap5Q((*tok).tokType);
		if (!T3_) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((*(*tok).ident).s->Sup.len + 8);
appendString(T6_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_150));
appendString(T6_, (*(*tok).ident).s);
		result = T6_;
	}
	goto LA1_;
	LA4_: ;
	{
		result = tokToStr_TtD8kId4CzEkbAITBVCtzQ_2(tok);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, closeLexer_Tac6pvXa9aGE9cnWPr5MhtBw)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* lex) {
	tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA* T1_;
	gLinesCompiled_A4hYMRw7F9b9aSLprP9aiou6Q += (*lex).Sup.lineNumber;
	T1_ = (tyObject_TBaseLexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
	T1_ = &lex->Sup;
	closeBaseLexer_cotVgXvyGKbiStcXgf0NTw_2(T1_);
}

N_NIMCALL(NIM_BOOL, isNimIdentifier_n0zyXjleUOF89crTSRzYbGQ)(NimStringDesc* s) { // G-: used in one place only in lexer
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI sLen;
		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)(48)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(57)) ||  // G-: added this
		      ((NU8)(s->data[((NI) 0)])) == ((NU8)(95)) || // G-: added this too
		      ((NU8)(s->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(255)))) goto LA3_;
		i = ((NI) 1);
		sLen = (s ? s->Sup.len : 0);
		{
			while (1) {
				if (!(i < sLen)) goto LA6;
				{
					if (!((NU8)(s->data[i]) == (NU8)(95))) goto LA9_;
					i += ((NI) 1);
				}
				LA9_: ;
				{ // G-: just reformatted to see what's there
					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_: ;
				i += ((NI) 1);
			} LA6: ;
		}
		result = NIM_TRUE;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(void, openLexer_eKdW81U1nNo7kyJQODmbcA)(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg* lex, NimStringDesc* filename, tyObject_TLLStream_IHsOGFu33dIY69a9bLlFHlHw* inputstream, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache) {
	NI32 T1_;
	T1_ = (NI32)0;
	T1_ = fileInfoIdx_RXxXBoV2drjjVnQa9abo19cQ(filename);
	openLexer_VnkJNxSy3Eov2D30qhzrvw(lex, T1_, inputstream, cache);
}

N_NIMCALL(void, printTok_0kBpReLFJ1GbjHiPO55NKg)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = nimIntToStr((*tok).line);
	T3_ = (NimStringDesc*)0;
	T3_ = nimIntToStr((*tok).col);
	T4_ = (NimStringDesc*)0;
	T4_ = tokToStr_TtD8kId4CzEkbAITBVCtzQ_2(tok);
	T1_ = rawNewString(T2_->Sup.len + T3_->Sup.len + TokTypeToStr_7y4sYGQdJmj2c4r0emPULw[((*tok).tokType)- 0]->Sup.len + T4_->Sup.len + 3);
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_138));
appendString(T1_, T3_);
appendString(T1_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_151));
appendString(T1_, TokTypeToStr_7y4sYGQdJmj2c4r0emPULw[((*tok).tokType)- 0]);
appendString(T1_, ((NimStringDesc*) &TM_4JpEWnGrmRM8CRqL3P2O1Q_152));
appendString(T1_, T4_);
	msgWriteln_mpdiFCyqIWmTQYjT6Mj9c6A(T1_, 0);
}
NIM_EXTERNC N_NOINLINE(void, compiler_lexerInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, compiler_lexerDatInit000)(void) {
static TNimNode* TM_4JpEWnGrmRM8CRqL3P2O1Q_2[8];
static TNimNode* TM_4JpEWnGrmRM8CRqL3P2O1Q_3[4];
NI TM_4JpEWnGrmRM8CRqL3P2O1Q_5;
static char* NIM_CONST TM_4JpEWnGrmRM8CRqL3P2O1Q_4[4] = {
"None",
"InToken",
"BeforeToken",
"AfterToken"};
static TNimNode* TM_4JpEWnGrmRM8CRqL3P2O1Q_6[2];
static TNimNode* TM_4JpEWnGrmRM8CRqL3P2O1Q_7[11];
static TNimNode* TM_4JpEWnGrmRM8CRqL3P2O1Q_8[119];
NI TM_4JpEWnGrmRM8CRqL3P2O1Q_10;
static char* NIM_CONST TM_4JpEWnGrmRM8CRqL3P2O1Q_9[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* TM_4JpEWnGrmRM8CRqL3P2O1Q_11[4];
NI TM_4JpEWnGrmRM8CRqL3P2O1Q_13;
static char* NIM_CONST TM_4JpEWnGrmRM8CRqL3P2O1Q_12[4] = {
"base10",
"base2",
"base8",
"base16"};
static TNimNode TM_4JpEWnGrmRM8CRqL3P2O1Q_0[154];
NTI_IOWqYAjEw106AHiXcZcUGg_.size = sizeof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg);
NTI_IOWqYAjEw106AHiXcZcUGg_.kind = 17;
NTI_IOWqYAjEw106AHiXcZcUGg_.base = (&NTI_z9a7O76kH1tJ9aXJ3h2MdEzA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[0] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[1];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[1].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[1].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, fileIdx);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[1].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[1].name = "fileIdx";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[1] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[2];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[2].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[2].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, indentAhead);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[2].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[2].name = "indentAhead";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[2] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[3];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[3].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[3].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, currLineIndent);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[3].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[3].name = "currLineIndent";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[3] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[4];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[4].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[4].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, strongSpaces);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[4].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[4].name = "strongSpaces";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[4] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[5];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[5].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[5].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, allowTabs);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[5].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[5].name = "allowTabs";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[5] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[6];
NTI_moKbK9a5baLOKMP3AQAcKoQ_.size = sizeof(tyEnum_CursorPosition_moKbK9a5baLOKMP3AQAcKoQ);
NTI_moKbK9a5baLOKMP3AQAcKoQ_.kind = 14;
NTI_moKbK9a5baLOKMP3AQAcKoQ_.base = 0;
NTI_moKbK9a5baLOKMP3AQAcKoQ_.flags = 3;
for (TM_4JpEWnGrmRM8CRqL3P2O1Q_5 = 0; TM_4JpEWnGrmRM8CRqL3P2O1Q_5 < 4; TM_4JpEWnGrmRM8CRqL3P2O1Q_5++) {
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_5+7].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_5+7].offset = TM_4JpEWnGrmRM8CRqL3P2O1Q_5;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_5+7].name = TM_4JpEWnGrmRM8CRqL3P2O1Q_4[TM_4JpEWnGrmRM8CRqL3P2O1Q_5];
TM_4JpEWnGrmRM8CRqL3P2O1Q_3[TM_4JpEWnGrmRM8CRqL3P2O1Q_5] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_5+7];
}
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[11].len = 4; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[11].kind = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[11].sons = &TM_4JpEWnGrmRM8CRqL3P2O1Q_3[0];
NTI_moKbK9a5baLOKMP3AQAcKoQ_.node = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[11];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[6].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[6].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, cursor);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[6].typ = (&NTI_moKbK9a5baLOKMP3AQAcKoQ_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[6].name = "cursor";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[6] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[12];
NTI_l9buWVPY1qenw5uCj2k2Uqg_.size = sizeof(tyTuple_2uzTbg8jwom7zHhmM2RgHg);
NTI_l9buWVPY1qenw5uCj2k2Uqg_.kind = 18;
NTI_l9buWVPY1qenw5uCj2k2Uqg_.base = 0;
TM_4JpEWnGrmRM8CRqL3P2O1Q_6[0] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[14];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[14].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[14].offset = offsetof(tyTuple_2uzTbg8jwom7zHhmM2RgHg, Field0);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[14].typ = (&NTI_vr5DoT1jILTGdRlYv1OYpw_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[14].name = "Field0";
TM_4JpEWnGrmRM8CRqL3P2O1Q_6[1] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[15];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[15].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[15].offset = offsetof(tyTuple_2uzTbg8jwom7zHhmM2RgHg, Field1);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[15].typ = (&NTI_58EFneeS9at7cA541QCoGAw_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[15].name = "Field1";
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[13].len = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[13].kind = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[13].sons = &TM_4JpEWnGrmRM8CRqL3P2O1Q_6[0];
NTI_l9buWVPY1qenw5uCj2k2Uqg_.node = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[13];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[12].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[12].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, errorHandler);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[12].typ = (&NTI_l9buWVPY1qenw5uCj2k2Uqg_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[12].name = "errorHandler";
TM_4JpEWnGrmRM8CRqL3P2O1Q_2[7] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[16];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[16].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[16].offset = offsetof(tyObject_TLexer_IOWqYAjEw106AHiXcZcUGg, cache);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[16].typ = (&NTI_lnkYNZP9asc88UfiEGjLrbA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[16].name = "cache";
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[0].len = 8; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[0].kind = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[0].sons = &TM_4JpEWnGrmRM8CRqL3P2O1Q_2[0];
NTI_IOWqYAjEw106AHiXcZcUGg_.node = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[0];
NTI_kLaEEPwLj8cag79cbYQIkHQ_.size = sizeof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ);
NTI_kLaEEPwLj8cag79cbYQIkHQ_.kind = 18;
NTI_kLaEEPwLj8cag79cbYQIkHQ_.base = 0;
NTI_kLaEEPwLj8cag79cbYQIkHQ_.flags = 2;
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[0] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[18];
NTI_vw8YkgaVtNadqP8v5OpXKA_.size = sizeof(tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA);
NTI_vw8YkgaVtNadqP8v5OpXKA_.kind = 14;
NTI_vw8YkgaVtNadqP8v5OpXKA_.base = 0;
NTI_vw8YkgaVtNadqP8v5OpXKA_.flags = 3;
for (TM_4JpEWnGrmRM8CRqL3P2O1Q_10 = 0; TM_4JpEWnGrmRM8CRqL3P2O1Q_10 < 119; TM_4JpEWnGrmRM8CRqL3P2O1Q_10++) {
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_10+19].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_10+19].offset = TM_4JpEWnGrmRM8CRqL3P2O1Q_10;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_10+19].name = TM_4JpEWnGrmRM8CRqL3P2O1Q_9[TM_4JpEWnGrmRM8CRqL3P2O1Q_10];
TM_4JpEWnGrmRM8CRqL3P2O1Q_8[TM_4JpEWnGrmRM8CRqL3P2O1Q_10] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_10+19];
}
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[138].len = 119; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[138].kind = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[138].sons = &TM_4JpEWnGrmRM8CRqL3P2O1Q_8[0];
NTI_vw8YkgaVtNadqP8v5OpXKA_.node = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[138];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[18].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[18].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, tokType);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[18].typ = (&NTI_vw8YkgaVtNadqP8v5OpXKA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[18].name = "tokType";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[1] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[139];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[139].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[139].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, indent);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[139].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[139].name = "indent";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[2] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[140];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[140].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[140].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, ident);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[140].typ = (&NTI_1nh2T19a2BrGbBBQRS39bxRw_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[140].name = "ident";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[3] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[141];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[141].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[141].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, iNumber);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[141].typ = (&NTI_Aav8dQoMlCFnZRxA0IhTHQ_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[141].name = "iNumber";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[4] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[142];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[142].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[142].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, fNumber);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[142].typ = (&NTI_w9bl9a1ul9ctRJWiMl9cNnIMvg_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[142].name = "fNumber";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[5] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[143];
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_.size = sizeof(tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q);
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_.kind = 14;
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_.base = 0;
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_.flags = 3;
for (TM_4JpEWnGrmRM8CRqL3P2O1Q_13 = 0; TM_4JpEWnGrmRM8CRqL3P2O1Q_13 < 4; TM_4JpEWnGrmRM8CRqL3P2O1Q_13++) {
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_13+144].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_13+144].offset = TM_4JpEWnGrmRM8CRqL3P2O1Q_13;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_13+144].name = TM_4JpEWnGrmRM8CRqL3P2O1Q_12[TM_4JpEWnGrmRM8CRqL3P2O1Q_13];
TM_4JpEWnGrmRM8CRqL3P2O1Q_11[TM_4JpEWnGrmRM8CRqL3P2O1Q_13] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[TM_4JpEWnGrmRM8CRqL3P2O1Q_13+144];
}
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[148].len = 4; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[148].kind = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[148].sons = &TM_4JpEWnGrmRM8CRqL3P2O1Q_11[0];
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_.node = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[148];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[143].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[143].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, base);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[143].typ = (&NTI_9cbxR9czWgoXwHHSzHtd9aV7Q_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[143].name = "base";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[6] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[149];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[149].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[149].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, strongSpaceA);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[149].typ = (&NTI_chXunH2dwinSkhpA6JnsXw_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[149].name = "strongSpaceA";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[7] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[150];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[150].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[150].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, strongSpaceB);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[150].typ = (&NTI_chXunH2dwinSkhpA6JnsXw_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[150].name = "strongSpaceB";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[8] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[151];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[151].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[151].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, literal);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[151].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[151].name = "literal";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[9] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[152];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[152].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[152].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, line);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[152].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[152].name = "line";
TM_4JpEWnGrmRM8CRqL3P2O1Q_7[10] = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[153];
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[153].kind = 1;
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[153].offset = offsetof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ, col);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[153].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[153].name = "col";
TM_4JpEWnGrmRM8CRqL3P2O1Q_0[17].len = 11; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[17].kind = 2; TM_4JpEWnGrmRM8CRqL3P2O1Q_0[17].sons = &TM_4JpEWnGrmRM8CRqL3P2O1Q_7[0];
NTI_kLaEEPwLj8cag79cbYQIkHQ_.node = &TM_4JpEWnGrmRM8CRqL3P2O1Q_0[17];
}

