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

#include "nimbase.h"
#include <string.h>
#include <setjmp.h>
#include <stdio.h>
#undef linux
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Tlexer_IOWqYAjEw106AHiXcZcUGg Tlexer_IOWqYAjEw106AHiXcZcUGg;
typedef struct Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA;
typedef struct TNimObject TNimObject;
typedef struct Tllstream_IHsOGFu33dIY69a9bLlFHlHw Tllstream_IHsOGFu33dIY69a9bLlFHlHw;
typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct TY_sdDP1TTkc2gaTu5fV53Zqg TY_sdDP1TTkc2gaTu5fV53Zqg;
typedef struct TY_qERWGavQjzug69cyzEYP39bQ TY_qERWGavQjzug69cyzEYP39bQ;
typedef struct Ttoken_kLaEEPwLj8cag79cbYQIkHQ Ttoken_kLaEEPwLj8cag79cbYQIkHQ;
typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g;
typedef struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg Tidobj_raN9cHVgzmvaXisezY9aGg9cg;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct Valueerror_Gi06FkNeykJn7mrqRZYrkA Valueerror_Gi06FkNeykJn7mrqRZYrkA;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w;
typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA;
typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg;
typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ;
typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set;
typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0);
typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0);
struct  TNimType  {
NI size;
Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind;
Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY_ojoeKfW4VYIm36I9cpDTQIg marker;
TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA  {
  TNimObject Sup;
NI bufpos;
NCSTRING buf;
NI buflen;
Tllstream_IHsOGFu33dIY69a9bLlFHlHw* stream;
NI linenumber;
NI sentinel;
NI linestart;
};
typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0, void* ClEnv);
void* ClEnv;
} TY_l9buWVPY1qenw5uCj2k2Uqg;
struct  Tlexer_IOWqYAjEw106AHiXcZcUGg  {
  Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA Sup;
NI32 fileidx;
NI indentahead;
NI currlineindent;
NIM_BOOL strongspaces;
NIM_BOOL allowtabs;
TY_l9buWVPY1qenw5uCj2k2Uqg errorhandler;
IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache;
};
struct TY_sdDP1TTkc2gaTu5fV53Zqg {
void* Field0;
TY_qERWGavQjzug69cyzEYP39bQ* Field1;
};
typedef NU8 Ttoktype_vw8YkgaVtNadqP8v5OpXKA;
typedef NU8 Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q;
struct  Ttoken_kLaEEPwLj8cag79cbYQIkHQ  {
Ttoktype_vw8YkgaVtNadqP8v5OpXKA toktype;
NI indent;
Tident_4umxGerWTHGPwUms7Yqu3g* ident;
NI64 inumber;
NF fnumber;
Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q base;
NI8 strongspacea;
NI8 strongspaceb;
NimStringDesc* literal;
NI line;
NI col;
};
typedef NU8 Tllstreamkind_jVcKY16LbOamXE9bxXUD6pQ;
struct  Tllstream_IHsOGFu33dIY69a9bLlFHlHw  {
  TNimObject Sup;
Tllstreamkind_jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineoffset;
};
struct  Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw  {
NI16 line;
NI16 col;
NI32 fileindex;
};
typedef N_CLOSURE_PTR(void, T_4JpEWnGrmRM8CRqL3P2O1Q_12) (Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0);
typedef NU64 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set;
typedef NU8 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw;
struct  Tidobj_raN9cHVgzmvaXisezY9aGg9cg  {
  TNimObject Sup;
NI id;
};
struct  Tident_4umxGerWTHGPwUms7Yqu3g  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
NimStringDesc* s;
Tident_4umxGerWTHGPwUms7Yqu3g* next;
NI h;
};
typedef NU8 TY_nmiMWKVIe46vacnhAFrQvw_Set[32];
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e0, void* ClEnv);
void* ClEnv;
} TY_KeeAOYBd84Ofsw6Y7LizaQ;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY_KeeAOYBd84Ofsw6Y7LizaQ raiseAction;
};
struct  Valueerror_Gi06FkNeykJn7mrqRZYrkA  {
  Exception Sup;
};
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
struct  Cellseq_Axo1XVm9aaQueTOldv8le5w  {
NI len;
NI cap;
Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256];
struct  Intset_EZObFrE3NC9bIb3YMkY9crZA  {
TY_lh2A89ahMmYg9bCmpVaplLbA data;
};
struct  Memregion_x81NhDv59b8ercDZ9bi85jyg  {
NI minlargeobj;
NI maxlargeobj;
TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks;
Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist;
Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes;
NIM_BOOL locked;
NIM_BOOL blockchunksizeincrease;
NI nextchunksize;
};
struct  Gcstat_0RwLoVBHZPfUAcLczmfQAg  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Cellset_jG87P0AI9aZtss9ccTYBIISQ  {
NI counter;
NI max;
Pagedesc_fublkgIY4LG3mT51LU2WHg* head;
Pagedesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct  Gcheap_1TRH1TZMaVZTnLNcIHuNFQ  {
Gcstack_7fytPA5bBsob6See21YMRA* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq_Axo1XVm9aaQueTOldv8le5w zct;
Cellseq_Axo1XVm9aaQueTOldv8le5w decstack;
Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack;
NI recgclock;
Memregion_x81NhDv59b8ercDZ9bi85jyg region;
Gcstat_0RwLoVBHZPfUAcLczmfQAg stat;
Cellset_jG87P0AI9aZtss9ccTYBIISQ marked;
Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots;
};
typedef NimStringDesc* TY_rhDLCy9aNYBAIsWVh16bA0A[119];
typedef NU8 Msgflag_BzRTaQ6LrPDZKEKt9bswkOQ_Set;
typedef Tident_4umxGerWTHGPwUms7Yqu3g* TY_CBfZt49asUfAsBVM7a3Rc9cw[8192];
struct  IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw  {
TY_CBfZt49asUfAsBVM7a3Rc9cw buckets;
NI wordcounter;
Tident_4umxGerWTHGPwUms7Yqu3g* idanon;
Tident_4umxGerWTHGPwUms7Yqu3g* iddelegator;
Tident_4umxGerWTHGPwUms7Yqu3g* emptyident;
};
struct TY_qERWGavQjzug69cyzEYP39bQ {
char dummy;
};
struct  Gcstack_7fytPA5bBsob6See21YMRA  {
Gcstack_7fytPA5bBsob6See21YMRA* prev;
Gcstack_7fytPA5bBsob6See21YMRA* next;
void* starts;
void* pos;
NI maxstacksize;
};
struct  Basechunk_Sdq7WpT6qAH858F5ZEdG3w  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk_tXn60W2f8h3jgAYdEmy5NQ  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk_XsENErzHIZV9bhvyJx56wGw  {
NI size;
NI acc;
Llchunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct  Bigchunk_Rv9c70Uhp2TytkX7eH78qEg  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NI align;
NF data;
};
typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16];
struct  Trunk_W0r8S0Y3UGke6T9bIUWnnuw  {
Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2];
struct  Avlnode_IaqjtwKhxLEpvDS9bct9blEw  {
TY_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperbound;
NI level;
};
struct  Pagedesc_fublkgIY4LG3mT51LU2WHg  {
Pagedesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
struct  Freecell_u6M5LHprqzkn9axr04yg9bGQ  {
Freecell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zerofield;
};
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
N_NIMCALL(void, openbaselexer_AhdjJJ6lkJ2zIxQnYdvcGQ)(Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L0, Tllstream_IHsOGFu33dIY69a9bLlFHlHw* inputstream0, NI buflen0);
N_NIMCALL(void, filltoken_FTh5b29clR9cRU4ec2Lu61rA_2)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* L0);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0);
N_NIMCALL(void, skip_HUKK9cILkwTBvMCbGFTZPSA_2)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
N_NIMCALL(void, lexmessagepos_7djWaZAcRzxz15NpWpA9bHg)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NI pos0, NimStringDesc* arg0);
N_NIMCALL(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw, newlineinfo_Shbbzc11c9bnWkBc9b42npzA)(NI32 fileinfoidx0, NI line0, NI col0);
N_NIMCALL(void, dispmessage_olO3stLx9aJm9aCQZS85t8xQ)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0);
N_NIMCALL(void, message_VpilfPWbplGz6ny7O9cfr2g_2)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0);
N_NIMCALL(NI, handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NI pos0);
N_NIMCALL(NI, getcolnumber_nRhrv4ZpI0tz0OPBe1mDKw)(Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L0, NI pos0);
N_NIMCALL(NimStringDesc*, newstring_IDI9atgS7lyzs3XvOizultw)(NCSTRING s0, NI len0);
N_NIMCALL(NimStringDesc*, mnewString)(NI len0);
N_NIMCALL(NimStringDesc*, mnewString)(NI len0);
N_NIMCALL(void, addsourceline_mLTUCE9ahnN1BQlO7PtLymA)(NI32 fileidx0, NimStringDesc* line0);
N_NIMCALL(NI, handlecr_BH0xyTNNGjFdfKKVBEL5rw)(Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L0, NI pos0);
N_NIMCALL(NI, handlelf_BH0xyTNNGjFdfKKVBEL5rw_3)(Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L0, NI pos0);
N_NIMCALL(void, skipmultilinecomment_GRATY1VQDIglUG1eI4jqeA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NI start0, NIM_BOOL isdoc0);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest0, NI addlen0);
N_NIMCALL(void, getsymbol_HUKK9cILkwTBvMCbGFTZPSA_3)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
static N_INLINE(NIM_BOOL, ismagicidentseparatorrune_jEsY0iAEfTnaxdnZAwGvIwidents)(NCSTRING cs0, NI i0);
N_NIMCALL(void, lexmessage_moxcy135mexMtB8c1DXBvA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0);
N_NIMCALL(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw, getlineinfo_Ux0pJuM59b8dKTMi336q5DA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0);
static N_INLINE(NI, HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes)(NI h0, NI val0);
static N_INLINE(NI, HEX21HEX24_zs9byUtT9cNi2e9clB27b2cUAhashes)(NI h0);
N_NIMCALL(Tident_4umxGerWTHGPwUms7Yqu3g*, getident_62GxCdwHvMBvMwCLnw1wyg)(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* self0, NCSTRING identifier0, NI length0, NI h0);
N_NIMCALL(void, scancomment_HUKK9cILkwTBvMCbGFTZPSA_4)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
static N_INLINE(void, endoperator_QQWnqO8rfo8dE9cojAfTlVAlexer)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NI pos0, NI hash0);
N_NIMCALL(void, getoperator_nJDzLaFCz6WphVhAQVrdqA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
N_NIMCALL(void, getstring_YG7m8w0rgfI3MdHCnA4maw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NIM_BOOL rawmode0);
N_NIMCALL(void, getescapedchar_HUKK9cILkwTBvMCbGFTZPSA_5)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
N_NIMCALL(void, handlehexchar_1e9csUsE2c69cW9cZBQwxW2Rw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NI* xi0);
N_NIMCALL(NIM_BOOL, matchtwochars_c9bP1COYEYDhChM9c5lh9bDJQ)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NIM_CHAR first0, TY_nmiMWKVIe46vacnhAFrQvw_Set second0);
N_NIMCALL(void, handledecchars_1e9csUsE2c69cW9cZBQwxW2Rw_2)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NI* xi0);
N_NIMCALL(Tident_4umxGerWTHGPwUms7Yqu3g*, getident_Y4Yr5rKoaxkzPcN8rPP9bWA)(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* self0, NimStringDesc* identifier0);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x0);
static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_NIMCALL(void, getcharacter_HUKK9cILkwTBvMCbGFTZPSA_6)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
N_NIMCALL(void, getnumber_9aBWWw9ce9azbTg8oMwTyFoEg)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* result0);
N_NIMCALL(void, lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NI startpos0);
N_NIMCALL(void, matchchars_f3XUyjUday2b0LWFkd9bI4Q)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, TY_nmiMWKVIe46vacnhAFrQvw_Set chars0);
N_NIMCALL(void, matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, TY_nmiMWKVIe46vacnhAFrQvw_Set chars0);
N_NIMCALL(void, internalerror_MXmtqrCmYwtOPkDCFgUWKQ)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, NimStringDesc* errmsg0);
static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
N_NIMCALL(NF, nsuParseFloat)(NimStringDesc* s0);
N_NIMCALL(NI, unsafeparseuint_bat7t0DiRlRbxAKUi9c9aqQw)(NimStringDesc* s0, NI64* b0, NI start0);
N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x0);
static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(void, raiseException)(Exception* e0, NCSTRING ename0);
N_NIMCALL(NI64, nsuParseBiggestInt)(NimStringDesc* s0);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj0, TNimType* subclass0);
static N_INLINE(Exception*, getCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, asgnRef)(void** dest0, void* src0);
static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(NIM_BOOL, iskeyword_W77DgLTdnCGF4HSY4vap5Q)(Ttoktype_vw8YkgaVtNadqP8v5OpXKA kind0);
N_NIMCALL(NimStringDesc*, toktostr_TtD8kId4CzEkbAITBVCtzQ_2)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f0);
N_NIMCALL(void, closebaselexer_cotVgXvyGKbiStcXgf0NTw_2)(Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* L0);
N_NIMCALL(void, openlexer_VnkJNxSy3Eov2D30qhzrvw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* lex0, NI32 fileidx0, Tllstream_IHsOGFu33dIY69a9bLlFHlHw* inputstream0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0);
N_NIMCALL(NI32, fileinfoidx_RXxXBoV2drjjVnQa9abo19cQ)(NimStringDesc* filename0);
N_NIMCALL(void, msgwriteln_mpdiFCyqIWmTQYjT6Mj9c6A)(NimStringDesc* s0, Msgflag_BzRTaQ6LrPDZKEKt9bswkOQ_Set flags0);
NI glinescompiled_A4hYMRw7F9b9aSLprP9aiou6Q;
extern TNimType NTI_z9a7O76kH1tJ9aXJ3h2MdEzA;
TNimType NTI_IOWqYAjEw106AHiXcZcUGg;
extern TNimType NTI_sVg18TP9cLifHyygRe9cro9aA;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ;
TNimType NTI_l9buWVPY1qenw5uCj2k2Uqg;
extern TNimType NTI_vr5DoT1jILTGdRlYv1OYpw;
extern TNimType NTI_j4IZVEbOYTm9aXKJeVb8ILQ;
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 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set gglobaloptions_j042VVDC9cT5ENYoXnmhhVg;
extern NimStringDesc* tnl_Gp8EwkcsAP9am1klnCCHM4w;
extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TNimType NTI_yCEN9anxCD6mzBxGjuaRBdg;
extern TNimType NTI_Gi06FkNeykJn7mrqRZYrkA;
extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern Exception* currexception_9bVPeDJlYTi9bQApZpfH8wjg;
extern TNimType NTI_I3Jtn27626sFBOls6BBQ2Q;
extern TNimType NTI_wFuRaV3kWqFxI9b4hUjDJYA;
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_11, "", 0);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_13, "\015\012", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_14, "end of multiline comment expected", 33);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_15, "\342\200\223", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_16, "_", 1);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_17 = {
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(T_4JpEWnGrmRM8CRqL3P2O1Q_18, "\357\277\277", 3);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_19 = {
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(T_4JpEWnGrmRM8CRqL3P2O1Q_20, " (\\", 3);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_21 = {
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 TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_22 = {
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 TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_23 = {
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 TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_24 = {
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 TY_nmiMWKVIe46vacnhAFrQvw_Set T_4JpEWnGrmRM8CRqL3P2O1Q_25 = {
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(T_4JpEWnGrmRM8CRqL3P2O1Q_26, "getNumber", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_28, "invalid integer: ", 17);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_29, "tkInvalid", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_30, "[EOF]", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_31, "tkSymbol", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_32, "addr", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_33, "and", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_34, "as", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_35, "asm", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_36, "atomic", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_37, "bind", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_38, "block", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_39, "break", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_40, "case", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_41, "cast", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_42, "concept", 7);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_43, "const", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_44, "continue", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_45, "converter", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_46, "defer", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_47, "discard", 7);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_48, "distinct", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_49, "div", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_50, "do", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_51, "elif", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_52, "else", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_53, "end", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_54, "enum", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_55, "except", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_56, "export", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_57, "finally", 7);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_58, "for", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_59, "from", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_60, "func", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_61, "generic", 7);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_62, "if", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_63, "import", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_64, "in", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_65, "include", 7);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_66, "interface", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_67, "is", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_68, "isnot", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_69, "iterator", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_70, "let", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_71, "macro", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_72, "method", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_73, "mixin", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_74, "mod", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_75, "nil", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_76, "not", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_77, "notin", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_78, "object", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_79, "of", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_80, "or", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_81, "out", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_82, "proc", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_83, "ptr", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_84, "raise", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_85, "ref", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_86, "return", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_87, "shl", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_88, "shr", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_89, "static", 6);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_90, "template", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_91, "try", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_92, "tuple", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_93, "type", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_94, "using", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_95, "var", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_96, "when", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_97, "while", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_98, "with", 4);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_99, "without", 7);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_100, "xor", 3);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_101, "yield", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_102, "tkIntLit", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_103, "tkInt8Lit", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_104, "tkInt16Lit", 10);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_105, "tkInt32Lit", 10);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_106, "tkInt64Lit", 10);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_107, "tkUIntLit", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_108, "tkUInt8Lit", 10);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_109, "tkUInt16Lit", 11);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_110, "tkUInt32Lit", 11);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_111, "tkUInt64Lit", 11);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_112, "tkFloatLit", 10);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_113, "tkFloat32Lit", 12);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_114, "tkFloat64Lit", 12);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_115, "tkFloat128Lit", 13);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_116, "tkStrLit", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_117, "tkRStrLit", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_118, "tkTripleStrLit", 14);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_119, "tkGStrLit", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_120, "tkGTripleStrLit", 15);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_121, "tkCharLit", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_122, "(", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_123, ")", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_124, "[", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_125, "]", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_126, "{", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_127, "}", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_128, "[.", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_129, ".]", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_130, "{.", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_131, ".}", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_132, "(.", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_133, ".)", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_134, ",", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_135, ";", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_136, ":", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_137, "::", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_138, "=", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_139, ".", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_140, "..", 2);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_141, "tkOpr", 5);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_142, "tkComment", 9);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_143, "`", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_144, "tkSpaces", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_145, "tkInfixOpr", 10);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_146, "tkPrefixOpr", 11);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_147, "tkPostfixOpr", 12);
NIM_CONST TY_rhDLCy9aNYBAIsWVh16bA0A Toktypetostr_7y4sYGQdJmj2c4r0emPULw = {((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_29),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_30),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_31),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_32),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_33),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_34),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_35),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_36),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_37),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_38),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_39),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_40),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_41),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_42),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_43),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_44),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_45),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_46),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_47),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_48),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_49),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_50),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_51),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_52),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_53),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_54),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_55),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_56),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_57),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_58),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_59),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_60),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_61),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_62),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_63),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_64),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_65),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_66),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_67),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_68),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_69),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_70),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_71),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_72),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_73),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_74),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_75),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_76),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_77),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_78),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_79),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_80),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_81),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_82),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_83),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_84),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_85),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_86),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_87),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_88),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_89),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_90),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_91),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_92),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_93),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_94),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_95),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_96),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_97),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_98),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_99),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_100),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_101),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_102),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_103),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_104),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_105),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_106),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_107),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_108),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_109),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_110),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_111),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_112),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_113),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_114),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_115),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_116),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_117),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_118),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_119),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_120),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_121),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_122),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_123),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_124),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_125),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_126),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_127),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_128),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_129),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_130),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_131),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_132),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_133),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_134),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_135),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_136),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_137),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_138),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_139),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_140),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_141),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_142),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_143),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_144),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_145),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_146),
((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_147)}
;
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_148, "keyword ", 8);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_149, "\011", 1);
STRING_LITERAL(T_4JpEWnGrmRM8CRqL3P2O1Q_150, " ", 1);

