/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <setjmp.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw;
typedef struct tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ;
typedef struct RootObj RootObj;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A tyTuple__JfHvHzMrhKkWAUvQKe0i1A;
typedef struct tyObject_Env_lexerdotnim_lexer___diB2NTuAIWY0FO9c5IUJRGg tyObject_Env_lexerdotnim_lexer___diB2NTuAIWY0FO9c5IUJRGg;
typedef struct tyObject_Token__TUeI5CB5zbppKJkmeKoDMw tyObject_Token__TUeI5CB5zbppKJkmeKoDMw;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA;
typedef struct tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA;
typedef struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA;
typedef struct tySequence__mIo9bZUsotCEUUtEGNhYmaA tySequence__mIo9bZUsotCEUUtEGNhYmaA;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ tySequence__8rKxBHaz7QqNR9a4WIZqqqQ;
typedef struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__KLItBKQec3LJzPmfiYYfQA tySequence__KLItBKQec3LJzPmfiYYfQA;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw;
typedef struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw;
typedef struct Exception Exception;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct TSafePoint TSafePoint;
typedef struct tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw;
typedef struct tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg;
typedef struct tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA;
typedef struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ;
typedef struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct RootObj {
TNimType* m_type;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ {
  RootObj Sup;
NI bufpos;
NCSTRING buf;
NimStringDesc* bufStorage;
NI bufLen;
tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc__9aGJhSmkuel6SMfp4pTpyXA;
struct tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw {
  tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyProc__9aGJhSmkuel6SMfp4pTpyXA errorHandler;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
};
struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A {
void* Field0;
tyObject_Env_lexerdotnim_lexer___diB2NTuAIWY0FO9c5IUJRGg* Field1;
};
typedef NU8 tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw;
typedef NU8 tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q;
struct tyObject_Token__TUeI5CB5zbppKJkmeKoDMw {
tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw tokType;
NI indent;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
NI64 iNumber;
NF fNumber;
tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
typedef NU8 tyEnum_TLLStreamKind__ChicJ77mD7SkMUxz402udA;
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* s, void* buf, NI bufLen, void* ClE_0);
void* ClE_0;
} tyProc__M3d9crIwWf7vcamB5Yms8GQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__HzVCwACFYM9cx9aV62PdjtuA;
struct tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg {
  RootObj Sup;
tyEnum_TLLStreamKind__ChicJ77mD7SkMUxz402udA kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__M3d9crIwWf7vcamB5Yms8GQ repl;
tyProc__HzVCwACFYM9cx9aV62PdjtuA onPrompt;
};
typedef tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* tyArray__1iN2CWX9bK5w9bRjT9chFAABA[8192];
struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ {
tyArray__1iN2CWX9bK5w9bRjT9chFAABA buckets;
NI wordCounter;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* idAnon;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* idDelegator;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* emptyIdent;
};
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ;
typedef NU8 tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw;
struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA {
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ targetCPU;
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ hostCPU;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw targetOS;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ;
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ errorOutputs;
tySequence__mIo9bZUsotCEUUtEGNhYmaA* msgContext;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastError;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw filenameToIndexTbl;
tySequence__8rKxBHaz7QqNR9a4WIZqqqQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w;
typedef NU8 tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q;
typedef NU8 tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg;
struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU32 tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU8 tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g;
typedef NU8 tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU8 tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA[12];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* result, void* ClE_0);
void* ClE_0;
} tyProc__Ox1WDSaSyO73VnvAC2a4UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* msg, tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg severity, void* ClE_0);
void* ClE_0;
} tyProc__2bM7rNPFiQD9bOvwFI49bKLQ;
struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA target;
NI linesCompiled;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* macrosToExpand;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* arcToExpand;
tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA m;
tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA modifiedyNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA cmdlineNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA foreignPackageNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA notes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA warningAsErrors;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* configVars;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* dllOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* moduleOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__KLItBKQec3LJzPmfiYYfQA* toCompile;
tyProc__Ox1WDSaSyO73VnvAC2a4UA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__2bM7rNPFiQD9bOvwFI49bKLQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg* vmProfileData;
NIM_BOOL expandProgress;
NI expandLevels;
NimStringDesc* expandNodeResult;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw expandPosition;
};
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef N_CLOSURE_PTR(void, TM__U89bXmCxR9cj7Cd2NafLayNA_6) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg);
typedef NU8 tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU8 tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g;
struct tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw {
NI8 Field0;
tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g Field1;
};
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NU8 tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
typedef NU8 tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw;
struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw {
NI a;
NI b;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
struct tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw {
  Exception Sup;
};
struct tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw {
  tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg Sup;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ {
  Exception Sup;
};
struct tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
};
struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA;
struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA flags;
NimStringDesc* customArgs;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__mIo9bZUsotCEUUtEGNhYmaA {
  TGenericSeq Sup;
  tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__KLItBKQec3LJzPmfiYYfQA {
  TGenericSeq Sup;
  tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw data[SEQ_DECL_SIZE];
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, openLexer__lexer_270)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* lex, NI32 fileIdx, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputstream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NIMCALL(void, openBaseLexer__nimlexbase_25)(tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ* L, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputstream, NI bufLen);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__msgs_376)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(void, fillToken__lexer_268)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* L);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, skip__lexer_1554)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(void, lexMessagePos__lexer_337)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NI pos, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, newLineInfo__msgs_391)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(void, dispMessage__lexer_317)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NI, handleCRLF__lexer_1080)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(NI, getColNumber__nimlexbase_34)(tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(NI, handleCR__nimlexbase_37)(tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(NI, handleLF__nimlexbase_40)(tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(void, skipMultiLineComment__lexer_1411)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, NI start, NIM_BOOL isDoc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, getSymbol__lexer_1229)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
static N_INLINE(NI, emarkamp___pureZhashes_3)(NI h, NI val);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__lexer_327)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getLineInfo__lexer_314)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw, unicodeOprLen__lexer_1203)(NCSTRING buf, NI pos);
static N_INLINE(NI, emarkdollar___pureZhashes_18)(NI h);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_89)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NCSTRING identifier, NI length, NI h);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, getOperator__lexer_1326)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
static N_INLINE(void, endOperator__lexer_1317)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, NI pos, NI hash);
N_LIB_PRIVATE N_NIMCALL(void, scanComment__lexer_1492)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(void, getString__lexer_1097)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw mode);
N_LIB_PRIVATE N_NIMCALL(void, getEscapedChar__lexer_978)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(void, handleHexChar__lexer_772)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NI* xi, NI position);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_865)(NimStringDesc* s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
static N_INLINE(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___pureZunicode_840)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, addUnicodeCodePoint__lexer_853)(NimStringDesc** s, NI i);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchTwoChars__lexer_343)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NIM_CHAR first, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw second);
N_LIB_PRIVATE N_NIMCALL(void, handleDecChars__lexer_836)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NI* xi);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_152)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, getCharacter__lexer_1172)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(void, getNumber__lexer_373)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* result);
N_LIB_PRIVATE N_NIMCALL(void, lexMessageLitNum__lexer_415)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NimStringDesc* msg, NI startpos, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msgKind);
N_LIB_PRIVATE N_NIMCALL(void, matchChars__lexer_402)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NI, matchUnderscoreChars__lexer_376)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1441)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToLowerAsciiStr)(NimStringDesc* s);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_LIB_PRIVATE N_NIMCALL(NF, nsuParseFloat)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestUInt)(NimStringDesc* s, NU64* number, NI start);
static N_INLINE(void, popSafePoint)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5267)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestInt)(NimStringDesc* s, NI64* number, NI start);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3126)(NF x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
static N_INLINE(NIM_BOOL, eqeq___idents_229)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* a, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* b);
N_LIB_PRIVATE N_NIMCALL(void, closeBaseLexer__nimlexbase_29)(tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ* L);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__lexer_196)(tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw kind);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___lexer_230)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
static N_INLINE(NIM_CHAR*, X5BX5D___system_7363)(NimStringDesc** s, NI i);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, initToken__lexer_248)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* L);
static N_INLINE(NIM_BOOL, contains__pureZtimes_2292)(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw s, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__lexer_1376)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
extern TNimType NTItbaselexer__nATxPlDiRTsKxaL2wN88sQ_;
N_LIB_PRIVATE TNimType NTIlexer__D0giBxIIh38MSXTZOJp8yw_;
extern TNimType NTIint5150__sVg18TP9cLifHyygRe9cro9aA_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_;
extern TNimType NTIpointer__vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_;
extern TNimType NTIidentcache__6ZZ9cf5acLVYxUxl0ehlA1g_;
extern TNimType NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_5, "/home/runner/work/nightlies/nightlies/nim/compiler/lexer.nim", 60);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__U89bXmCxR9cj7Cd2NafLayNA_4 = {((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_5),
((NI) 223),
((NI) 16)}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_7, "tabs are not allowed, use spaces instead", 40);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_8, "\012", 1);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_9, "end of multiline comment expected", 33);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_10, "invalid token: trailing underscore", 34);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_11, "\'$1\' should be: \'$2\'$3", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__U89bXmCxR9cj7Cd2NafLayNA_12 = {((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_5),
((NI) 924),
((NI) 16)}
;
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_13 = {
0x00, 0x00, 0x00, 0x00, 0x72, 0xec, 0x00, 0xf4,
0x01, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_14, "closing \"\"\" expected, but end of file reached", 45);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_15, "closing \" expected", 18);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_16, "\\p not allowed in character literal", 35);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_17, "expected a hex digit, but found: ", 33);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_18, "; maybe prepend with 0", 22);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_19, "\\u not allowed in character literal", 35);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_20, "Unicode codepoint cannot be empty", 33);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_21, "Unicode codepoint must be lower than 0x10FFFF, but was: ", 56);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_22 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_23, "invalid character constant", 26);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_24, "_", 1);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_25, "invalid token: ", 15);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_26, " (\\", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_27, "invalid character literal", 25);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_28, "\'", 1);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_29, "missing closing \' for character literal", 39);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_30 = {
0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0xff, 0x03,
0xfe, 0xff, 0xff, 0x87, 0xfe, 0xff, 0xff, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_31, "$1 will soon be invalid for oct literals; Use \'0o\' for octals. \'c\', \'C\' prefix", 78);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_32, "only single underscores may occur in a token and token may not end with an underscore: e.g. \'1__1\' and \'1_\' are invalid", 119);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_33 = {
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}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_34, "$1 is an invalid int literal; For octal literals use the \'0o\' prefix.", 69);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_35 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
0x7e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_36 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_37, "getNumber", 9);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__U89bXmCxR9cj7Cd2NafLayNA_38 = {((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_5),
((NI) 390),
((NI) 19)}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_39, "invalid number: \'$1\'", 20);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_40 = {
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}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_41, "f", 1);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_42, "f32", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_43, "d", 1);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_44, "f64", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_45, "f128", 4);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_46, "i8", 2);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_47, "i16", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_48, "i32", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_49, "i64", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_50, "u", 1);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_51, "u8", 2);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_52, "u16", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_53, "u32", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_54, "u64", 3);
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_55, "invalid number suffix: \'$1\'", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__U89bXmCxR9cj7Cd2NafLayNA_57 = {((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_5),
((NI) 495),
((NI) 23)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__U89bXmCxR9cj7Cd2NafLayNA_58 = {((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_5),
((NI) 512),
((NI) 27)}
;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_59, "number out of range: \'$1\'", 25);
extern TNimType NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_;
extern TNimType NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_;
extern TNimType NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_61, "number out of range: ", 21);
extern TNimType NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_62, "invalid integer: ", 17);
extern TNimType NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_64, "invalid token: no whitespace between number and identifier", 58);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__U89bXmCxR9cj7Cd2NafLayNA_65 = {
0x00, 0x26, 0x00, 0x00, 0x01, 0x11, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
N_LIB_PRIVATE TNimType NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_;
N_LIB_PRIVATE TNimType NTItoken__TUeI5CB5zbppKJkmeKoDMw_;
extern TNimType NTIpident__eFRAx6MW9aaEkYtj9aZffV0A_;
extern TNimType NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_;
extern TNimType NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_;
N_LIB_PRIVATE TNimType NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_;
extern TNimType NTIint56__chXunH2dwinSkhpA6JnsXw_;
extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
STRING_LITERAL(TM__U89bXmCxR9cj7Cd2NafLayNA_73, "keyword ", 8);
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern Exception* currException__system_2566;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
N_LIB_PRIVATE N_NIMCALL(void, initToken__lexer_248)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* L) {
	(*L).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 0);
	(*L).iNumber = IL64(0);
	(*L).indent = ((NI) 0);
	(*L).strongSpaceA = ((NI8) 0);
	unsureAsgnRef((void**) (&(*L).literal), ((NimStringDesc*) NIM_NIL));
	(*L).fNumber = 0.0;
	(*L).base = ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 0);
	unsureAsgnRef((void**) (&(*L).ident), ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
}
N_LIB_PRIVATE N_NIMCALL(void, openLexer__lexer_270)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* lex, NI32 fileIdx, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputstream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config) {
	openBaseLexer__nimlexbase_25(&lex->Sup, inputstream, ((NI) 8192));
	(*lex).fileIdx = fileIdx;
	(*lex).indentAhead = ((NI) -1);
	(*lex).currLineIndent = ((NI) 0);
	(*lex).Sup.lineNumber += (*inputstream).lineOffset;
	unsureAsgnRef((void**) (&(*lex).cache), cache);
	unsureAsgnRef((void**) (&(*lex).config), config);
}
N_LIB_PRIVATE N_NIMCALL(void, openLexer__lexer_298)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* lex, NimStringDesc* filename, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputstream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config) {
	NI32 T1_;
	T1_ = (NI32)0;
	T1_ = fileInfoIdx__msgs_376(config, filename);
	openLexer__lexer_270(lex, T1_, inputstream, cache, config);
}
N_LIB_PRIVATE N_NIMCALL(void, fillToken__lexer_268)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* L) {
	(*L).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 0);
	(*L).iNumber = IL64(0);
	(*L).indent = ((NI) 0);
	(*L).strongSpaceA = ((NI8) 0);
	unsureAsgnRef((void**) (&(*L).literal), setLengthStr((*L).literal, ((NI) 0)));
	(*L).fNumber = 0.0;
	(*L).base = ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 0);
	unsureAsgnRef((void**) (&(*L).ident), ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
}
N_LIB_PRIVATE N_NIMCALL(void, dispMessage__lexer_317)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg) {
	{
		if (!((*L).errorHandler.ClP_0 == 0)) goto LA3_;
		liMessage__msgs_1128((*L).config, info, msg, arg, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__U89bXmCxR9cj7Cd2NafLayNA_4, NIM_FALSE);
	}
	goto LA1_;
	LA3_: ;
	{
		(*L).errorHandler.ClE_0? (*L).errorHandler.ClP_0((*L).config, info, msg, arg, (*L).errorHandler.ClE_0):((TM__U89bXmCxR9cj7Cd2NafLayNA_6)((*L).errorHandler.ClP_0))((*L).config, info, msg, arg);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, lexMessagePos__lexer_337)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NI pos, NimStringDesc* arg) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	info = newLineInfo__msgs_391((*L).fileIdx, (*L).Sup.lineNumber, (NI)(pos - (*L).Sup.lineStart));
	dispMessage__lexer_317((&(*L)), info, msg, arg);
}
N_LIB_PRIVATE N_NIMCALL(NI, handleCRLF__lexer_1080)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NI pos) {
	NI result;
	result = (NI)0;
	switch (((NU8)((*L).Sup.buf[pos]))) {
	case 13:
	{
		NI colX60gensym93_;
		colX60gensym93_ = getColNumber__nimlexbase_34((&(*L).Sup), pos);
		{
			if (!(((NI) 80) < colX60gensym93_)) goto LA4_;
			lexMessagePos__lexer_337(L, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 75), pos, ((NimStringDesc*) NIM_NIL));
		}
		LA4_: ;
		result = handleCR__nimlexbase_37(&L->Sup, pos);
	}
	break;
	case 10:
	{
		NI colX60gensym95_;
		colX60gensym95_ = getColNumber__nimlexbase_34((&(*L).Sup), pos);
		{
			if (!(((NI) 80) < colX60gensym95_)) goto LA9_;
			lexMessagePos__lexer_337(L, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 75), pos, ((NimStringDesc*) NIM_NIL));
		}
		LA9_: ;
		result = handleLF__nimlexbase_40(&L->Sup, pos);
	}
	break;
	default:
	{
		result = pos;
	}
	break;
	}
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, skipMultiLineComment__lexer_1411)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, NI start, NIM_BOOL isDoc) {
	NI pos;
	NI toStrip;
	NI nesting;
	pos = start;
	toStrip = ((NI) 0);
	{
		if (!isDoc) goto LA3_;
		toStrip = getColNumber__nimlexbase_34((&(*L).Sup), pos);
		{
			while (1) {
				if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(32))) goto LA6;
				pos += ((NI) 1);
				toStrip += ((NI) 1);
			} LA6: ;
		}
		{
			while (1) {
				if (!(((NU8)((*L).Sup.buf[pos])) == ((NU8)(13)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(10)))) goto LA8;
				pos = handleCRLF__lexer_1080(L, pos);
				toStrip = ((NI) 0);
				{
					while (1) {
						if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(32))) goto LA10;
						pos += ((NI) 1);
						toStrip += ((NI) 1);
					} LA10: ;
				}
			} LA8: ;
		}
	}
	LA3_: ;
	nesting = ((NI) 0);
	{
		while (1) {
			switch (((NU8)((*L).Sup.buf[pos]))) {
			case 35:
			{
				{
					if (!isDoc) goto LA16_;
					{
						NIM_BOOL T20_;
						T20_ = (NIM_BOOL)0;
						T20_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
						if (!(T20_)) goto LA21_;
						T20_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 2))]) == (NU8)(91));
						LA21_: ;
						if (!T20_) goto LA22_;
						nesting += ((NI) 1);
					}
					LA22_: ;
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 35));
				}
				goto LA14_;
				LA16_: ;
				{
					if (!((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(91))) goto LA25_;
					nesting += ((NI) 1);
				}
				goto LA14_;
				LA25_: ;
				LA14_: ;
				pos += ((NI) 1);
			}
			break;
			case 93:
			{
				{
					if (!isDoc) goto LA30_;
					{
						NIM_BOOL T34_;
						T34_ = (NIM_BOOL)0;
						T34_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
						if (!(T34_)) goto LA35_;
						T34_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 2))]) == (NU8)(35));
						LA35_: ;
						if (!T34_) goto LA36_;
						{
							if (!(nesting == ((NI) 0))) goto LA40_;
							pos += ((NI) 3);
							goto LA11;
						}
						LA40_: ;
						nesting -= ((NI) 1);
					}
					LA36_: ;
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 93));
				}
				goto LA28_;
				LA30_: ;
				{
					if (!((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(35))) goto LA43_;
					{
						if (!(nesting == ((NI) 0))) goto LA47_;
						pos += ((NI) 2);
						goto LA11;
					}
					LA47_: ;
					nesting -= ((NI) 1);
				}
				goto LA28_;
				LA43_: ;
				LA28_: ;
				pos += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				pos = handleCRLF__lexer_1080(L, pos);
				{
					NI c;
					if (!isDoc) goto LA52_;
					unsureAsgnRef((void**) (&(*tok).literal), resizeString((*tok).literal, 1));
appendString((*tok).literal, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_8));
					(*tok).iNumber += ((NI) 1);
					c = toStrip;
					{
						while (1) {
							NIM_BOOL T56_;
							T56_ = (NIM_BOOL)0;
							T56_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(32));
							if (!(T56_)) goto LA57_;
							T56_ = (((NI) 0) < c);
							LA57_: ;
							if (!T56_) goto LA55;
							pos += ((NI) 1);
							c -= ((NI) 1);
						} LA55: ;
					}
				}
				LA52_: ;
			}
			break;
			case 0:
			{
				lexMessagePos__lexer_337(L, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), pos, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_9));
				goto LA11;
			}
			break;
			default:
			{
				{
					NIM_BOOL T62_;
					T62_ = (NIM_BOOL)0;
					T62_ = isDoc;
					if (T62_) goto LA63_;
					T62_ = NIM_FALSE;
					LA63_: ;
					if (!T62_) goto LA64_;
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, (*L).Sup.buf[pos]));
				}
				LA64_: ;
				pos += ((NI) 1);
			}
			break;
			}
		}
	} LA11: ;
	(*L).Sup.bufpos = pos;
}
N_LIB_PRIVATE N_NIMCALL(void, skip__lexer_1554)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NI pos;
	pos = (*L).Sup.bufpos;
	(*tok).strongSpaceA = ((NI8) 0);
	{
		while (1) {
			switch (((NU8)((*L).Sup.buf[pos]))) {
			case 32:
			{
				pos += ((NI) 1);
				(*tok).strongSpaceA += ((NI) 1);
			}
			break;
			case 9:
			{
				{
					if (!!((*L).allowTabs)) goto LA7_;
					lexMessagePos__lexer_337(L, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), pos, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_7));
				}
				LA7_: ;
				pos += ((NI) 1);
			}
			break;
			case 13:
			case 10:
			{
				NI indent;
				pos = handleCRLF__lexer_1080(L, pos);
				indent = ((NI) 0);
				{
					while (1) {
						{
							if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(32))) goto LA14_;
							pos += ((NI) 1);
							indent += ((NI) 1);
						}
						goto LA12_;
						LA14_: ;
						{
							NIM_BOOL T17_;
							T17_ = (NIM_BOOL)0;
							T17_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(35));
							if (!(T17_)) goto LA18_;
							T17_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(91));
							LA18_: ;
							if (!T17_) goto LA19_;
							skipMultiLineComment__lexer_1411(L, tok, (NI)(pos + ((NI) 2)), NIM_FALSE);
							pos = (*L).Sup.bufpos;
						}
						goto LA12_;
						LA19_: ;
						{
							goto LA10;
						}
						LA12_: ;
					}
				} LA10: ;
				(*tok).strongSpaceA = ((NI8) 0);
				{
					NIM_BOOL T24_;
					NIM_BOOL T26_;
					T24_ = (NIM_BOOL)0;
					T24_ = ((NU8)(32) < (NU8)((*L).Sup.buf[pos]));
					if (!(T24_)) goto LA25_;
					T26_ = (NIM_BOOL)0;
					T26_ = !(((NU8)((*L).Sup.buf[pos]) == (NU8)(35)));
					if (T26_) goto LA27_;
					T26_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
					LA27_: ;
					T24_ = T26_;
					LA25_: ;
					if (!T24_) goto LA28_;
					(*tok).indent = indent;
					(*L).currLineIndent = indent;
					goto LA1;
				}
				LA28_: ;
			}
			break;
			case 35:
			{
				{
					if (!((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(35))) goto LA33_;
					goto LA1;
				}
				LA33_: ;
				{
					if (!((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(91))) goto LA37_;
					skipMultiLineComment__lexer_1411(L, tok, (NI)(pos + ((NI) 2)), NIM_FALSE);
					pos = (*L).Sup.bufpos;
				}
				goto LA35_;
				LA37_: ;
				{
					{
						while (1) {
							if (!!((((NU8)((*L).Sup.buf[pos])) == ((NU8)(13)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(10)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(0))))) goto LA41;
							pos += ((NI) 1);
						} LA41: ;
					}
				}
				LA35_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	(*L).Sup.bufpos = pos;
}
static N_INLINE(NI, emarkamp___pureZhashes_3)(NI h, NI val) {
	NI result;
	NU h_2;
	NU val_2;
	NU res;
	result = (NI)0;
	h_2 = ((NU) (h));
	val_2 = ((NU) (val));
	res = (NU)((NU64)(h_2) + (NU64)(val_2));
	res = (NU)((NU64)(res) + (NU64)((NU)((NU64)(res) << (NU64)(((NI) 10)))));
	res = (NU)(res ^ (NU)((NU64)(res) >> (NU64)(((NI) 6))));
	result = ((NI) (res));
	return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getLineInfo__lexer_314)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
	NI T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	T1_ = (NI)0;
	T1_ = getColNumber__nimlexbase_34((&(*L).Sup), (*L).Sup.bufpos);
	result = newLineInfo__msgs_391((*L).fileIdx, (*L).Sup.lineNumber, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__lexer_327)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T1_;
	T1_ = getLineInfo__lexer_314(L);
	dispMessage__lexer_317(L, T1_, msg, arg);
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw, unicodeOprLen__lexer_1203)(NCSTRING buf, NI pos) {
	tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw result;
	NI8 colontmp_;
	tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__2;
	nimZeroMem((void*)(&result), sizeof(tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw));
	colontmp_ = ((NI8) 0);
	colontmp__2 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
	result.Field0 = colontmp_;
	result.Field1 = colontmp__2;
	switch (((NU8)(buf[pos]))) {
	case 226:
	{
		{
			if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(136))) goto LA4_;
			{
				NI8 colontmp__3;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__4;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(152))) goto LA8_;
				colontmp__3 = ((NI8) 3);
				colontmp__4 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__3;
				result.Field1 = colontmp__4;
			}
			goto LA6_;
			LA8_: ;
			{
				NI8 colontmp__5;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__6;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(153))) goto LA11_;
				colontmp__5 = ((NI8) 3);
				colontmp__6 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__5;
				result.Field1 = colontmp__6;
			}
			goto LA6_;
			LA11_: ;
			{
				NI8 colontmp__7;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__8;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(167))) goto LA14_;
				colontmp__7 = ((NI8) 3);
				colontmp__8 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__7;
				result.Field1 = colontmp__8;
			}
			goto LA6_;
			LA14_: ;
			{
				NI8 colontmp__9;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__10;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(168))) goto LA17_;
				colontmp__9 = ((NI8) 3);
				colontmp__10 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__9;
				result.Field1 = colontmp__10;
			}
			goto LA6_;
			LA17_: ;
			{
				NI8 colontmp__11;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__12;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(169))) goto LA20_;
				colontmp__11 = ((NI8) 3);
				colontmp__12 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__11;
				result.Field1 = colontmp__12;
			}
			goto LA6_;
			LA20_: ;
			{
				NI8 colontmp__13;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__14;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(170))) goto LA23_;
				colontmp__13 = ((NI8) 3);
				colontmp__14 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__13;
				result.Field1 = colontmp__14;
			}
			goto LA6_;
			LA23_: ;
			LA6_: ;
		}
		goto LA2_;
		LA4_: ;
		{
			if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(138))) goto LA26_;
			{
				NI8 colontmp__15;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__16;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(147))) goto LA30_;
				colontmp__15 = ((NI8) 3);
				colontmp__16 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__15;
				result.Field1 = colontmp__16;
			}
			goto LA28_;
			LA30_: ;
			{
				NI8 colontmp__17;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__18;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(148))) goto LA33_;
				colontmp__17 = ((NI8) 3);
				colontmp__18 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__17;
				result.Field1 = colontmp__18;
			}
			goto LA28_;
			LA33_: ;
			{
				NI8 colontmp__19;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__20;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(149))) goto LA36_;
				colontmp__19 = ((NI8) 3);
				colontmp__20 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__19;
				result.Field1 = colontmp__20;
			}
			goto LA28_;
			LA36_: ;
			{
				NI8 colontmp__21;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__22;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(150))) goto LA39_;
				colontmp__21 = ((NI8) 3);
				colontmp__22 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__21;
				result.Field1 = colontmp__22;
			}
			goto LA28_;
			LA39_: ;
			{
				NI8 colontmp__23;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__24;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(151))) goto LA42_;
				colontmp__23 = ((NI8) 3);
				colontmp__24 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__23;
				result.Field1 = colontmp__24;
			}
			goto LA28_;
			LA42_: ;
			{
				NI8 colontmp__25;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__26;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(152))) goto LA45_;
				colontmp__25 = ((NI8) 3);
				colontmp__26 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__25;
				result.Field1 = colontmp__26;
			}
			goto LA28_;
			LA45_: ;
			{
				NI8 colontmp__27;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__28;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(153))) goto LA48_;
				colontmp__27 = ((NI8) 3);
				colontmp__28 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__27;
				result.Field1 = colontmp__28;
			}
			goto LA28_;
			LA48_: ;
			{
				NI8 colontmp__29;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__30;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(155))) goto LA51_;
				colontmp__29 = ((NI8) 3);
				colontmp__30 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__29;
				result.Field1 = colontmp__30;
			}
			goto LA28_;
			LA51_: ;
			{
				NI8 colontmp__31;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__32;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(158))) goto LA54_;
				colontmp__31 = ((NI8) 3);
				colontmp__32 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__31;
				result.Field1 = colontmp__32;
			}
			goto LA28_;
			LA54_: ;
			{
				NI8 colontmp__33;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__34;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(159))) goto LA57_;
				colontmp__33 = ((NI8) 3);
				colontmp__34 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
				result.Field0 = colontmp__33;
				result.Field1 = colontmp__34;
			}
			goto LA28_;
			LA57_: ;
			{
				NI8 colontmp__35;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__36;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(160))) goto LA60_;
				colontmp__35 = ((NI8) 3);
				colontmp__36 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__35;
				result.Field1 = colontmp__36;
			}
			goto LA28_;
			LA60_: ;
			{
				NI8 colontmp__37;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__38;
				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(161))) goto LA63_;
				colontmp__37 = ((NI8) 3);
				colontmp__38 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
				result.Field0 = colontmp__37;
				result.Field1 = colontmp__38;
			}
			goto LA28_;
			LA63_: ;
			LA28_: ;
		}
		goto LA2_;
		LA26_: ;
		{
			NIM_BOOL T66_;
			NI8 colontmp__39;
			tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__40;
			T66_ = (NIM_BOOL)0;
			T66_ = ((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(152));
			if (!(T66_)) goto LA67_;
			T66_ = ((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(133));
			LA67_: ;
			if (!T66_) goto LA68_;
			colontmp__39 = ((NI8) 3);
			colontmp__40 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
			result.Field0 = colontmp__39;
			result.Field1 = colontmp__40;
		}
		goto LA2_;
		LA68_: ;
		LA2_: ;
	}
	break;
	case 194:
	{
		{
			NI8 colontmp__41;
			tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__42;
			if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(177))) goto LA73_;
			colontmp__41 = ((NI8) 2);
			colontmp__42 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 1);
			result.Field0 = colontmp__41;
			result.Field1 = colontmp__42;
		}
		LA73_: ;
	}
	break;
	case 195:
	{
		{
			NI8 colontmp__43;
			tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g colontmp__44;
			if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(151))) goto LA78_;
			colontmp__43 = ((NI8) 2);
			colontmp__44 = ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0);
			result.Field0 = colontmp__43;
			result.Field1 = colontmp__44;
		}
		LA78_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
