text: /* Generated by Nim Compiler v1.6.2 */
  #define NIM_INTBITS 32
  
  #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__JC9bQ4bKzkuzV9bdqS4ju8yw tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw;
  typedef struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag;
  typedef struct RootObj RootObj;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g;
  typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
  typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
  typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
  typedef struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A tyTuple__JfHvHzMrhKkWAUvQKe0i1A;
  typedef struct tyObject_Env_lexerdotnim_lexer___diB2NTuAIWY0FO9c5IUJRGg tyObject_Env_lexerdotnim_lexer___diB2NTuAIWY0FO9c5IUJRGg;
  typedef struct tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA;
  typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
  typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
  typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
  typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
  typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
  typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
  typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
  typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
  typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
  typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
  typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
  typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
  typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
  typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
  typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
  typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
  typedef struct tyTuple__eYjXpYmwoditlWZaGvgooQ tyTuple__eYjXpYmwoditlWZaGvgooQ;
  typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
  typedef struct Exception Exception;
  typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
  typedef struct TSafePoint TSafePoint;
  typedef struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ;
  typedef struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA;
  typedef struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA;
  typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
  typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
  typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
  typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
  typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
  typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
  typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
  typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
  typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
  typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
  typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
  typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
  typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
  typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
  typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
  typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
  typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
  typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
  typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
  typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
  typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
  typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
  typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
  typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
  typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
  typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
  typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
  typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
  typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
  struct TNimType {
  NI size;
  NI align;
  tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
  tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
  tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
  };
  typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
  struct TNimNode {
  tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  struct RootObj {
  TNimType* m_type;
  };
  struct TGenericSeq {
  NI len;
  NI reserved;
  };
  struct NimStringDesc {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag {
    RootObj Sup;
  NI bufpos;
  NCSTRING buf;
  NimStringDesc* bufStorage;
  NI bufLen;
  tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
  NI lineNumber;
  NI sentinel;
  NI lineStart;
  NI offsetBase;
  };
  typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, void* ClE_0);
  void* ClE_0;
  } tyProc__pIuD7iLYdwrBMntVRm61ZA;
  struct tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw {
    tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag Sup;
  NI32 fileIdx;
  NI indentAhead;
  NI currLineIndent;
  NIM_BOOL strongSpaces;
  NIM_BOOL allowTabs;
  tyProc__pIuD7iLYdwrBMntVRm61ZA errorHandler;
  tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
  tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
  };
  struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A {
  void* Field0;
  tyObject_Env_lexerdotnim_lexer___diB2NTuAIWY0FO9c5IUJRGg* Field1;
  };
  typedef NU8 tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ;
  typedef NU8 tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog;
  struct tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA {
  tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType;
  NI indent;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
  NI64 iNumber;
  NF fNumber;
  tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog base;
  NI8 strongSpaceA;
  NI8 strongSpaceB;
  NimStringDesc* literal;
  NI line;
  NI col;
  };
  struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
  NI id;
  NimStringDesc* s;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
  NI h;
  };
  typedef NU8 tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ;
  typedef struct {
  N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen, void* ClE_0);
  void* ClE_0;
  } tyProc__9cZV5JMJLsdOPMv55VbpOVg;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
  void* ClE_0;
  } tyProc__HzVCwACFYM9cx9aV62PdjtuA;
  struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
    RootObj Sup;
  tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
  FILE* f;
  NimStringDesc* s;
  NI rd;
  NI wr;
  NI lineOffset;
  tyProc__9cZV5JMJLsdOPMv55VbpOVg repl;
  tyProc__HzVCwACFYM9cx9aV62PdjtuA onPrompt;
  };
  typedef tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* tyArray__O7BaHX6ctEz6BpjFNHWCFQ[8192];
  struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw {
  tyArray__O7BaHX6ctEz6BpjFNHWCFQ buckets;
  NI wordCounter;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* idAnon;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* idDelegator;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* emptyIdent;
  };
  typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
  typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
  typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
  struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
  tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
  tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
  NI intSize;
  NI floatSize;
  NI ptrSize;
  NimStringDesc* tnl;
  };
  typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
  typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
  struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
  NU16 line;
  NI16 col;
  NI32 fileIndex;
  };
  typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
  struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
  tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
  NI counter;
  };
  struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
  NIM_BOOL trackPosAttached;
  tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
  tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
  tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
  tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
  NI32 systemFileIdx;
  };
  typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
  typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
  typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
  typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
  typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
  struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
  tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
  NI counter;
  };
  typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
  typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
  typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
  typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
  typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
  struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
  NI Field0;
  NI Field1;
  NI Field2;
  };
  typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
  void* ClE_0;
  } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
  void* ClE_0;
  } tyProc__k2HFjxisIgDALbEUFojxaQ;
  typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
  void* ClE_0;
  } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
  struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
  tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
  tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
  NI linesCompiled;
  tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
  tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
  tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
  tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
  NimStringDesc* unitSep;
  NI evalTemplateCounter;
  NI evalMacroCounter;
  NI8 exitcode;
  tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
  NimStringDesc* cmdInput;
  NIM_BOOL projectIsCmd;
  NIM_BOOL implicitCmd;
  tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
  tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
  NIM_BOOL hintProcessingDots;
  NI verbosity;
  NI numberOfProcessors;
  NF lastCmdTime;
  tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
  NI spellSuggestMax;
  tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
  NimStringDesc* headerFile;
  tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
  tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
  NimStringDesc* arguments;
  tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
  NIM_BOOL oldNewlines;
  tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
  NI mainPackageId;
  NI errorCounter;
  NI hintCounter;
  NI warnCounter;
  NI errorMax;
  NI maxLoopIterationsVM;
  NIM_BOOL isVmTrace;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* 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__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
  NimStringDesc* projectName;
  NimStringDesc* projectPath;
  NimStringDesc* projectFull;
  NIM_BOOL projectIsStdin;
  tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug 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__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
  tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
  NI suggestVersion;
  NI suggestMaxResults;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
  tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
  tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
  NimStringDesc* cppCustomNamespace;
  NimStringDesc* nimMainPrefix;
  tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
  };
  typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
  struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
  NimStringDesc* Field0;
  NI Field1;
  NI Field2;
  };
  typedef N_CLOSURE_PTR(void, TM__4JpEWnGrmRM8CRqL3P2O1Q_6) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
  typedef NU8 tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
  typedef NU8 tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA;
  struct tyTuple__eYjXpYmwoditlWZaGvgooQ {
  NI8 Field0;
  tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA Field1;
  };
  typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
  typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
  typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
  typedef NU8 tyEnum_StringMode__nSovsy4OWY2URVkgcoWPUQ;
  struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
  NI a;
  NI b;
  };
  struct Exception {
    RootObj Sup;
  Exception* parent;
  NCSTRING name;
  NimStringDesc* message;
  tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
  Exception* up;
  };
  struct TSafePoint {
  TSafePoint* prev;
  NI status;
  jmp_buf context;
  };
  struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA {
    Exception Sup;
  };
  struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA {
    tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
  };
  struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ {
    tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
  };
  struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
  NI refcount;
  TNimType* typ;
  };
  struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
  void* bottom;
  };
  struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
  NI len;
  NI cap;
  tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
  };
  typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
  typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
  typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
  typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
  typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
  struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
  tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
  };
  typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
  struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
  tyArray__0aOLqZchNi8nWtMTi8ND8w link;
  NI key;
  NI upperBound;
  NI level;
  };
  struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
  tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
  NI Field1;
  };
  typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
  struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
  NI len;
  tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
  tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
  };
  struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
  NI minLargeObj;
  NI maxLargeObj;
  tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
  NU32 flBitmap;
  tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
  tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
  tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
  NI currMem;
  NI maxMem;
  NI freeMem;
  NI occ;
  NI lastSize;
  tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
  NIM_BOOL locked;
  NIM_BOOL blockChunkSizeIncrease;
  NI nextChunkSize;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
  tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
  };
  struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
  NI stackScans;
  NI cycleCollections;
  NI maxThreshold;
  NI maxStackSize;
  NI maxStackCells;
  NI cycleTableSize;
  NI64 maxPause;
  };
  struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
  NI counter;
  NI max;
  tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
  tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
  };
  struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
  tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
  NI cycleThreshold;
  NI zctThreshold;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
  NI recGcLock;
  tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
  tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
  tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
  NI gcThreadId;
  };
  struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
    Exception Sup;
  };
  struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
    tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
  };
  struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
  NimStringDesc* Field1;
  };
  struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
  NI Field0;
  NimStringDesc* Field1;
  NI32 Field2;
  };
  struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
  NimStringDesc* fullPath;
  NimStringDesc* projPath;
  NimStringDesc* shortName;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
  NimStringDesc* dirtyFile;
  NimStringDesc* hash;
  NIM_BOOL dirty;
  };
  struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
  NI Field0;
  NimStringDesc* Field1;
  };
  typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
  struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
  NimStringDesc* nimname;
  NimStringDesc* cname;
  NimStringDesc* obj;
  tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
  NimStringDesc* customArgs;
  };
  struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
  NCSTRING procname;
  NI line;
  NCSTRING filename;
  };
  struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
    TGenericSeq Sup;
    tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
  };
  struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
    TGenericSeq Sup;
    tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
  };
  struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
    TGenericSeq Sup;
    tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw 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__pK3qSsBZwdXd6qyUMkd5Jw {
    TGenericSeq Sup;
    tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
  };
  struct tySequence__uB9b75OUPRENsBAu4AnoePA {
    TGenericSeq Sup;
    tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA 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__JC9bQ4bKzkuzV9bdqS4ju8yw* lex, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
  N_LIB_PRIVATE N_NIMCALL(void, openBaseLexer__nimlexbase_25)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__msgs_376)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(void, fillToken__lexer_268)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* L);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
  N_LIB_PRIVATE N_NIMCALL(void, skip__lexer_1552)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  N_LIB_PRIVATE N_NIMCALL(void, lexMessagePos__lexer_346)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NI pos, NimStringDesc* arg);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__msgs_381)(NI32 fileInfoIdx, NI line, NI col);
  N_LIB_PRIVATE N_NIMCALL(void, dispMessage__lexer_326)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
  N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
  N_LIB_PRIVATE N_NIMCALL(NI, handleCRLF__lexer_1080)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, NI pos);
  N_LIB_PRIVATE N_NIMCALL(NI, getColNumber__nimlexbase_34)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos);
  N_LIB_PRIVATE N_NIMCALL(NI, handleCR__nimlexbase_37)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos);
  N_LIB_PRIVATE N_NIMCALL(NI, handleLF__nimlexbase_40)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos);
  N_LIB_PRIVATE N_NIMCALL(void, skipMultiLineComment__lexer_1409)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_1727)(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__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  static N_INLINE(NI, emarkamp___pureZhashes_3)(NI h, NI val);
  N_LIB_PRIVATE N_NIMCALL(void, lexMessage__lexer_336)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__lexer_314)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* 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__eYjXpYmwoditlWZaGvgooQ, unicodeOprLen__lexer_1203)(NCSTRING buf, NI pos);
  static N_INLINE(NI, emarkdollar___pureZhashes_18)(NI h);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_89)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* 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_1324)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  static N_INLINE(void, endOperator__lexer_1315)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, NI pos, NI hash);
  N_LIB_PRIVATE N_NIMCALL(void, scanComment__lexer_1490)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  N_LIB_PRIVATE N_NIMCALL(void, getString__lexer_1097)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyEnum_StringMode__nSovsy4OWY2URVkgcoWPUQ mode);
  N_LIB_PRIVATE N_NIMCALL(void, getEscapedChar__lexer_978)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  N_LIB_PRIVATE N_NIMCALL(void, handleHexChar__lexer_781)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* 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__EE5dzjqoOrHT6HJhIPXAvA x);
  N_NIMCALL(NimStringDesc*, mnewString)(NI len);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
  static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, 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_352)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, NIM_CHAR first, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw second);
  N_LIB_PRIVATE N_NIMCALL(void, handleDecChars__lexer_836)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, NI* xi);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* 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__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  N_LIB_PRIVATE N_NIMCALL(void, getNumber__lexer_382)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* result);
  N_LIB_PRIVATE N_NIMCALL(void, lexMessageLitNum__lexer_424)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, NimStringDesc* msg, NI startpos, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msgKind);
  N_LIB_PRIVATE N_NIMCALL(void, matchChars__lexer_411)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
  N_LIB_PRIVATE N_NIMCALL(NI, matchUnderscoreChars__lexer_385)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
  N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q 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_1735)(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_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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_3118)(NF x);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
  static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b);
  N_LIB_PRIVATE N_NIMCALL(void, closeBaseLexer__nimlexbase_29)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__lexer_196)(tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ kind);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___lexer_230)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  static N_INLINE(NIM_CHAR*, X5BX5D___system_7361)(NimStringDesc** s, NI i);
  static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
  N_LIB_PRIVATE N_NIMCALL(void, initToken__lexer_248)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* L);
  static N_INLINE(NIM_BOOL, contains__pureZtimes_2291)(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA s, NI value);
  N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__lexer_1374)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  extern TNimType NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_;
  N_LIB_PRIVATE TNimType NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_;
  extern TNimType NTIint5150__sVg18TP9cLifHyygRe9cro9aA_;
  extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
  extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
  N_LIB_PRIVATE TNimType NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_;
  extern TNimType NTIpointer__vr5DoT1jILTGdRlYv1OYpw_;
  extern TNimType NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_;
  extern TNimType NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_;
  extern TNimType NTIconfigref__a8lycfSA25OQltN3OMeBsA_;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_5, "/home/runner/work/nightlies/nightlies/nim/compiler/lexer.nim", 60);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__4JpEWnGrmRM8CRqL3P2O1Q_4 = {((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_5),
  ((NI) 221),
  ((NI) 16)}
  ;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_7, "tabs are not allowed, use spaces instead", 40);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_8, "\012", 1);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_9, "end of multiline comment expected", 33);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_10, "invalid token: trailing underscore", 34);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_11, "\'$1\' should be: \'$2\'$3", 22);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__4JpEWnGrmRM8CRqL3P2O1Q_12 = {((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_5),
  ((NI) 922),
  ((NI) 16)}
  ;
  static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_14, "closing \"\"\" expected, but end of file reached", 45);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_15, "closing \" expected", 18);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_16, "\\p not allowed in character literal", 35);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_17, "expected a hex digit, but found: ", 33);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_18, "; maybe prepend with 0", 22);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_19, "\\u not allowed in character literal", 35);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_20, "Unicode codepoint cannot be empty", 33);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_21, "Unicode codepoint must be lower than 0x10FFFF, but was: ", 56);
  static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_23, "invalid character constant", 26);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_24, "_", 1);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_25, "invalid token: ", 15);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_26, " (\\", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_27, "invalid character literal", 25);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_28, "\'", 1);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_29, "missing closing \' for character literal", 39);
  static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_31, "$1 will soon be invalid for oct literals; Use \'0o\' for octals. \'c\', \'C\' prefix", 78);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_34, "$1 is an invalid int literal; For octal literals use the \'0o\' prefix.", 69);
  static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_37, "getNumber", 9);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__4JpEWnGrmRM8CRqL3P2O1Q_38 = {((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_5),
  ((NI) 388),
  ((NI) 19)}
  ;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_39, "invalid number: \'$1\'", 20);
  static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_41, "f", 1);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_42, "f32", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_43, "d", 1);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_44, "f64", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_45, "f128", 4);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_46, "i8", 2);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_47, "i16", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_48, "i32", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_49, "i64", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_50, "u", 1);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_51, "u8", 2);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_52, "u16", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_53, "u32", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_54, "u64", 3);
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_55, "invalid number suffix: \'$1\'", 27);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__4JpEWnGrmRM8CRqL3P2O1Q_57 = {((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_5),
  ((NI) 493),
  ((NI) 23)}
  ;
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__4JpEWnGrmRM8CRqL3P2O1Q_58 = {((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_5),
  ((NI) 510),
  ((NI) 27)}
  ;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_59, "number out of range: \'$1\'", 25);
  extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
  extern TNimType NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_;
  extern TNimType NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_61, "number out of range: ", 21);
  extern TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_62, "invalid integer: ", 17);
  extern TNimType NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_64, "invalid token: no whitespace between number and identifier", 58);
  static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__4JpEWnGrmRM8CRqL3P2O1Q_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__5VVBIL7Ozj1cc9akK23jAGQ_;
  N_LIB_PRIVATE TNimType NTItoken__sNMaWRTImjqfh1DU9cmdQkA_;
  extern TNimType NTIpident__EiGmNYVHiKeimIyQkW82mg_;
  extern TNimType NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_;
  extern TNimType NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_;
  N_LIB_PRIVATE TNimType NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_;
  extern TNimType NTIint56__chXunH2dwinSkhpA6JnsXw_;
  extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
  STRING_LITERAL(TM__4JpEWnGrmRM8CRqL3P2O1Q_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__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
  extern Exception* currException__system_2566;
  extern Exception* currException__system_2566;
  N_LIB_PRIVATE N_NIMCALL(void, initToken__lexer_248)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* L) {
  	(*L).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__thnLAz9aJwaXPrSfSppUBog) 0);
  	unsureAsgnRef((void**) (&(*L).ident), ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
  }
  N_LIB_PRIVATE N_NIMCALL(void, openLexer__lexer_270)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* 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__JC9bQ4bKzkuzV9bdqS4ju8yw* lex, NimStringDesc* filename, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* 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__sNMaWRTImjqfh1DU9cmdQkA* L) {
  	(*L).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__thnLAz9aJwaXPrSfSppUBog) 0);
  	unsureAsgnRef((void**) (&(*L).ident), ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
  }
  N_LIB_PRIVATE N_NIMCALL(void, dispMessage__lexer_326)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg) {
  	{
  		if (!((*L).errorHandler.ClP_0 == 0)) goto LA3_;
  		liMessage__msgs_1118((*L).config, info, msg, arg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__4JpEWnGrmRM8CRqL3P2O1Q_4, NIM_FALSE);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		(*L).errorHandler.ClE_0? (*L).errorHandler.ClP_0((*L).config, info, msg, arg, (*L).errorHandler.ClE_0):((TM__4JpEWnGrmRM8CRqL3P2O1Q_6)((*L).errorHandler.ClP_0))((*L).config, info, msg, arg);
  	}
  	LA1_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, lexMessagePos__lexer_346)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NI pos, NimStringDesc* arg) {
  	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
  	info = newLineInfo__msgs_381((*L).fileIdx, (*L).Sup.lineNumber, (NI)(pos - (*L).Sup.lineStart));
  	dispMessage__lexer_326((&(*L)), info, msg, arg);
  }
  N_LIB_PRIVATE N_NIMCALL(NI, handleCRLF__lexer_1080)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* 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_346(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 71), 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_346(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 71), 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_1727)(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_1727(((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_1409)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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__4JpEWnGrmRM8CRqL3P2O1Q_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_346(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), pos, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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_1552)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_346(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), pos, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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_1409(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_1409(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)((NU32)(h_2) + (NU32)(val_2));
  	res = (NU)((NU32)(res) + (NU32)((NU)((NU32)(res) << (NU32)(((NI) 10)))));
  	res = (NU)(res ^ (NU)((NU32)(res) >> (NU32)(((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__WGx4rAexNXnczy1Avn646Q, getLineInfo__lexer_314)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L) {
  	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
  	NI T1_;
  	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
  	T1_ = (NI)0;
  	T1_ = getColNumber__nimlexbase_34((&(*L).Sup), (*L).Sup.bufpos);
  	result = newLineInfo__msgs_381((*L).fileIdx, (*L).Sup.lineNumber, T1_);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, lexMessage__lexer_336)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg) {
  	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
  	T1_ = getLineInfo__lexer_314(L);
  	dispMessage__lexer_326(L, T1_, msg, arg);
  }
  N_LIB_PRIVATE N_NIMCALL(tyTuple__eYjXpYmwoditlWZaGvgooQ, unicodeOprLen__lexer_1203)(NCSTRING buf, NI pos) {
  	tyTuple__eYjXpYmwoditlWZaGvgooQ result;
  	NI8 colontmp_;
  	tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__2;
  	nimZeroMem((void*)(&result), sizeof(tyTuple__eYjXpYmwoditlWZaGvgooQ));
  	colontmp_ = ((NI8) 0);
  	colontmp__2 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 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__f0oKMpJTiNSDY7xXSOHJIA colontmp__4;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(152))) goto LA8_;
  				colontmp__3 = ((NI8) 3);
  				colontmp__4 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__3;
  				result.Field1 = colontmp__4;
  			}
  			goto LA6_;
  			LA8_: ;
  			{
  				NI8 colontmp__5;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__6;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(153))) goto LA11_;
  				colontmp__5 = ((NI8) 3);
  				colontmp__6 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__5;
  				result.Field1 = colontmp__6;
  			}
  			goto LA6_;
  			LA11_: ;
  			{
  				NI8 colontmp__7;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__8;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(167))) goto LA14_;
  				colontmp__7 = ((NI8) 3);
  				colontmp__8 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__7;
  				result.Field1 = colontmp__8;
  			}
  			goto LA6_;
  			LA14_: ;
  			{
  				NI8 colontmp__9;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__10;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(168))) goto LA17_;
  				colontmp__9 = ((NI8) 3);
  				colontmp__10 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  				result.Field0 = colontmp__9;
  				result.Field1 = colontmp__10;
  			}
  			goto LA6_;
  			LA17_: ;
  			{
  				NI8 colontmp__11;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__12;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(169))) goto LA20_;
  				colontmp__11 = ((NI8) 3);
  				colontmp__12 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__11;
  				result.Field1 = colontmp__12;
  			}
  			goto LA6_;
  			LA20_: ;
  			{
  				NI8 colontmp__13;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__14;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(170))) goto LA23_;
  				colontmp__13 = ((NI8) 3);
  				colontmp__14 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 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__f0oKMpJTiNSDY7xXSOHJIA colontmp__16;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(147))) goto LA30_;
  				colontmp__15 = ((NI8) 3);
  				colontmp__16 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__15;
  				result.Field1 = colontmp__16;
  			}
  			goto LA28_;
  			LA30_: ;
  			{
  				NI8 colontmp__17;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__18;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(148))) goto LA33_;
  				colontmp__17 = ((NI8) 3);
  				colontmp__18 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  				result.Field0 = colontmp__17;
  				result.Field1 = colontmp__18;
  			}
  			goto LA28_;
  			LA33_: ;
  			{
  				NI8 colontmp__19;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__20;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(149))) goto LA36_;
  				colontmp__19 = ((NI8) 3);
  				colontmp__20 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  				result.Field0 = colontmp__19;
  				result.Field1 = colontmp__20;
  			}
  			goto LA28_;
  			LA36_: ;
  			{
  				NI8 colontmp__21;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__22;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(150))) goto LA39_;
  				colontmp__21 = ((NI8) 3);
  				colontmp__22 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  				result.Field0 = colontmp__21;
  				result.Field1 = colontmp__22;
  			}
  			goto LA28_;
  			LA39_: ;
  			{
  				NI8 colontmp__23;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__24;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(151))) goto LA42_;
  				colontmp__23 = ((NI8) 3);
  				colontmp__24 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__23;
  				result.Field1 = colontmp__24;
  			}
  			goto LA28_;
  			LA42_: ;
  			{
  				NI8 colontmp__25;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__26;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(152))) goto LA45_;
  				colontmp__25 = ((NI8) 3);
  				colontmp__26 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__25;
  				result.Field1 = colontmp__26;
  			}
  			goto LA28_;
  			LA45_: ;
  			{
  				NI8 colontmp__27;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__28;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(153))) goto LA48_;
  				colontmp__27 = ((NI8) 3);
  				colontmp__28 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__27;
  				result.Field1 = colontmp__28;
  			}
  			goto LA28_;
  			LA48_: ;
  			{
  				NI8 colontmp__29;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__30;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(155))) goto LA51_;
  				colontmp__29 = ((NI8) 3);
  				colontmp__30 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__29;
  				result.Field1 = colontmp__30;
  			}
  			goto LA28_;
  			LA51_: ;
  			{
  				NI8 colontmp__31;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__32;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(158))) goto LA54_;
  				colontmp__31 = ((NI8) 3);
  				colontmp__32 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  				result.Field0 = colontmp__31;
  				result.Field1 = colontmp__32;
  			}
  			goto LA28_;
  			LA54_: ;
  			{
  				NI8 colontmp__33;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__34;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(159))) goto LA57_;
  				colontmp__33 = ((NI8) 3);
  				colontmp__34 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  				result.Field0 = colontmp__33;
  				result.Field1 = colontmp__34;
  			}
  			goto LA28_;
  			LA57_: ;
  			{
  				NI8 colontmp__35;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__36;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(160))) goto LA60_;
  				colontmp__35 = ((NI8) 3);
  				colontmp__36 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__35;
  				result.Field1 = colontmp__36;
  			}
  			goto LA28_;
  			LA60_: ;
  			{
  				NI8 colontmp__37;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__38;
  				if (!((NU8)(buf[(NI)(pos + ((NI) 2))]) == (NU8)(161))) goto LA63_;
  				colontmp__37 = ((NI8) 3);
  				colontmp__38 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 0);
  				result.Field0 = colontmp__37;
  				result.Field1 = colontmp__38;
  			}
  			goto LA28_;
  			LA63_: ;
  			LA28_: ;
  		}
  		goto LA2_;
  		LA26_: ;
  		{
  			NIM_BOOL T66_;
  			NI8 colontmp__39;
  			tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA 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__f0oKMpJTiNSDY7xXSOHJIA) 0);
  			result.Field0 = colontmp__39;
  			result.Field1 = colontmp__40;
  		}
  		goto LA2_;
  		LA68_: ;
  		LA2_: ;
  	}
  	break;
  	case 194:
  	{
  		{
  			NI8 colontmp__41;
  			tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__42;
  			if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(177))) goto LA73_;
  			colontmp__41 = ((NI8) 2);
  			colontmp__42 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 1);
  			result.Field0 = colontmp__41;
  			result.Field1 = colontmp__42;
  		}
  		LA73_: ;
  	}
  	break;
  	case 195:
  	{
  		{
  			NI8 colontmp__43;
  			tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA colontmp__44;
  			if (!((NU8)(buf[(NI)(pos + ((NI) 1))]) == (NU8)(151))) goto LA78_;
  			colontmp__43 = ((NI8) 2);
  			colontmp__44 = ((tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA) 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)((NU32)(h_2) + (NU32)((NU)((NU32)(h_2) << (NU32)(((NI) 3)))));
  	res = (NU)(res ^ (NU)((NU32)(res) >> (NU32)(((NI) 11))));
  	res = (NU)((NU32)(res) + (NU32)((NU)((NU32)(res) << (NU32)(((NI) 15)))));
  	result = ((NI) (res));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, getSymbol__lexer_1229)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_10));
  					goto LA1;
  				}
  				LA8_: ;
  				pos += ((NI) 1);
  				suspicious = NIM_TRUE;
  			}
  			break;
  			case 128 ... 255:
  			{
  				{
  					NIM_BOOL T13_;
  					NIM_BOOL T14_;
  					tyTuple__eYjXpYmwoditlWZaGvgooQ 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__01UoAKYz1MxZiuG1X2VhNQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 2);
  	}
  	goto LA22_;
  	LA26_: ;
  	{
  		(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) ((NI)((*(*tok).ident).id + ((NI) 2))));
  		{
  			NIM_BOOL T31_;
  			NimStringDesc* mX60gensym144_;
  			tyArray__24KAM9afIUgUaqBaEBB6r9bg T35_;
  			tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msgX60gensym144_;
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T43_;
  			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__4JpEWnGrmRM8CRqL3P2O1Q_11), T35_, 3);
  			{
  				NIM_BOOL T38_;
  				T38_ = (NIM_BOOL)0;
  				T38_ = (((*(*L).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 15))&63U)))!=0);
  				if (!(T38_)) goto LA39_;
  				T38_ = NIM_TRUE;
  				LA39_: ;
  				if (!T38_) goto LA40_;
  				msgX60gensym144_ = ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14);
  			}
  			goto LA36_;
  			LA40_: ;
  			{
  				msgX60gensym144_ = ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 87);
  			}
  			LA36_: ;
  			T43_ = getLineInfo__lexer_314((&(*L)));
  			liMessage__msgs_1118((*L).config, T43_, msgX60gensym144_, mX60gensym144_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__4JpEWnGrmRM8CRqL3P2O1Q_12, NIM_FALSE);
  		}
  		LA33_: ;
  	}
  	LA22_: ;
  	(*L).Sup.bufpos = pos;
  }
  static N_INLINE(void, endOperator__lexer_1315)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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__5VVBIL7Ozj1cc9akK23jAGQ) 110);
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) ((NI)((NI)((*(*tok).ident).id - ((NI) 67)) + ((NI) 104))));
  	}
  	LA1_: ;
  	(*L).Sup.bufpos = pos;
  }
  N_LIB_PRIVATE N_NIMCALL(void, getOperator__lexer_1324)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
  	NI pos;
  	NI h;
  	pos = (*L).Sup.bufpos;
  	h = ((NI) 0);
  	{
  		while (1) {
  			NIM_CHAR c;
  			c = (*L).Sup.buf[pos];
  			{
  				if (!((TM__4JpEWnGrmRM8CRqL3P2O1Q_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__eYjXpYmwoditlWZaGvgooQ 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__01UoAKYz1MxZiuG1X2VhNQ) 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_1315(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_1490)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
  	NI pos;
  	NI toStrip;
  	NIM_BOOL stripInit;
  {	pos = (*L).Sup.bufpos;
  	(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111);
  	(*tok).iNumber = IL64(0);
  	{
  		if (!((NU8)((*L).Sup.buf[(NI)(pos + ((NI) 2))]) == (NU8)(91))) goto LA3_;
  		skipMultiLineComment__lexer_1409(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__4JpEWnGrmRM8CRqL3P2O1Q_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_781)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, NI* xi, NI position) {
  	switch (((NU8)((*L).Sup.buf[(*L).Sup.bufpos]))) {
  	case 48 ... 57:
  	{
  		(*xi) = (NI)((NI)((NU32)((*xi)) << (NU32)(((NI) 4))) | (NI)(((NU8)((*L).Sup.buf[(*L).Sup.bufpos])) - ((NI) 48)));
  		(*L).Sup.bufpos += ((NI) 1);
  	}
  	break;
  	case 97 ... 102:
  	{
  		(*xi) = (NI)((NI)((NU32)((*xi)) << (NU32)(((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)((NU32)((*xi)) << (NU32)(((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__4JpEWnGrmRM8CRqL3P2O1Q_17));
  appendChar(T9_, (*L).Sup.buf[(*L).Sup.bufpos]);
  appendString(T9_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_18));
  			lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), 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__4JpEWnGrmRM8CRqL3P2O1Q_17));
  appendChar(T15_, (*L).Sup.buf[(*L).Sup.bufpos]);
  appendString(T15_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_18));
  		lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T15_);
  		(*L).Sup.bufpos += ((NI) 1);
  	}
  	break;
  	}
  }
  static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_865)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA 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__EE5dzjqoOrHT6HJhIPXAvA, dotdot___pureZunicode_840)(NI a, NI b) {
  	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
  	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
  	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 (!((NU32)(i_2) <= (NU32)(((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 (!((NU32)(i_2) <= (NU32)(((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)((NU32)(i_2) >> (NU32)(((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 (!((NU32)(i_2) <= (NU32)(((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)((NU32)(i_2) >> (NU32)(((NI) 12))) | ((NU) 224))))));
  		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((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 (!((NU32)(i_2) <= (NU32)(((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)((NU32)(i_2) >> (NU32)(((NI) 18))) | ((NU) 240))))));
  		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((NI) 12))) & ((NU) 63)) | ((NU) 128))))));
  		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((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 (!((NU32)(i_2) <= (NU32)(((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)((NU32)(i_2) >> (NU32)(((NI) 24))) | ((NU) 248))))));
  		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((NI) 18))) & ((NU) 63)) | ((NU) 128))))));
  		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((NI) 12))) & ((NU) 63)) | ((NU) 128))))));
  		(*s)->data[(NI)(pos + ((NI) 3))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((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 (!((NU32)(i_2) <= (NU32)(((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)((NU32)(i_2) >> (NU32)(((NI) 30))) | ((NU) 252))))));
  		(*s)->data[(NI)(pos + ((NI) 1))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((NI) 24))) & ((NU) 63)) | ((NU) 128))))));
  		(*s)->data[(NI)(pos + ((NI) 2))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((NI) 18))) & ((NU) 63)) | ((NU) 128))))));
  		(*s)->data[(NI)(pos + ((NI) 3))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((NI) 12))) & ((NU) 63)) | ((NU) 128))))));
  		(*s)->data[(NI)(pos + ((NI) 4))] = ((NIM_CHAR) (((NI) ((NU)((NU)((NU)((NU32)(i_2) >> (NU32)(((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_352)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* 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__JC9bQ4bKzkuzV9bdqS4ju8yw* 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__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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__5VVBIL7Ozj1cc9akK23jAGQ) 88))) goto LA5_;
  			lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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_781(L, (&xi), ((NI) 1));
  		handleHexChar__lexer_781(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__5VVBIL7Ozj1cc9akK23jAGQ) 88))) goto LA21_;
  			lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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_781(L, (&xi_2), ((NI) 0));
  				} LA28: ;
  			}
  			{
  				if (!(start == (*L).Sup.bufpos)) goto LA31_;
  				lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_20));
  			}
  			LA31_: ;
  			(*L).Sup.bufpos += ((NI) 1);
  			{
  				NimStringDesc* hex;
  				NimStringDesc* T37_;
  				tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA 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__4JpEWnGrmRM8CRqL3P2O1Q_21));
  appendString(T39_, hex);
  				lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T39_);
  			}
  			LA35_: ;
  		}
  		goto LA23_;
  		LA25_: ;
  		{
  			handleHexChar__lexer_781(L, (&xi_2), ((NI) 1));
  			handleHexChar__lexer_781(L, (&xi_2), ((NI) 2));
  			handleHexChar__lexer_781(L, (&xi_2), ((NI) 3));
  			handleHexChar__lexer_781(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_352((&(*L)), 48, TM__4JpEWnGrmRM8CRqL3P2O1Q_22);
  			if (!T44_) goto LA45_;
  			lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 17), ((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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_23));
  		}
  		LA47_: ;
  	}
  	break;
  	default:
  	{
  		lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_23));
  	}
  	break;
  	}
  }
  N_LIB_PRIVATE N_NIMCALL(void, getString__lexer_1097)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyEnum_StringMode__nSovsy4OWY2URVkgcoWPUQ 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__4JpEWnGrmRM8CRqL3P2O1Q_8));
  				}
  				break;
  				case 0:
  				{
  					NI line2;
  					line2 = (*L).Sup.lineNumber;
  					(*L).Sup.lineNumber = line;
  					lexMessagePos__lexer_346(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), (*L).Sup.lineStart, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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__nSovsy4OWY2URVkgcoWPUQ) 0)))) goto LA34_;
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 84);
  		}
  		goto LA32_;
  		LA34_: ;
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__nSovsy4OWY2URVkgcoWPUQ) 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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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__nSovsy4OWY2URVkgcoWPUQ) 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__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_28)));
  			(*L).Sup.bufpos = (NI)(startPos + ((NI) 1));
  		}
  		goto LA9_;
  		LA13_: ;
  		{
  			lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_29));
  		}
  		LA9_: ;
  	}
  	LA4_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, matchChars__lexer_411)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_424)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, NimStringDesc* msg, NI startpos, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msgKind) {
  	NI msgPos;
  	tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA t;
  	NimStringDesc* T11_;
  	msgPos = (*L).Sup.bufpos;
  	nimZeroMem((void*)(&t), sizeof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA));
  	t.literal = ((NimStringDesc*) NIM_NIL);
  	(*L).Sup.bufpos = startpos;
  	matchChars__lexer_411(L, (&t), TM__4JpEWnGrmRM8CRqL3P2O1Q_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_411(L, (&t), TM__4JpEWnGrmRM8CRqL3P2O1Q_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_411(L, (&t), TM__4JpEWnGrmRM8CRqL3P2O1Q_22);
  	}
  	LA9_: ;
  	(*L).Sup.bufpos = msgPos;
  	T11_ = NIM_NIL;
  	T11_ = nsuFormatSingleElem(msg, t.literal);
  	lexMessage__lexer_336((&(*L)), msgKind, T11_);
  }
  N_LIB_PRIVATE N_NIMCALL(NI, matchUnderscoreChars__lexer_385)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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_1735)(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_1735(((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)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	NI T1_;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = (NI)0;
  	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
  	return result;
  }
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5264((&gch__system_5217.zct), c);
  }
  static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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_5313(c);
  	}
  	LA4_: ;
  }
  static N_INLINE(void, asgnRef)(void** dest, void* src) {
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
  		if (!!((src == NIM_NIL))) goto LA3_;
  		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T5_ = usrToCell__system_5270(src);
  		incRef__system_5308(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5270((*dest));
  		decRef__system_5315(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_382)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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__5VVBIL7Ozj1cc9akK23jAGQ) 69);
  	unsureAsgnRef((void**) (&(*result).literal), ((NimStringDesc*) NIM_NIL));
  	(*result).base = ((tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog) 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_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_31), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 20));
  			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 99));
  			(*L).Sup.bufpos += ((NI) 1);
  			T12_ = (NI)0;
  			T12_ = matchUnderscoreChars__lexer_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_33);
  			numDigits = ((NI) (T12_));
  		}
  		break;
  		case 79:
  		{
  			lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_34), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  		}
  		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_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_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_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_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_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_36);
  			numDigits = ((NI) (T19_));
  		}
  		break;
  		default:
  		{
  			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T21_;
  			T21_ = getLineInfo__lexer_314((&(*L)));
  			internalErrorImpl__msgs_1431((*L).config, T21_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_37), TM__4JpEWnGrmRM8CRqL3P2O1Q_38);
  		}
  		break;
  		}
  		{
  			if (!(numDigits == ((NI) 0))) goto LA24_;
  			lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_39), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  		}
  		LA24_: ;
  	}
  	goto LA5_;
  	LA9_: ;
  	{
  		NI T27_;
  		T27_ = (NI)0;
  		T27_ = matchUnderscoreChars__lexer_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_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__5VVBIL7Ozj1cc9akK23jAGQ) 79);
  			unsureAsgnRef((void**) (&(*result).literal), addChar((*result).literal, 46));
  			(*L).Sup.bufpos += ((NI) 1);
  			T34_ = (NI)0;
  			T34_ = matchUnderscoreChars__lexer_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_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__5VVBIL7Ozj1cc9akK23jAGQ) 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_385(L, result, TM__4JpEWnGrmRM8CRqL3P2O1Q_22);
  			(void)(T43_);
  		}
  		LA37_: ;
  	}
  	LA5_: ;
  	endpos = (*L).Sup.bufpos;
  	postPos = endpos;
  	{
  		NI errPos;
  		NIM_BOOL customLitPossible;
  		if (!((TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_42))) goto LA62_;
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_48))) goto LA67_;
  break;
  			case 2: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_45))) goto LA64_;
  break;
  			case 3: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_53))) goto LA72_;
  break;
  			case 5: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_43))) goto LA63_;
  break;
  			case 6: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_44))) goto LA63_;
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_52))) goto LA71_;
  break;
  			case 7: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_47))) goto LA66_;
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_51))) goto LA70_;
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_54))) goto LA73_;
  break;
  			case 9: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_50))) goto LA69_;
  break;
  			case 10: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_46))) goto LA65_;
  break;
  			case 13: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_49))) goto LA68_;
  break;
  			case 14: 
  if (eqStrings(suffixAsLower, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_41))) goto LA62_;
  break;
  			}
  			goto LA74_;
  			LA62_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 80);
  			}
  			goto LA75_;
  			LA63_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 81);
  			}
  			goto LA75_;
  			LA64_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 82);
  			}
  			goto LA75_;
  			LA65_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 70);
  			}
  			goto LA75_;
  			LA66_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 71);
  			}
  			goto LA75_;
  			LA67_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 72);
  			}
  			goto LA75_;
  			LA68_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 73);
  			}
  			goto LA75_;
  			LA69_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 74);
  			}
  			goto LA75_;
  			LA70_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 75);
  			}
  			goto LA75_;
  			LA71_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 76);
  			}
  			goto LA75_;
  			LA72_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 77);
  			}
  			goto LA75_;
  			LA73_: ;
  			{
  				(*result).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 89);
  				}
  				goto LA89_;
  				LA91_: ;
  				{
  					lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_55), errPos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  				}
  				LA89_: ;
  			}
  			LA75_: ;
  		}
  		goto LA52_;
  		LA54_: ;
  		{
  			lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_55), errPos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  		}
  		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_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_39), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  	}
  	LA101_: ;
  	{
  		NI volatile pos;
  		TSafePoint TM__4JpEWnGrmRM8CRqL3P2O1Q_56;
  		if (!!(((*result).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89)))) goto LA105_;
  		(*L).Sup.bufpos = startpos;
  		pos = startpos;
  		pushSafePoint(&TM__4JpEWnGrmRM8CRqL3P2O1Q_56);
  		TM__4JpEWnGrmRM8CRqL3P2O1Q_56.status = _setjmp(TM__4JpEWnGrmRM8CRqL3P2O1Q_56.context);
  		if (TM__4JpEWnGrmRM8CRqL3P2O1Q_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__thnLAz9aJwaXPrSfSppUBog) 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__thnLAz9aJwaXPrSfSppUBog) 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__thnLAz9aJwaXPrSfSppUBog) 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__WGx4rAexNXnczy1Avn646Q T136_;
  				T136_ = getLineInfo__lexer_314((&(*L)));
  				internalErrorImpl__msgs_1431((*L).config, T136_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_37), TM__4JpEWnGrmRM8CRqL3P2O1Q_57);
  			}
  			break;
  			}
  			switch ((*result).tokType) {
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69):
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 73):
  			{
  				{
  					if (!isPositive) goto LA140_;
  					(*result).iNumber = xi;
  				}
  				goto LA138_;
  				LA140_: ;
  				{
  					(*result).iNumber = -(xi);
  				}
  				LA138_: ;
  			}
  			break;
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 74):
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 78):
  			{
  				{
  					if (!isPositive) goto LA164_;
  					(*result).iNumber = xi;
  				}
  				goto LA162_;
  				LA164_: ;
  				{
  					(*result).iNumber = -(xi);
  				}
  				LA162_: ;
  			}
  			break;
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 81):
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 79):
  			{
  				{
  					if (!isPositive) goto LA195_;
  					(*result).fNumber = (*((NF*) ((&xi))));
  				}
  				goto LA193_;
  				LA195_: ;
  				{
  					(*result).fNumber = -((*((NF*) ((&xi)))));
  				}
  				LA193_: ;
  			}
  			break;
  			default:
  			{
  				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T199_;
  				T199_ = getLineInfo__lexer_314((&(*L)));
  				internalErrorImpl__msgs_1431((*L).config, T199_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_37), TM__4JpEWnGrmRM8CRqL3P2O1Q_58);
  			}
  			break;
  			}
  			{
  				NIM_BOOL outOfRange;
  				if (!!(((*result).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 79) || (*result).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 80) || (*result).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 81) || (*result).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 82)))) goto LA202_;
  				switch ((*result).tokType) {
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 75):
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 76):
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 77):
  				{
  					outOfRange = !(((*result).iNumber == xi));
  				}
  				break;
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 70):
  				{
  					outOfRange = (IL64(255) < xi);
  				}
  				break;
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 71):
  				{
  					outOfRange = (IL64(65535) < xi);
  				}
  				break;
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 72):
  				{
  					outOfRange = (IL64(4294967295) < xi);
  				}
  				break;
  				default:
  				{
  					outOfRange = NIM_FALSE;
  				}
  				break;
  				}
  				{
  					if (!outOfRange) goto LA211_;
  					lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_59), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  				}
  				LA211_: ;
  			}
  			LA202_: ;
  		}
  		goto LA107_;
  		LA111_: ;
  		{
  			NIM_BOOL outOfRange_2;
  			switch ((*result).tokType) {
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 79) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 82):
  			{
  				(*result).fNumber = nsuParseFloat((*result).literal);
  			}
  			break;
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 78):
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 74):
  			{
  				NU64 iNumber;
  				NI volatile len;
  				TSafePoint TM__4JpEWnGrmRM8CRqL3P2O1Q_60;
  				iNumber = (NU64)0;
  				len = (NI)0;
  				pushSafePoint(&TM__4JpEWnGrmRM8CRqL3P2O1Q_60);
  				TM__4JpEWnGrmRM8CRqL3P2O1Q_60.status = _setjmp(TM__4JpEWnGrmRM8CRqL3P2O1Q_60.context);
  				if (TM__4JpEWnGrmRM8CRqL3P2O1Q_60.status == 0) {
  				len = npuParseBiggestUInt((*result).literal, (&iNumber), ((NI) 0));
  				popSafePoint();
  				}
  				else {
  					popSafePoint();
  					if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_))) {
  						tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* T218_;
  						NimStringDesc* T219_;
  						TM__4JpEWnGrmRM8CRqL3P2O1Q_60.status = 0;
  						T218_ = NIM_NIL;
  						T218_ = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*) newObj((&NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_), sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ));
  						(*T218_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
  						(*T218_).Sup.Sup.Sup.name = "OverflowDefect";
  						T219_ = NIM_NIL;
  						T219_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 21);
  appendString(T219_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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", 539);
  						popCurrentException();
  					}
  				}
  				if (TM__4JpEWnGrmRM8CRqL3P2O1Q_60.status != 0) reraiseException();
  				{
  					tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T224_;
  					NimStringDesc* T225_;
  					if (!!((len == ((*result).literal ? (*result).literal->Sup.len : 0)))) goto LA222_;
  					T224_ = NIM_NIL;
  					T224_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
  					(*T224_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
  					(*T224_).Sup.Sup.name = "ValueError";
  					T225_ = NIM_NIL;
  					T225_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 17);
  appendString(T225_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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", 541);
  				}
  				LA222_: ;
  				(*result).iNumber = ((NI64) (iNumber));
  			}
  			break;
  			default:
  			{
  				NI64 iNumber_2;
  				NI volatile len_2;
  				TSafePoint TM__4JpEWnGrmRM8CRqL3P2O1Q_63;
  				iNumber_2 = (NI64)0;
  				len_2 = (NI)0;
  				pushSafePoint(&TM__4JpEWnGrmRM8CRqL3P2O1Q_63);
  				TM__4JpEWnGrmRM8CRqL3P2O1Q_63.status = _setjmp(TM__4JpEWnGrmRM8CRqL3P2O1Q_63.context);
  				if (TM__4JpEWnGrmRM8CRqL3P2O1Q_63.status == 0) {
  				len_2 = npuParseBiggestInt((*result).literal, (&iNumber_2), ((NI) 0));
  				popSafePoint();
  				}
  				else {
  					popSafePoint();
  					if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_))) {
  						tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* T229_;
  						NimStringDesc* T230_;
  						TM__4JpEWnGrmRM8CRqL3P2O1Q_63.status = 0;
  						T229_ = NIM_NIL;
  						T229_ = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*) newObj((&NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_), sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ));
  						(*T229_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
  						(*T229_).Sup.Sup.Sup.name = "OverflowDefect";
  						T230_ = NIM_NIL;
  						T230_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 21);
  appendString(T230_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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", 549);
  						popCurrentException();
  					}
  				}
  				if (TM__4JpEWnGrmRM8CRqL3P2O1Q_63.status != 0) reraiseException();
  				{
  					tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T235_;
  					NimStringDesc* T236_;
  					if (!!((len_2 == ((*result).literal ? (*result).literal->Sup.len : 0)))) goto LA233_;
  					T235_ = NIM_NIL;
  					T235_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
  					(*T235_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
  					(*T235_).Sup.Sup.name = "ValueError";
  					T236_ = NIM_NIL;
  					T236_ = rawNewString(((*result).literal ? (*result).literal->Sup.len : 0) + 17);
  appendString(T236_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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", 551);
  				}
  				LA233_: ;
  				(*result).iNumber = iNumber_2;
  			}
  			break;
  			}
  			switch ((*result).tokType) {
  			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_59), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  			}
  			LA258_: ;
  		}
  		LA107_: ;
  		{
  			if (!((*result).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 73);
  			}
  			LA268_: ;
  		}
  		LA262_: ;
  		popSafePoint();
  		}
  		else {
  			popSafePoint();
  			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_))) {
  				TM__4JpEWnGrmRM8CRqL3P2O1Q_56.status = 0;
  				lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_39), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  				popCurrentException();
  			}
  			else 			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_))) {
  				TM__4JpEWnGrmRM8CRqL3P2O1Q_56.status = 0;
  				lexMessageLitNum__lexer_424(L, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_59), startpos, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14));
  				popCurrentException();
  			}
  		}
  		if (TM__4JpEWnGrmRM8CRqL3P2O1Q_56.status != 0) reraiseException();
  	}
  	LA105_: ;
  	(*L).Sup.bufpos = postPos;
  }
  N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__lexer_1588)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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_1552(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__eYjXpYmwoditlWZaGvgooQ T16_;
  				T14_ = (NIM_BOOL)0;
  				T14_ = (((*(*L).config).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 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_1324(L, tok);
  			}
  			goto LA12_;
  			LA17_: ;
  			{
  				getSymbol__lexer_1229(L, tok);
  			}
  			LA12_: ;
  		}
  		break;
  		case 35:
  		{
  			scanComment__lexer_1490(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__4JpEWnGrmRM8CRqL3P2O1Q_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_1315(L, tok, (NI)((*L).Sup.bufpos + ((NI) 1)), h);
  			}
  			goto LA22_;
  			LA26_: ;
  			{
  				getOperator__lexer_1324(L, tok);
  			}
  			LA22_: ;
  		}
  		break;
  		case 44:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__nSovsy4OWY2URVkgcoWPUQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 100);
  				(*L).Sup.bufpos += ((NI) 1);
  			}
  			goto LA37_;
  			LA41_: ;
  			{
  				(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90);
  			}
  			LA37_: ;
  		}
  		break;
  		case 41:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 109);
  				(*L).Sup.bufpos += ((NI) 1);
  			}
  			goto LA46_;
  			LA53_: ;
  			{
  				(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92);
  			}
  			LA46_: ;
  		}
  		break;
  		case 93:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 101);
  				(*L).Sup.bufpos += ((NI) 2);
  			}
  			goto LA58_;
  			LA66_: ;
  			{
  				getOperator__lexer_1324(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__5VVBIL7Ozj1cc9akK23jAGQ) 98);
  				(*L).Sup.bufpos += ((NI) 1);
  			}
  			goto LA70_;
  			LA74_: ;
  			{
  				(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94);
  			}
  			LA70_: ;
  		}
  		break;
  		case 125:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95);
  			(*L).Sup.bufpos += ((NI) 1);
  		}
  		break;
  		case 59:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103);
  			(*L).Sup.bufpos += ((NI) 1);
  		}
  		break;
  		case 96:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__5VVBIL7Ozj1cc9akK23jAGQ) 2);
  				unsureAsgnRef((void**) (&(*tok).ident), getIdent__idents_143((*L).cache, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_24)));
  			}
  			goto LA81_;
  			LA83_: ;
  			{
  				NimStringDesc* T86_;
  				NimStringDesc* T87_;
  				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
  				(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__4JpEWnGrmRM8CRqL3P2O1Q_25));
  appendChar(T86_, c);
  appendString(T86_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_26));
  appendString(T86_, T87_);
  appendChar(T86_, 41);
  				lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T86_);
  			}
  			LA81_: ;
  		}
  		break;
  		case 34:
  		{
  			tyEnum_StringMode__nSovsy4OWY2URVkgcoWPUQ 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__nSovsy4OWY2URVkgcoWPUQ) 2);
  			}
  			goto LA89_;
  			LA93_: ;
  			{
  				mode = ((tyEnum_StringMode__nSovsy4OWY2URVkgcoWPUQ) 0);
  			}
  			LA89_: ;
  			getString__lexer_1097(L, tok, mode);
  			{
  				if (!(mode == ((tyEnum_StringMode__nSovsy4OWY2URVkgcoWPUQ) 2))) goto LA98_;
  				(*tok).tokType += ((NI) 2);
  			}
  			LA98_: ;
  		}
  		break;
  		case 39:
  		{
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88);
  			getCharacter__lexer_1172(L, tok);
  			(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88);
  		}
  		break;
  		case 48 ... 57:
  		{
  			NIM_CHAR c_2;
  			getNumber__lexer_382(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__eYjXpYmwoditlWZaGvgooQ 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__01UoAKYz1MxZiuG1X2VhNQ) 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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_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_382(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__eYjXpYmwoditlWZaGvgooQ 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__01UoAKYz1MxZiuG1X2VhNQ) 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_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_64));
  					}
  					LA129_: ;
  				}
  				LA127_: ;
  			}
  			goto LA117_;
  			LA123_: ;
  			{
  				getOperator__lexer_1324(L, tok);
  			}
  			LA117_: ;
  		}
  		break;
  		default:
  		{
  			{
  				if (!((TM__4JpEWnGrmRM8CRqL3P2O1Q_13[(NU)(((NU8)(c)))>>3] &(1U<<((NU)(((NU8)(c)))&7U)))!=0)) goto LA143_;
  				getOperator__lexer_1324(L, tok);
  			}
  			goto LA141_;
  			LA143_: ;
  			{
  				if (!((NU8)(c) == (NU8)(0))) goto LA146_;
  				(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1);
  				(*tok).indent = ((NI) 0);
  			}
  			goto LA141_;
  			LA146_: ;
  			{
  				NimStringDesc* T149_;
  				NimStringDesc* T150_;
  				unsureAsgnRef((void**) (&(*tok).literal), nimCharToStr(c));
  				(*tok).tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__4JpEWnGrmRM8CRqL3P2O1Q_25));
  appendChar(T149_, c);
  appendString(T149_, ((NimStringDesc*) &TM__4JpEWnGrmRM8CRqL3P2O1Q_26));
  appendString(T149_, T150_);
  appendChar(T149_, 41);
  				lexMessage__lexer_336((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T149_);
  				(*L).Sup.bufpos += ((NI) 1);
  			}
  			LA141_: ;
  		}
  		break;
  		}
  	}
  	LA6_: ;
  }
  static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* 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__sNMaWRTImjqfh1DU9cmdQkA* tok) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	switch ((*tok).tokType) {
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 73):
  	{
  		result = dollar___systemZdollars_6((*tok).iNumber);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 79) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 81):
  	{
  		result = dollar___system_3118((*tok).fNumber);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 0):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 83) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
  	{
  		result = copyString((*tok).literal);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
  	{
  		result = reprEnum((NI)(*tok).tokType, (&NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_));
  	}
  	break;
  	default:
  	{
  		{
  			NIM_BOOL T8_;
  			T8_ = (NIM_BOOL)0;
  			T8_ = eqeq___idents_220((*tok).ident, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) 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__JC9bQ4bKzkuzV9bdqS4ju8yw* lex) {
  	{
  		if (!!(((*lex).config == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL)))) goto LA3_;
  		(*(*lex).config).linesCompiled += (*lex).Sup.lineNumber;
  	}
  	LA3_: ;
  	closeBaseLexer__nimlexbase_29(&lex->Sup);
  }
  N_LIB_PRIVATE N_NIMCALL(void, lexMessageTok__lexer_340)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, NimStringDesc* arg) {
  	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
  	info = newLineInfo__msgs_381((*L).fileIdx, (*tok).line, (*tok).col);
  	dispMessage__lexer_326(L, info, msg, arg);
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__lexer_196)(tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ kind) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T1_ = (((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 3) <= kind);
  	if (!(T1_)) goto LA2_;
  	T1_ = (kind <= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 68));
  	LA2_: ;
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prettyTok__lexer_239)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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__4JpEWnGrmRM8CRqL3P2O1Q_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_7361)(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_1374)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
  	NI result;
  {	result = (NI)0;
  	switch ((*tok).tokType) {
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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_7361((&(*(*tok).ident).s), ((NI) 1));
  			T5_ = ((NU8)((*T7_)) == (NU8)(62));
  			LA6_: ;
  			T4_ = T5_;
  			if (!(T4_)) goto LA8_;
  			T9_ = (NIM_CHAR*)0;
  			T9_ = X5BX5D___system_7361((&(*(*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_7361((&(*(*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_7361((&(*(*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_7361((&(*(*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_7361((&(*(*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_7361((&(*(*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_7361((&(*(*tok).ident).s), ((NI) 1));
  				if (!((NU8)((*T53_)) == (NU8)(61))) goto LA54_;
  				result = ((NI) 1);
  			}
  			goto LA51_;
  			LA54_: ;
  			{
  				tyTuple__eYjXpYmwoditlWZaGvgooQ T57_;
  				NI8 len;
  				tyEnum_UnicodeOprPred__f0oKMpJTiNSDY7xXSOHJIA 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__f0oKMpJTiNSDY7xXSOHJIA) 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_7361((&(*(*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__5VVBIL7Ozj1cc9akK23jAGQ) 19):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 43):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 56):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 57):
  	{
  		result = ((NI) 9);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108):
  	{
  		result = ((NI) 6);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 46):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 36):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 37):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 5):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 29):
  	{
  		result = ((NI) 5);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 4):
  	{
  		result = ((NI) 4);
  	}
  	break;
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 49):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 67):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 52):
  	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 54):
  	{
  		result = ((NI) 3);
  	}
  	break;
  	default:
  	{
  		result = ((NI) -10);
  		goto BeforeRet_;
  	}
  	break;
  	}
  	}BeforeRet_: ;
  	return result;
  }
  static N_INLINE(NIM_BOOL, contains__pureZtimes_2291)(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA 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_1792)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident) {
  	NI result;
  	tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA tok;
  	result = (NI)0;
  	nimZeroMem((void*)(&tok), sizeof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA));
  	initToken__lexer_248((&tok));
  	tok.ident = ident;
  	{
  		tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T3_;
  		NIM_BOOL T4_;
  		T3_ = dotdot___pureZunicode_840(((NI) 1), ((NI) 66));
  		T4_ = (NIM_BOOL)0;
  		T4_ = contains__pureZtimes_2291(T3_, (*tok.ident).id);
  		if (!T4_) goto LA5_;
  		tok.tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) ((NI)((*tok.ident).id + ((NI) 2))));
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		tok.tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110);
  	}
  	LA1_: ;
  	result = getPrecedence__lexer_1374((&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, compiler_lexerDatInit000)(void) {
  static TNimNode* TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[8];
  static TNimNode* TM__4JpEWnGrmRM8CRqL3P2O1Q_3_2[2];
  static TNimNode* TM__4JpEWnGrmRM8CRqL3P2O1Q_66_119[119];
  NI TM__4JpEWnGrmRM8CRqL3P2O1Q_68;
  static char* NIM_CONST TM__4JpEWnGrmRM8CRqL3P2O1Q_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__4JpEWnGrmRM8CRqL3P2O1Q_69_11[11];
  static TNimNode* TM__4JpEWnGrmRM8CRqL3P2O1Q_70_4[4];
  NI TM__4JpEWnGrmRM8CRqL3P2O1Q_72;
  static char* NIM_CONST TM__4JpEWnGrmRM8CRqL3P2O1Q_71[4] = {
  "base10", 
  "base2", 
  "base8", 
  "base16"};
  static TNimNode TM__4JpEWnGrmRM8CRqL3P2O1Q_0[149];
  NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_.size = sizeof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw);
  NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_.align = NIM_ALIGNOF(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw);
  NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_.kind = 17;
  NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_.base = (&NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[0] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[1];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[1].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[1].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, fileIdx);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[1].typ = (&NTIint5150__sVg18TP9cLifHyygRe9cro9aA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[1].name = "fileIdx";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[1] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[2];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[2].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[2].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, indentAhead);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[2].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[2].name = "indentAhead";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[2] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[3];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[3].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[3].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, currLineIndent);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[3].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[3].name = "currLineIndent";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[3] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[4];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[4].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[4].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, strongSpaces);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[4].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[4].name = "strongSpaces";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[4] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[5];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[5].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[5].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, allowTabs);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[5].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[5].name = "allowTabs";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[5] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[6];
  NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
  NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_.align = NIM_ALIGNOF(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
  NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_.kind = 18;
  NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_.base = 0;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_3_2[0] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[8];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[8].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[8].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[8].typ = (&NTIpointer__vr5DoT1jILTGdRlYv1OYpw_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[8].name = "Field0";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_3_2[1] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[9];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[9].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[9].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field1);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[9].typ = (&NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[9].name = "Field1";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[7].len = 2; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[7].kind = 2; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[7].sons = &TM__4JpEWnGrmRM8CRqL3P2O1Q_3_2[0];
  NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_.node = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[7];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[6].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[6].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, errorHandler);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[6].typ = (&NTIerrorhandler__pIuD7iLYdwrBMntVRm61ZA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[6].name = "errorHandler";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[6] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[10];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[10].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[10].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, cache);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[10].typ = (&NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[10].name = "cache";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[7] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[11];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[11].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[11].offset = offsetof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw, config);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[11].typ = (&NTIconfigref__a8lycfSA25OQltN3OMeBsA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[11].name = "config";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[0].len = 8; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[0].kind = 2; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[0].sons = &TM__4JpEWnGrmRM8CRqL3P2O1Q_2_8[0];
  NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_.node = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[0];
  NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_.size = sizeof(tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ);
  NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_.align = NIM_ALIGNOF(tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ);
  NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_.kind = 14;
  NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_.base = 0;
  NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_.flags = 3;
  for (TM__4JpEWnGrmRM8CRqL3P2O1Q_68 = 0; TM__4JpEWnGrmRM8CRqL3P2O1Q_68 < 119; TM__4JpEWnGrmRM8CRqL3P2O1Q_68++) {
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_68+12].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_68+12].offset = TM__4JpEWnGrmRM8CRqL3P2O1Q_68;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_68+12].name = TM__4JpEWnGrmRM8CRqL3P2O1Q_67[TM__4JpEWnGrmRM8CRqL3P2O1Q_68];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_66_119[TM__4JpEWnGrmRM8CRqL3P2O1Q_68] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_68+12];
  }
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[131].len = 119; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[131].kind = 2; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[131].sons = &TM__4JpEWnGrmRM8CRqL3P2O1Q_66_119[0];
  NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_.node = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[131];
  NTItoken__sNMaWRTImjqfh1DU9cmdQkA_.size = sizeof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA);
  NTItoken__sNMaWRTImjqfh1DU9cmdQkA_.align = NIM_ALIGNOF(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA);
  NTItoken__sNMaWRTImjqfh1DU9cmdQkA_.kind = 18;
  NTItoken__sNMaWRTImjqfh1DU9cmdQkA_.base = 0;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[0] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[133];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[133].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[133].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, tokType);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[133].typ = (&NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[133].name = "tokType";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[1] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[134];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[134].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[134].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, indent);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[134].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[134].name = "indent";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[2] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[135];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[135].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[135].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, ident);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[135].typ = (&NTIpident__EiGmNYVHiKeimIyQkW82mg_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[135].name = "ident";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[3] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[136];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[136].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[136].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, iNumber);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[136].typ = (&NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[136].name = "iNumber";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[4] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[137];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[137].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[137].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, fNumber);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[137].typ = (&NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[137].name = "fNumber";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[5] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[138];
  NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_.size = sizeof(tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog);
  NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_.align = NIM_ALIGNOF(tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog);
  NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_.kind = 14;
  NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_.base = 0;
  NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_.flags = 3;
  for (TM__4JpEWnGrmRM8CRqL3P2O1Q_72 = 0; TM__4JpEWnGrmRM8CRqL3P2O1Q_72 < 4; TM__4JpEWnGrmRM8CRqL3P2O1Q_72++) {
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_72+139].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_72+139].offset = TM__4JpEWnGrmRM8CRqL3P2O1Q_72;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_72+139].name = TM__4JpEWnGrmRM8CRqL3P2O1Q_71[TM__4JpEWnGrmRM8CRqL3P2O1Q_72];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_70_4[TM__4JpEWnGrmRM8CRqL3P2O1Q_72] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[TM__4JpEWnGrmRM8CRqL3P2O1Q_72+139];
  }
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[143].len = 4; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[143].kind = 2; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[143].sons = &TM__4JpEWnGrmRM8CRqL3P2O1Q_70_4[0];
  NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_.node = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[143];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[138].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[138].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, base);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[138].typ = (&NTInumericalbase__thnLAz9aJwaXPrSfSppUBog_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[138].name = "base";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[6] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[144];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[144].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[144].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, strongSpaceA);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[144].typ = (&NTIint56__chXunH2dwinSkhpA6JnsXw_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[144].name = "strongSpaceA";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[7] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[145];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[145].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[145].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, strongSpaceB);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[145].typ = (&NTIint56__chXunH2dwinSkhpA6JnsXw_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[145].name = "strongSpaceB";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[8] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[146];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[146].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[146].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, literal);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[146].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[146].name = "literal";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[9] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[147];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[147].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[147].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, line);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[147].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[147].name = "line";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[10] = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[148];
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[148].kind = 1;
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[148].offset = offsetof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA, col);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[148].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[148].name = "col";
  TM__4JpEWnGrmRM8CRqL3P2O1Q_0[132].len = 11; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[132].kind = 2; TM__4JpEWnGrmRM8CRqL3P2O1Q_0[132].sons = &TM__4JpEWnGrmRM8CRqL3P2O1Q_69_11[0];
  NTItoken__sNMaWRTImjqfh1DU9cmdQkA_.node = &TM__4JpEWnGrmRM8CRqL3P2O1Q_0[132];
  }
  
  