N_NIMCALL(void, inittoken_FTh5b29clR9cRU4ec2Lu61rA)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* L0) {
	(*L0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 0);
	(*L0).inumber = IL64(0);
	(*L0).indent = ((NI) 0);
	(*L0).strongspacea = ((NI8) 0);
	unsureAsgnRef((void**) (&(*L0).literal), copyString(((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11)));
	(*L0).fnumber = 0.0;
	(*L0).base = ((Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q) 0);
	unsureAsgnRef((void**) (&(*L0).ident), NIM_NIL);
}

N_NIMCALL(void, openlexer_VnkJNxSy3Eov2D30qhzrvw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* lex0, NI32 fileidx0, Tllstream_IHsOGFu33dIY69a9bLlFHlHw* inputstream0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0) {
	Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* LOC1;
	LOC1 = (Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
	LOC1 = &lex0->Sup;
	openbaselexer_AhdjJJ6lkJ2zIxQnYdvcGQ(LOC1, inputstream0, ((NI) 8192));
	(*lex0).fileidx = fileidx0;
	(*lex0).indentahead = ((NI) -1);
	(*lex0).currlineindent = ((NI) 0);
	(*lex0).Sup.linenumber += (*inputstream0).lineoffset;
	unsureAsgnRef((void**) (&(*lex0).cache), cache0);
}

N_NIMCALL(void, filltoken_FTh5b29clR9cRU4ec2Lu61rA_2)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* L0) {
	(*L0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 0);
	(*L0).inumber = IL64(0);
	(*L0).indent = ((NI) 0);
	(*L0).strongspacea = ((NI8) 0);
	(*L0).literal = setLengthStr((*L0).literal, ((NI) 0));
	(*L0).fnumber = 0.0;
	(*L0).base = ((Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q) 0);
	unsureAsgnRef((void**) (&(*L0).ident), NIM_NIL);
}

N_NIMCALL(void, dispmessage_olO3stLx9aJm9aCQZS85t8xQ)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0) {
	{
		if (!((*L0).errorhandler.ClPrc == 0)) goto LA3;
		message_VpilfPWbplGz6ny7O9cfr2g_2(info0, msg0, arg0);
	}
	goto LA1;
	LA3: ;
	{
		(*L0).errorhandler.ClEnv? (*L0).errorhandler.ClPrc(info0, msg0, arg0, (*L0).errorhandler.ClEnv):((T_4JpEWnGrmRM8CRqL3P2O1Q_12)((*L0).errorhandler.ClPrc))(info0, msg0, arg0);
	}
	LA1: ;
}

N_NIMCALL(void, lexmessagepos_7djWaZAcRzxz15NpWpA9bHg)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NI pos0, NimStringDesc* arg0) {
	Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0;
	info0 = newlineinfo_Shbbzc11c9bnWkBc9b42npzA((*L0).fileidx, (*L0).Sup.linenumber, (NI)(pos0 - (*L0).Sup.linestart));
	dispmessage_olO3stLx9aJm9aCQZS85t8xQ((&(*L0)), info0, msg0, arg0);
}

N_NIMCALL(NimStringDesc*, newstring_IDI9atgS7lyzs3XvOizultw)(NCSTRING s0, NI len0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	result0 = mnewString(((NI) (len0)));
	{
		NI i_Q8hEJGr4JpPTjcrw9bwMsiw;
		NI HEX3Atmp_DMqHMJvlURjU9bC9bZNqT37w;
		NI res_6iCsxuUrEOtBZ0qQgFWhkg;
		i_Q8hEJGr4JpPTjcrw9bwMsiw = (NI)0;
		HEX3Atmp_DMqHMJvlURjU9bC9bZNqT37w = (NI)0;
		HEX3Atmp_DMqHMJvlURjU9bC9bZNqT37w = (len0 - 1);
		res_6iCsxuUrEOtBZ0qQgFWhkg = ((NI) 0);
		{
			while (1) {
				if (!(res_6iCsxuUrEOtBZ0qQgFWhkg <= HEX3Atmp_DMqHMJvlURjU9bC9bZNqT37w)) goto LA3;
				i_Q8hEJGr4JpPTjcrw9bwMsiw = res_6iCsxuUrEOtBZ0qQgFWhkg;
				result0->data[i_Q8hEJGr4JpPTjcrw9bwMsiw] = s0[i_Q8hEJGr4JpPTjcrw9bwMsiw];
				res_6iCsxuUrEOtBZ0qQgFWhkg += ((NI) 1);
			} LA3: ;
		}
	}
	return result0;
}

N_NIMCALL(NI, handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NI pos0) {
	NI result0;
	result0 = (NI)0;
	switch (((NU8)((*L0).Sup.buf[pos0]))) {
	case 13:
	{
		NI col_b2r07tjJJzkOg5UTfhLIGA;
		Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* LOC10;
		col_b2r07tjJJzkOg5UTfhLIGA = getcolnumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L0).Sup), pos0);
		{
			if (!(((NI) 80) < col_b2r07tjJJzkOg5UTfhLIGA)) goto LA4;
			lexmessagepos_7djWaZAcRzxz15NpWpA9bHg(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 269), pos0, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
		}
		LA4: ;
		{
			NI linestart_iaASk8EnmtbQHuww7lpwNg;
			NimStringDesc* line_GxDEdoyjfskQ9ba9c72lc6SA;
			if (!((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg &((NU64)1<<((NU)(((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw) 28))&63U)))!=0)) goto LA8;
			linestart_iaASk8EnmtbQHuww7lpwNg = (NI)(((NI) ((*L0).Sup.buf)) + (*L0).Sup.linestart);
			line_GxDEdoyjfskQ9ba9c72lc6SA = newstring_IDI9atgS7lyzs3XvOizultw(((NCSTRING) (linestart_iaASk8EnmtbQHuww7lpwNg)), col_b2r07tjJJzkOg5UTfhLIGA);
			addsourceline_mLTUCE9ahnN1BQlO7PtLymA((*L0).fileidx, line_GxDEdoyjfskQ9ba9c72lc6SA);
		}
		LA8: ;
		LOC10 = (Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
		LOC10 = &L0->Sup;
		result0 = handlecr_BH0xyTNNGjFdfKKVBEL5rw(LOC10, pos0);
	}
	break;
	case 10:
	{
		NI col_b2r07tjJJzkOg5UTfhLIGA_2;
		Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* LOC20;
		col_b2r07tjJJzkOg5UTfhLIGA_2 = getcolnumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L0).Sup), pos0);
		{
			if (!(((NI) 80) < col_b2r07tjJJzkOg5UTfhLIGA_2)) goto LA14;
			lexmessagepos_7djWaZAcRzxz15NpWpA9bHg(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 269), pos0, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
		}
		LA14: ;
		{
			NI linestart_iaASk8EnmtbQHuww7lpwNg_2;
			NimStringDesc* line_GxDEdoyjfskQ9ba9c72lc6SA_2;
			if (!((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg &((NU64)1<<((NU)(((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw) 28))&63U)))!=0)) goto LA18;
			linestart_iaASk8EnmtbQHuww7lpwNg_2 = (NI)(((NI) ((*L0).Sup.buf)) + (*L0).Sup.linestart);
			line_GxDEdoyjfskQ9ba9c72lc6SA_2 = newstring_IDI9atgS7lyzs3XvOizultw(((NCSTRING) (linestart_iaASk8EnmtbQHuww7lpwNg_2)), col_b2r07tjJJzkOg5UTfhLIGA_2);
			addsourceline_mLTUCE9ahnN1BQlO7PtLymA((*L0).fileidx, line_GxDEdoyjfskQ9ba9c72lc6SA_2);
		}
		LA18: ;
		LOC20 = (Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
		LOC20 = &L0->Sup;
		result0 = handlelf_BH0xyTNNGjFdfKKVBEL5rw_3(LOC20, pos0);
	}
	break;
	default:
	{
		result0 = pos0;
	}
	break;
	}
	return result0;
}

static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0) {
	void* LOC1;
	LOC1 = (void*)0;
	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
}

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