static N_INLINE(NI, emarkdollar___pureZhashes_18)(NI h) {
	NI result;
	NU h_2;
	NU res;
	result = (NI)0;
	h_2 = ((NU) (h));
	res = (NU)((NU64)(h_2) + (NU64)((NU)((NU64)(h_2) << (NU64)(((NI) 3)))));
	res = (NU)(res ^ (NU)((NU64)(res) >> (NU64)(((NI) 11))));
	res = (NU)((NU64)(res) + (NU64)((NU)((NU64)(res) << (NU64)(((NI) 15)))));
	result = ((NI) (res));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getSymbol__lexer_1229)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NI h;
	NI pos;
	NIM_BOOL suspicious;
	h = ((NI) 0);
	pos = (*L).Sup.bufpos;
	suspicious = NIM_FALSE;
	{
		while (1) {
			NIM_CHAR c;
			c = (*L).Sup.buf[pos];
			switch (((NU8)(c))) {
			case 97 ... 122:
			case 48 ... 57:
			{
				h = emarkamp___pureZhashes_3(h, ((NU8)(c)));
				pos += ((NI) 1);
			}
			break;
			case 65 ... 90:
			{
				c = ((NIM_CHAR) (((NI) ((NI)(((NU8)(c)) + ((NI) 32))))));
				h = emarkamp___pureZhashes_3(h, ((NU8)(c)));
				pos += ((NI) 1);
				suspicious = NIM_TRUE;
			}
			break;
			case 95:
			{
				{
					if (!!((((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) <= ((NU8)(255))))) goto LA8_;
					lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_10));
					goto LA1;
				}
				LA8_: ;
				pos += ((NI) 1);
				suspicious = NIM_TRUE;
			}
			break;
			case 128 ... 255:
			{
				{
					NIM_BOOL T13_;
					NIM_BOOL T14_;
					tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw T17_;
					T13_ = (NIM_BOOL)0;
					T14_ = (NIM_BOOL)0;
					T14_ = (((NU8)(c)) == ((NU8)(226)) || ((NU8)(c)) == ((NU8)(194)) || ((NU8)(c)) == ((NU8)(195)));
					if (!(T14_)) goto LA15_;
					T14_ = (((*(*L).config).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 17))&31U)))!=0);
					LA15_: ;
					T13_ = T14_;
					if (!(T13_)) goto LA16_;
					T17_ = unicodeOprLen__lexer_1203((*L).Sup.buf, pos);
					T13_ = !((T17_.Field0 == ((NI8) 0)));
					LA16_: ;
					if (!T13_) goto LA18_;
					goto LA1;
				}
				goto LA11_;
				LA18_: ;
				{
					h = emarkamp___pureZhashes_3(h, ((NU8)(c)));
					pos += ((NI) 1);
				}
				LA11_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	h = emarkdollar___pureZhashes_18(h);
	unsureAsgnRef((void**) (&(*tok).ident), getIdent__idents_89((*L).cache, ((NCSTRING) ((&(*L).Sup.buf[(*L).Sup.bufpos]))), (NI)(pos - (*L).Sup.bufpos), h));
	{
		NIM_BOOL T24_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*(*tok).ident).id < ((NI) 1));
		if (T24_) goto LA25_;
		T24_ = (((NI) 66) < (*(*tok).ident).id);
		LA25_: ;
		if (!T24_) goto LA26_;
		(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2);
	}
	goto LA22_;
	LA26_: ;
	{
		(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) ((NI)((*(*tok).ident).id + ((NI) 2))));
		{
			NIM_BOOL T31_;
			NimStringDesc* mX60gensym144_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T35_;
			tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msgX60gensym144_;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T41_;
			T31_ = (NIM_BOOL)0;
			T31_ = suspicious;
			if (!(T31_)) goto LA32_;
			T31_ = !(((49152 & (*(*L).config).globalOptions) == 0));
			LA32_: ;
			if (!T31_) goto LA33_;
			nimZeroMem((void*)T35_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T35_[0] = copyString((*(*tok).ident).s);
			T35_[1] = nsuNormalize((*(*tok).ident).s);
			T35_[2] = ((NimStringDesc*) NIM_NIL);
			mX60gensym144_ = nsuFormatOpenArray(((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_11), T35_, 3);
			{
				if (!(((*(*L).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 15))&63U)))!=0)) goto LA38_;
				msgX60gensym144_ = ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15);
			}
			goto LA36_;
			LA38_: ;
			{
				msgX60gensym144_ = ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 91);
			}
			LA36_: ;
			T41_ = getLineInfo__lexer_314((&(*L)));
			liMessage__msgs_1128((*L).config, T41_, msgX60gensym144_, mX60gensym144_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__U89bXmCxR9cj7Cd2NafLayNA_12, NIM_FALSE);
		}
		LA33_: ;
	}
	LA22_: ;
	(*L).Sup.bufpos = pos;
}
static N_INLINE(void, endOperator__lexer_1317)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, NI pos, NI hash) {
	NI h;
	h = emarkdollar___pureZhashes_18(hash);
	unsureAsgnRef((void**) (&(*tok).ident), getIdent__idents_89((*L).cache, ((NCSTRING) ((&(*L).Sup.buf[(*L).Sup.bufpos]))), (NI)(pos - (*L).Sup.bufpos), h));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*tok).ident).id < ((NI) 67));
		if (T3_) goto LA4_;
		T3_ = (((NI) 71) < (*(*tok).ident).id);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110);
	}
	goto LA1_;
	LA5_: ;
	{
		(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) ((NI)((NI)((*(*tok).ident).id - ((NI) 67)) + ((NI) 104))));
	}
	LA1_: ;
	(*L).Sup.bufpos = pos;
}
N_LIB_PRIVATE N_NIMCALL(void, getOperator__lexer_1326)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NI pos;
	NI h;
	pos = (*L).Sup.bufpos;
	h = ((NI) 0);
	{
		while (1) {
			NIM_CHAR c;
			c = (*L).Sup.buf[pos];
			{
				if (!((TM__U89bXmCxR9cj7Cd2NafLayNA_13[(NU)(((NU8)(c)))>>3] &(1U<<((NU)(((NU8)(c)))&7U)))!=0)) goto LA5_;
				h = emarkamp___pureZhashes_3(h, ((NU8)(c)));
				pos += ((NI) 1);
			}
			goto LA3_;
			LA5_: ;
			{
				NIM_BOOL T8_;
				NI8 oprLen;
				tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw T12_;
				T8_ = (NIM_BOOL)0;
				T8_ = (((NU8)(c)) == ((NU8)(226)) || ((NU8)(c)) == ((NU8)(194)) || ((NU8)(c)) == ((NU8)(195)));
				if (!(T8_)) goto LA9_;
				T8_ = (((*(*L).config).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 17))&31U)))!=0);
				LA9_: ;
				if (!T8_) goto LA10_;
				T12_ = unicodeOprLen__lexer_1203((*L).Sup.buf, pos);
				oprLen = T12_.Field0;
				{
					if (!(oprLen == ((NI8) 0))) goto LA15_;
					goto LA1;
				}
				LA15_: ;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = ((NI) (oprLen));
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA19;
							i = i_2;
							h = emarkamp___pureZhashes_3(h, ((NU8)((*L).Sup.buf[pos])));
							pos += ((NI) 1);
							i_2 += ((NI) 1);
						} LA19: ;
					}
				}
			}
			goto LA3_;
			LA10_: ;
			{
				goto LA1;
			}
			LA3_: ;
		}
	} LA1: ;
	endOperator__lexer_1317(L, tok, pos, h);
	(*tok).strongSpaceB = ((NI8) 0);
	{
		while (1) {
			if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(32))) goto LA22;
			pos += ((NI) 1);
			(*tok).strongSpaceB += ((NI) 1);
		} LA22: ;
	}
	{
		if (!(((NU8)((*L).Sup.buf[pos])) == ((NU8)(13)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(10)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(0)))) goto LA25_;
		(*tok).strongSpaceB = ((NI8) -1);
	}
	LA25_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, scanComment__lexer_1492)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NI pos;
	NI toStrip;
	NIM_BOOL stripInit;
{	pos = (*L).Sup.bufpos;
	(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111);
	(*tok).iNumber = IL64(0);
	{
		if (!((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 2))]) == (NU8)(91))) goto LA3_;
		skipMultiLineComment__lexer_1411(L, tok, (NI)(pos + ((NI) 3)), NIM_TRUE);
		goto BeforeRet_;
	}
	LA3_: ;
	pos += ((NI) 2);
	toStrip = ((NI) 0);
	stripInit = NIM_FALSE;
	{
		while (1) {
			NI lastBackslash;
			NI indent;
			{
				if (!!(stripInit)) goto LA9_;
				{
					while (1) {
						if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(32))) goto LA12;
						pos += ((NI) 1);
						toStrip += ((NI) 1);
					} LA12: ;
				}
				{
					if (!(((NU8)((*L).Sup.buf[pos])) == ((NU8)(13)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(10)))) goto LA15_;
					toStrip = ((NI) 0);
				}
				goto LA13_;
				LA15_: ;
				{
					stripInit = NIM_TRUE;
				}
				LA13_: ;
			}
			LA9_: ;
			lastBackslash = ((NI) -1);
			{
				while (1) {
					if (!!((((NU8)((*L).Sup.buf[pos])) == ((NU8)(13)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(10)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(0))))) goto LA19;
					{
						if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(92))) goto LA22_;
						lastBackslash = (NI)(pos + ((NI) 1));
					}
					LA22_: ;
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, (*L).Sup.buf[pos]));
					pos += ((NI) 1);
				} LA19: ;
			}
			pos = handleCRLF__lexer_1080(L, pos);
			indent = ((NI) 0);
			{
				while (1) {
					if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(32))) goto LA25;
					pos += ((NI) 1);
					indent += ((NI) 1);
				} LA25: ;
			}
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(35));
				if (!(T28_)) goto LA29_;
				T28_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(35));
				LA29_: ;
				if (!T28_) goto LA30_;
				unsureAsgnRef((void**) (&(*tok).literal), resizeString((*tok).literal, 1));