N_NIMCALL(void, skipmultilinecomment_GRATY1VQDIglUG1eI4jqeA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NI start0, NIM_BOOL isdoc0) {
	NI pos0;
	NCSTRING buf0;
	NI tostrip0;
	NI nesting0;
	pos0 = start0;
	buf0 = (*L0).Sup.buf;
	tostrip0 = ((NI) 0);
	{
		if (!isdoc0) goto LA3;
		tostrip0 = getcolnumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L0).Sup), pos0);
		{
			while (1) {
				if (!((NU8)(buf0[pos0]) == (NU8)(32))) goto LA6;
				pos0 += ((NI) 1);
			} LA6: ;
		}
		{
			if (!(((NU8)(buf0[pos0])) == ((NU8)(13)) || ((NU8)(buf0[pos0])) == ((NU8)(10)))) goto LA9;
			pos0 = handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw(L0, pos0);
			buf0 = (*L0).Sup.buf;
			tostrip0 = ((NI) 0);
			{
				while (1) {
					if (!((NU8)(buf0[pos0]) == (NU8)(32))) goto LA12;
					pos0 += ((NI) 1);
					tostrip0 += ((NI) 1);
				} LA12: ;
			}
		}
		LA9: ;
	}
	LA3: ;
	nesting0 = ((NI) 0);
	{
		while (1) {
			switch (((NU8)(buf0[pos0]))) {
			case 35:
			{
				{
					if (!isdoc0) goto LA18;
					{
						NIM_BOOL LOC22;
						LOC22 = (NIM_BOOL)0;
						LOC22 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(35));
						if (!(LOC22)) goto LA23;
						LOC22 = ((NU8)(buf0[(NI)(pos0 + ((NI) 2))]) == (NU8)(91));
						LA23: ;
						if (!LOC22) goto LA24;
						nesting0 += ((NI) 1);
					}
					LA24: ;
					(*tok0).literal = addChar((*tok0).literal, 35);
				}
				goto LA16;
				LA18: ;
				{
					if (!((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(91))) goto LA27;
					nesting0 += ((NI) 1);
				}
				goto LA16;
				LA27: ;
				LA16: ;
				pos0 += ((NI) 1);
			}
			break;
			case 93:
			{
				{
					if (!isdoc0) goto LA32;
					{
						NIM_BOOL LOC36;
						LOC36 = (NIM_BOOL)0;
						LOC36 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(35));
						if (!(LOC36)) goto LA37;
						LOC36 = ((NU8)(buf0[(NI)(pos0 + ((NI) 2))]) == (NU8)(35));
						LA37: ;
						if (!LOC36) goto LA38;
						{
							if (!(nesting0 == ((NI) 0))) goto LA42;
							pos0 += ((NI) 3);
							goto LA13;
						}
						LA42: ;
						nesting0 -= ((NI) 1);
					}
					LA38: ;
					(*tok0).literal = addChar((*tok0).literal, 93);
				}
				goto LA30;
				LA32: ;
				{
					if (!((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(35))) goto LA45;
					{
						if (!(nesting0 == ((NI) 0))) goto LA49;
						pos0 += ((NI) 2);
						goto LA13;
					}
					LA49: ;
					nesting0 -= ((NI) 1);
				}
				goto LA30;
				LA45: ;
				LA30: ;
				pos0 += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				pos0 = handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw(L0, pos0);
				buf0 = (*L0).Sup.buf;
				{
					NI c0;
					if (!isdoc0) goto LA54;
					(*tok0).literal = resizeString((*tok0).literal, 2);
appendString((*tok0).literal, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_13));
					(*tok0).inumber += ((NI) 1);
					c0 = tostrip0;
					{
						while (1) {
							NIM_BOOL LOC58;
							LOC58 = (NIM_BOOL)0;
							LOC58 = ((NU8)(buf0[pos0]) == (NU8)(32));
							if (!(LOC58)) goto LA59;
							LOC58 = (((NI) 0) < c0);
							LA59: ;
							if (!LOC58) goto LA57;
							pos0 += ((NI) 1);
							c0 -= ((NI) 1);
						} LA57: ;
					}
				}
				LA54: ;
			}
			break;
			case 0:
			{
				lexmessagepos_7djWaZAcRzxz15NpWpA9bHg(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 4), pos0, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_14));
				goto LA13;
			}
			break;
			default:
			{
				{
					if (!isdoc0) goto LA64;
					(*tok0).literal = addChar((*tok0).literal, buf0[pos0]);
				}
				LA64: ;
				pos0 += ((NI) 1);
			}
			break;
			}
		}
	} LA13: ;
	(*L0).Sup.bufpos = pos0;
}

N_NIMCALL(void, skip_HUKK9cILkwTBvMCbGFTZPSA_2)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NI pos0;
	NCSTRING buf0;
	pos0 = (*L0).Sup.bufpos;
	buf0 = (*L0).Sup.buf;
	(*tok0).strongspacea = ((NI8) 0);
	{
		while (1) {
			switch (((NU8)(buf0[pos0]))) {
			case 32:
			{
				pos0 += ((NI) 1);
				(*tok0).strongspacea += ((NI) 1);
			}
			break;
			case 9:
			{
				{
					if (!!((*L0).allowtabs)) goto LA7;
					lexmessagepos_7djWaZAcRzxz15NpWpA9bHg(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 11), pos0, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
				}
				LA7: ;
				pos0 += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				NI indent0;
				pos0 = handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw(L0, pos0);
				buf0 = (*L0).Sup.buf;
				indent0 = ((NI) 0);
				{
					while (1) {
						{
							if (!((NU8)(buf0[pos0]) == (NU8)(32))) goto LA14;
							pos0 += ((NI) 1);
							indent0 += ((NI) 1);
						}
						goto LA12;
						LA14: ;
						{
							NIM_BOOL LOC17;
							LOC17 = (NIM_BOOL)0;
							LOC17 = ((NU8)(buf0[pos0]) == (NU8)(35));
							if (!(LOC17)) goto LA18;
							LOC17 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(91));
							LA18: ;
							if (!LOC17) goto LA19;
							skipmultilinecomment_GRATY1VQDIglUG1eI4jqeA(L0, tok0, (NI)(pos0 + ((NI) 2)), NIM_FALSE);
							pos0 = (*L0).Sup.bufpos;
							buf0 = (*L0).Sup.buf;
						}
						goto LA12;
						LA19: ;
						{
							goto LA10;
						}
						LA12: ;
					}
				} LA10: ;
				(*tok0).strongspacea = ((NI8) 0);
				{
					NIM_BOOL LOC24;
					NIM_BOOL LOC26;
					LOC24 = (NIM_BOOL)0;
					LOC24 = ((NU8)(32) < (NU8)(buf0[pos0]));
					if (!(LOC24)) goto LA25;
					LOC26 = (NIM_BOOL)0;
					LOC26 = !(((NU8)(buf0[pos0]) == (NU8)(35)));
					if (LOC26) goto LA27;
					LOC26 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(35));
					LA27: ;
					LOC24 = LOC26;
					LA25: ;
					if (!LOC24) goto LA28;
					(*tok0).indent = indent0;
					(*L0).currlineindent = indent0;
					goto LA1;
				}
				LA28: ;
			}
			break;
			case 35:
			{
				{
					if (!((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(35))) goto LA33;
					goto LA1;
				}
				LA33: ;
				{
					if (!((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(91))) goto LA37;
					skipmultilinecomment_GRATY1VQDIglUG1eI4jqeA(L0, tok0, (NI)(pos0 + ((NI) 2)), NIM_FALSE);
					pos0 = (*L0).Sup.bufpos;
					buf0 = (*L0).Sup.buf;
				}
				goto LA35;
				LA37: ;
				{
					{
						while (1) {
							if (!!((((NU8)(buf0[pos0])) == ((NU8)(13)) || ((NU8)(buf0[pos0])) == ((NU8)(10)) || ((NU8)(buf0[pos0])) == ((NU8)(0))))) goto LA41;
							pos0 += ((NI) 1);
						} LA41: ;
					}
				}
				LA35: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	(*L0).Sup.bufpos = pos0;
}

static N_INLINE(NIM_BOOL, ismagicidentseparatorrune_jEsY0iAEfTnaxdnZAwGvIwidents)(NCSTRING cs0, NI i0) {
	NIM_BOOL result0;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	result0 = (NIM_BOOL)0;
	LOC1 = (NIM_BOOL)0;
	LOC2 = (NIM_BOOL)0;
	LOC2 = ((NU8)(cs0[i0]) == (NU8)(226));
	if (!(LOC2)) goto LA3;
	LOC2 = ((NU8)(cs0[(NI)(i0 + ((NI) 1))]) == (NU8)(128));
	LA3: ;
	LOC1 = LOC2;
	if (!(LOC1)) goto LA4;
	LOC1 = ((NU8)(cs0[(NI)(i0 + ((NI) 2))]) == (NU8)(147));
	LA4: ;
	result0 = LOC1;
	return result0;
}

N_NIMCALL(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw, getlineinfo_Ux0pJuM59b8dKTMi336q5DA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0) {
	Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw result0;
	NI LOC1;
	memset((void*)(&result0), 0, sizeof(result0));
	LOC1 = (NI)0;
	LOC1 = getcolnumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L0).Sup), (*L0).Sup.bufpos);
	result0 = newlineinfo_Shbbzc11c9bnWkBc9b42npzA((*L0).fileidx, (*L0).Sup.linenumber, LOC1);
	return result0;
}

N_NIMCALL(void, lexmessage_moxcy135mexMtB8c1DXBvA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0) {
	Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC1;
	LOC1 = getlineinfo_Ux0pJuM59b8dKTMi336q5DA(L0);
	dispmessage_olO3stLx9aJm9aCQZS85t8xQ(L0, LOC1, msg0, arg0);
}

static N_INLINE(NI, HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes)(NI h0, NI val0) {
	NI result0;
	result0 = (NI)0;
	result0 = (NI)((NU32)(h0) + (NU32)(val0));
	result0 = (NI)((NU32)(result0) + (NU32)((NI)((NU32)(result0) << (NU32)(((NI) 10)))));
	result0 = (NI)(result0 ^ (NI)((NU32)(result0) >> (NU32)(((NI) 6))));
	return result0;
}

static N_INLINE(NI, HEX21HEX24_zs9byUtT9cNi2e9clB27b2cUAhashes)(NI h0) {
	NI result0;
	result0 = (NI)0;
	result0 = (NI)((NU32)(h0) + (NU32)((NI)((NU32)(h0) << (NU32)(((NI) 3)))));
	result0 = (NI)(result0 ^ (NI)((NU32)(result0) >> (NU32)(((NI) 11))));
	result0 = (NI)((NU32)(result0) + (NU32)((NI)((NU32)(result0) << (NU32)(((NI) 15)))));
	return result0;
}

N_NIMCALL(void, getsymbol_HUKK9cILkwTBvMCbGFTZPSA_3)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NI h0;
	NI pos0;
	NCSTRING buf0;
	h0 = ((NI) 0);
	pos0 = (*L0).Sup.bufpos;
	buf0 = (*L0).Sup.buf;
	{
		while (1) {
			NIM_CHAR c0;
			c0 = buf0[pos0];
			switch (((NU8)(c0))) {
			case 97 ... 122:
			case 48 ... 57:
			case 128 ... 255:
			{
				{
					NIM_BOOL LOC6;
					NIM_BOOL LOC7;
					LOC6 = (NIM_BOOL)0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = ((NU8)(c0) == (NU8)(226));
					if (!(LOC7)) goto LA8;
					LOC7 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(128));
					LA8: ;
					LOC6 = LOC7;
					if (!(LOC6)) goto LA9;
					LOC6 = ((NU8)(buf0[(NI)(pos0 + ((NI) 2))]) == (NU8)(147));
					LA9: ;
					if (!LOC6) goto LA10;
					{
						NIM_BOOL LOC14;
						NIM_BOOL LOC15;
						LOC14 = (NIM_BOOL)0;
						LOC15 = (NIM_BOOL)0;
						LOC15 = !((((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) >= ((NU8)(128)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 3))])) <= ((NU8)(255))));
						if (LOC15) goto LA16;
						LOC15 = ismagicidentseparatorrune_jEsY0iAEfTnaxdnZAwGvIwidents(buf0, (NI)(pos0 + ((NI) 3)));
						LA16: ;
						LOC14 = LOC15;
						if (LOC14) goto LA17;
						LOC14 = (pos0 == (*L0).Sup.bufpos);
						LA17: ;
						if (!LOC14) goto LA18;
						lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 12), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_15));
						goto LA1;
					}
					LA18: ;
					pos0 += ((NI) 3);
				}
				goto LA4;
				LA10: ;
				{
					h0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(h0, ((NI) (((NU8)(c0)))));
					pos0 += ((NI) 1);
				}
				LA4: ;
			}
			break;
			case 65 ... 90:
			{
				c0 = ((NIM_CHAR) (((NI) ((NI)(((NI) (((NU8)(c0)))) + ((NI) 32))))));
				h0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(h0, ((NI) (((NU8)(c0)))));
				pos0 += ((NI) 1);
			}
			break;
			case 95:
			{
				{
					NIM_BOOL LOC25;
					LOC25 = (NIM_BOOL)0;
					LOC25 = !((((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) <= ((NU8)(57)) || ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) >= ((NU8)(128)) && ((NU8)(buf0[(NI)(pos0 + ((NI) 1))])) <= ((NU8)(255))));
					if (LOC25) goto LA26;
					LOC25 = ismagicidentseparatorrune_jEsY0iAEfTnaxdnZAwGvIwidents(buf0, (NI)(pos0 + ((NI) 1)));
					LA26: ;
					if (!LOC25) goto LA27;
					lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 12), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_16));
					goto LA1;
				}
				LA27: ;
				pos0 += ((NI) 1);
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	h0 = HEX21HEX24_zs9byUtT9cNi2e9clB27b2cUAhashes(h0);
	unsureAsgnRef((void**) (&(*tok0).ident), getident_62GxCdwHvMBvMwCLnw1wyg((*L0).cache, ((NCSTRING) ((&(*L0).Sup.buf[(*L0).Sup.bufpos]))), (NI)(pos0 - (*L0).Sup.bufpos), h0));
	(*L0).Sup.bufpos = pos0;
	{
		NIM_BOOL LOC32;
		LOC32 = (NIM_BOOL)0;
		LOC32 = ((*(*tok0).ident).Sup.id < ((NI) 1));
		if (LOC32) goto LA33;
		LOC32 = (((NI) 70) < (*(*tok0).ident).Sup.id);
		LA33: ;
		if (!LOC32) goto LA34;
		(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 2);
	}
	goto LA30;
	LA34: ;
	{
		(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) ((NI)((*(*tok0).ident).Sup.id + ((NI) 2))));
	}
	LA30: ;
}

N_NIMCALL(void, scancomment_HUKK9cILkwTBvMCbGFTZPSA_4)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NI pos0;
	NCSTRING buf0;
	NI tostrip0;
{	pos0 = (*L0).Sup.bufpos;
	buf0 = (*L0).Sup.buf;
	(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 113);
	(*tok0).inumber = IL64(0);
	{
		if (!((NU8)(buf0[(NI)(pos0 + ((NI) 2))]) == (NU8)(91))) goto LA3;
		skipmultilinecomment_GRATY1VQDIglUG1eI4jqeA(L0, tok0, (NI)(pos0 + ((NI) 3)), NIM_TRUE);
		goto BeforeRet;
	}
	LA3: ;
	pos0 += ((NI) 2);
	tostrip0 = ((NI) 0);
	{
		while (1) {
			if (!((NU8)(buf0[pos0]) == (NU8)(32))) goto LA6;
			pos0 += ((NI) 1);
			tostrip0 += ((NI) 1);
		} LA6: ;
	}
	{
		while (1) {
			NI lastbackslash0;
			NI indent0;
			lastbackslash0 = ((NI) -1);
			{
				while (1) {
					if (!!((((NU8)(buf0[pos0])) == ((NU8)(13)) || ((NU8)(buf0[pos0])) == ((NU8)(10)) || ((NU8)(buf0[pos0])) == ((NU8)(0))))) goto LA10;
					{
						if (!((NU8)(buf0[pos0]) == (NU8)(92))) goto LA13;
						lastbackslash0 = (NI)(pos0 + ((NI) 1));
					}
					LA13: ;
					(*tok0).literal = addChar((*tok0).literal, buf0[pos0]);
					pos0 += ((NI) 1);
				} LA10: ;
			}
			pos0 = handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw(L0, pos0);
			buf0 = (*L0).Sup.buf;
			indent0 = ((NI) 0);
			{
				while (1) {
					if (!((NU8)(buf0[pos0]) == (NU8)(32))) goto LA16;
					pos0 += ((NI) 1);
					indent0 += ((NI) 1);
				} LA16: ;
			}
			{
				NIM_BOOL LOC19;
				NI c0;
				LOC19 = (NIM_BOOL)0;
				LOC19 = ((NU8)(buf0[pos0]) == (NU8)(35));
				if (!(LOC19)) goto LA20;
				LOC19 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(35));
				LA20: ;
				if (!LOC19) goto LA21;
				(*tok0).literal = resizeString((*tok0).literal, 2);
appendString((*tok0).literal, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_13));
				pos0 += ((NI) 2);
				c0 = tostrip0;
				{
					while (1) {
						NIM_BOOL LOC25;
						LOC25 = (NIM_BOOL)0;
						LOC25 = ((NU8)(buf0[pos0]) == (NU8)(32));
						if (!(LOC25)) goto LA26;
						LOC25 = (((NI) 0) < c0);
						LA26: ;
						if (!LOC25) goto LA24;
						pos0 += ((NI) 1);
						c0 -= ((NI) 1);
					} LA24: ;
				}
				(*tok0).inumber += ((NI) 1);
			}
			goto LA17;
			LA21: ;
			{
				{
					if (!((NU8)(32) < (NU8)(buf0[pos0]))) goto LA30;
					(*L0).indentahead = indent0;
				}
				LA30: ;
				goto LA7;
			}
			LA17: ;
		}
	} LA7: ;
	(*L0).Sup.bufpos = pos0;
	}BeforeRet: ;
}