appendString((*tok).literal, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_8));
				pos += ((NI) 2);
				{
					NI c;
					if (!stripInit) goto LA34_;
					c = toStrip;
					{
						while (1) {
							NIM_BOOL T38_;
							T38_ = (NIM_BOOL)0;
							T38_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(32));
							if (!(T38_)) goto LA39_;
							T38_ = (((NI) 0) < c);
							LA39_: ;
							if (!T38_) goto LA37;
							pos += ((NI) 1);
							c -= ((NI) 1);
						} LA37: ;
					}
					(*tok).iNumber += ((NI) 1);
				}
				LA34_: ;
			}
			goto LA26_;
			LA30_: ;
			{
				{
					if (!((NU8)(32) < (NU8)((*L).Sup.buf[pos]))) goto LA43_;
					(*L).indentAhead = indent;
				}
				LA43_: ;
				goto LA5;
			}
			LA26_: ;
		}
	} LA5: ;
	(*L).Sup.bufpos = pos;
	}BeforeRet_: ;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
N_LIB_PRIVATE N_NIMCALL(void, handleHexChar__lexer_772)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NI* xi, NI position) {
	switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
	case 48 ... 57:
	{
		(*xi) = (NI)((NI)((NU64)((*xi)) << (NU64)(((NI) 4))) | (NI)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) - ((NI) 48)));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 97 ... 102:
	{
		(*xi) = (NI)((NI)((NU64)((*xi)) << (NU64)(((NI) 4))) | (NI)((NI)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) - ((NI) 97)) + ((NI) 10)));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 65 ... 70:
	{
		(*xi) = (NI)((NI)((NU64)((*xi)) << (NU64)(((NI) 4))) | (NI)((NI)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) - ((NI) 65)) + ((NI) 10)));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 34:
	case 39:
	{
		{
			NimStringDesc* T9_;
			if (!(((NI) (position)) <= ((NI) 1))) goto LA7_;
			T9_ = NIM_NIL;
			T9_ = rawNewString(56);
appendString(T9_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_17));
appendChar(T9_, (*L).Sup.buf[(*L).Sup.bufpos]);
appendString(T9_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_18));
			lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T9_);
		}
		LA7_: ;
		{
			if (!(((NI) (position)) == ((NI) 0))) goto LA12_;
			(*L).Sup.bufpos += ((NI) 1);
		}
		LA12_: ;
	}
	break;
	default:
	{
		NimStringDesc* T15_;
		T15_ = NIM_NIL;
		T15_ = rawNewString(56);
appendString(T15_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_17));
appendChar(T15_, (*L).Sup.buf[(*L).Sup.bufpos]);
appendString(T15_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_18));
		lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T15_);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	}
}
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_865)(NimStringDesc* s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)(x.b - a) + ((NI) 1));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				result->data[i] = s->data[(NI)(i + a)];
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___pureZunicode_840)(NI a, NI b) {
	tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addUnicodeCodePoint__lexer_853)(NimStringDesc** s, NI i) {
	NU i_2;
	NI pos;
	i_2 = ((NU) (i));
	pos = ((*s) ? (*s)->Sup.len : 0);
	{
		if (!((NU64)(i_2) <= (NU64)(((NU) 127)))) goto LA3_;
		unsureAsgnRef((void**) (&(*s)), setLengthStr((*s), ((NI) ((NI)(pos + ((NI) 1))))));
		(*s)->data[(NI)(pos + ((NI) 0))] = ((NIM_CHAR) (((NI) (i_2))));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((NU64)(i_2) <= (NU64)(((NU) 2047)))) goto LA6_;
		unsureAsgnRef((void**) (&(*s)), setLengthStr((*s), ((NI) ((NI)(pos + ((NI) 2))))));
		(*s)->data[(NI)(pos + ((NI) 0))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 6))) | ((NU) 192))))));
		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)(i_2 & ((NU) 63)) | ((NU) 128))))));
	}
	goto LA1_;
	LA6_: ;
	{
		if (!((NU64)(i_2) <= (NU64)(((NU) 65535)))) goto LA9_;
		unsureAsgnRef((void**) (&(*s)), setLengthStr((*s), ((NI) ((NI)(pos + ((NI) 3))))));
		(*s)->data[(NI)(pos + ((NI) 0))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 12))) | ((NU) 224))))));
		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 6))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)(i_2 & ((NU) 63)) | ((NU) 128))))));
	}
	goto LA1_;
	LA9_: ;
	{
		if (!((NU64)(i_2) <= (NU64)(((NU) 2097151)))) goto LA12_;
		unsureAsgnRef((void**) (&(*s)), setLengthStr((*s), ((NI) ((NI)(pos + ((NI) 4))))));
		(*s)->data[(NI)(pos + ((NI) 0))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 18))) | ((NU) 240))))));
		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 12))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 6))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 3))] = ((NIM_CHAR) (((NI) ((NU)((NU)(i_2 & ((NU) 63)) | ((NU) 128))))));
	}
	goto LA1_;
	LA12_: ;
	{
		if (!((NU64)(i_2) <= (NU64)(((NU) 67108863)))) goto LA15_;
		unsureAsgnRef((void**) (&(*s)), setLengthStr((*s), ((NI) ((NI)(pos + ((NI) 5))))));
		(*s)->data[(NI)(pos + ((NI) 0))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 24))) | ((NU) 248))))));
		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 18))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 12))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 3))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 6))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 4))] = ((NIM_CHAR) (((NI) ((NU)((NU)(i_2 & ((NU) 63)) | ((NU) 128))))));
	}
	goto LA1_;
	LA15_: ;
	{
		if (!((NU64)(i_2) <= (NU64)(((NU) 2147483647)))) goto LA18_;
		unsureAsgnRef((void**) (&(*s)), setLengthStr((*s), ((NI) ((NI)(pos + ((NI) 6))))));
		(*s)->data[(NI)(pos + ((NI) 0))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 30))) | ((NU) 252))))));
		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 24))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 18))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 3))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 12))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 4))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU64)(i_2) >> (NU64)(((NI) 6))) & ((NU) 63)) | ((NU) 128))))));
		(*s)->data[(NI)(pos + ((NI) 5))] = ((NIM_CHAR) (((NI) ((NU)((NU)(i_2 & ((NU) 63)) | ((NU) 128))))));
	}
	goto LA1_;
	LA18_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchTwoChars__lexer_343)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NIM_CHAR first, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw second) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(first));
	if (!(T1_)) goto LA2_;
	T1_ = ((second[(NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])))&7U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, handleDecChars__lexer_836)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NI* xi) {
	{
		while (1) {
			if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(57)))) goto LA2;
			(*xi) = (NI)((NI)((*xi) * ((NI) 10)) + (NI)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) - ((NI) 48)));
			(*L).Sup.bufpos += ((NI) 1);
		} LA2: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, getEscapedChar__lexer_978)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	(*L).Sup.bufpos += ((NI) 1);
	switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
	case 110:
	case 78:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 10));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 112:
	case 80:
	{
		{
			if (!((*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 88))) goto LA5_;
			lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_16));
		}
		LA5_: ;
		unsureAsgnRef((void**) (&(*tok).literal), resizeString((*tok).literal, ((*(*L).config).target.tnl ? (*(*L).config).target.tnl->Sup.len : 0) + 0));