static N_INLINE(void, endoperator_QQWnqO8rfo8dE9cojAfTlVAlexer)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NI pos0, NI hash0) {
	NI h0;
	h0 = HEX21HEX24_zs9byUtT9cNi2e9clB27b2cUAhashes(hash0);
	unsureAsgnRef((void**) (&(*tok0).ident), getident_62GxCdwHvMBvMwCLnw1wyg((*L0).cache, ((NCSTRING) ((&(*L0).Sup.buf[(*L0).Sup.bufpos]))), (NI)(pos0 - (*L0).Sup.bufpos), h0));
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((*(*tok0).ident).Sup.id < ((NI) 71));
		if (LOC3) goto LA4;
		LOC3 = (((NI) 75) < (*(*tok0).ident).Sup.id);
		LA4: ;
		if (!LOC3) goto LA5;
		(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 112);
	}
	goto LA1;
	LA5: ;
	{
		(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) ((NI)((NI)((*(*tok0).ident).Sup.id - ((NI) 71)) + ((NI) 107))));
	}
	LA1: ;
	(*L0).Sup.bufpos = pos0;
}

N_NIMCALL(void, getoperator_nJDzLaFCz6WphVhAQVrdqA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NI pos0;
	NCSTRING buf0;
	NI h0;
	pos0 = (*L0).Sup.bufpos;
	buf0 = (*L0).Sup.buf;
	h0 = ((NI) 0);
	{
		while (1) {
			NIM_CHAR c0;
			c0 = buf0[pos0];
			{
				if (!!(((T_4JpEWnGrmRM8CRqL3P2O1Q_17[(NU)(((NU8)(c0)))>>3] &(1U<<((NU)(((NU8)(c0)))&7U)))!=0))) goto LA5;
				goto LA1;
			}
			LA5: ;
			h0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(h0, ((NI) (((NU8)(c0)))));
			pos0 += ((NI) 1);
		}
	} LA1: ;
	endoperator_QQWnqO8rfo8dE9cojAfTlVAlexer(L0, tok0, pos0, h0);
	(*tok0).strongspaceb = ((NI8) 0);
	{
		while (1) {
			if (!((NU8)(buf0[pos0]) == (NU8)(32))) goto LA8;
			pos0 += ((NI) 1);
			(*tok0).strongspaceb += ((NI) 1);
		} LA8: ;
	}
	{
		if (!(((NU8)(buf0[pos0])) == ((NU8)(13)) || ((NU8)(buf0[pos0])) == ((NU8)(10)) || ((NU8)(buf0[pos0])) == ((NU8)(0)))) goto LA11;
		(*tok0).strongspaceb = ((NI8) -1);
	}
	LA11: ;
}

N_NIMCALL(void, handlehexchar_1e9csUsE2c69cW9cZBQwxW2Rw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NI* xi0) {
	switch (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]))) {
	case 48 ... 57:
	{
		(*xi0) = (NI)((NI)((NU32)((*xi0)) << (NU32)(((NI) 4))) | ((NI) ((NI)(((NI) (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])))) - ((NI) 48)))));
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 97 ... 102:
	{
		(*xi0) = (NI)((NI)((NU32)((*xi0)) << (NU32)(((NI) 4))) | ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])))) - ((NI) 97)))) + ((NI) 10)))));
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 65 ... 70:
	{
		(*xi0) = (NI)((NI)((NU32)((*xi0)) << (NU32)(((NI) 4))) | ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])))) - ((NI) 65)))) + ((NI) 10)))));
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	default:
	{
	}
	break;
	}
}

N_NIMCALL(NIM_BOOL, matchtwochars_c9bP1COYEYDhChM9c5lh9bDJQ)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, NIM_CHAR first0, TY_nmiMWKVIe46vacnhAFrQvw_Set second0) {
	NIM_BOOL result0;
	NIM_BOOL LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (NIM_BOOL)0;
	LOC1 = ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(first0));
	if (!(LOC1)) goto LA2;
	LOC1 = ((second0[(NU)(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])))&7U)))!=0);
	LA2: ;
	result0 = LOC1;
	return result0;
}

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

N_NIMCALL(void, getescapedchar_HUKK9cILkwTBvMCbGFTZPSA_5)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	(*L0).Sup.bufpos += ((NI) 1);
	switch (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]))) {
	case 110:
	case 78:
	{
		{
			if (!((*tok0).toktype == ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 92))) goto LA4;
			lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 17), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
		}
		LA4: ;
		(*tok0).literal = resizeString((*tok0).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString((*tok0).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 114:
	case 82:
	case 99:
	case 67:
	{
		(*tok0).literal = addChar((*tok0).literal, 13);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 108:
	case 76:
	{
		(*tok0).literal = addChar((*tok0).literal, 10);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 102:
	case 70:
	{
		(*tok0).literal = addChar((*tok0).literal, 12);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 101:
	case 69:
	{
		(*tok0).literal = addChar((*tok0).literal, 27);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 97:
	case 65:
	{
		(*tok0).literal = addChar((*tok0).literal, 7);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 98:
	case 66:
	{
		(*tok0).literal = addChar((*tok0).literal, 8);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 118:
	case 86:
	{
		(*tok0).literal = addChar((*tok0).literal, 11);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 116:
	case 84:
	{
		(*tok0).literal = addChar((*tok0).literal, 9);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 39:
	case 34:
	{
		(*tok0).literal = addChar((*tok0).literal, (*L0).Sup.buf[(*L0).Sup.bufpos]);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 92:
	{
		(*tok0).literal = addChar((*tok0).literal, 92);
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	case 120:
	case 88:
	case 117:
	case 85:
	{
		NIM_CHAR tp0;
		NI xi0;
		tp0 = (*L0).Sup.buf[(*L0).Sup.bufpos];
		(*L0).Sup.bufpos += ((NI) 1);
		xi0 = ((NI) 0);
		handlehexchar_1e9csUsE2c69cW9cZBQwxW2Rw(L0, (&xi0));
		handlehexchar_1e9csUsE2c69cW9cZBQwxW2Rw(L0, (&xi0));
		{
			if (!(((NU8)(tp0)) == ((NU8)(117)) || ((NU8)(tp0)) == ((NU8)(85)))) goto LA19;
			handlehexchar_1e9csUsE2c69cW9cZBQwxW2Rw(L0, (&xi0));
			handlehexchar_1e9csUsE2c69cW9cZBQwxW2Rw(L0, (&xi0));
			{
				if (!((NU32)(xi0) <= (NU32)(((NI) 127)))) goto LA23;
				(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) (xi0)));
			}
			goto LA21;
			LA23: ;
			{
				if (!((NU32)(xi0) <= (NU32)(((NI) 2047)))) goto LA26;
				(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) ((NI)((NI)((NU32)(xi0) >> (NU32)(((NI) 6))) | ((NI) 192)))));
				(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) ((NI)(((NI) ((NI)(xi0 & ((NI) 63)))) | ((NI) 128)))));
			}
			goto LA21;
			LA26: ;
			{
				if (!((NU32)(xi0) <= (NU32)(((NI) 65535)))) goto LA29;
				(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) ((NI)((NI)((NU32)(xi0) >> (NU32)(((NI) 12))) | ((NI) 224)))));
				(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) ((NI)(((NI) ((NI)((NI)((NU32)(xi0) >> (NU32)(((NI) 6))) & ((NI) 63)))) | ((NI) 128)))));
				(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) ((NI)(((NI) ((NI)(xi0 & ((NI) 63)))) | ((NI) 128)))));
			}
			goto LA21;
			LA29: ;
			{
				(*tok0).literal = resizeString((*tok0).literal, 3);
appendString((*tok0).literal, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_18));
			}
			LA21: ;
		}
		goto LA17;
		LA19: ;
		{
			(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) (((NI) (xi0)))));
		}
		LA17: ;
	}
	break;
	case 48 ... 57:
	{
		NI xi0;
		{
			NIM_BOOL LOC36;
			LOC36 = (NIM_BOOL)0;
			LOC36 = matchtwochars_c9bP1COYEYDhChM9c5lh9bDJQ((&(*L0)), 48, T_4JpEWnGrmRM8CRqL3P2O1Q_19);
			if (!LOC36) goto LA37;
			lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 237), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
		}
		LA37: ;
		xi0 = ((NI) 0);
		handledecchars_1e9csUsE2c69cW9cZBQwxW2Rw_2(L0, (&xi0));
		{
			if (!(xi0 <= ((NI) 255))) goto LA41;
			(*tok0).literal = addChar((*tok0).literal, ((NIM_CHAR) (((NI) (xi0)))));
		}
		goto LA39;
		LA41: ;
		{
			lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 8), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
		}
		LA39: ;
	}
	break;
	default:
	{
		lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 8), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
	}
	break;
	}
}

N_NIMCALL(void, getstring_YG7m8w0rgfI3MdHCnA4maw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NIM_BOOL rawmode0) {
	NI pos0;
	NCSTRING buf0;
	NI line0;
	pos0 = (NI)((*L0).Sup.bufpos + ((NI) 1));
	buf0 = (*L0).Sup.buf;
	line0 = (*L0).Sup.linenumber;
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((NU8)(buf0[pos0]) == (NU8)(34));
		if (!(LOC3)) goto LA4;
		LOC3 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(34));
		LA4: ;
		if (!LOC3) goto LA5;
		(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 89);
		pos0 += ((NI) 2);
		{
			NI newpos0;
			if (!(((NU8)(buf0[pos0])) == ((NU8)(32)) || ((NU8)(buf0[pos0])) == ((NU8)(9)))) goto LA9;
			newpos0 = (NI)(pos0 + ((NI) 1));
			{
				while (1) {
					if (!(((NU8)(buf0[newpos0])) == ((NU8)(32)) || ((NU8)(buf0[newpos0])) == ((NU8)(9)))) goto LA12;
					newpos0 += ((NI) 1);
				} LA12: ;
			}
			{
				if (!(((NU8)(buf0[newpos0])) == ((NU8)(13)) || ((NU8)(buf0[newpos0])) == ((NU8)(10)))) goto LA15;
				pos0 = newpos0;
			}
			LA15: ;
		}
		LA9: ;
		pos0 = handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw(L0, pos0);
		buf0 = (*L0).Sup.buf;
		{
			while (1) {
				switch (((NU8)(buf0[pos0]))) {
				case 34:
				{
					{
						NIM_BOOL LOC22;
						NIM_BOOL LOC23;
						LOC22 = (NIM_BOOL)0;
						LOC23 = (NIM_BOOL)0;
						LOC23 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(34));
						if (!(LOC23)) goto LA24;
						LOC23 = ((NU8)(buf0[(NI)(pos0 + ((NI) 2))]) == (NU8)(34));
						LA24: ;
						LOC22 = LOC23;
						if (!(LOC22)) goto LA25;
						LOC22 = !(((NU8)(buf0[(NI)(pos0 + ((NI) 3))]) == (NU8)(34)));
						LA25: ;
						if (!LOC22) goto LA26;
						(*L0).Sup.bufpos = (NI)(pos0 + ((NI) 3));
						goto LA17;
					}
					LA26: ;
					(*tok0).literal = addChar((*tok0).literal, 34);
					pos0 += ((NI) 1);
				}
				break;
				case 13:
				case 10:
				{
					pos0 = handlecrlf_Dpj1gMjCw9bemAZV6KHW9cfw(L0, pos0);
					buf0 = (*L0).Sup.buf;
					(*tok0).literal = resizeString((*tok0).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString((*tok0).literal, tnl_Gp8EwkcsAP9am1klnCCHM4w);
				}
				break;
				case 0:
				{
					NI line20;
					line20 = (*L0).Sup.linenumber;
					(*L0).Sup.linenumber = line0;
					lexmessagepos_7djWaZAcRzxz15NpWpA9bHg(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 9), (*L0).Sup.linestart, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
					(*L0).Sup.linenumber = line20;
					(*L0).Sup.bufpos = pos0;
					goto LA17;
				}
				break;
				default:
				{
					(*tok0).literal = addChar((*tok0).literal, buf0[pos0]);
					pos0 += ((NI) 1);
				}
				break;
				}
			}
		} LA17: ;
	}
	goto LA1;
	LA5: ;
	{
		{
			if (!rawmode0) goto LA34;
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 88);
		}
		goto LA32;
		LA34: ;
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 87);
		}
		LA32: ;
		{
			while (1) {
				NIM_CHAR c0;
				c0 = buf0[pos0];
				{
					if (!((NU8)(c0) == (NU8)(34))) goto LA41;
					{
						NIM_BOOL LOC45;
						LOC45 = (NIM_BOOL)0;
						LOC45 = rawmode0;
						if (!(LOC45)) goto LA46;
						LOC45 = ((NU8)(buf0[(NI)(pos0 + ((NI) 1))]) == (NU8)(34));
						LA46: ;
						if (!LOC45) goto LA47;
						pos0 += ((NI) 2);
						(*tok0).literal = addChar((*tok0).literal, 34);
					}
					goto LA43;
					LA47: ;
					{
						pos0 += ((NI) 1);
						goto LA37;
					}
					LA43: ;
				}
				goto LA39;
				LA41: ;
				{
					if (!(((NU8)(c0)) == ((NU8)(13)) || ((NU8)(c0)) == ((NU8)(10)) || ((NU8)(c0)) == ((NU8)(0)))) goto LA51;
					lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 10), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
					goto LA37;
				}
				goto LA39;
				LA51: ;
				{
					NIM_BOOL LOC54;
					LOC54 = (NIM_BOOL)0;
					LOC54 = ((NU8)(c0) == (NU8)(92));
					if (!(LOC54)) goto LA55;
					LOC54 = !(rawmode0);
					LA55: ;
					if (!LOC54) goto LA56;
					(*L0).Sup.bufpos = pos0;
					getescapedchar_HUKK9cILkwTBvMCbGFTZPSA_5(L0, tok0);
					pos0 = (*L0).Sup.bufpos;
				}
				goto LA39;
				LA56: ;
				{
					(*tok0).literal = addChar((*tok0).literal, c0);
					pos0 += ((NI) 1);
				}
				LA39: ;
			}
		} LA37: ;
		(*L0).Sup.bufpos = pos0;
	}
	LA1: ;
}

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