appendString((*tok).literal, (*(*L).config).target.tnl);
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 114:
	case 82:
	case 99:
	case 67:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 13));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 108:
	case 76:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 10));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 102:
	case 70:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 12));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 101:
	case 69:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 27));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 97:
	case 65:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 7));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 98:
	case 66:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 8));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 118:
	case 86:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 11));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 116:
	case 84:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 9));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 39:
	case 34:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, (*L).Sup.buf[(*L).Sup.bufpos]));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 92:
	{
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 92));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	case 120:
	case 88:
	{
		NI xi;
		(*L).Sup.bufpos += ((NI) 1);
		xi = ((NI) 0);
		handleHexChar__lexer_772(L, (&xi), ((NI) 1));
		handleHexChar__lexer_772(L, (&xi), ((NI) 2));
		unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, ((NIM_CHAR) (((NI) (xi))))));
	}
	break;
	case 117:
	case 85:
	{
		NI xi_2;
		{
			if (!((*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 88))) goto LA21_;
			lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_19));
		}
		LA21_: ;
		(*L).Sup.bufpos += ((NI) 1);
		xi_2 = ((NI) 0);
		{
			NI start;
			if (!((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(123))) goto LA25_;
			(*L).Sup.bufpos += ((NI) 1);
			start = (*L).Sup.bufpos;
			{
				while (1) {
					if (!!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(125)))) goto LA28;
					handleHexChar__lexer_772(L, (&xi_2), ((NI) 0));
				} LA28: ;
			}
			{
				if (!(start == (*L).Sup.bufpos)) goto LA31_;
				lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_20));
			}
			LA31_: ;
			(*L).Sup.bufpos += ((NI) 1);
			{
				NimStringDesc* hex;
				NimStringDesc* T37_;
				tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T38_;
				NimStringDesc* T39_;
				if (!(((NI) 1114111) < xi_2)) goto LA35_;
				T37_ = NIM_NIL;
				T37_ = cstrToNimstr((*L).Sup.buf);
				T38_ = dotdot___pureZunicode_840(start, (NI)((*L).Sup.bufpos - ((NI) 2)));
				hex = X5BX5D___pureZunicode_865(T37_, T38_);
				T39_ = NIM_NIL;
				T39_ = rawNewString((hex ? hex->Sup.len : 0) + 56);
appendString(T39_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_21));
appendString(T39_, hex);
				lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T39_);
			}
			LA35_: ;
		}
		goto LA23_;
		LA25_: ;
		{
			handleHexChar__lexer_772(L, (&xi_2), ((NI) 1));
			handleHexChar__lexer_772(L, (&xi_2), ((NI) 2));
			handleHexChar__lexer_772(L, (&xi_2), ((NI) 3));
			handleHexChar__lexer_772(L, (&xi_2), ((NI) 4));
		}
		LA23_: ;
		addUnicodeCodePoint__lexer_853((&(*tok).literal), xi_2);
	}
	break;
	case 48 ... 57:
	{
		NI xi_3;
		{
			NIM_BOOL T44_;
			T44_ = (NIM_BOOL)0;
			T44_ = matchTwoChars__lexer_343((&(*L)), 48, TM__U89bXmCxR9cj7Cd2NafLayNA_22);
			if (!T44_) goto LA45_;
			lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 18), ((NimStringDesc*) NIM_NIL));
		}
		LA45_: ;
		xi_3 = ((NI) 0);
		handleDecChars__lexer_836(L, (&xi_3));
		{
			if (!(xi_3 <= ((NI) 255))) goto LA49_;
			unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, ((NIM_CHAR) (((NI) (xi_3))))));
		}
		goto LA47_;
		LA49_: ;
		{
			lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_23));
		}
		LA47_: ;
	}
	break;
	default:
	{
		lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_23));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, getString__lexer_1097)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw mode) {
	NI pos;
	NI line;
	pos = (*L).Sup.bufpos;
	line = (*L).Sup.lineNumber;
	pos += ((NI) 1);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(34));
		if (!(T3_)) goto LA4_;
		T3_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 85);
		pos += ((NI) 2);
		{
			NI newpos;
			if (!(((NU8)((*L).Sup.buf[pos])) == ((NU8)(32)) || ((NU8)((*L).Sup.buf[pos])) == ((NU8)(9)))) goto LA9_;
			newpos = (NI)(pos + ((NI) 1));
			{
				while (1) {
					if (!(((NU8)((*L).Sup.buf[newpos])) == ((NU8)(32)) || ((NU8)((*L).Sup.buf[newpos])) == ((NU8)(9)))) goto LA12;
					newpos += ((NI) 1);
				} LA12: ;
			}
			{
				if (!(((NU8)((*L).Sup.buf[newpos])) == ((NU8)(13)) || ((NU8)((*L).Sup.buf[newpos])) == ((NU8)(10)))) goto LA15_;
				pos = newpos;
			}
			LA15_: ;
		}
		LA9_: ;
		pos = handleCRLF__lexer_1080(L, pos);
		{
			while (1) {
				switch (((NU8)((*L).Sup.buf[pos]))) {
				case 34:
				{
					{
						NIM_BOOL T22_;
						NIM_BOOL T23_;
						T22_ = (NIM_BOOL)0;
						T23_ = (NIM_BOOL)0;
						T23_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
						if (!(T23_)) goto LA24_;
						T23_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 2))]) == (NU8)(34));
						LA24_: ;
						T22_ = T23_;
						if (!(T22_)) goto LA25_;
						T22_ = !(((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 3))]) == (NU8)(34)));
						LA25_: ;
						if (!T22_) goto LA26_;
						(*L).Sup.bufpos = (NI)(pos + ((NI) 3));
						goto LA17;
					}
					LA26_: ;
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 34));
					pos += ((NI) 1);
				}
				break;
				case 13:
				case 10:
				{
					pos = handleCRLF__lexer_1080(L, pos);
					unsureAsgnRef((void**) (&(*tok).literal), resizeString((*tok).literal, 1));
appendString((*tok).literal, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_8));
				}
				break;
				case 0:
				{
					NI line2;
					line2 = (*L).Sup.lineNumber;
					(*L).Sup.lineNumber = line;
					lexMessagePos__lexer_337(L, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), (*L).Sup.lineStart, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_14));
					(*L).Sup.lineNumber = line2;
					(*L).Sup.bufpos = pos;
					goto LA17;
				}
				break;
				default:
				{
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, (*L).Sup.buf[pos]));
					pos += ((NI) 1);
				}
				break;
				}
			}
		} LA17: ;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			if (!!((mode == ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 0)))) goto LA34_;
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 84);
		}
		goto LA32_;
		LA34_: ;
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 83);
		}
		LA32_: ;
		{
			while (1) {
				NIM_CHAR c;
				c = (*L).Sup.buf[pos];
				{
					if (!((NU8)(c) == (NU8)(34))) goto LA41_;
					{
						NIM_BOOL T45_;
						T45_ = (NIM_BOOL)0;
						T45_ = !((mode == ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 0)));
						if (!(T45_)) goto LA46_;
						T45_ = ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))]) == (NU8)(34));
						LA46_: ;
						if (!T45_) goto LA47_;
						pos += ((NI) 2);
						unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 34));
					}
					goto LA43_;
					LA47_: ;
					{
						pos += ((NI) 1);
						goto LA37;
					}
					LA43_: ;
				}
				goto LA39_;
				LA41_: ;
				{
					if (!(((NU8)(c)) == ((NU8)(13)) || ((NU8)(c)) == ((NU8)(10)) || ((NU8)(c)) == ((NU8)(0)))) goto LA51_;
					lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_15));
					goto LA37;
				}
				goto LA39_;
				LA51_: ;
				{
					NIM_BOOL T54_;
					T54_ = (NIM_BOOL)0;
					T54_ = ((NU8)(c) == (NU8)(92));
					if (!(T54_)) goto LA55_;
					T54_ = (mode == ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 0));
					LA55_: ;
					if (!T54_) goto LA56_;
					(*L).Sup.bufpos = pos;
					getEscapedChar__lexer_978(L, tok);
					pos = (*L).Sup.bufpos;
				}
				goto LA39_;
				LA56_: ;
				{
					unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, c));
					pos += ((NI) 1);
				}
				LA39_: ;
			}
		} LA37: ;
		(*L).Sup.bufpos = pos;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, getCharacter__lexer_1172)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NI startPos;
	NIM_CHAR c;
	startPos = (*L).Sup.bufpos;
	(*L).Sup.bufpos += ((NI) 1);
	c = (*L).Sup.buf[(*L).Sup.bufpos];
	switch (((NU8)(c))) {
	case 0 ... 31:
	case 39:
	{
		lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_27));
		unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
	}
	break;
	case 92:
	{
		getEscapedChar__lexer_978(L, tok);
	}
	break;
	default:
	{
		unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
		(*L).Sup.bufpos += ((NI) 1);
	}
	break;
	}
	{
		if (!((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(39))) goto LA6_;
		(*L).Sup.bufpos += ((NI) 1);
	}
	goto LA4_;
	LA6_: ;
	{
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = (((NI) 0) < startPos);
			if (!(T11_)) goto LA12_;
			T11_ = ((NU8)((*L).Sup.buf[(NI)(startPos - ((NI) 1))]) == (NU8)(96));
			LA12_: ;
			if (!T11_) goto LA13_;
			unsureAsgnRef((void**) (&(*tok).literal), copyString(((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_28)));
			(*L).Sup.bufpos = (NI)(startPos + ((NI) 1));
		}
		goto LA9_;
		LA13_: ;
		{
			lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_29));
		}
		LA9_: ;
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, matchChars__lexer_402)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars) {
	NI pos;
	pos = (*L).Sup.bufpos;
	{
		while (1) {
			if (!((chars[(NU)(((NU8)((*L).Sup.buf[pos])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[pos])))&7U)))!=0)) goto LA2;
			unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, (*L).Sup.buf[pos]));
			pos += ((NI) 1);
		} LA2: ;
	}
	(*L).Sup.bufpos = pos;
}
N_LIB_PRIVATE N_NIMCALL(void, lexMessageLitNum__lexer_415)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, NimStringDesc* msg, NI startpos, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msgKind) {
	NI msgPos;
	tyObject_Token__TUeI5CB5zbppKJkmeKoDMw t;
	NimStringDesc* T11_;
	msgPos = (*L).Sup.bufpos;
	nimZeroMem((void*)(&t), sizeof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw));
	t.literal = ((NimStringDesc*) NIM_NIL);
	(*L).Sup.bufpos = startpos;
	matchChars__lexer_402(L, (&t), TM__U89bXmCxR9cj7Cd2NafLayNA_30);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(43)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(45)));
		if (!(T3_)) goto LA4_;
		T3_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) == ((NU8)(101)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) == ((NU8)(69)));
		LA4_: ;
		if (!T3_) goto LA5_;
		t.literal = addChar(t.literal, (*L).Sup.buf[(*L).Sup.bufpos]);
		(*L).Sup.bufpos += ((NI) 1);
		matchChars__lexer_402(L, (&t), TM__U89bXmCxR9cj7Cd2NafLayNA_30);
	}
	LA5_: ;
	{
		if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(95)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(46)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(39)))) goto LA9_;
		t.literal = addChar(t.literal, (*L).Sup.buf[(*L).Sup.bufpos]);
		(*L).Sup.bufpos += ((NI) 1);
		matchChars__lexer_402(L, (&t), TM__U89bXmCxR9cj7Cd2NafLayNA_22);
	}
	LA9_: ;
	(*L).Sup.bufpos = msgPos;
	T11_ = NIM_NIL;
	T11_ = nsuFormatSingleElem(msg, t.literal);
	lexMessage__lexer_327((&(*L)), msgKind, T11_);
}
N_LIB_PRIVATE N_NIMCALL(NI, matchUnderscoreChars__lexer_376)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars) {
	NI result;
	NI pos;
	result = (NI)0;
	pos = (*L).Sup.bufpos;
	result = ((NI) 0);
	{
		while (1) {
			{
				if (!((chars[(NU)(((NU8)((*L).Sup.buf[pos])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[pos])))&7U)))!=0)) goto LA5_;
				unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, (*L).Sup.buf[pos]));
				pos += ((NI) 1);
				result += ((NI) 1);
			}
			goto LA3_;
			LA5_: ;
			{
				goto LA1;
			}
			LA3_: ;
			{
				if (!((NU8)((*L).Sup.buf[pos]) == (NU8)(95))) goto LA10_;
				{
					if (!!(((chars[(NU)(((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])))&7U)))!=0))) goto LA14_;
					lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_32));
					goto LA1;
				}
				LA14_: ;
				unsureAsgnRef((void**) (&(*tok).literal), addChar((*tok).literal, 95));
				pos += ((NI) 1);
			}
			LA10_: ;
		}
	} LA1: ;
	(*L).Sup.bufpos = pos;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).prev = excHandler__system_2565;
	excHandler__system_2565 = s;
}
static N_INLINE(void, popSafePoint)(void) {
	excHandler__system_2565 = (*excHandler__system_2565).prev;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = NIM_NIL;
	result = currException__system_2566;
	return result;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5267((&gch__system_5220.zct), c);
}
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5316(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5273(src);
		incRef__system_5311(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5273((*dest));
		decRef__system_5318(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
}
N_LIB_PRIVATE N_NIMCALL(void, getNumber__lexer_373)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* result) {
	NI64 volatile xi;
	NIM_BOOL isBase10;
	NI numDigits;
	NIM_BOOL isPositive;
	NI startpos;
	NI endpos;
	NI postPos;
	xi = (NI64)0;
	isBase10 = NIM_TRUE;
	numDigits = ((NI) 0);
	(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69);
	unsureAsgnRef((void**) (&(*result).literal), ((NimStringDesc*) NIM_NIL));
	(*result).base = ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 0);
	isPositive = NIM_TRUE;
	{
		if (!((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(45))) goto LA3_;
		unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, (*L).Sup.buf[(*L).Sup.bufpos]));
		(*L).Sup.bufpos += ((NI) 1);
		isPositive = NIM_FALSE;
	}
	LA3_: ;
	startpos = (*L).Sup.bufpos;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(48));
		if (!(T7_)) goto LA8_;
		T7_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(66)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(67)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(79)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(98)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(99)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) == ((NU8)(120)));
		LA8_: ;
		if (!T7_) goto LA9_;
		isBase10 = NIM_FALSE;
		unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 48));
		(*L).Sup.bufpos += ((NI) 1);
		switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
		case 99:
		case 67:
		{
			NI T12_;
			lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_31), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21));
			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 99));
			(*L).Sup.bufpos += ((NI) 1);
			T12_ = (NI)0;
			T12_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_33);
			numDigits = ((NI) (T12_));
		}
		break;
		case 79:
		{
			lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_34), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
		}
		break;
		case 120:
		case 88:
		{
			NI T15_;
			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 120));
			(*L).Sup.bufpos += ((NI) 1);
			T15_ = (NI)0;
			T15_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_35);
			numDigits = ((NI) (T15_));
		}
		break;
		case 111:
		{
			NI T17_;
			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 111));
			(*L).Sup.bufpos += ((NI) 1);
			T17_ = (NI)0;
			T17_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_33);
			numDigits = ((NI) (T17_));
		}
		break;
		case 98:
		case 66:
		{
			NI T19_;
			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 98));
			(*L).Sup.bufpos += ((NI) 1);
			T19_ = (NI)0;
			T19_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_36);
			numDigits = ((NI) (T19_));
		}
		break;
		default:
		{
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T21_;
			T21_ = getLineInfo__lexer_314((&(*L)));
			internalErrorImpl__msgs_1441((*L).config, T21_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_37), TM__U89bXmCxR9cj7Cd2NafLayNA_38);
		}
		break;
		}
		{
			if (!(numDigits == ((NI) 0))) goto LA24_;
			lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_39), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
		}
		LA24_: ;
	}
	goto LA5_;
	LA9_: ;
	{
		NI T27_;
		T27_ = (NI)0;
		T27_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_22);
		(void)(T27_);
		{
			NIM_BOOL T30_;
			NI T34_;
			T30_ = (NIM_BOOL)0;
			T30_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
			if (!(T30_)) goto LA31_;
			T30_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)));
			LA31_: ;
			if (!T30_) goto LA32_;
			(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79);
			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 46));
			(*L).Sup.bufpos += ((NI) 1);
			T34_ = (NI)0;
			T34_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_22);
			(void)(T34_);
		}
		LA32_: ;
		{
			NI T43_;
			if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(101)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(69)))) goto LA37_;
			(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79);
			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, (*L).Sup.buf[(*L).Sup.bufpos]));
			(*L).Sup.bufpos += ((NI) 1);
			{
				if (!(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(43)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(45)))) goto LA41_;
				unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, (*L).Sup.buf[(*L).Sup.bufpos]));
				(*L).Sup.bufpos += ((NI) 1);
			}
			LA41_: ;
			T43_ = (NI)0;
			T43_ = matchUnderscoreChars__lexer_376(L, result, TM__U89bXmCxR9cj7Cd2NafLayNA_22);
			(void)(T43_);
		}
		LA37_: ;
	}
	LA5_: ;
	endpos = (*L).Sup.bufpos;
	postPos = endpos;
	{
		NI errPos;
		NIM_BOOL customLitPossible;
		if (!((TM__U89bXmCxR9cj7Cd2NafLayNA_40[(NU)(((NU8)((*L).Sup.buf[postPos])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[postPos])))&7U)))!=0)) goto LA46_;
		errPos = postPos;
		customLitPossible = NIM_FALSE;
		{
			if (!((NU8)((*L).Sup.buf[postPos]) == (NU8)(39))) goto LA50_;
			postPos += ((NI) 1);
			customLitPossible = NIM_TRUE;
		}
		LA50_: ;
		{
			NimStringDesc* suffix;
			NimStringDesc* suffixAsLower;
			if (!(((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(255)))) goto LA54_;
			suffix = rawNewString(((NI) 10));
			{
				while (1) {
					suffix = addChar(suffix, (*L).Sup.buf[postPos]);
					postPos += ((NI) 1);
					{
						if (!!((((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(95)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(255))))) goto LA60_;
						goto LA56;
					}
					LA60_: ;
				}
			} LA56: ;
			suffixAsLower = nsuToLowerAsciiStr(suffix);
			switch (hashString(suffixAsLower) & 15) {
			case 1: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_42))) goto LA62_;
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_48))) goto LA67_;
break;
			case 2: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_45))) goto LA64_;
break;
			case 3: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_53))) goto LA72_;
break;
			case 5: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_43))) goto LA63_;
break;
			case 6: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_44))) goto LA63_;
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_52))) goto LA71_;
break;
			case 7: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_47))) goto LA66_;
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_51))) goto LA70_;
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_54))) goto LA73_;
break;
			case 9: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_50))) goto LA69_;
break;
			case 10: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_46))) goto LA65_;
break;
			case 13: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_49))) goto LA68_;
break;
			case 14: 
if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_41))) goto LA62_;
break;
			}
			goto LA74_;
			LA62_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 80);
			}
			goto LA75_;
			LA63_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 81);
			}
			goto LA75_;
			LA64_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 82);
			}
			goto LA75_;
			LA65_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 70);
			}
			goto LA75_;
			LA66_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 71);
			}
			goto LA75_;
			LA67_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 72);
			}
			goto LA75_;
			LA68_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 73);
			}
			goto LA75_;
			LA69_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 74);
			}
			goto LA75_;
			LA70_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 75);
			}
			goto LA75_;
			LA71_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 76);
			}
			goto LA75_;
			LA72_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 77);
			}
			goto LA75_;
			LA73_: ;
			{
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 78);
			}
			goto LA75_;
			LA74_: ;
			{
				{
					if (!customLitPossible) goto LA91_;
					(*result).iNumber = ((NI64) (((*result).literal ? (*result).literal->Sup.len : 0)));
					unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 39));
					unsureAsgnRef((void**) (&(*result).literal), resizeString((*result).literal, (suffix ? suffix->Sup.len : 0) + 0));
appendString((*result).literal, suffix);
					(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 89);
				}
				goto LA89_;
				LA91_: ;
				{
					lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_55), errPos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
				}
				LA89_: ;
			}
			LA75_: ;
		}
		goto LA52_;
		LA54_: ;
		{
			lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_55), errPos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
		}
		LA52_: ;
	}
	LA46_: ;
	{
		NIM_BOOL T97_;
		NIM_BOOL T99_;
		T97_ = (NIM_BOOL)0;
		T97_ = (((NU8)((*L).Sup.buf[postPos])) == ((NU8)(39)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(70)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(95)) || ((NU8)((*L).Sup.buf[postPos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[postPos])) <= ((NU8)(102)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[postPos])) == ((NU8)(120)));
		if (T97_) goto LA98_;
		T99_ = (NIM_BOOL)0;
		T99_ = ((NU8)((*L).Sup.buf[postPos]) == (NU8)(46));
		if (!(T99_)) goto LA100_;
		T99_ = (((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)(postPos + ((NI) 1))])) <= ((NU8)(57)));
		LA100_: ;
		T97_ = T99_;
		LA98_: ;
		if (!T97_) goto LA101_;
		lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_39), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
	}
	LA101_: ;
	{
		NI volatile pos;
		TSafePoint TM__U89bXmCxR9cj7Cd2NafLayNA_56;
		if (!!(((*result).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 89)))) goto LA105_;
		(*L).Sup.bufpos = startpos;
		pos = startpos;
		pushSafePoint(&TM__U89bXmCxR9cj7Cd2NafLayNA_56);
		TM__U89bXmCxR9cj7Cd2NafLayNA_56.status = setjmp(TM__U89bXmCxR9cj7Cd2NafLayNA_56.context);
		if (TM__U89bXmCxR9cj7Cd2NafLayNA_56.status == 0) {
		{
			NIM_BOOL T109_;
			T109_ = (NIM_BOOL)0;
			T109_ = ((NU8)((*L).Sup.buf[pos]) == (NU8)(48));
			if (!(T109_)) goto LA110_;
			T109_ = (((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(88)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(120)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(111)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(98)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(66)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(99)) || ((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 1))])) == ((NU8)(67)));
			LA110_: ;
			if (!T109_) goto LA111_;
			pos += ((NI) 2);
			xi = IL64(0);
			switch (((NU8)((*L).Sup.buf[(NI)(pos - ((NI) 1))]))) {
			case 98:
			case 66:
			{
				(*result).base = ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 1);
				{
					while (1) {
						if (!(pos < endpos)) goto LA115;
						{
							if (!!(((NU8)((*L).Sup.buf[pos]) == (NU8)(95)))) goto LA118_;
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 1))) | ((NI64) ((NI)(((NU8)((*L).Sup.buf[pos])) - ((NI) 48)))));
						}
						LA118_: ;
						pos += ((NI) 1);
					} LA115: ;
				}
			}
			break;
			case 111:
			case 99:
			case 67:
			{
				(*result).base = ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 2);
				{
					while (1) {
						if (!(pos < endpos)) goto LA122;
						{
							if (!!(((NU8)((*L).Sup.buf[pos]) == (NU8)(95)))) goto LA125_;
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 3))) | ((NI64) ((NI)(((NU8)((*L).Sup.buf[pos])) - ((NI) 48)))));
						}
						LA125_: ;
						pos += ((NI) 1);
					} LA122: ;
				}
			}
			break;
			case 120:
			case 88:
			{
				(*result).base = ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 3);
				{
					while (1) {
						if (!(pos < endpos)) goto LA129;
						switch (((NU8)((*L).Sup.buf[pos]))) {
						case 95:
						{
							pos += ((NI) 1);
						}
						break;
						case 48 ... 57:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 4))) | ((NI64) ((NI)(((NU8)((*L).Sup.buf[pos])) - ((NI) 48)))));
							pos += ((NI) 1);
						}
						break;
						case 97 ... 102:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 4))) | ((NI64) ((NI)((NI)(((NU8)((*L).Sup.buf[pos])) - ((NI) 97)) + ((NI) 10)))));
							pos += ((NI) 1);
						}
						break;
						case 65 ... 70:
						{
							xi = (NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 4))) | ((NI64) ((NI)((NI)(((NU8)((*L).Sup.buf[pos])) - ((NI) 65)) + ((NI) 10)))));
							pos += ((NI) 1);
						}
						break;
						default:
						{
							goto LA128;
						}
						break;
						}
					} LA129: ;
				} LA128: ;
			}
			break;
			default:
			{
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T136_;
				T136_ = getLineInfo__lexer_314((&(*L)));
				internalErrorImpl__msgs_1441((*L).config, T136_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_37), TM__U89bXmCxR9cj7Cd2NafLayNA_57);
			}
			break;
			}
			switch ((*result).tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 73):
			{
				{
					if (!isPositive) goto LA140_;
					(*result).iNumber = xi;
				}
				goto LA138_;
				LA140_: ;
				{
					(*result).iNumber = -(xi);
				}
				LA138_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 70):
			{
				{
					if (!isPositive) goto LA146_;
					(*result).iNumber = (NI64)((NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 56)))) >> (NU64)(((NI) 56)));
				}
				goto LA144_;
				LA146_: ;
				{
					(*result).iNumber = -((NI64)((NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 56)))) >> (NU64)(((NI) 56))));
				}
				LA144_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 71):
			{
				{
					if (!isPositive) goto LA152_;
					(*result).iNumber = (NI64)((NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 48)))) >> (NU64)(((NI) 48)));
				}
				goto LA150_;
				LA152_: ;
				{
					(*result).iNumber = -((NI64)((NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 48)))) >> (NU64)(((NI) 48))));
				}
				LA150_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 72):
			{
				{
					if (!isPositive) goto LA158_;
					(*result).iNumber = (NI64)((NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 32)))) >> (NU64)(((NI) 32)));
				}
				goto LA156_;
				LA158_: ;
				{
					(*result).iNumber = -((NI64)((NI64)((NI64)((NU64)(xi) << (NU64)(((NI) 32)))) >> (NU64)(((NI) 32))));
				}
				LA156_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 74):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 78):
			{
				{
					if (!isPositive) goto LA164_;
					(*result).iNumber = xi;
				}
				goto LA162_;
				LA164_: ;
				{
					(*result).iNumber = -(xi);
				}
				LA162_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 75):
			{
				{
					if (!isPositive) goto LA170_;
					(*result).iNumber = (NI64)(xi & IL64(255));
				}
				goto LA168_;
				LA170_: ;
				{
					(*result).iNumber = -((NI64)(xi & IL64(255)));
				}
				LA168_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 76):
			{
				{
					if (!isPositive) goto LA176_;
					(*result).iNumber = (NI64)(xi & IL64(65535));
				}
				goto LA174_;
				LA176_: ;
				{
					(*result).iNumber = -((NI64)(xi & IL64(65535)));
				}
				LA174_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 77):
			{
				{
					if (!isPositive) goto LA182_;
					(*result).iNumber = (NI64)(xi & IL64(4294967295));
				}
				goto LA180_;
				LA182_: ;
				{
					(*result).iNumber = -((NI64)(xi & IL64(4294967295)));
				}
				LA180_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 80):
			{
				NF32 T186_;
				T186_ = (NF32)0;
				{
					if (!isPositive) goto LA189_;
					T186_ = (*((NF32*) ((&xi))));
				}
				goto LA187_;
				LA189_: ;
				{
					T186_ = -((*((NF32*) ((&xi)))));
				}
				LA187_: ;
				(*result).fNumber = ((NF) (T186_));
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 81):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79):
			{
				{
					if (!isPositive) goto LA195_;
					(*result).fNumber = (*((NF*) ((&xi))));
				}
				goto LA193_;
				LA195_: ;
				{
					(*result).fNumber = -((*((NF*) ((&xi)))));
				}
				LA193_: ;
			}
			break;
			default:
			{
				tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T199_;
				T199_ = getLineInfo__lexer_314((&(*L)));
				internalErrorImpl__msgs_1441((*L).config, T199_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_37), TM__U89bXmCxR9cj7Cd2NafLayNA_58);
			}
			break;
			}
			{
				NIM_BOOL outOfRange;
				if (!!(((*result).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79) || (*result).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 80) || (*result).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 81) || (*result).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 82)))) goto LA202_;
				switch ((*result).tokType) {
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 75):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 76):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 77):
				{
					outOfRange = !(((*result).iNumber == xi));
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 70):
				{
					outOfRange = (IL64(255) < xi);
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 71):
				{
					outOfRange = (IL64(65535) < xi);
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 72):
				{
					outOfRange = (IL64(4294967295) < xi);
				}
				break;
				default:
				{
					outOfRange = NIM_FALSE;
				}
				break;
				}
				{
					if (!outOfRange) goto LA211_;
					lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_59), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
				}
				LA211_: ;
			}
			LA202_: ;
		}
		goto LA107_;
		LA111_: ;
		{
			NIM_BOOL outOfRange_2;
			switch ((*result).tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 82):
			{
				(*result).fNumber = nsuParseFloat((*result).literal);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 78):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 74):
			{
				NU64 iNumber;
				NI volatile len;
				TSafePoint TM__U89bXmCxR9cj7Cd2NafLayNA_60;
				iNumber = (NU64)0;
				len = (NI)0;
				pushSafePoint(&TM__U89bXmCxR9cj7Cd2NafLayNA_60);
				TM__U89bXmCxR9cj7Cd2NafLayNA_60.status = setjmp(TM__U89bXmCxR9cj7Cd2NafLayNA_60.context);
				if (TM__U89bXmCxR9cj7Cd2NafLayNA_60.status == 0) {
				len = npuParseBiggestUInt((*result).literal, (&iNumber), ((NI) 0));
				popSafePoint();
				}
				else {
					popSafePoint();
					if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_))) {
						tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw* T218_;
						NimStringDesc* T219_;
						TM__U89bXmCxR9cj7Cd2NafLayNA_60.status = 0;
						T218_ = NIM_NIL;
						T218_ = (tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw*) newObj((&NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_), sizeof(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw));
						(*T218_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_);
						(*T218_).Sup.Sup.Sup.name = "OverflowDefect";
						T219_ = NIM_NIL;
						T219_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 21);