N_NIMCALL(void, getcharacter_HUKK9cILkwTBvMCbGFTZPSA_6)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NIM_CHAR c0;
	(*L0).Sup.bufpos += ((NI) 1);
	c0 = (*L0).Sup.buf[(*L0).Sup.bufpos];
	switch (((NU8)(c0))) {
	case 0 ... 31:
	case 39:
	{
		lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 8), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
	}
	break;
	case 92:
	{
		getescapedchar_HUKK9cILkwTBvMCbGFTZPSA_5(L0, tok0);
	}
	break;
	default:
	{
		unsureAsgnRef((void**) (&(*tok0).literal), nimCharToStr(c0));
		(*L0).Sup.bufpos += ((NI) 1);
	}
	break;
	}
	{
		if (!!(((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(39)))) goto LA6;
		lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 19), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
	}
	LA6: ;
	(*L0).Sup.bufpos += ((NI) 1);
}

N_NIMCALL(void, matchchars_f3XUyjUday2b0LWFkd9bI4Q)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, TY_nmiMWKVIe46vacnhAFrQvw_Set chars0) {
	NI pos0;
	NCSTRING buf0;
	pos0 = (*L0).Sup.bufpos;
	buf0 = (*L0).Sup.buf;
	{
		while (1) {
			if (!((chars0[(NU)(((NU8)(buf0[pos0])))>>3] &(1U<<((NU)(((NU8)(buf0[pos0])))&7U)))!=0)) goto LA2;
			(*tok0).literal = addChar((*tok0).literal, buf0[pos0]);
			pos0 += ((NI) 1);
		} LA2: ;
	}
	(*L0).Sup.bufpos = pos0;
}

N_NIMCALL(void, lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NI startpos0) {
	NI msgpos0;
	Ttoken_kLaEEPwLj8cag79cbYQIkHQ t0;
	msgpos0 = (*L0).Sup.bufpos;
	memset((void*)(&t0), 0, sizeof(t0));
	t0.literal = copyString(((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
	(*L0).Sup.bufpos = startpos0;
	matchchars_f3XUyjUday2b0LWFkd9bI4Q(L0, (&t0), T_4JpEWnGrmRM8CRqL3P2O1Q_21);
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(43)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(45)));
		if (!(LOC3)) goto LA4;
		LOC3 = (((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) == ((NU8)(101)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) == ((NU8)(69)));
		LA4: ;
		if (!LOC3) goto LA5;
		t0.literal = addChar(t0.literal, (*L0).Sup.buf[(*L0).Sup.bufpos]);
		(*L0).Sup.bufpos += ((NI) 1);
		matchchars_f3XUyjUday2b0LWFkd9bI4Q(L0, (&t0), T_4JpEWnGrmRM8CRqL3P2O1Q_21);
	}
	LA5: ;
	{
		if (!((T_4JpEWnGrmRM8CRqL3P2O1Q_22[(NU)(((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])))>>3] &(1U<<((NU)(((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])))&7U)))!=0)) goto LA9;
		(*L0).Sup.bufpos += ((NI) 1);
		t0.literal = addChar(t0.literal, (*L0).Sup.buf[(*L0).Sup.bufpos]);
		matchchars_f3XUyjUday2b0LWFkd9bI4Q(L0, (&t0), T_4JpEWnGrmRM8CRqL3P2O1Q_19);
	}
	LA9: ;
	(*L0).Sup.bufpos = msgpos0;
	lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), msg0, t0.literal);
}

N_NIMCALL(void, matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, TY_nmiMWKVIe46vacnhAFrQvw_Set chars0) {
	NI pos0;
	NCSTRING buf0;
	pos0 = (*L0).Sup.bufpos;
	buf0 = (*L0).Sup.buf;
	{
		while (1) {
			{
				if (!((chars0[(NU)(((NU8)(buf0[pos0])))>>3] &(1U<<((NU)(((NU8)(buf0[pos0])))&7U)))!=0)) goto LA5;
				(*tok0).literal = addChar((*tok0).literal, buf0[pos0]);
				pos0 += ((NI) 1);
			}
			goto LA3;
			LA5: ;
			{
				goto LA1;
			}
			LA3: ;
			{
				if (!((NU8)(buf0[pos0]) == (NU8)(95))) goto LA10;
				{
					if (!!(((chars0[(NU)(((NU8)(buf0[(NI)(pos0 + ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)(buf0[(NI)(pos0 + ((NI) 1))])))&7U)))!=0))) goto LA14;
					lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 12), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_16));
					goto LA1;
				}
				LA14: ;
				(*tok0).literal = addChar((*tok0).literal, 95);
				pos0 += ((NI) 1);
			}
			LA10: ;
		}
	} LA1: ;
	(*L0).Sup.bufpos = pos0;
}

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

N_NIMCALL(NI, unsafeparseuint_bat7t0DiRlRbxAKUi9c9aqQw)(NimStringDesc* s0, NI64* b0, NI start0) {
	NI result0;
	NI i0;
	result0 = (NI)0;
	i0 = start0;
	{
		if (!(((NU8)(s0->data[i0])) >= ((NU8)(48)) && ((NU8)(s0->data[i0])) <= ((NU8)(57)))) goto LA3;
		(*b0) = IL64(0);
		{
			while (1) {
				if (!(((NU8)(s0->data[i0])) >= ((NU8)(48)) && ((NU8)(s0->data[i0])) <= ((NU8)(57)))) goto LA6;
				(*b0) = (NI64)((NI64)((*b0) * IL64(10)) + ((NI64) ((NI)(((NI) (((NU8)(s0->data[i0])))) - ((NI) 48)))));
				i0 += ((NI) 1);
				{
					while (1) {
						if (!((NU8)(s0->data[i0]) == (NU8)(95))) goto LA8;
						i0 += ((NI) 1);
					} LA8: ;
				}
			} LA6: ;
		}
		result0 = (NI)(i0 - start0);
	}
	LA3: ;
	return result0;
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0;
	result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result0;
}

static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!((src0 == NIM_NIL))) goto LA3;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		(*c0).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!(((*dest0) == NIM_NIL))) goto LA7;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		{
			(*c0).refcount -= ((NI) 8);
			if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
		}
		LA11: ;
	}
	LA7: ;
	(*dest0) = src0;
}

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

static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result0;
	result0 = (Exception*)0;
	result0 = currexception_9bVPeDJlYTi9bQApZpfH8wjg;
	return result0;
}

static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	(*c0).refcount = (NI)((NU32)((*c0).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

static N_INLINE(void, asgnRef)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC5;
		if (!!((src0 == NIM_NIL))) goto LA3;
		LOC5 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC5 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		incref_9cAA5YuQAAC3MVbnGeV86swsystem(LOC5);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC10;
		if (!!(((*dest0) == NIM_NIL))) goto LA8;
		LOC10 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC10 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		decref_MV4BBk6J1qu70IbBxwEn4wsystem(LOC10);
	}
	LA8: ;
	(*dest0) = src0;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currexception_9bVPeDJlYTi9bQApZpfH8wjg), NIM_NIL);
}