appendString(T219_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_61));
appendString(T219_, (*result).literal);
						asgnRef((void**) (&(*T218_).Sup.Sup.Sup.message), T219_);
						asgnRef((void**) (&(*T218_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
						raiseExceptionEx((Exception*)T218_, "OverflowDefect", "getNumber", "lexer.nim", 541);
						popCurrentException();
					}
				}
				if (TM__U89bXmCxR9cj7Cd2NafLayNA_60.status != 0) reraiseException();
				{
					tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA* T224_;
					NimStringDesc* T225_;
					if (!!((len == ((*result).literal ? (*result).literal->Sup.len : 0)))) goto LA222_;
					T224_ = NIM_NIL;
					T224_ = (tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA*) newObj((&NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_), sizeof(tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA));
					(*T224_).Sup.Sup.Sup.m_type = (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_);
					(*T224_).Sup.Sup.name = "ValueError";
					T225_ = NIM_NIL;
					T225_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 17);
appendString(T225_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_62));
appendString(T225_, (*result).literal);
					asgnRef((void**) (&(*T224_).Sup.Sup.message), T225_);
					asgnRef((void**) (&(*T224_).Sup.Sup.parent), ((Exception*) NIM_NIL));
					raiseExceptionEx((Exception*)T224_, "ValueError", "getNumber", "lexer.nim", 543);
				}
				LA222_: ;
				(*result).iNumber = ((NI64) (iNumber));
			}
			break;
			default:
			{
				NI64 iNumber_2;
				NI volatile len_2;
				TSafePoint TM__U89bXmCxR9cj7Cd2NafLayNA_63;
				iNumber_2 = (NI64)0;
				len_2 = (NI)0;
				pushSafePoint(&TM__U89bXmCxR9cj7Cd2NafLayNA_63);
				TM__U89bXmCxR9cj7Cd2NafLayNA_63.status = setjmp(TM__U89bXmCxR9cj7Cd2NafLayNA_63.context);
				if (TM__U89bXmCxR9cj7Cd2NafLayNA_63.status == 0) {
				len_2 = npuParseBiggestInt((*result).literal, (&iNumber_2), ((NI) 0));
				popSafePoint();
				}
				else {
					popSafePoint();
					if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_))) {
						tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw* T229_;
						NimStringDesc* T230_;
						TM__U89bXmCxR9cj7Cd2NafLayNA_63.status = 0;
						T229_ = NIM_NIL;
						T229_ = (tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw*) newObj((&NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_), sizeof(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw));
						(*T229_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_);
						(*T229_).Sup.Sup.Sup.name = "OverflowDefect";
						T230_ = NIM_NIL;
						T230_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 21);
appendString(T230_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_61));
appendString(T230_, (*result).literal);
						asgnRef((void**) (&(*T229_).Sup.Sup.Sup.message), T230_);
						asgnRef((void**) (&(*T229_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
						raiseExceptionEx((Exception*)T229_, "OverflowDefect", "getNumber", "lexer.nim", 551);
						popCurrentException();
					}
				}
				if (TM__U89bXmCxR9cj7Cd2NafLayNA_63.status != 0) reraiseException();
				{
					tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA* T235_;
					NimStringDesc* T236_;
					if (!!((len_2 == ((*result).literal ? (*result).literal->Sup.len : 0)))) goto LA233_;
					T235_ = NIM_NIL;
					T235_ = (tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA*) newObj((&NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_), sizeof(tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA));
					(*T235_).Sup.Sup.Sup.m_type = (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_);
					(*T235_).Sup.Sup.name = "ValueError";
					T236_ = NIM_NIL;
					T236_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 17);
appendString(T236_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_62));
appendString(T236_, (*result).literal);
					asgnRef((void**) (&(*T235_).Sup.Sup.message), T236_);
					asgnRef((void**) (&(*T235_).Sup.Sup.parent), ((Exception*) NIM_NIL));
					raiseExceptionEx((Exception*)T235_, "ValueError", "getNumber", "lexer.nim", 553);
				}
				LA233_: ;
				(*result).iNumber = iNumber_2;
			}
			break;
			}
			switch ((*result).tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 70):
			{
				NIM_BOOL T238_;
				T238_ = (NIM_BOOL)0;
				T238_ = (IL64(127) < (*result).iNumber);
				if (T238_) goto LA239_;
				T238_ = ((*result).iNumber < IL64(-128));
				LA239_: ;
				outOfRange_2 = T238_;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 75):
			{
				NIM_BOOL T241_;
				T241_ = (NIM_BOOL)0;
				T241_ = (IL64(255) < (*result).iNumber);
				if (T241_) goto LA242_;
				T241_ = ((*result).iNumber < IL64(0));
				LA242_: ;
				outOfRange_2 = T241_;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 71):
			{
				NIM_BOOL T244_;
				T244_ = (NIM_BOOL)0;
				T244_ = (IL64(32767) < (*result).iNumber);
				if (T244_) goto LA245_;
				T244_ = ((*result).iNumber < IL64(-32768));
				LA245_: ;
				outOfRange_2 = T244_;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 76):
			{
				NIM_BOOL T247_;
				T247_ = (NIM_BOOL)0;
				T247_ = (IL64(65535) < (*result).iNumber);
				if (T247_) goto LA248_;
				T247_ = ((*result).iNumber < IL64(0));
				LA248_: ;
				outOfRange_2 = T247_;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 72):
			{
				NIM_BOOL T250_;
				T250_ = (NIM_BOOL)0;
				T250_ = (IL64(2147483647) < (*result).iNumber);
				if (T250_) goto LA251_;
				T250_ = ((*result).iNumber < IL64(-2147483648));
				LA251_: ;
				outOfRange_2 = T250_;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 77):
			{
				NIM_BOOL T253_;
				T253_ = (NIM_BOOL)0;
				T253_ = (IL64(4294967295) < (*result).iNumber);
				if (T253_) goto LA254_;
				T253_ = ((*result).iNumber < IL64(0));
				LA254_: ;
				outOfRange_2 = T253_;
			}
			break;
			default:
			{
				outOfRange_2 = NIM_FALSE;
			}
			break;
			}
			{
				if (!outOfRange_2) goto LA258_;
				lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_59), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
			}
			LA258_: ;
		}
		LA107_: ;
		{
			if (!((*result).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69))) goto LA262_;
			{
				NIM_BOOL T266_;
				T266_ = (NIM_BOOL)0;
				T266_ = (IL64(2147483647) < (*result).iNumber);
				if (T266_) goto LA267_;
				T266_ = ((*result).iNumber < IL64(-2147483648));
				LA267_: ;
				if (!T266_) goto LA268_;
				(*result).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 73);
			}
			LA268_: ;
		}
		LA262_: ;
		popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_))) {
				TM__U89bXmCxR9cj7Cd2NafLayNA_56.status = 0;
				lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_39), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
				popCurrentException();
			}
			else 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_))) {
				TM__U89bXmCxR9cj7Cd2NafLayNA_56.status = 0;
				lexMessageLitNum__lexer_415(L, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_59), startpos, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15));
				popCurrentException();
			}
		}
		if (TM__U89bXmCxR9cj7Cd2NafLayNA_56.status != 0) reraiseException();
	}
	LA105_: ;
	(*L).Sup.bufpos = postPos;
}
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__lexer_1590)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NIM_CHAR c;
	fillToken__lexer_268(tok);
	{
		if (!(((NI) 0) <= (*L).indentAhead)) goto LA3_;
		(*tok).indent = (*L).indentAhead;
		(*L).currLineIndent = (*L).indentAhead;
		(*L).indentAhead = ((NI) -1);
	}
	goto LA1_;
	LA3_: ;
	{
		(*tok).indent = ((NI) -1);
	}
	LA1_: ;
	skip__lexer_1554(L, tok);
	c = (*L).Sup.buf[(*L).Sup.bufpos];
	(*tok).line = (*L).Sup.lineNumber;
	(*tok).col = getColNumber__nimlexbase_34((&(*L).Sup), (*L).Sup.bufpos);
	{
		if (!(((NU8)(c)) >= ((NU8)(65)) && ((NU8)(c)) <= ((NU8)(81)) || ((NU8)(c)) >= ((NU8)(83)) && ((NU8)(c)) <= ((NU8)(90)) || ((NU8)(c)) >= ((NU8)(97)) && ((NU8)(c)) <= ((NU8)(113)) || ((NU8)(c)) >= ((NU8)(115)) && ((NU8)(c)) <= ((NU8)(122)) || ((NU8)(c)) >= ((NU8)(128)) && ((NU8)(c)) <= ((NU8)(193)) || ((NU8)(c)) >= ((NU8)(196)) && ((NU8)(c)) <= ((NU8)(225)) || ((NU8)(c)) >= ((NU8)(227)) && ((NU8)(c)) <= ((NU8)(255)))) goto LA8_;
		getSymbol__lexer_1229(L, tok);
	}
	goto LA6_;
	LA8_: ;
	{
		switch (((NU8)(c))) {
		case 194 ... 195:
		case 226:
		{
			{
				NIM_BOOL T14_;
				tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw T16_;
				T14_ = (NIM_BOOL)0;
				T14_ = (((*(*L).config).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 17))&31U)))!=0);
				if (!(T14_)) goto LA15_;
				T16_ = unicodeOprLen__lexer_1203((*L).Sup.buf, (*L).Sup.bufpos);
				T14_ = !((T16_.Field0 == ((NI8) 0)));
				LA15_: ;
				if (!T14_) goto LA17_;
				getOperator__lexer_1326(L, tok);
			}
			goto LA12_;
			LA17_: ;
			{
				getSymbol__lexer_1229(L, tok);
			}
			LA12_: ;
		}
		break;
		case 35:
		{
			scanComment__lexer_1492(L, tok);
		}
		break;
		case 42:
		{
			{
				NIM_BOOL T24_;
				NI h;
				T24_ = (NIM_BOOL)0;
				T24_ = ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(58));
				if (!(T24_)) goto LA25_;
				T24_ = !(((TM__U89bXmCxR9cj7Cd2NafLayNA_13[(NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 2))])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 2))])))&7U)))!=0));
				LA25_: ;
				if (!T24_) goto LA26_;
				h = emarkamp___pureZhashes_3(((NI) 0), ((NI) 42));
				endOperator__lexer_1317(L, tok, (NI)((*L).Sup.bufpos + ((NI) 1)), h);
			}
			goto LA22_;
			LA26_: ;
			{
				getOperator__lexer_1326(L, tok);
			}
			LA22_: ;
		}
		break;
		case 44:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 114:
		case 82:
		{
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(34))) goto LA33_;
				(*L).Sup.bufpos += ((NI) 1);
				getString__lexer_1097(L, tok, ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 1));
			}
			goto LA31_;
			LA33_: ;
			{
				getSymbol__lexer_1229(L, tok);
			}
			LA31_: ;
		}
		break;
		case 40:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL T39_;
				T39_ = (NIM_BOOL)0;
				T39_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(T39_)) goto LA40_;
				T39_ = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA40_: ;
				if (!T39_) goto LA41_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 100);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA37_;
			LA41_: ;
			{
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90);
			}
			LA37_: ;
		}
		break;
		case 41:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 91:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL T48_;
				T48_ = (NIM_BOOL)0;
				T48_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(T48_)) goto LA49_;
				T48_ = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA49_: ;
				if (!T48_) goto LA50_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 96);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA46_;
			LA50_: ;
			{
				if (!((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(58))) goto LA53_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 109);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA46_;
			LA53_: ;
			{
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92);
			}
			LA46_: ;
		}
		break;
		case 93:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 46:
		{
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(93))) goto LA60_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 97);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA58_;
			LA60_: ;
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(125))) goto LA63_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 99);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA58_;
			LA63_: ;
			{
				if (!((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(41))) goto LA66_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 101);
				(*L).Sup.bufpos += ((NI) 2);
			}
			goto LA58_;
			LA66_: ;
			{
				getOperator__lexer_1326(L, tok);
			}
			LA58_: ;
		}
		break;
		case 123:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				NIM_BOOL T72_;
				T72_ = (NIM_BOOL)0;
				T72_ = ((NU8)((*L).Sup.buf[(*L).Sup.bufpos]) == (NU8)(46));
				if (!(T72_)) goto LA73_;
				T72_ = !(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))]) == (NU8)(46)));
				LA73_: ;
				if (!T72_) goto LA74_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98);
				(*L).Sup.bufpos += ((NI) 1);
			}
			goto LA70_;
			LA74_: ;
			{
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 94);
			}
			LA70_: ;
		}
		break;
		case 125:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 59:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 96:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112);
			(*L).Sup.bufpos += ((NI) 1);
		}
		break;
		case 95:
		{
			(*L).Sup.bufpos += ((NI) 1);
			{
				if (!!((((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) == ((NU8)(95)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) <= ((NU8)(255))))) goto LA83_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2);
				unsureAsgnRef((void**) (&(*tok).ident), getIdent__idents_152((*L).cache, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_24)));
			}
			goto LA81_;
			LA83_: ;
			{
				NimStringDesc* T86_;
				NimStringDesc* T87_;
				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 0);
				T86_ = NIM_NIL;
				T87_ = NIM_NIL;
				T87_ = dollar___systemZdollars_3(((NU8)(c)));
				T86_ = rawNewString((T87_ ? T87_->Sup.len : 0) + 20);
appendString(T86_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_25));
appendChar(T86_, c);
appendString(T86_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_26));
appendString(T86_, T87_);
appendChar(T86_, 41);
				lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T86_);
			}
			LA81_: ;
		}
		break;
		case 34:
		{
			tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw mode;
			{
				NIM_BOOL T91_;
				T91_ = (NIM_BOOL)0;
				T91_ = (((NI) 0) < (*L).Sup.bufpos);
				if (!(T91_)) goto LA92_;
				T91_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(122)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(65)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(90)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(57)) || ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) >= ((NU8)(128)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])) <= ((NU8)(255)));
				LA92_: ;
				if (!T91_) goto LA93_;
				mode = ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 2);
			}
			goto LA89_;
			LA93_: ;
			{
				mode = ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 0);
			}
			LA89_: ;
			getString__lexer_1097(L, tok, mode);
			{
				if (!(mode == ((tyEnum_StringMode__Wmy63aJe9bnFKICvTqsp7Uw) 2))) goto LA98_;
				(*tok).tokType += ((NI) 2);
			}
			LA98_: ;
		}
		break;
		case 39:
		{
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 88);
			getCharacter__lexer_1172(L, tok);
			(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 88);
		}
		break;
		case 48 ... 57:
		{
			NIM_CHAR c_2;
			getNumber__lexer_373(L, tok);
			c_2 = (*L).Sup.buf[(*L).Sup.bufpos];
			{
				if (!(((NU8)(c_2)) >= ((NU8)(48)) && ((NU8)(c_2)) <= ((NU8)(57)) || ((NU8)(c_2)) >= ((NU8)(65)) && ((NU8)(c_2)) <= ((NU8)(90)) || ((NU8)(c_2)) == ((NU8)(95)) || ((NU8)(c_2)) >= ((NU8)(97)) && ((NU8)(c_2)) <= ((NU8)(122)) || ((NU8)(c_2)) >= ((NU8)(128)) && ((NU8)(c_2)) <= ((NU8)(255)))) goto LA104_;
				{
					NIM_BOOL T108_;
					NIM_BOOL T109_;
					tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw T112_;
					T108_ = (NIM_BOOL)0;
					T109_ = (NIM_BOOL)0;
					T109_ = (((NU8)(c_2)) == ((NU8)(226)) || ((NU8)(c_2)) == ((NU8)(194)) || ((NU8)(c_2)) == ((NU8)(195)));
					if (!(T109_)) goto LA110_;
					T109_ = (((*(*L).config).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 17))&31U)))!=0);
					LA110_: ;
					T108_ = T109_;
					if (!(T108_)) goto LA111_;
					T112_ = unicodeOprLen__lexer_1203((*L).Sup.buf, (*L).Sup.bufpos);
					T108_ = !((T112_.Field0 == ((NI8) 0)));
					LA111_: ;
					if (!T108_) goto LA113_;
				}
				goto LA106_;
				LA113_: ;
				{
					lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_64));
				}
				LA106_: ;
			}
			LA104_: ;
		}
		break;
		case 45:
		{
			{
				NIM_BOOL T119_;
				NIM_BOOL T121_;
				NIM_CHAR c_3;
				T119_ = (NIM_BOOL)0;
				T119_ = (((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos + ((NI) 1))])) <= ((NU8)(57)));
				if (!(T119_)) goto LA120_;
				T121_ = (NIM_BOOL)0;
				T121_ = ((NI)((*L).Sup.bufpos - ((NI) 1)) == ((NI) 0));
				if (T121_) goto LA122_;
				T121_ = ((TM__U89bXmCxR9cj7Cd2NafLayNA_65[(NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])))>>3] &(1U<<((NU)(((NU8)((*L).Sup.buf[(NI)((*L).Sup.bufpos - ((NI) 1))])))&7U)))!=0);
				LA122_: ;
				T119_ = T121_;
				LA120_: ;
				if (!T119_) goto LA123_;
				getNumber__lexer_373(L, tok);
				c_3 = (*L).Sup.buf[(*L).Sup.bufpos];
				{
					if (!(((NU8)(c_3)) >= ((NU8)(48)) && ((NU8)(c_3)) <= ((NU8)(57)) || ((NU8)(c_3)) >= ((NU8)(65)) && ((NU8)(c_3)) <= ((NU8)(90)) || ((NU8)(c_3)) == ((NU8)(95)) || ((NU8)(c_3)) >= ((NU8)(97)) && ((NU8)(c_3)) <= ((NU8)(122)) || ((NU8)(c_3)) >= ((NU8)(128)) && ((NU8)(c_3)) <= ((NU8)(255)))) goto LA127_;
					{
						NIM_BOOL T131_;
						NIM_BOOL T132_;
						tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw T135_;
						T131_ = (NIM_BOOL)0;
						T132_ = (NIM_BOOL)0;
						T132_ = (((NU8)(c_3)) == ((NU8)(226)) || ((NU8)(c_3)) == ((NU8)(194)) || ((NU8)(c_3)) == ((NU8)(195)));
						if (!(T132_)) goto LA133_;
						T132_ = (((*(*L).config).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 17))&31U)))!=0);
						LA133_: ;
						T131_ = T132_;
						if (!(T131_)) goto LA134_;
						T135_ = unicodeOprLen__lexer_1203((*L).Sup.buf, (*L).Sup.bufpos);
						T131_ = !((T135_.Field0 == ((NI8) 0)));
						LA134_: ;
						if (!T131_) goto LA136_;
					}
					goto LA129_;
					LA136_: ;
					{
						lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_64));
					}
					LA129_: ;
				}
				LA127_: ;
			}
			goto LA117_;
			LA123_: ;
			{
				getOperator__lexer_1326(L, tok);
			}
			LA117_: ;
		}
		break;
		default:
		{
			{
				if (!((TM__U89bXmCxR9cj7Cd2NafLayNA_13[(NU)(((NU8)(c)))>>3] &(1U<<((NU)(((NU8)(c)))&7U)))!=0)) goto LA143_;
				getOperator__lexer_1326(L, tok);
			}
			goto LA141_;
			LA143_: ;
			{
				if (!((NU8)(c) == (NU8)(0))) goto LA146_;
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1);
				(*tok).indent = ((NI) 0);
			}
			goto LA141_;
			LA146_: ;
			{
				NimStringDesc* T149_;
				NimStringDesc* T150_;
				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
				(*tok).tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 0);
				T149_ = NIM_NIL;
				T150_ = NIM_NIL;
				T150_ = dollar___systemZdollars_3(((NU8)(c)));
				T149_ = rawNewString((T150_ ? T150_->Sup.len : 0) + 20);
appendString(T149_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_25));
appendChar(T149_, c);
appendString(T149_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_26));
appendString(T149_, T150_);
appendChar(T149_, 41);
				lexMessage__lexer_327((&(*L)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T149_);
				(*L).Sup.bufpos += ((NI) 1);
			}
			LA141_: ;
		}
		break;
		}
	}
	LA6_: ;
}
static N_INLINE(NIM_BOOL, eqeq___idents_229)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* a, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a == 0);
		if (T3_) goto LA4_;
		T3_ = (b == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (a == b);
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((*a).id == (*b).id);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___lexer_230)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NimStringDesc* result;
	result = NIM_NIL;
	switch ((*tok).tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 73):
	{
		result = dollar___systemZdollars_6((*tok).iNumber);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 81):
	{
		result = dollar___system_3126((*tok).fNumber);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 0):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 83) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 88):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111):
	{
		result = copyString((*tok).literal);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
	{
		result = reprEnum((NI)(*tok).tokType, (&NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_));
	}
	break;
	default:
	{
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = eqeq___idents_229((*tok).ident, ((tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*) NIM_NIL));
			if (!!(T8_)) goto LA9_;
			result = copyString((*(*tok).ident).s);
		}
		goto LA6_;
		LA9_: ;
		{
			result = ((NimStringDesc*) NIM_NIL);
		}
		LA6_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, closeLexer__lexer_304)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* lex) {
	{
		if (!!(((*lex).config == ((tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*) NIM_NIL)))) goto LA3_;
		(*(*lex).config).linesCompiled += (*lex).Sup.lineNumber;
	}
	LA3_: ;
	closeBaseLexer__nimlexbase_29(&lex->Sup);
}
N_LIB_PRIVATE N_NIMCALL(void, lexMessageTok__lexer_331)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, NimStringDesc* arg) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	info = newLineInfo__msgs_391((*L).fileIdx, (*tok).line, (*tok).col);
	dispMessage__lexer_317(L, info, msg, arg);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__lexer_196)(tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw kind) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3) <= kind);
	if (!(T1_)) goto LA2_;
	T1_ = (kind <= ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 68));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prettyTok__lexer_239)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isKeyword__lexer_196((*tok).tokType);
		if (!T3_) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = rawNewString(((*(*tok).ident).s ? (*(*tok).ident).s->Sup.len : 0) + 8);