N_NIMCALL(void, getnumber_9aBWWw9ce9azbTg8oMwTyFoEg)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* result0) {
	NI startpos0;
	NI endpos0;
	NI64 volatile xi0;
	NIM_BOOL isbase100;
	NI postpos0;
	NI pos0;
	TSafePoint T_4JpEWnGrmRM8CRqL3P2O1Q_27;
	startpos0 = (NI)0;
	endpos0 = (NI)0;
	xi0 = (NI64)0;
	isbase100 = NIM_TRUE;
	(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 73);
	unsureAsgnRef((void**) (&(*result0).literal), copyString(((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11)));
	(*result0).base = ((Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q) 0);
	startpos0 = (*L0).Sup.bufpos;
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(48));
		if (!(LOC3)) goto LA4;
		LOC3 = (((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(66)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(67)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) == ((NU8)(79)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(98)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(99)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) == ((NU8)(120)));
		LA4: ;
		if (!LOC3) goto LA5;
		isbase100 = NIM_FALSE;
		(*result0).literal = addChar((*result0).literal, 48);
		(*L0).Sup.bufpos += ((NI) 1);
		switch (((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]))) {
		case 79:
		{
			lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 15), startpos0);
		}
		break;
		case 120:
		case 88:
		{
			(*result0).literal = addChar((*result0).literal, 120);
			(*L0).Sup.bufpos += ((NI) 1);
			matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw(L0, result0, T_4JpEWnGrmRM8CRqL3P2O1Q_23);
		}
		break;
		case 111:
		case 99:
		case 67:
		{
			(*result0).literal = addChar((*result0).literal, 99);
			(*L0).Sup.bufpos += ((NI) 1);
			matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw(L0, result0, T_4JpEWnGrmRM8CRqL3P2O1Q_24);
		}
		break;
		case 98:
		case 66:
		{
			(*result0).literal = addChar((*result0).literal, 98);
			(*L0).Sup.bufpos += ((NI) 1);
			matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw(L0, result0, T_4JpEWnGrmRM8CRqL3P2O1Q_25);
		}
		break;
		default:
		{
			Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC12;
			LOC12 = getlineinfo_Ux0pJuM59b8dKTMi336q5DA((&(*L0)));
			internalerror_MXmtqrCmYwtOPkDCFgUWKQ(LOC12, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_26));
		}
		break;
		}
	}
	goto LA1;
	LA5: ;
	{
		matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw(L0, result0, T_4JpEWnGrmRM8CRqL3P2O1Q_19);
		{
			NIM_BOOL LOC16;
			LOC16 = (NIM_BOOL)0;
			LOC16 = ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(46));
			if (!(LOC16)) goto LA17;
			LOC16 = (((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)));
			LA17: ;
			if (!LOC16) goto LA18;
			(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85);
			(*result0).literal = addChar((*result0).literal, 46);
			(*L0).Sup.bufpos += ((NI) 1);
			matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw(L0, result0, T_4JpEWnGrmRM8CRqL3P2O1Q_19);
		}
		LA18: ;
		{
			if (!(((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(101)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(69)))) goto LA22;
			(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85);
			(*result0).literal = addChar((*result0).literal, 101);
			(*L0).Sup.bufpos += ((NI) 1);
			{
				if (!(((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(43)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(45)))) goto LA26;
				(*result0).literal = addChar((*result0).literal, (*L0).Sup.buf[(*L0).Sup.bufpos]);
				(*L0).Sup.bufpos += ((NI) 1);
			}
			LA26: ;
			matchunderscorechars_IfCeqHZ7PBYdKWp54UsjMw(L0, result0, T_4JpEWnGrmRM8CRqL3P2O1Q_19);
		}
		LA22: ;
	}
	LA1: ;
	endpos0 = (*L0).Sup.bufpos;
	postpos0 = endpos0;
	{
		if (!((T_4JpEWnGrmRM8CRqL3P2O1Q_22[(NU)(((NU8)((*L0).Sup.buf[postpos0])))>>3] &(1U<<((NU)(((NU8)((*L0).Sup.buf[postpos0])))&7U)))!=0)) goto LA30;
		{
			if (!((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(39))) goto LA34;
			postpos0 += ((NI) 1);
		}
		LA34: ;
		switch (((NU8)((*L0).Sup.buf[postpos0]))) {
		case 102:
		case 70:
		{
			postpos0 += ((NI) 1);
			{
				NIM_BOOL LOC39;
				LOC39 = (NIM_BOOL)0;
				LOC39 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(51));
				if (!(LOC39)) goto LA40;
				LOC39 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(50));
				LA40: ;
				if (!LOC39) goto LA41;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 84);
				postpos0 += ((NI) 2);
			}
			goto LA37;
			LA41: ;
			{
				NIM_BOOL LOC44;
				LOC44 = (NIM_BOOL)0;
				LOC44 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(54));
				if (!(LOC44)) goto LA45;
				LOC44 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(52));
				LA45: ;
				if (!LOC44) goto LA46;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85);
				postpos0 += ((NI) 2);
			}
			goto LA37;
			LA46: ;
			{
				NIM_BOOL LOC49;
				NIM_BOOL LOC50;
				LOC49 = (NIM_BOOL)0;
				LOC50 = (NIM_BOOL)0;
				LOC50 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(49));
				if (!(LOC50)) goto LA51;
				LOC50 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(50));
				LA51: ;
				LOC49 = LOC50;
				if (!(LOC49)) goto LA52;
				LOC49 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 2))]) == (NU8)(56));
				LA52: ;
				if (!LOC49) goto LA53;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 86);
				postpos0 += ((NI) 3);
			}
			goto LA37;
			LA53: ;
			{
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 84);
			}
			LA37: ;
		}
		break;
		case 100:
		case 68:
		{
			postpos0 += ((NI) 1);
			(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85);
		}
		break;
		case 105:
		case 73:
		{
			postpos0 += ((NI) 1);
			{
				NIM_BOOL LOC60;
				LOC60 = (NIM_BOOL)0;
				LOC60 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(54));
				if (!(LOC60)) goto LA61;
				LOC60 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(52));
				LA61: ;
				if (!LOC60) goto LA62;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 77);
				postpos0 += ((NI) 2);
			}
			goto LA58;
			LA62: ;
			{
				NIM_BOOL LOC65;
				LOC65 = (NIM_BOOL)0;
				LOC65 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(51));
				if (!(LOC65)) goto LA66;
				LOC65 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(50));
				LA66: ;
				if (!LOC65) goto LA67;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 76);
				postpos0 += ((NI) 2);
			}
			goto LA58;
			LA67: ;
			{
				NIM_BOOL LOC70;
				LOC70 = (NIM_BOOL)0;
				LOC70 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(49));
				if (!(LOC70)) goto LA71;
				LOC70 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(54));
				LA71: ;
				if (!LOC70) goto LA72;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 75);
				postpos0 += ((NI) 2);
			}
			goto LA58;
			LA72: ;
			{
				if (!((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(56))) goto LA75;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 74);
				postpos0 += ((NI) 1);
			}
			goto LA58;
			LA75: ;
			{
				lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos0);
			}
			LA58: ;
		}
		break;
		case 117:
		case 85:
		{
			postpos0 += ((NI) 1);
			{
				NIM_BOOL LOC81;
				LOC81 = (NIM_BOOL)0;
				LOC81 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(54));
				if (!(LOC81)) goto LA82;
				LOC81 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(52));
				LA82: ;
				if (!LOC81) goto LA83;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 82);
				postpos0 += ((NI) 2);
			}
			goto LA79;
			LA83: ;
			{
				NIM_BOOL LOC86;
				LOC86 = (NIM_BOOL)0;
				LOC86 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(51));
				if (!(LOC86)) goto LA87;
				LOC86 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(50));
				LA87: ;
				if (!LOC86) goto LA88;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 81);
				postpos0 += ((NI) 2);
			}
			goto LA79;
			LA88: ;
			{
				NIM_BOOL LOC91;
				LOC91 = (NIM_BOOL)0;
				LOC91 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(49));
				if (!(LOC91)) goto LA92;
				LOC91 = ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))]) == (NU8)(54));
				LA92: ;
				if (!LOC91) goto LA93;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 80);
				postpos0 += ((NI) 2);
			}
			goto LA79;
			LA93: ;
			{
				if (!((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(56))) goto LA96;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 79);
				postpos0 += ((NI) 1);
			}
			goto LA79;
			LA96: ;
			{
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 78);
			}
			LA79: ;
		}
		break;
		default:
		{
			lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos0);
		}
		break;
		}
	}
	LA30: ;
	{
		NIM_BOOL LOC102;
		NIM_BOOL LOC104;
		LOC102 = (NIM_BOOL)0;
		LOC102 = (((NU8)((*L0).Sup.buf[postpos0])) == ((NU8)(39)) || ((NU8)((*L0).Sup.buf[postpos0])) >= ((NU8)(48)) && ((NU8)((*L0).Sup.buf[postpos0])) <= ((NU8)(57)) || ((NU8)((*L0).Sup.buf[postpos0])) >= ((NU8)(65)) && ((NU8)((*L0).Sup.buf[postpos0])) <= ((NU8)(70)) || ((NU8)((*L0).Sup.buf[postpos0])) == ((NU8)(88)) || ((NU8)((*L0).Sup.buf[postpos0])) == ((NU8)(95)) || ((NU8)((*L0).Sup.buf[postpos0])) >= ((NU8)(97)) && ((NU8)((*L0).Sup.buf[postpos0])) <= ((NU8)(102)) || ((NU8)((*L0).Sup.buf[postpos0])) == ((NU8)(111)) || ((NU8)((*L0).Sup.buf[postpos0])) == ((NU8)(120)));
		if (LOC102) goto LA103;
		LOC104 = (NIM_BOOL)0;
		LOC104 = ((NU8)((*L0).Sup.buf[postpos0]) == (NU8)(46));
		if (!(LOC104)) goto LA105;
		LOC104 = (((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L0).Sup.buf[(NI)(postpos0 + ((NI) 1))])) <= ((NU8)(57)));
		LA105: ;
		LOC102 = LOC104;
		LA103: ;
		if (!LOC102) goto LA106;
		lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos0);
	}
	LA106: ;
	(*L0).Sup.bufpos = startpos0;
	pos0 = startpos0;
	pushSafePoint(&T_4JpEWnGrmRM8CRqL3P2O1Q_27);
	T_4JpEWnGrmRM8CRqL3P2O1Q_27.status = setjmp(T_4JpEWnGrmRM8CRqL3P2O1Q_27.context);
	if (T_4JpEWnGrmRM8CRqL3P2O1Q_27.status == 0) {
		{
			NIM_BOOL LOC111;
			LOC111 = (NIM_BOOL)0;
			LOC111 = ((NU8)((*L0).Sup.buf[pos0]) == (NU8)(48));
			if (!(LOC111)) goto LA112;
			LOC111 = (((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(120)) || ((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(99)) || ((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(67)) || ((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(98)) || ((NU8)((*L0).Sup.buf[(NI)(pos0 + ((NI) 1))])) == ((NU8)(66)));
			LA112: ;
			if (!LOC111) goto LA113;
			pos0 += ((NI) 2);
			xi0 = IL64(0);
			switch (((NU8)((*L0).Sup.buf[(NI)(pos0 - ((NI) 1))]))) {
			case 98:
			case 66:
			{
				(*result0).base = ((Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q) 1);
				{
					while (1) {
						if (!(pos0 < endpos0)) goto LA117;
						{
							if (!!(((NU8)((*L0).Sup.buf[pos0]) == (NU8)(95)))) goto LA120;
							xi0 = (NI64)((NI64)((NU64)(xi0) << (NU64)(((NI) 1))) | ((NI64) ((NI)(((NI) (((NU8)((*L0).Sup.buf[pos0])))) - ((NI) 48)))));
						}
						LA120: ;
						pos0 += ((NI) 1);
					} LA117: ;
				}
			}
			break;
			case 111:
			case 99:
			case 67:
			{
				(*result0).base = ((Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q) 2);
				{
					while (1) {
						if (!(pos0 < endpos0)) goto LA124;
						{
							if (!!(((NU8)((*L0).Sup.buf[pos0]) == (NU8)(95)))) goto LA127;
							xi0 = (NI64)((NI64)((NU64)(xi0) << (NU64)(((NI) 3))) | ((NI64) ((NI)(((NI) (((NU8)((*L0).Sup.buf[pos0])))) - ((NI) 48)))));
						}
						LA127: ;
						pos0 += ((NI) 1);
					} LA124: ;
				}
			}
			break;
			case 120:
			case 88:
			{
				(*result0).base = ((Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q) 3);
				{
					while (1) {
						if (!(pos0 < endpos0)) goto LA131;
						switch (((NU8)((*L0).Sup.buf[pos0]))) {
						case 95:
						{
							pos0 += ((NI) 1);
						}
						break;
						case 48 ... 57:
						{
							xi0 = (NI64)((NI64)((NU64)(xi0) << (NU64)(((NI) 4))) | ((NI64) ((NI)(((NI) (((NU8)((*L0).Sup.buf[pos0])))) - ((NI) 48)))));
							pos0 += ((NI) 1);
						}
						break;
						case 97 ... 102:
						{
							xi0 = (NI64)((NI64)((NU64)(xi0) << (NU64)(((NI) 4))) | ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L0).Sup.buf[pos0])))) - ((NI) 97)))) + ((NI) 10)))));
							pos0 += ((NI) 1);
						}
						break;
						case 65 ... 70:
						{
							xi0 = (NI64)((NI64)((NU64)(xi0) << (NU64)(((NI) 4))) | ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)((*L0).Sup.buf[pos0])))) - ((NI) 65)))) + ((NI) 10)))));
							pos0 += ((NI) 1);
						}
						break;
						default:
						{
							goto LA130;
						}
						break;
						}
					} LA131: ;
				} LA130: ;
			}
			break;
			default:
			{
				Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC138;
				LOC138 = getlineinfo_Ux0pJuM59b8dKTMi336q5DA((&(*L0)));
				internalerror_MXmtqrCmYwtOPkDCFgUWKQ(LOC138, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_26));
			}
			break;
			}
			switch ((*result0).toktype) {
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 73):
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 77):
			{
				(*result0).inumber = xi0;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 74):
			{
				(*result0).inumber = ((NI64) (((NI8)(NU8)(NU)(((NI) (xi0))))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 75):
			{
				(*result0).inumber = ((NI64) (((NI16)(NU16)(NU)(((NI) (xi0))))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 76):
			{
				(*result0).inumber = ((NI64) (((NI32)(NU32)(NU64)(xi0))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 78):
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 82):
			{
				(*result0).inumber = xi0;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 79):
			{
				(*result0).inumber = ((NI64) (((NU8) (((NI8)(NU8)(NU)(((NI) (xi0))))))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 80):
			{
				(*result0).inumber = ((NI64) (((NU16) (((NI16)(NU16)(NU)(((NI) (xi0))))))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 81):
			{
				(*result0).inumber = ((NI64) (((NU32) (((NI32)(NU32)(NU64)(xi0))))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 84):
			{
				(*result0).fnumber = ((NF) ((*((NF32*) ((&xi0))))));
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85):
			{
				(*result0).fnumber = (*((NF*) ((&xi0))));
			}
			break;
			default:
			{
				Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC150;
				LOC150 = getlineinfo_Ux0pJuM59b8dKTMi336q5DA((&(*L0)));
				internalerror_MXmtqrCmYwtOPkDCFgUWKQ(LOC150, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_26));
			}
			break;
			}
			{
				NIM_BOOL outofrange0;
				if (!!(((*result0).toktype == ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 83) || (*result0).toktype == ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 84) || (*result0).toktype == ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85) || (*result0).toktype == ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 86)))) goto LA153;
				switch ((*result0).toktype) {
				case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 79):
				case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 80):
				case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 81):
				{
					outofrange0 = !(((*result0).inumber == xi0));
				}
				break;
				case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 74):
				{
					outofrange0 = (IL64(255) < xi0);
				}
				break;
				case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 75):
				{
					outofrange0 = (IL64(65535) < xi0);
				}
				break;
				case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 76):
				{
					outofrange0 = (IL64(4294967295) < xi0);
				}
				break;
				default:
				{
					outofrange0 = NIM_FALSE;
				}
				break;
				}
				{
					if (!outofrange0) goto LA162;
					lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 16), startpos0);
				}
				LA162: ;
			}
			LA153: ;
		}
		goto LA109;
		LA113: ;
		{
			NIM_BOOL outofrange0;
			switch ((*result0).toktype) {
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 83):
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 84):
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85):
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 86):
			{
				(*result0).fnumber = nsuParseFloat((*result0).literal);
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 82):
			{
				NI len0;
				xi0 = IL64(0);
				len0 = unsafeparseuint_bat7t0DiRlRbxAKUi9c9aqQw((*result0).literal, (&xi0), ((NI) 0));
				{
					NIM_BOOL LOC169;
					Valueerror_Gi06FkNeykJn7mrqRZYrkA* volatile e_lGzGnIfhAqHYDcLMbrKv4Q;
					NimStringDesc* LOC173;
					NimStringDesc* LOC174;
					LOC169 = (NIM_BOOL)0;
					LOC169 = !((len0 == ((*result0).literal ? (*result0).literal->Sup.len : 0)));
					if (LOC169) goto LA170;
					LOC169 = (len0 == ((NI) 0));
					LA170: ;
					if (!LOC169) goto LA171;
					e_lGzGnIfhAqHYDcLMbrKv4Q = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*)0;
					e_lGzGnIfhAqHYDcLMbrKv4Q = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*) newObj((&NTI_yCEN9anxCD6mzBxGjuaRBdg), sizeof(Valueerror_Gi06FkNeykJn7mrqRZYrkA));
					(*e_lGzGnIfhAqHYDcLMbrKv4Q).Sup.Sup.m_type = (&NTI_Gi06FkNeykJn7mrqRZYrkA);
					LOC173 = (NimStringDesc*)0;
					LOC174 = (NimStringDesc*)0;
					LOC174 = nimInt64ToStr(xi0);
					LOC173 = rawNewString(LOC174->Sup.len + 17);
appendString(LOC173, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_28));
appendString(LOC173, LOC174);
					asgnRefNoCycle((void**) (&(*e_lGzGnIfhAqHYDcLMbrKv4Q).Sup.message), LOC173);
					raiseException((Exception*)e_lGzGnIfhAqHYDcLMbrKv4Q, "ValueError");
				}
				LA171: ;
				(*result0).inumber = xi0;
			}
			break;
			default:
			{
				(*result0).inumber = nsuParseBiggestInt((*result0).literal);
			}
			break;
			}
			switch ((*result0).toktype) {
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 74):
			{
				NIM_BOOL LOC177;
				LOC177 = (NIM_BOOL)0;
				LOC177 = ((*result0).inumber < IL64(-128));
				if (LOC177) goto LA178;
				LOC177 = (IL64(127) < (*result0).inumber);
				LA178: ;
				outofrange0 = LOC177;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 79):
			{
				NIM_BOOL LOC180;
				LOC180 = (NIM_BOOL)0;
				LOC180 = ((*result0).inumber < IL64(0));
				if (LOC180) goto LA181;
				LOC180 = (IL64(255) < (*result0).inumber);
				LA181: ;
				outofrange0 = LOC180;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 75):
			{
				NIM_BOOL LOC183;
				LOC183 = (NIM_BOOL)0;
				LOC183 = ((*result0).inumber < IL64(-32768));
				if (LOC183) goto LA184;
				LOC183 = (IL64(32767) < (*result0).inumber);
				LA184: ;
				outofrange0 = LOC183;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 80):
			{
				NIM_BOOL LOC186;
				LOC186 = (NIM_BOOL)0;
				LOC186 = ((*result0).inumber < IL64(0));
				if (LOC186) goto LA187;
				LOC186 = (IL64(65535) < (*result0).inumber);
				LA187: ;
				outofrange0 = LOC186;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 76):
			{
				NIM_BOOL LOC189;
				LOC189 = (NIM_BOOL)0;
				LOC189 = ((*result0).inumber < IL64(-2147483648));
				if (LOC189) goto LA190;
				LOC189 = (IL64(2147483647) < (*result0).inumber);
				LA190: ;
				outofrange0 = LOC189;
			}
			break;
			case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 81):
			{
				NIM_BOOL LOC192;
				LOC192 = (NIM_BOOL)0;
				LOC192 = ((*result0).inumber < IL64(0));
				if (LOC192) goto LA193;
				LOC192 = (IL64(4294967295) < (*result0).inumber);
				LA193: ;
				outofrange0 = LOC192;
			}
			break;
			default:
			{
				outofrange0 = NIM_FALSE;
			}
			break;
			}
			{
				if (!outofrange0) goto LA197;
				lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 16), startpos0);
			}
			LA197: ;
		}
		LA109: ;
		{
			if (!((*result0).toktype == ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 73))) goto LA201;
			{
				NIM_BOOL LOC205;
				LOC205 = (NIM_BOOL)0;
				LOC205 = ((*result0).inumber < IL64(-2147483648));
				if (LOC205) goto LA206;
				LOC205 = (IL64(2147483647) < (*result0).inumber);
				LA206: ;
				if (!LOC205) goto LA207;
				(*result0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 77);
			}
			LA207: ;
		}
		LA201: ;
		popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(getCurrentException()->Sup.m_type, (&NTI_Gi06FkNeykJn7mrqRZYrkA))) {
			T_4JpEWnGrmRM8CRqL3P2O1Q_27.status = 0;
			lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 14), startpos0);
			popCurrentException();
		}
		else 		if (isObj(getCurrentException()->Sup.m_type, (&NTI_I3Jtn27626sFBOls6BBQ2Q))||isObj(getCurrentException()->Sup.m_type, (&NTI_wFuRaV3kWqFxI9b4hUjDJYA))) {
			T_4JpEWnGrmRM8CRqL3P2O1Q_27.status = 0;
			lexmessagelitnum_DwofP5EpdR9c9bTDcmqtzTXA(L0, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 16), startpos0);
			popCurrentException();
		}
	}
	if (T_4JpEWnGrmRM8CRqL3P2O1Q_27.status != 0) reraiseException();
	(*L0).Sup.bufpos = postpos0;
}