appendString(T6_, ((NimStringDesc*) &TM__U89bXmCxR9cj7Cd2NafLayNA_73));
appendString(T6_, (*(*tok).ident).s);
		result = T6_;
	}
	goto LA1_;
	LA4_: ;
	{
		result = dollar___lexer_230(tok);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_CHAR*, X5BX5D___system_7363)(NimStringDesc** s, NI i) {
	NIM_CHAR* result;
	result = (NIM_CHAR*)0;
	result = (&(*s)->data[(NI)(((*s) ? (*s)->Sup.len : 0) - i)]);
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == ((NimStringDesc*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__lexer_1376)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NI result;
{	result = (NI)0;
	switch ((*tok).tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110):
	{
		NIM_CHAR relevantChar;
		relevantChar = (*(*tok).ident).s->data[((NI) 0)];
		{
			NIM_BOOL T4_;
			NIM_BOOL T5_;
			NIM_CHAR* T7_;
			NIM_CHAR* T9_;
			T4_ = (NIM_BOOL)0;
			T5_ = (NIM_BOOL)0;
			T5_ = (((NI) 1) < ((*(*tok).ident).s ? (*(*tok).ident).s->Sup.len : 0));
			if (!(T5_)) goto LA6_;
			T7_ = (NIM_CHAR*)0;
			T7_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
			T5_ = ((NU8)((*T7_)) == (NU8)(62));
			LA6_: ;
			T4_ = T5_;
			if (!(T4_)) goto LA8_;
			T9_ = (NIM_CHAR*)0;
			T9_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 2));
			T4_ = (((NU8)((*T9_))) == ((NU8)(45)) || ((NU8)((*T9_))) == ((NU8)(126)) || ((NU8)((*T9_))) == ((NU8)(61)));
			LA8_: ;
			if (!T4_) goto LA10_;
			result = ((NI) 1);
			goto BeforeRet_;
		}
		LA10_: ;
		switch (((NU8)(relevantChar))) {
		case 36:
		case 94:
		{
			{
				NIM_CHAR* T15_;
				T15_ = (NIM_CHAR*)0;
				T15_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T15_)) == (NU8)(61))) goto LA16_;
				result = ((NI) 1);
			}
			goto LA13_;
			LA16_: ;
			{
				result = ((NI) 10);
			}
			LA13_: ;
		}
		break;
		case 42:
		case 37:
		case 47:
		case 92:
		{
			{
				NIM_CHAR* T22_;
				T22_ = (NIM_CHAR*)0;
				T22_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T22_)) == (NU8)(61))) goto LA23_;
				result = ((NI) 1);
			}
			goto LA20_;
			LA23_: ;
			{
				result = ((NI) 9);
			}
			LA20_: ;
		}
		break;
		case 126:
		{
			result = ((NI) 8);
		}
		break;
		case 43:
		case 45:
		case 124:
		{
			{
				NIM_CHAR* T30_;
				T30_ = (NIM_CHAR*)0;
				T30_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T30_)) == (NU8)(61))) goto LA31_;
				result = ((NI) 1);
			}
			goto LA28_;
			LA31_: ;
			{
				result = ((NI) 8);
			}
			LA28_: ;
		}
		break;
		case 38:
		{
			{
				NIM_CHAR* T37_;
				T37_ = (NIM_CHAR*)0;
				T37_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T37_)) == (NU8)(61))) goto LA38_;
				result = ((NI) 1);
			}
			goto LA35_;
			LA38_: ;
			{
				result = ((NI) 7);
			}
			LA35_: ;
		}
		break;
		case 61:
		case 60:
		case 62:
		case 33:
		{
			result = ((NI) 5);
		}
		break;
		case 46:
		{
			{
				NIM_CHAR* T45_;
				T45_ = (NIM_CHAR*)0;
				T45_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T45_)) == (NU8)(61))) goto LA46_;
				result = ((NI) 1);
			}
			goto LA43_;
			LA46_: ;
			{
				result = ((NI) 6);
			}
			LA43_: ;
		}
		break;
		case 63:
		{
			result = ((NI) 2);
		}
		break;
		case 194 ... 195:
		case 226:
		{
			{
				NIM_CHAR* T53_;
				T53_ = (NIM_CHAR*)0;
				T53_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T53_)) == (NU8)(61))) goto LA54_;
				result = ((NI) 1);
			}
			goto LA51_;
			LA54_: ;
			{
				tyTuple__SZx9aI8Y0uZeW8hlFxX8Qiw T57_;
				NI8 len;
				tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g pred;
				T57_ = unicodeOprLen__lexer_1203(nimToCStringConv((*(*tok).ident).s), ((NI) 0));
				len = T57_.Field0;
				pred = T57_.Field1;
				{
					if (!!((len == ((NI8) 0)))) goto LA60_;
					{
						if (!(pred == ((tyEnum_UnicodeOprPred__1n6xnR4A7v2WltSS9cIqw8g) 0))) goto LA64_;
						result = ((NI) 9);
					}
					goto LA62_;
					LA64_: ;
					{
						result = ((NI) 8);
					}
					LA62_: ;
				}
				goto LA58_;
				LA60_: ;
				{
					result = ((NI) 2);
				}
				LA58_: ;
			}
			LA51_: ;
		}
		break;
		default:
		{
			{
				NIM_CHAR* T71_;
				T71_ = (NIM_CHAR*)0;
				T71_ = X5BX5D___system_7363((&(*(*tok).ident).s), ((NI) 1));
				if (!((NU8)((*T71_)) == (NU8)(61))) goto LA72_;
				result = ((NI) 1);
			}
			goto LA69_;
			LA72_: ;
			{
				result = ((NI) 2);
			}
			LA69_: ;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 19):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 43):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 56):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 57):
	{
		result = ((NI) 9);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 108):
	{
		result = ((NI) 6);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 33):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 46):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 36):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 37):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 5):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 29):
	{
		result = ((NI) 5);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 4):
	{
		result = ((NI) 4);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 49):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 67):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 52):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 54):
	{
		result = ((NI) 3);
	}
	break;
	default:
	{
		result = ((NI) -10);
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__pureZtimes_2292)(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw s, NI value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__lexer_1794)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident) {
	NI result;
	tyObject_Token__TUeI5CB5zbppKJkmeKoDMw tok;
	result = (NI)0;
	nimZeroMem((void*)(&tok), sizeof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw));
	initToken__lexer_248((&tok));
	tok.ident = ident;
	{
		tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T3_;
		NIM_BOOL T4_;
		T3_ = dotdot___pureZunicode_840(((NI) 1), ((NI) 66));
		T4_ = (NIM_BOOL)0;
		T4_ = contains__pureZtimes_2292(T3_, (*tok.ident).id);
		if (!T4_) goto LA5_;
		tok.tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) ((NI)((*tok.ident).id + ((NI) 2))));
	}
	goto LA1_;
	LA5_: ;
	{
		tok.tokType = ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110);
	}
	LA1_: ;
	result = getPrecedence__lexer_1376((&tok));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNimIdentifier__lexer_209)(NimStringDesc* s) {
	NIM_BOOL result;
	NI sLen;
{	result = (NIM_BOOL)0;
	sLen = (s ? s->Sup.len : 0);
	{
		NIM_BOOL T3_;
		NI i;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) < sLen);
		if (!(T3_)) goto LA4_;
		T3_ = (((NU8)(s->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)(s->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(90)) || ((NU8)(s->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)(s->data[((NI) 0)])) <= ((NU8)(255)));
		LA4_: ;
		if (!T3_) goto LA5_;
		i = ((NI) 1);
		{
			while (1) {
				if (!(i < sLen)) goto LA8;
				{
					if (!((NU8)(s->data[i]) == (NU8)(95))) goto LA11_;
					i += ((NI) 1);
				}
				LA11_: ;
				{
					NIM_BOOL T15_;
					T15_ = (NIM_BOOL)0;
					T15_ = (i < sLen);
					if (!(T15_)) goto LA16_;
					T15_ = !((((NU8)(s->data[i])) >= ((NU8)(97)) && ((NU8)(s->data[i])) <= ((NU8)(122)) || ((NU8)(s->data[i])) >= ((NU8)(65)) && ((NU8)(s->data[i])) <= ((NU8)(90)) || ((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) >= ((NU8)(128)) && ((NU8)(s->data[i])) <= ((NU8)(255))));
					LA16_: ;
					if (!T15_) goto LA17_;
					goto BeforeRet_;
				}
				LA17_: ;
				i += ((NI) 1);
			} LA8: ;
		}
		result = NIM_TRUE;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmlexerdotnim_DatInit000)(void) {
static TNimNode* TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[8];
static TNimNode* TM__U89bXmCxR9cj7Cd2NafLayNA_3_2[2];
static TNimNode* TM__U89bXmCxR9cj7Cd2NafLayNA_66_119[119];
NI TM__U89bXmCxR9cj7Cd2NafLayNA_68;
static char* NIM_CONST TM__U89bXmCxR9cj7Cd2NafLayNA_67[119] = {
"tkInvalid", 
"[EOF]", 
"tkSymbol", 
"addr", 
"and", 
"as", 
"asm", 
"bind", 
"block", 
"break", 
"case", 
"cast", 
"concept", 
"const", 
"continue", 
"converter", 
"defer", 
"discard", 
"distinct", 
"div", 
"do", 
"elif", 
"else", 
"end", 
"enum", 
"except", 
"export", 
"finally", 
"for", 
"from", 
"func", 
"if", 
"import", 
"in", 
"include", 
"interface", 
"is", 
"isnot", 
"iterator", 
"let", 
"macro", 
"method", 
"mixin", 
"mod", 
"nil", 
"not", 
"notin", 
"object", 
"of", 
"or", 
"out", 
"proc", 
"ptr", 
"raise", 
"ref", 
"return", 
"shl", 
"shr", 
"static", 
"template", 
"try", 
"tuple", 
"type", 
"using", 
"var", 
"when", 
"while", 
"xor", 
"yield", 
"tkIntLit", 
"tkInt8Lit", 
"tkInt16Lit", 
"tkInt32Lit", 
"tkInt64Lit", 
"tkUIntLit", 
"tkUInt8Lit", 
"tkUInt16Lit", 
"tkUInt32Lit", 
"tkUInt64Lit", 
"tkFloatLit", 
"tkFloat32Lit", 
"tkFloat64Lit", 
"tkFloat128Lit", 
"tkStrLit", 
"tkRStrLit", 
"tkTripleStrLit", 
"tkGStrLit", 
"tkGTripleStrLit", 
"tkCharLit", 
"tkCustomLit", 
"(", 
")", 
"[", 
"]", 
"{", 
"}", 
"[.", 
".]", 
"{.", 
".}", 
"(.", 
".)", 
",", 
";", 
":", 
"::", 
"=", 
".", 
"..", 
"[:", 
"tkOpr", 
"tkComment", 
"`", 
"tkSpaces", 
"tkInfixOpr", 
"tkPrefixOpr", 
"tkPostfixOpr", 
"tkHideableStart", 
"tkHideableEnd"};
static TNimNode* TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[11];
static TNimNode* TM__U89bXmCxR9cj7Cd2NafLayNA_70_4[4];
NI TM__U89bXmCxR9cj7Cd2NafLayNA_72;
static char* NIM_CONST TM__U89bXmCxR9cj7Cd2NafLayNA_71[4] = {
"base10", 
"base2", 
"base8", 
"base16"};
static TNimNode TM__U89bXmCxR9cj7Cd2NafLayNA_0[149];
NTIlexer__D0giBxIIh38MSXTZOJp8yw_.size = sizeof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw);
NTIlexer__D0giBxIIh38MSXTZOJp8yw_.align = NIM_ALIGNOF(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw);
NTIlexer__D0giBxIIh38MSXTZOJp8yw_.kind = 17;
NTIlexer__D0giBxIIh38MSXTZOJp8yw_.base = (&NTItbaselexer__nATxPlDiRTsKxaL2wN88sQ_);
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[0] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[1];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[1].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[1].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, fileIdx);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[1].typ = (&NTIint5150__sVg18TP9cLifHyygRe9cro9aA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[1].name = "fileIdx";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[1] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[2];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[2].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[2].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, indentAhead);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[2].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[2].name = "indentAhead";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[2] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[3];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[3].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[3].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, currLineIndent);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[3].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[3].name = "currLineIndent";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[3] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[4];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[4].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[4].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, strongSpaces);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[4].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[4].name = "strongSpaces";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[4] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[5];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[5].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[5].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, allowTabs);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[5].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[5].name = "allowTabs";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[5] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[6];
NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_.align = NIM_ALIGNOF(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_.kind = 18;
NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_.base = 0;
TM__U89bXmCxR9cj7Cd2NafLayNA_3_2[0] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[8];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[8].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[8].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[8].typ = (&NTIpointer__vr5DoT1jILTGdRlYv1OYpw_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[8].name = "Field0";
TM__U89bXmCxR9cj7Cd2NafLayNA_3_2[1] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[9];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[9].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[9].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field1);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[9].typ = (&NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[9].name = "Field1";
TM__U89bXmCxR9cj7Cd2NafLayNA_0[7].len = 2; TM__U89bXmCxR9cj7Cd2NafLayNA_0[7].kind = 2; TM__U89bXmCxR9cj7Cd2NafLayNA_0[7].sons = &TM__U89bXmCxR9cj7Cd2NafLayNA_3_2[0];
NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_.node = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[7];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[6].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[6].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, errorHandler);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[6].typ = (&NTIerrorhandler__9aGJhSmkuel6SMfp4pTpyXA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[6].name = "errorHandler";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[6] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[10];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[10].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[10].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, cache);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[10].typ = (&NTIidentcache__6ZZ9cf5acLVYxUxl0ehlA1g_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[10].name = "cache";
TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[7] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[11];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[11].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[11].offset = offsetof(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw, config);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[11].typ = (&NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[11].name = "config";
TM__U89bXmCxR9cj7Cd2NafLayNA_0[0].len = 8; TM__U89bXmCxR9cj7Cd2NafLayNA_0[0].kind = 2; TM__U89bXmCxR9cj7Cd2NafLayNA_0[0].sons = &TM__U89bXmCxR9cj7Cd2NafLayNA_2_8[0];
NTIlexer__D0giBxIIh38MSXTZOJp8yw_.node = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[0];
NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_.size = sizeof(tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw);
NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_.align = NIM_ALIGNOF(tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw);
NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_.kind = 14;
NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_.base = 0;
NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_.flags = 3;
for (TM__U89bXmCxR9cj7Cd2NafLayNA_68 = 0; TM__U89bXmCxR9cj7Cd2NafLayNA_68 < 119; TM__U89bXmCxR9cj7Cd2NafLayNA_68++) {
TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_68+12].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_68+12].offset = TM__U89bXmCxR9cj7Cd2NafLayNA_68;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_68+12].name = TM__U89bXmCxR9cj7Cd2NafLayNA_67[TM__U89bXmCxR9cj7Cd2NafLayNA_68];
TM__U89bXmCxR9cj7Cd2NafLayNA_66_119[TM__U89bXmCxR9cj7Cd2NafLayNA_68] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_68+12];
}
TM__U89bXmCxR9cj7Cd2NafLayNA_0[131].len = 119; TM__U89bXmCxR9cj7Cd2NafLayNA_0[131].kind = 2; TM__U89bXmCxR9cj7Cd2NafLayNA_0[131].sons = &TM__U89bXmCxR9cj7Cd2NafLayNA_66_119[0];
NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_.node = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[131];
NTItoken__TUeI5CB5zbppKJkmeKoDMw_.size = sizeof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw);
NTItoken__TUeI5CB5zbppKJkmeKoDMw_.align = NIM_ALIGNOF(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw);
NTItoken__TUeI5CB5zbppKJkmeKoDMw_.kind = 18;
NTItoken__TUeI5CB5zbppKJkmeKoDMw_.base = 0;
NTItoken__TUeI5CB5zbppKJkmeKoDMw_.flags = 2;
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[0] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[133];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[133].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[133].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, tokType);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[133].typ = (&NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[133].name = "tokType";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[1] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[134];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[134].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[134].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, indent);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[134].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[134].name = "indent";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[2] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[135];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[135].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[135].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, ident);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[135].typ = (&NTIpident__eFRAx6MW9aaEkYtj9aZffV0A_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[135].name = "ident";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[3] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[136];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[136].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[136].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, iNumber);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[136].typ = (&NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[136].name = "iNumber";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[4] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[137];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[137].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[137].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, fNumber);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[137].typ = (&NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[137].name = "fNumber";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[5] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[138];
NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_.size = sizeof(tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q);
NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_.align = NIM_ALIGNOF(tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q);
NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_.kind = 14;
NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_.base = 0;
NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_.flags = 3;
for (TM__U89bXmCxR9cj7Cd2NafLayNA_72 = 0; TM__U89bXmCxR9cj7Cd2NafLayNA_72 < 4; TM__U89bXmCxR9cj7Cd2NafLayNA_72++) {
TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_72+139].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_72+139].offset = TM__U89bXmCxR9cj7Cd2NafLayNA_72;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_72+139].name = TM__U89bXmCxR9cj7Cd2NafLayNA_71[TM__U89bXmCxR9cj7Cd2NafLayNA_72];
TM__U89bXmCxR9cj7Cd2NafLayNA_70_4[TM__U89bXmCxR9cj7Cd2NafLayNA_72] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[TM__U89bXmCxR9cj7Cd2NafLayNA_72+139];
}
TM__U89bXmCxR9cj7Cd2NafLayNA_0[143].len = 4; TM__U89bXmCxR9cj7Cd2NafLayNA_0[143].kind = 2; TM__U89bXmCxR9cj7Cd2NafLayNA_0[143].sons = &TM__U89bXmCxR9cj7Cd2NafLayNA_70_4[0];
NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_.node = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[143];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[138].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[138].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, base);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[138].typ = (&NTInumericalbase__TH9auiUrNz9bAsj4cpFtJS5Q_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[138].name = "base";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[6] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[144];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[144].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[144].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, strongSpaceA);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[144].typ = (&NTIint56__chXunH2dwinSkhpA6JnsXw_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[144].name = "strongSpaceA";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[7] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[145];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[145].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[145].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, strongSpaceB);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[145].typ = (&NTIint56__chXunH2dwinSkhpA6JnsXw_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[145].name = "strongSpaceB";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[8] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[146];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[146].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[146].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, literal);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[146].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[146].name = "literal";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[9] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[147];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[147].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[147].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, line);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[147].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[147].name = "line";
TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[10] = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[148];
TM__U89bXmCxR9cj7Cd2NafLayNA_0[148].kind = 1;
TM__U89bXmCxR9cj7Cd2NafLayNA_0[148].offset = offsetof(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw, col);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[148].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__U89bXmCxR9cj7Cd2NafLayNA_0[148].name = "col";
TM__U89bXmCxR9cj7Cd2NafLayNA_0[132].len = 11; TM__U89bXmCxR9cj7Cd2NafLayNA_0[132].kind = 2; TM__U89bXmCxR9cj7Cd2NafLayNA_0[132].sons = &TM__U89bXmCxR9cj7Cd2NafLayNA_69_11[0];
NTItoken__TUeI5CB5zbppKJkmeKoDMw_.node = &TM__U89bXmCxR9cj7Cd2NafLayNA_0[132];
}