N_NIMCALL(void, rawgettok_HUKK9cILkwTBvMCbGFTZPSA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NIM_CHAR c_Oludp32CoVqkIHSWy0N27g;
	filltoken_FTh5b29clR9cRU4ec2Lu61rA_2(tok0);
	{
		if (!(((NI) 0) <= (*L0).indentahead)) goto LA3;
		(*tok0).indent = (*L0).indentahead;
		(*L0).currlineindent = (*L0).indentahead;
		(*L0).indentahead = ((NI) -1);
	}
	goto LA1;
	LA3: ;
	{
		(*tok0).indent = ((NI) -1);
	}
	LA1: ;
	skip_HUKK9cILkwTBvMCbGFTZPSA_2(L0, tok0);
	c_Oludp32CoVqkIHSWy0N27g = (*L0).Sup.buf[(*L0).Sup.bufpos];
	(*tok0).line = (*L0).Sup.linenumber;
	(*tok0).col = getcolnumber_nRhrv4ZpI0tz0OPBe1mDKw((&(*L0).Sup), (*L0).Sup.bufpos);
	{
		if (!(((NU8)(c_Oludp32CoVqkIHSWy0N27g)) >= ((NU8)(65)) && ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) <= ((NU8)(81)) || ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) >= ((NU8)(83)) && ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) <= ((NU8)(90)) || ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) >= ((NU8)(97)) && ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) <= ((NU8)(107)) || ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) >= ((NU8)(109)) && ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) <= ((NU8)(113)) || ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) >= ((NU8)(115)) && ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) <= ((NU8)(122)) || ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) >= ((NU8)(128)) && ((NU8)(c_Oludp32CoVqkIHSWy0N27g)) <= ((NU8)(255)))) goto LA8;
		getsymbol_HUKK9cILkwTBvMCbGFTZPSA_3(L0, tok0);
	}
	goto LA6;
	LA8: ;
	{
		switch (((NU8)(c_Oludp32CoVqkIHSWy0N27g))) {
		case 35:
		{
			scancomment_HUKK9cILkwTBvMCbGFTZPSA_4(L0, tok0);
		}
		break;
		case 42:
		{
			{
				NIM_BOOL LOC15;
				NI h0;
				LOC15 = (NIM_BOOL)0;
				LOC15 = ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(58));
				if (!(LOC15)) goto LA16;
				LOC15 = !(((T_4JpEWnGrmRM8CRqL3P2O1Q_17[(NU)(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 2))])))>>3] &(1U<<((NU)(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 2))])))&7U)))!=0));
				LA16: ;
				if (!LOC15) goto LA17;
				h0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(((NI) 0), ((NI) 42));
				endoperator_QQWnqO8rfo8dE9cojAfTlVAlexer(L0, tok0, (NI)((*L0).Sup.bufpos + ((NI) 1)), h0);
			}
			goto LA13;
			LA17: ;
			{
				getoperator_nJDzLaFCz6WphVhAQVrdqA(L0, tok0);
			}
			LA13: ;
		}
		break;
		case 44:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 105);
			(*L0).Sup.bufpos += ((NI) 1);
		}
		break;
		case 108:
		{
			{
				if (!!((((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) == ((NU8)(95)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) >= ((NU8)(128)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))])) <= ((NU8)(255))))) goto LA24;
				lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 242), ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
			}
			LA24: ;
			getsymbol_HUKK9cILkwTBvMCbGFTZPSA_3(L0, tok0);
		}
		break;
		case 114:
		case 82:
		{
			{
				if (!((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(34))) goto LA29;
				(*L0).Sup.bufpos += ((NI) 1);
				getstring_YG7m8w0rgfI3MdHCnA4maw(L0, tok0, NIM_TRUE);
			}
			goto LA27;
			LA29: ;
			{
				getsymbol_HUKK9cILkwTBvMCbGFTZPSA_3(L0, tok0);
			}
			LA27: ;
		}
		break;
		case 40:
		{
			(*L0).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC35;
				LOC35 = (NIM_BOOL)0;
				LOC35 = ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(46));
				if (!(LOC35)) goto LA36;
				LOC35 = !(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA36: ;
				if (!LOC35) goto LA37;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 103);
				(*L0).Sup.bufpos += ((NI) 1);
			}
			goto LA33;
			LA37: ;
			{
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 93);
			}
			LA33: ;
		}
		break;
		case 41:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 94);
			(*L0).Sup.bufpos += ((NI) 1);
		}
		break;
		case 91:
		{
			(*L0).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC44;
				LOC44 = (NIM_BOOL)0;
				LOC44 = ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(46));
				if (!(LOC44)) goto LA45;
				LOC44 = !(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA45: ;
				if (!LOC44) goto LA46;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 99);
				(*L0).Sup.bufpos += ((NI) 1);
			}
			goto LA42;
			LA46: ;
			{
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 95);
			}
			LA42: ;
		}
		break;
		case 93:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 96);
			(*L0).Sup.bufpos += ((NI) 1);
		}
		break;
		case 46:
		{
			{
				if (!((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(93))) goto LA53;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 100);
				(*L0).Sup.bufpos += ((NI) 2);
			}
			goto LA51;
			LA53: ;
			{
				if (!((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(125))) goto LA56;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 102);
				(*L0).Sup.bufpos += ((NI) 2);
			}
			goto LA51;
			LA56: ;
			{
				if (!((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(41))) goto LA59;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 104);
				(*L0).Sup.bufpos += ((NI) 2);
			}
			goto LA51;
			LA59: ;
			{
				getoperator_nJDzLaFCz6WphVhAQVrdqA(L0, tok0);
			}
			LA51: ;
		}
		break;
		case 123:
		{
			(*L0).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC65;
				LOC65 = (NIM_BOOL)0;
				LOC65 = ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos]) == (NU8)(46));
				if (!(LOC65)) goto LA66;
				LOC65 = !(((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA66: ;
				if (!LOC65) goto LA67;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 101);
				(*L0).Sup.bufpos += ((NI) 1);
			}
			goto LA63;
			LA67: ;
			{
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 97);
			}
			LA63: ;
		}
		break;
		case 125:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 98);
			(*L0).Sup.bufpos += ((NI) 1);
		}
		break;
		case 59:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 106);
			(*L0).Sup.bufpos += ((NI) 1);
		}
		break;
		case 96:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 114);
			(*L0).Sup.bufpos += ((NI) 1);
		}
		break;
		case 95:
		{
			(*L0).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL LOC76;
				NIM_BOOL LOC78;
				LOC76 = (NIM_BOOL)0;
				LOC76 = !((((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) >= ((NU8)(48)) && ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) <= ((NU8)(57)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) >= ((NU8)(65)) && ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) <= ((NU8)(90)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) == ((NU8)(95)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) >= ((NU8)(97)) && ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) <= ((NU8)(122)) || ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) >= ((NU8)(128)) && ((NU8)((*L0).Sup.buf[(*L0).Sup.bufpos])) <= ((NU8)(255))));
				if (!(LOC76)) goto LA77;
				LOC78 = (NIM_BOOL)0;
				LOC78 = ismagicidentseparatorrune_jEsY0iAEfTnaxdnZAwGvIwidents((*L0).Sup.buf, (*L0).Sup.bufpos);
				LOC76 = !(LOC78);
				LA77: ;
				if (!LOC76) goto LA79;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 2);
				unsureAsgnRef((void**) (&(*tok0).ident), getident_Y4Yr5rKoaxkzPcN8rPP9bWA((*L0).cache, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_16)));
			}
			goto LA74;
			LA79: ;
			{
				NimStringDesc* LOC82;
				NimStringDesc* LOC83;
				unsureAsgnRef((void**) (&(*tok0).literal), nimCharToStr(c_Oludp32CoVqkIHSWy0N27g));
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 0);
				LOC82 = (NimStringDesc*)0;
				LOC83 = (NimStringDesc*)0;
				LOC83 = nimIntToStr(((NI) (((NU8)(c_Oludp32CoVqkIHSWy0N27g)))));
				LOC82 = rawNewString(LOC83->Sup.len + 5);
appendChar(LOC82, c_Oludp32CoVqkIHSWy0N27g);
appendString(LOC82, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_20));
appendString(LOC82, LOC83);
appendChar(LOC82, 41);
				lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 12), LOC82);
			}
			LA74: ;
		}
		break;
		case 34:
		{
			NIM_BOOL rawmode0;
			NIM_BOOL LOC85;
			LOC85 = (NIM_BOOL)0;
			LOC85 = (((NI) 0) < (*L0).Sup.bufpos);
			if (!(LOC85)) goto LA86;
			LOC85 = (((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) <= ((NU8)(122)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) <= ((NU8)(90)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) >= ((NU8)(128)) && ((NU8)((*L0).Sup.buf[(NI)((*L0).Sup.bufpos - ((NI) 1))])) <= ((NU8)(255)));
			LA86: ;
			rawmode0 = LOC85;
			getstring_YG7m8w0rgfI3MdHCnA4maw(L0, tok0, rawmode0);
			{
				if (!rawmode0) goto LA89;
				(*tok0).toktype += ((NI) 2);
			}
			LA89: ;
		}
		break;
		case 39:
		{
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 92);
			getcharacter_HUKK9cILkwTBvMCbGFTZPSA_6(L0, tok0);
			(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 92);
		}
		break;
		case 48 ... 57:
		{
			NIM_CHAR c0;
			getnumber_9aBWWw9ce9azbTg8oMwTyFoEg(L0, tok0);
			c0 = (*L0).Sup.buf[(*L0).Sup.bufpos];
			{
				NimStringDesc* LOC97;
				NimStringDesc* LOC98;
				if (!(((NU8)(c0)) >= ((NU8)(48)) && ((NU8)(c0)) <= ((NU8)(57)) || ((NU8)(c0)) >= ((NU8)(65)) && ((NU8)(c0)) <= ((NU8)(90)) || ((NU8)(c0)) == ((NU8)(95)) || ((NU8)(c0)) >= ((NU8)(97)) && ((NU8)(c0)) <= ((NU8)(122)) || ((NU8)(c0)) >= ((NU8)(128)) && ((NU8)(c0)) <= ((NU8)(255)))) goto LA95;
				LOC97 = (NimStringDesc*)0;
				LOC98 = (NimStringDesc*)0;
				LOC98 = nimIntToStr(((NI) (((NU8)(c0)))));
				LOC97 = rawNewString(LOC98->Sup.len + 5);
appendChar(LOC97, c0);
appendString(LOC97, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_20));
appendString(LOC97, LOC98);
appendChar(LOC97, 41);
				lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 12), LOC97);
			}
			LA95: ;
		}
		break;
		default:
		{
			{
				if (!((T_4JpEWnGrmRM8CRqL3P2O1Q_17[(NU)(((NU8)(c_Oludp32CoVqkIHSWy0N27g)))>>3] &(1U<<((NU)(((NU8)(c_Oludp32CoVqkIHSWy0N27g)))&7U)))!=0)) goto LA102;
				getoperator_nJDzLaFCz6WphVhAQVrdqA(L0, tok0);
			}
			goto LA100;
			LA102: ;
			{
				if (!((NU8)(c_Oludp32CoVqkIHSWy0N27g) == (NU8)(0))) goto LA105;
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 1);
				(*tok0).indent = ((NI) 0);
			}
			goto LA100;
			LA105: ;
			{
				NimStringDesc* LOC108;
				NimStringDesc* LOC109;
				unsureAsgnRef((void**) (&(*tok0).literal), nimCharToStr(c_Oludp32CoVqkIHSWy0N27g));
				(*tok0).toktype = ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 0);
				LOC108 = (NimStringDesc*)0;
				LOC109 = (NimStringDesc*)0;
				LOC109 = nimIntToStr(((NI) (((NU8)(c_Oludp32CoVqkIHSWy0N27g)))));
				LOC108 = rawNewString(LOC109->Sup.len + 5);
appendChar(LOC108, c_Oludp32CoVqkIHSWy0N27g);
appendString(LOC108, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_20));
appendString(LOC108, LOC109);
appendChar(LOC108, 41);
				lexmessage_moxcy135mexMtB8c1DXBvA((&(*L0)), ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 12), LOC108);
				(*L0).Sup.bufpos += ((NI) 1);
			}
			LA100: ;
		}
		break;
		}
	}
	LA6: ;
}

N_NIMCALL(void, lexmessagetok_X1XZ8VwEvx9a1eSLEKrIW6w)(Tlexer_IOWqYAjEw106AHiXcZcUGg* L0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0, NimStringDesc* arg0) {
	Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0;
	info0 = newlineinfo_Shbbzc11c9bnWkBc9b42npzA((*L0).fileidx, (*tok0).line, (*tok0).col);
	dispmessage_olO3stLx9aJm9aCQZS85t8xQ(L0, info0, msg0, arg0);
}

N_NIMCALL(NIM_BOOL, iskeyword_W77DgLTdnCGF4HSY4vap5Q)(Ttoktype_vw8YkgaVtNadqP8v5OpXKA kind0) {
	NIM_BOOL result0;
	NIM_BOOL LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (NIM_BOOL)0;
	LOC1 = (((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 3) <= kind0);
	if (!(LOC1)) goto LA2;
	LOC1 = (kind0 <= ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 72));
	LA2: ;
	result0 = LOC1;
	return result0;
}

N_NIMCALL(NimStringDesc*, toktostr_TtD8kId4CzEkbAITBVCtzQ_2)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	switch ((*tok0).toktype) {
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 73) ... ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 77):
	{
		result0 = nimInt64ToStr((*tok0).inumber);
	}
	break;
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 83) ... ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 85):
	{
		result0 = nimFloatToStr((*tok0).fnumber);
	}
	break;
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 0):
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 87) ... ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 92):
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 113):
	{
		result0 = copyString((*tok0).literal);
	}
	break;
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 93) ... ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 107):
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 1):
	case ((Ttoktype_vw8YkgaVtNadqP8v5OpXKA) 114):
	{
		result0 = copyString(Toktypetostr_7y4sYGQdJmj2c4r0emPULw[((*tok0).toktype)- 0]);
	}
	break;
	default:
	{
		{
			if (!!(((*tok0).ident == NIM_NIL))) goto LA8;
			result0 = copyString((*(*tok0).ident).s);
		}
		goto LA6;
		LA8: ;
		{
			result0 = copyString(((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_11));
		}
		LA6: ;
	}
	break;
	}
	return result0;
}

N_NIMCALL(NimStringDesc*, prettytok_TtD8kId4CzEkbAITBVCtzQ)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = (NIM_BOOL)0;
		LOC3 = iskeyword_W77DgLTdnCGF4HSY4vap5Q((*tok0).toktype);
		if (!LOC3) goto LA4;
		LOC6 = (NimStringDesc*)0;
		LOC6 = rawNewString((*(*tok0).ident).s->Sup.len + 8);
appendString(LOC6, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_148));
appendString(LOC6, (*(*tok0).ident).s);
		result0 = LOC6;
	}
	goto LA1;
	LA4: ;
	{
		result0 = toktostr_TtD8kId4CzEkbAITBVCtzQ_2(tok0);
	}
	LA1: ;
	return result0;
}

N_NIMCALL(void, closelexer_Tac6pvXa9aGE9cnWPr5MhtBw)(Tlexer_IOWqYAjEw106AHiXcZcUGg* lex0) {
	Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA* LOC1;
	glinescompiled_A4hYMRw7F9b9aSLprP9aiou6Q += (*lex0).Sup.linenumber;
	LOC1 = (Tbaselexer_z9a7O76kH1tJ9aXJ3h2MdEzA*)0;
	LOC1 = &lex0->Sup;
	closebaselexer_cotVgXvyGKbiStcXgf0NTw_2(LOC1);
}

N_NIMCALL(NIM_BOOL, isnimidentifier_n0zyXjleUOF89crTSRzYbGQ)(NimStringDesc* s0) {
	NIM_BOOL result0;
{	result0 = (NIM_BOOL)0;
	{
		NI i0;
		NI slen0;
		if (!(((NU8)(s0->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)(s0->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)(s0->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)(s0->data[((NI) 0)])) <= ((NU8)(90)) || ((NU8)(s0->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)(s0->data[((NI) 0)])) <= ((NU8)(255)))) goto LA3;
		i0 = ((NI) 1);
		slen0 = (s0 ? s0->Sup.len : 0);
		{
			while (1) {
				if (!(i0 < slen0)) goto LA6;
				{
					if (!((NU8)(s0->data[i0]) == (NU8)(95))) goto LA9;
					i0 += ((NI) 1);
				}
				goto LA7;
				LA9: ;
				{
					NIM_BOOL LOC12;
					LOC12 = (NIM_BOOL)0;
					LOC12 = ismagicidentseparatorrune_jEsY0iAEfTnaxdnZAwGvIwidents(s0->data, i0);
					if (!LOC12) goto LA13;
					i0 += ((NI) 3);
				}
				goto LA7;
				LA13: ;
				LA7: ;
				{
					if (!!((((NU8)(s0->data[i0])) >= ((NU8)(97)) && ((NU8)(s0->data[i0])) <= ((NU8)(122)) || ((NU8)(s0->data[i0])) >= ((NU8)(65)) && ((NU8)(s0->data[i0])) <= ((NU8)(90)) || ((NU8)(s0->data[i0])) >= ((NU8)(48)) && ((NU8)(s0->data[i0])) <= ((NU8)(57)) || ((NU8)(s0->data[i0])) >= ((NU8)(128)) && ((NU8)(s0->data[i0])) <= ((NU8)(255))))) goto LA17;
					goto BeforeRet;
				}
				LA17: ;
				i0 += ((NI) 1);
			} LA6: ;
		}
		result0 = NIM_TRUE;
	}
	LA3: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, openlexer_eKdW81U1nNo7kyJQODmbcA)(Tlexer_IOWqYAjEw106AHiXcZcUGg* lex0, NimStringDesc* filename0, Tllstream_IHsOGFu33dIY69a9bLlFHlHw* inputstream0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0) {
	NI32 LOC1;
	LOC1 = (NI32)0;
	LOC1 = fileinfoidx_RXxXBoV2drjjVnQa9abo19cQ(filename0);
	openlexer_VnkJNxSy3Eov2D30qhzrvw(lex0, LOC1, inputstream0, cache0);
}

N_NIMCALL(void, printtok_0kBpReLFJ1GbjHiPO55NKg)(Ttoken_kLaEEPwLj8cag79cbYQIkHQ* tok0) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	LOC1 = (NimStringDesc*)0;
	LOC2 = (NimStringDesc*)0;
	LOC2 = nimIntToStr((*tok0).line);
	LOC3 = (NimStringDesc*)0;
	LOC3 = nimIntToStr((*tok0).col);
	LOC4 = (NimStringDesc*)0;
	LOC4 = toktostr_TtD8kId4CzEkbAITBVCtzQ_2(tok0);
	LOC1 = rawNewString(LOC2->Sup.len + LOC3->Sup.len + Toktypetostr_7y4sYGQdJmj2c4r0emPULw[((*tok0).toktype)- 0]->Sup.len + LOC4->Sup.len + 3);
appendString(LOC1, LOC2);
appendString(LOC1, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_136));
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_149));
appendString(LOC1, Toktypetostr_7y4sYGQdJmj2c4r0emPULw[((*tok0).toktype)- 0]);
appendString(LOC1, ((NimStringDesc*) &T_4JpEWnGrmRM8CRqL3P2O1Q_150));
appendString(LOC1, LOC4);
	msgwriteln_mpdiFCyqIWmTQYjT6Mj9c6A(LOC1, 0);
}
NIM_EXTERNC N_NOINLINE(void, compiler_lexerInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, compiler_lexerDatInit000)(void) {
static TNimNode* T_4JpEWnGrmRM8CRqL3P2O1Q_2[7];
static TNimNode* T_4JpEWnGrmRM8CRqL3P2O1Q_3[2];
static TNimNode* T_4JpEWnGrmRM8CRqL3P2O1Q_4[11];
static TNimNode* T_4JpEWnGrmRM8CRqL3P2O1Q_5[119];
NI T_4JpEWnGrmRM8CRqL3P2O1Q_7;
static char* NIM_CONST T_4JpEWnGrmRM8CRqL3P2O1Q_6[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* T_4JpEWnGrmRM8CRqL3P2O1Q_8[4];
NI T_4JpEWnGrmRM8CRqL3P2O1Q_10;
static char* NIM_CONST T_4JpEWnGrmRM8CRqL3P2O1Q_9[4] = {
"base10", 
"base2", 
"base8", 
"base16"};
static TNimNode T_4JpEWnGrmRM8CRqL3P2O1Q_0[148];
NTI_IOWqYAjEw106AHiXcZcUGg.size = sizeof(Tlexer_IOWqYAjEw106AHiXcZcUGg);
NTI_IOWqYAjEw106AHiXcZcUGg.kind = 17;
NTI_IOWqYAjEw106AHiXcZcUGg.base = (&NTI_z9a7O76kH1tJ9aXJ3h2MdEzA);
T_4JpEWnGrmRM8CRqL3P2O1Q_2[0] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[1];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[1].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[1].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, fileidx);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[1].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[1].name = "fileIdx";
T_4JpEWnGrmRM8CRqL3P2O1Q_2[1] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[2];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[2].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[2].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, indentahead);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[2].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[2].name = "indentAhead";
T_4JpEWnGrmRM8CRqL3P2O1Q_2[2] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[3];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[3].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[3].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, currlineindent);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[3].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[3].name = "currLineIndent";
T_4JpEWnGrmRM8CRqL3P2O1Q_2[3] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[4];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[4].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[4].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, strongspaces);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[4].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[4].name = "strongSpaces";
T_4JpEWnGrmRM8CRqL3P2O1Q_2[4] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[5];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[5].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[5].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, allowtabs);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[5].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[5].name = "allowTabs";
T_4JpEWnGrmRM8CRqL3P2O1Q_2[5] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[6];
NTI_l9buWVPY1qenw5uCj2k2Uqg.size = sizeof(TY_sdDP1TTkc2gaTu5fV53Zqg);
NTI_l9buWVPY1qenw5uCj2k2Uqg.kind = 18;
NTI_l9buWVPY1qenw5uCj2k2Uqg.base = 0;
NTI_l9buWVPY1qenw5uCj2k2Uqg.flags = 2;
T_4JpEWnGrmRM8CRqL3P2O1Q_3[0] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[8];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[8].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[8].offset = offsetof(TY_sdDP1TTkc2gaTu5fV53Zqg, Field0);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[8].typ = (&NTI_vr5DoT1jILTGdRlYv1OYpw);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[8].name = "Field0";
T_4JpEWnGrmRM8CRqL3P2O1Q_3[1] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[9];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[9].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[9].offset = offsetof(TY_sdDP1TTkc2gaTu5fV53Zqg, Field1);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[9].typ = (&NTI_j4IZVEbOYTm9aXKJeVb8ILQ);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[9].name = "Field1";
T_4JpEWnGrmRM8CRqL3P2O1Q_0[7].len = 2; T_4JpEWnGrmRM8CRqL3P2O1Q_0[7].kind = 2; T_4JpEWnGrmRM8CRqL3P2O1Q_0[7].sons = &T_4JpEWnGrmRM8CRqL3P2O1Q_3[0];
NTI_l9buWVPY1qenw5uCj2k2Uqg.node = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[7];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[6].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[6].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, errorhandler);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[6].typ = (&NTI_l9buWVPY1qenw5uCj2k2Uqg);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[6].name = "errorHandler";
T_4JpEWnGrmRM8CRqL3P2O1Q_2[6] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[10];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[10].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[10].offset = offsetof(Tlexer_IOWqYAjEw106AHiXcZcUGg, cache);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[10].typ = (&NTI_lnkYNZP9asc88UfiEGjLrbA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[10].name = "cache";
T_4JpEWnGrmRM8CRqL3P2O1Q_0[0].len = 7; T_4JpEWnGrmRM8CRqL3P2O1Q_0[0].kind = 2; T_4JpEWnGrmRM8CRqL3P2O1Q_0[0].sons = &T_4JpEWnGrmRM8CRqL3P2O1Q_2[0];
NTI_IOWqYAjEw106AHiXcZcUGg.node = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[0];
NTI_kLaEEPwLj8cag79cbYQIkHQ.size = sizeof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ);
NTI_kLaEEPwLj8cag79cbYQIkHQ.kind = 18;
NTI_kLaEEPwLj8cag79cbYQIkHQ.base = 0;
NTI_kLaEEPwLj8cag79cbYQIkHQ.flags = 2;
T_4JpEWnGrmRM8CRqL3P2O1Q_4[0] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[12];
NTI_vw8YkgaVtNadqP8v5OpXKA.size = sizeof(Ttoktype_vw8YkgaVtNadqP8v5OpXKA);
NTI_vw8YkgaVtNadqP8v5OpXKA.kind = 14;
NTI_vw8YkgaVtNadqP8v5OpXKA.base = 0;
NTI_vw8YkgaVtNadqP8v5OpXKA.flags = 3;
for (T_4JpEWnGrmRM8CRqL3P2O1Q_7 = 0; T_4JpEWnGrmRM8CRqL3P2O1Q_7 < 119; T_4JpEWnGrmRM8CRqL3P2O1Q_7++) {
T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_7+13].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_7+13].offset = T_4JpEWnGrmRM8CRqL3P2O1Q_7;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_7+13].name = T_4JpEWnGrmRM8CRqL3P2O1Q_6[T_4JpEWnGrmRM8CRqL3P2O1Q_7];
T_4JpEWnGrmRM8CRqL3P2O1Q_5[T_4JpEWnGrmRM8CRqL3P2O1Q_7] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_7+13];
}
T_4JpEWnGrmRM8CRqL3P2O1Q_0[132].len = 119; T_4JpEWnGrmRM8CRqL3P2O1Q_0[132].kind = 2; T_4JpEWnGrmRM8CRqL3P2O1Q_0[132].sons = &T_4JpEWnGrmRM8CRqL3P2O1Q_5[0];
NTI_vw8YkgaVtNadqP8v5OpXKA.node = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[132];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[12].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[12].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, toktype);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[12].typ = (&NTI_vw8YkgaVtNadqP8v5OpXKA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[12].name = "tokType";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[1] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[133];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[133].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[133].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, indent);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[133].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[133].name = "indent";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[2] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[134];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[134].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[134].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, ident);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[134].typ = (&NTI_1nh2T19a2BrGbBBQRS39bxRw);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[134].name = "ident";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[3] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[135];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[135].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[135].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, inumber);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[135].typ = (&NTI_Aav8dQoMlCFnZRxA0IhTHQ);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[135].name = "iNumber";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[4] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[136];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[136].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[136].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, fnumber);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[136].typ = (&NTI_w9bl9a1ul9ctRJWiMl9cNnIMvg);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[136].name = "fNumber";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[5] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[137];
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q.size = sizeof(Tnumericalbase_9cbxR9czWgoXwHHSzHtd9aV7Q);
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q.kind = 14;
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q.base = 0;
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q.flags = 3;
for (T_4JpEWnGrmRM8CRqL3P2O1Q_10 = 0; T_4JpEWnGrmRM8CRqL3P2O1Q_10 < 4; T_4JpEWnGrmRM8CRqL3P2O1Q_10++) {
T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_10+138].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_10+138].offset = T_4JpEWnGrmRM8CRqL3P2O1Q_10;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_10+138].name = T_4JpEWnGrmRM8CRqL3P2O1Q_9[T_4JpEWnGrmRM8CRqL3P2O1Q_10];
T_4JpEWnGrmRM8CRqL3P2O1Q_8[T_4JpEWnGrmRM8CRqL3P2O1Q_10] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[T_4JpEWnGrmRM8CRqL3P2O1Q_10+138];
}
T_4JpEWnGrmRM8CRqL3P2O1Q_0[142].len = 4; T_4JpEWnGrmRM8CRqL3P2O1Q_0[142].kind = 2; T_4JpEWnGrmRM8CRqL3P2O1Q_0[142].sons = &T_4JpEWnGrmRM8CRqL3P2O1Q_8[0];
NTI_9cbxR9czWgoXwHHSzHtd9aV7Q.node = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[142];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[137].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[137].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, base);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[137].typ = (&NTI_9cbxR9czWgoXwHHSzHtd9aV7Q);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[137].name = "base";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[6] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[143];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[143].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[143].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, strongspacea);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[143].typ = (&NTI_chXunH2dwinSkhpA6JnsXw);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[143].name = "strongSpaceA";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[7] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[144];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[144].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[144].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, strongspaceb);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[144].typ = (&NTI_chXunH2dwinSkhpA6JnsXw);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[144].name = "strongSpaceB";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[8] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[145];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[145].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[145].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, literal);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[145].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[145].name = "literal";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[9] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[146];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[146].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[146].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, line);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[146].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[146].name = "line";
T_4JpEWnGrmRM8CRqL3P2O1Q_4[10] = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[147];
T_4JpEWnGrmRM8CRqL3P2O1Q_0[147].kind = 1;
T_4JpEWnGrmRM8CRqL3P2O1Q_0[147].offset = offsetof(Ttoken_kLaEEPwLj8cag79cbYQIkHQ, col);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[147].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4JpEWnGrmRM8CRqL3P2O1Q_0[147].name = "col";
T_4JpEWnGrmRM8CRqL3P2O1Q_0[11].len = 11; T_4JpEWnGrmRM8CRqL3P2O1Q_0[11].kind = 2; T_4JpEWnGrmRM8CRqL3P2O1Q_0[11].sons = &T_4JpEWnGrmRM8CRqL3P2O1Q_4[0];
NTI_kLaEEPwLj8cag79cbYQIkHQ.node = &T_4JpEWnGrmRM8CRqL3P2O1Q_0[11];
}

