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

#include "nimbase.h"
#include <string.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 tyObject_Parser__VfoSMFvkiwD1X70wCdediw tyObject_Parser__VfoSMFvkiwD1X70wCdediw;
typedef struct tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw;
typedef struct tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_Token__TUeI5CB5zbppKJkmeKoDMw tyObject_Token__TUeI5CB5zbppKJkmeKoDMw;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ {
  RootObj Sup;
NI bufpos;
NCSTRING buf;
NimStringDesc* bufStorage;
NI bufLen;
tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc__9aGJhSmkuel6SMfp4pTpyXA;
struct tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw {
  tyObject_TBaseLexer__nATxPlDiRTsKxaL2wN88sQ Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyProc__9aGJhSmkuel6SMfp4pTpyXA errorHandler;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
};
typedef NU8 tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw;
typedef NU8 tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q;
struct tyObject_Token__TUeI5CB5zbppKJkmeKoDMw {
tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw tokType;
NI indent;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
NI64 iNumber;
NF fNumber;
tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
struct tyObject_Parser__VfoSMFvkiwD1X70wCdediw {
NI currInd;
NIM_BOOL firstTok;
NIM_BOOL hasProgress;
tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw lex;
tyObject_Token__TUeI5CB5zbppKJkmeKoDMw tok;
NI lineStartPrevious;
NI lineNumberPrevious;
NI bufposPrevious;
NI inPragma;
NI inSemiStmtList;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* emptyNode;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g;
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
typedef NU8 tySet_tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ;
typedef NU8 tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ;
typedef NU8 tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ;
typedef NU8 tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w;
typedef NU8 tySet_tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw[15];
typedef NU8 tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__iegsN9bf6GqRiWprrJjTAoA[1];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__C1NLf71cjuFzI2lAHOsMHQ) (tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
typedef NU8 tyEnum_TLLStreamKind__ChicJ77mD7SkMUxz402udA;
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* s, void* buf, NI bufLen, void* ClE_0);
void* ClE_0;
} tyProc__M3d9crIwWf7vcamB5Yms8GQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__HzVCwACFYM9cx9aV62PdjtuA;
struct tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg {
  RootObj Sup;
tyEnum_TLLStreamKind__ChicJ77mD7SkMUxz402udA kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__M3d9crIwWf7vcamB5Yms8GQ repl;
tyProc__HzVCwACFYM9cx9aV62PdjtuA onPrompt;
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_125)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NI32 fileIdx, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputStream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NIMCALL(void, initToken__lexer_248)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* L);
N_LIB_PRIVATE N_NIMCALL(void, openLexer__lexer_270)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* lex, NI32 fileIdx, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputstream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NIMCALL(void, getTok__parser_45)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__lexer_1590)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNode__ast_3289)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__msgs_376)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeP__parser_54)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, parLineInfo__parser_76)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
static N_INLINE(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getLineInfo__lexer_192)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, newLineInfo__msgs_391)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, complexOrSimpleStmt__parser_607)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIfOrWhen__parser_1605)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(void, optInd__parser_85)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, skipComment__parser_51)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node);
N_LIB_PRIVATE N_NIMCALL(void, rawSkipComment__parser_165)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_997)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, commenteq___ast_1365)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_47)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, lexMessageTok__lexer_331)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, skipInd__parser_81)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_147)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseExpr__parser_256)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseBlock__parser_112)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, getTokNoInd__parser_196)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseSymbol__parser_95)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIdentNodeP__parser_69)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5267)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_143)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NimStringDesc* msg, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prettyTok__lexer_239)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___lexer_230)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_152)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(void, eat__parser_78)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw tokType);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__lexer_327)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, colcom__parser_299)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseStmt__parser_258)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, simpleStmt__parser_2451)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseReturnOrRaise__parser_1584)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExprStart__parser_1182)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, postExprBlocks__parser_107)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseParamList__parser_262)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL retColon);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIdentColonEquals__parser_998)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tySet_tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, identWithPragma__parser_973)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL allowDot);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, identVis__parser_952)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL allowDot);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, dotExpr__parser_463)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(void, exprList__parser_379)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(void, exprColonEqExprListAux__parser_426)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(void, flexComment__parser_183)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node);
N_LIB_PRIVATE N_NIMCALL(void, optPar__parser_83)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, exprColonEqExpr__parser_371)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, colonOrEquals__parser_343)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4347)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parsePragma__parser_105)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDesc__parser_260)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, simpleExpr__parser_609)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, simpleExprAux__parser_117)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NI limit, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, primary__parser_114)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOperator__parser_43)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
static N_INLINE(NIM_BOOL, isSigilLike__parser_265)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, primarySuffix__parser_823)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r, NI baseIndent, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, commandExpr__parser_802)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, commandParam__parser_775)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL* isFirstParam, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, namedParams__parser_764)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callee, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseGStrLit__parser_587)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNodeP__parser_65)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NimStringDesc* strVal, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDotLike__parser_816)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2292)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, dotLikeExpr__parser_500)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnary__parser_279)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTuple__parser_1056)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL indentAllowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseProcExpr__parser_1149)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL isExpr, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, optPragmas__parser_1120)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newProcNode__ast_3809)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* name, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pattern, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParams, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exceptions);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseEnum__parser_1271)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObject__parser_1273)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
static N_INLINE(NIM_BOOL, validInd__parser_162)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObjectPart__parser_2067)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObjectWhen__parser_2069)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObjectCase__parser_2102)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeClass__parser_1275)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeClassParam__parser_2199)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5238)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDescKAux__parser_1201)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, parseSymbolList__parser_1185)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, identOrLiteral__parser_741)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNodeP__parser_57)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, setBaseFlags__parser_92)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q base);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newFloatNodeP__parser_61)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NF floatVal, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7745)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7757)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, exprColonEqExprList__parser_458)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parsePar__parser_654)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, semiStmtList__parser_615)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIfOrWhenExpr__parser_612)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseStmtPragma__parser_103)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, setOrTableConstr__parser_525)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseCast__parser_549)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseOperators__parser_858)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headNode, NI limit, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode);
N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__lexer_1376)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
static N_INLINE(void, checkBinary__parser_286)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
static N_INLINE(NIM_BOOL, isRightAssociative__parser_272)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, binaryNot__parser_1333)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, makeCall__parser_1361)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseDoBlock__parser_1127)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, optionalExprList__parser_405)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseImport__parser_1515)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseModuleName__parser_1511)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseFromStmt__parser_1564)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIncludeStmt__parser_1548)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newCommentStmt__parser_1972)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseExprStmt__parser_110)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTreeI__ast_3384)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseFor__parser_1226)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseVarTuple__parser_1224)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseCase__parser_101)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTry__parser_98)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL isExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseWhile__parser_1673)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseExceptBlock__parser_1736)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseStaticOrDefer__parser_1763)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseAsm__parser_1771)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseRoutine__parser_1874)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parsePattern__parser_1871)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseGenericParamList__parser_1855)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseGenericParam__parser_1802)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, expectIdent__parser_74)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, indAndComment__parser_88)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL maybeMissEquals);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___msgs_634)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseSection__parser_1975)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyProc__C1NLf71cjuFzI2lAHOsMHQ defparser);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDef__parser_2284)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDefAux__parser_1358)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseConstant__parser_2385)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseVariable__parser_2364)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseBind__parser_2422)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, qualifiedIdent__parser_518)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, closeLexer__lexer_304)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* lex);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg*, llStreamOpen__llstream_30)(NimStringDesc* data);
N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_131)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NimStringDesc* filename, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputStream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseAll__parser_37)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE N_NIMCALL(void, closeParser__parser_39)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p);
N_LIB_PRIVATE TNimType NTIparser__VfoSMFvkiwD1X70wCdediw_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
extern TNimType NTIlexer__D0giBxIIh38MSXTZOJp8yw_;
extern TNimType NTItoken__TUeI5CB5zbppKJkmeKoDMw_;
extern TNimType NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_;
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_3, "skipComment", 11);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_4, "invalid indentation", 19);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_5, "identifier expected, but got \'$1\'", 33);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_6, "expected: \'", 11);
extern TNimType NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_;
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_7, "\', but got: \'", 13);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_8, "\'", 1);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_9, "expression expected, but found \'$1\'", 35);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_10, "nestable statement requires indentation", 39);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_11, "expected \'.}\'", 13);
static NIM_CONST tySet_tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw TM__FlWBYIOz13qHfz9ae813gBA_12 = {
0x30, 0x00, 0x08, 0x20, 0x32, 0x68, 0x03, 0x03,
0x08, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00}
;
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_13, "nimPreviewDotLikeOps", 20);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_14, "dot-like operators will be parsed differently with `-d:nimPreviewDotLikeOps`", 76);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_15, "the syntax for tuple types is \'tuple[...]\', not \'tuple(...)\'", 60);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_16, "func keyword is not allowed in type descriptions, use proc with {.noSideEffect.} pragma instead", 95);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_17, "type pragmas follow the type name; this form of writing pragmas is deprecated", 77);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_18, "routine expected, but found \'$1\' (empty new-styled concepts are not allowed)", 76);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_19, "the \'concept\' keyword is only valid in \'type\' sections", 54);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_20, "with", 4);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_21, "without", 7);
static NIM_CONST tySet_tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw TM__FlWBYIOz13qHfz9ae813gBA_22 = {
0x00, 0x25, 0x03, 0x9a, 0x84, 0x04, 0x00, 0x10,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_23, "\':\' or \'=\' expected, but got \'$1\'", 33);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_24, "the syntax is \'parameter: var T\', not \'var parameter: T\'", 56);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_25, "expected closing \')\'", 20);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_26, "->", 2);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_27, "expected \':\'", 12);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_28, "expected \'except\'", 17);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_29, "the \'asm\' statement takes a string literal", 42);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_30, "in", 2);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_31, "out", 3);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_32, "invalid indentation, maybe you forgot a \'=\' at $1 \?", 51);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_33, "pragma before generic parameter list is deprecated", 50);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_34, "pragma already present", 22);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_35, "*", 1);
STRING_LITERAL(TM__FlWBYIOz13qHfz9ae813gBA_36, "invalid indentation; an export marker \'*\' follows the declared identifier", 73);
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
N_LIB_PRIVATE N_NIMCALL(void, getTok__parser_45)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	(*p).lineNumberPrevious = (*p).lex.Sup.lineNumber;
	(*p).lineStartPrevious = (*p).lex.Sup.lineStart;
	(*p).bufposPrevious = (*p).lex.Sup.bufpos;
	rawGetTok__lexer_1590((&(*p).lex), (&(*p).tok));
	(*p).hasProgress = NIM_TRUE;
}
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_125)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NI32 fileIdx, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputStream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config) {
	initToken__lexer_248((&(*p).tok));
	openLexer__lexer_270((&(*p).lex), fileIdx, inputStream, cache, config);
	getTok__parser_45(p);
	(*p).firstTok = NIM_TRUE;
	unsureAsgnRef((void**) (&(*p).emptyNode), newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
}
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_131)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NimStringDesc* filename, tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* inputStream, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config) {
	NI32 T1_;
	T1_ = (NI32)0;
	T1_ = fileInfoIdx__msgs_376(config, filename);
	openParser__parser_125(p, T1_, inputStream, cache, config);
}
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);
}
static N_INLINE(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, getLineInfo__lexer_192)(tyObject_Lexer__D0giBxIIh38MSXTZOJp8yw* L, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	result = newLineInfo__msgs_391((*L).fileIdx, (*tok).line, (*tok).col);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, parLineInfo__parser_76)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	result = getLineInfo__lexer_192((&(*p).lex), (&(*p).tok));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeP__parser_54)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T1_;
	result = NIM_NIL;
	T1_ = parLineInfo__parser_76(p);
	result = newNodeI__ast_3320(kind, T1_);
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_47)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg) {
	lexMessageTok__lexer_331((&(*p).lex), msg, (&(*p).tok), arg);
}
N_LIB_PRIVATE N_NIMCALL(void, rawSkipComment__parser_165)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node) {
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111))) goto LA3_;
		{
			NimStringDesc* rhs;
			NimStringDesc* T9_;
			if (!!((node == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA7_;
			rhs = comment__ast_997(node);
			rhs = resizeString(rhs, ((*p).tok.literal ? (*p).tok.literal->Sup.len : 0) + 0);
appendString(rhs, (*p).tok.literal);
			T9_ = NIM_NIL;
			T9_ = rhs;
			rhs = NIM_NIL;
			commenteq___ast_1365(node, T9_);
		}
		goto LA5_;
		LA7_: ;
		{
			parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 2), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_3));
		}
		LA5_: ;
		getTok__parser_45(p);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, skipComment__parser_51)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node) {
	{
		if (!((*p).tok.indent < ((NI) 0))) goto LA3_;
		rawSkipComment__parser_165(p, node);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_147)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NimStringDesc* arg) {
	lexMessageTok__lexer_331((&(*p).lex), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), (&(*p).tok), arg);
}
N_LIB_PRIVATE N_NIMCALL(void, skipInd__parser_81)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		{
			if (!!(((*p).currInd < (*p).tok.indent))) goto LA7_;
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, optInd__parser_85)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	skipComment__parser_51(p, n);
	skipInd__parser_81(p);
}
N_LIB_PRIVATE N_NIMCALL(void, getTokNoInd__parser_196)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	getTok__parser_45(p);
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
	}
	LA3_: ;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5267((&gch__system_5220.zct), c);
}
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5316(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5273(src);
		incRef__system_5311(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5273((*dest));
		decRef__system_5318(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIdentNodeP__parser_69)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2), p);
	asgnRef((void**) (&(*result)._kind_5.ident), ident);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_143)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NimStringDesc* msg, tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = prettyTok__lexer_239(tok);
	T2_ = NIM_NIL;
	T2_ = nsuFormatSingleElem(msg, T1_);
	parMessage__parser_47(p, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T2_);
}
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eat__parser_78)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw tokType) {
	{
		if (!((*p).tok.tokType == tokType)) goto LA3_;
		getTok__parser_45(p);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		T6_ = NIM_NIL;
		T7_ = NIM_NIL;
		T7_ = prettyTok__lexer_239((&(*p).tok));
		T6_ = rawNewString((reprEnum((NI)tokType, (&NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_)) ? reprEnum((NI)tokType, (&NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_))->Sup.len : 0) + (T7_ ? T7_->Sup.len : 0) + 25);
appendString(T6_, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_6));
appendString(T6_, reprEnum((NI)tokType, (&NTItoktype__jtO8nsEQZ3q9auoz8Uy0Ohw_)));
appendString(T6_, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_7));
appendString(T6_, T7_);
appendString(T6_, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_8));
		lexMessage__lexer_327((&(*p).lex), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseSymbol__parser_95)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
	{
		result = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 68):
	{
		{
			NIM_BOOL T5_;
			T5_ = (NIM_BOOL)0;
			T5_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 58) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3));
			if (T5_) goto LA6_;
			T5_ = (mode == ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 2));
			LA6_: ;
			if (!T5_) goto LA7_;
			result = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
			getTok__parser_45(p);
		}
		goto LA3_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 44));
			if (!(T10_)) goto LA11_;
			T10_ = (mode == ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 1));
			LA11_: ;
			if (!T10_) goto LA12_;
			result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), (&(*p)));
			getTok__parser_45(p);
		}
		goto LA3_;
		LA12_: ;
		{
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
			result = (*p).emptyNode;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
	{
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 53), (&(*p)));
		getTok__parser_45(p);
		{
			while (1) {
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
				{
					{
						NI T21_;
						T21_ = (NI)0;
						T21_ = len__ast_3155(result);
						if (!(T21_ == ((NI) 0))) goto LA22_;
						parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
					}
					LA22_: ;
					goto LA16;
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 108):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 101):
				{
					tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lineinfo;
					NimStringDesc* accm;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node;
					lineinfo = parLineInfo__parser_76((&(*p)));
					accm = ((NimStringDesc*) NIM_NIL);
					{
						while (1) {
							NimStringDesc* T27_;
							if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 108) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106) || (*p).tok.tokType >= ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90) && (*p).tok.tokType <= ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 101))) goto LA26;
							T27_ = NIM_NIL;
							T27_ = dollar___lexer_230((&(*p).tok));
							accm = resizeString(accm, (T27_ ? T27_->Sup.len : 0) + 0);
appendString(accm, T27_);
							getTok__parser_45(p);
						} LA26: ;
					}
					node = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2), lineinfo);
					asgnRef((void**) (&(*node)._kind_5.ident), getIdent__idents_152((*p).lex.cache, accm));
					add__ast_4798(result, node);
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 68):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 89):
				{
					NimStringDesc* T29_;
					tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T30_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T31_;
					T29_ = NIM_NIL;
					T29_ = dollar___lexer_230((&(*p).tok));
					T30_ = NIM_NIL;
					T30_ = getIdent__idents_152((*p).lex.cache, T29_);
					T31_ = NIM_NIL;
					T31_ = newIdentNodeP__parser_69(T30_, (&(*p)));
					add__ast_4798(result, T31_);
					getTok__parser_45(p);
				}
				break;
				default:
				{
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
					goto LA16;
				}
				break;
				}
			}
		} LA16: ;
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112));
	}
	break;
	default:
	{
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
		result = (*p).emptyNode;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, colcom__parser_299)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104));
	skipComment__parser_51(p, n);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExprStart__parser_1182)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 45):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 44):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 11):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 31):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 28):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 51):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 30):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 38):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 7):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 94):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 89):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 54):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 52):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 61):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 47):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 10):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 60):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 8):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 58):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62):
	{
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, exprList__parser_379)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	a = parseExpr__parser_256(p);
	add__ast_4798(result, a);
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*p).tok.tokType == endTok));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
			a_2 = parseExpr__parser_256(p);
			add__ast_4798(result, a_2);
		} LA2: ;
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(void, flexComment__parser_183)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.indent < ((NI) 0));
		if (T3_) goto LA4_;
		T3_ = ((*p).currInd < (*p).tok.indent);
		LA4_: ;
		if (!T3_) goto LA5_;
		rawSkipComment__parser_165(p, node);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, optPar__parser_83)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		{
			if (!((*p).tok.indent < (*p).currInd)) goto LA7_;
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, colonOrEquals__parser_343)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34), (&(*p)));
		getTok__parser_45(p);
		add__ast_4798(result, a);
		T5_ = NIM_NIL;
		T5_ = parseExpr__parser_256(p);
		add__ast_4798(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106))) goto LA7_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33), (&(*p)));
		getTok__parser_45(p);
		add__ast_4798(result, a);
		T9_ = NIM_NIL;
		T9_ = parseExpr__parser_256(p);
		add__ast_4798(result, T9_);
	}
	goto LA1_;
	LA7_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, exprColonEqExpr__parser_371)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	a = parseExpr__parser_256(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 20))) goto LA3_;
		result = postExprBlocks__parser_107(p, a);
	}
	goto LA1_;
	LA3_: ;
	{
		result = colonOrEquals__parser_343(p, a);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, exprColonEqExprListAux__parser_426)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result) {
	getTok__parser_45(p);
	flexComment__parser_183(p, result);
	optPar__parser_83(p);
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*p).tok.tokType == endTok));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)));
			LA4_: ;
			if (!T3_) goto LA2;
			a = exprColonEqExpr__parser_371(p);
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA7_;
				goto LA1;
			}
			goto LA5_;
			LA7_: ;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37))) goto LA10_;
				transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 160));
			}
			goto LA5_;
			LA10_: ;
			LA5_: ;
			getTok__parser_45(p);
			skipComment__parser_51(p, a);
		} LA2: ;
	} LA1: ;
	optPar__parser_83(p);
	eat__parser_78(p, endTok);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, dotExpr__parser_463)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	info = parLineInfo__parser_76((&(*p)));
	getTok__parser_45(p);
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45), info);
	optInd__parser_85(p, result);
	add__ast_4798(result, a);
	T1_ = NIM_NIL;
	T1_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 2));
	add__ast_4798(result, T1_);
	{
		NIM_BOOL T4_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T8_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* y;
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T9_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 109));
		if (!(T4_)) goto LA5_;
		T4_ = ((*p).tok.strongSpaceA <= ((NI8) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		T8_ = parLineInfo__parser_76((&(*p)));
		x = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T8_);
		add__ast_4798(x, (*result)._kind_6.sons->data[((NI) 1)]);
		exprList__parser_379(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93), x);
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93));
		T9_ = parLineInfo__parser_76((&(*p)));
		y = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T9_);
		add__ast_4798(y, x);
		add__ast_4798(y, (*result)._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90));
			if (!(T12_)) goto LA13_;
			T12_ = ((*p).tok.strongSpaceA <= ((NI8) 0));
			LA13_: ;
			if (!T12_) goto LA14_;
			exprColonEqExprListAux__parser_426(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91), y);
		}
		LA14_: ;
		result = y;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, identVis__parser_952)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL allowDot) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31), (&(*p)));
		T5_ = NIM_NIL;
		T5_ = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		add__ast_4798(result, T5_);
		add__ast_4798(result, a);
		getTok__parser_45(p);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107));
		if (!(T7_)) goto LA8_;
		T7_ = allowDot;
		LA8_: ;
		if (!T7_) goto LA9_;
		result = dotExpr__parser_463(p, a);
	}
	goto LA1_;
	LA9_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parsePragma__parser_105)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90), (&(*p)));
	(*p).inPragma += ((NI) 1);
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 99) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)))) goto LA2;
			(*p).hasProgress = NIM_FALSE;
			a = exprColonEqExpr__parser_371(p);
			{
				if (!!((*p).hasProgress)) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			add__ast_4798(result, a);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102))) goto LA9_;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			}
			LA9_: ;
		} LA2: ;
	} LA1: ;
	optPar__parser_83(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 99) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95))) goto LA13_;
		getTok__parser_45(p);
	}
	goto LA11_;
	LA13_: ;
	{
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_11));
	}
	LA11_: ;
	(*p).inPragma -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, identWithPragma__parser_973)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL allowDot) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	a = identVis__parser_952(p, allowDot);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43), (&(*p)));
		add__ast_4798(result, a);
		T5_ = NIM_NIL;
		T5_ = parsePragma__parser_105(p);
		add__ast_4798(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOperator__parser_43)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((TM__FlWBYIOz13qHfz9ae813gBA_12[(NU)((*tok).tokType)>>3] &(1U<<((NU)((*tok).tokType)&7U)))!=0);
	return result;
}
static N_INLINE(NIM_BOOL, isSigilLike__parser_265)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110));
	if (!(T1_)) goto LA2_;
	T1_ = ((NU8)((*(*tok).ident).s->data[((NI) 0)]) == (NU8)(64));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, commandParam__parser_775)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL* isFirstParam, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!(mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 1))) goto LA3_;
		result = simpleExpr__parser_609(p, mode);
	}
	goto LA1_;
	LA3_: ;
	{
		result = parseExpr__parser_256(p);
	}
	LA1_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 20))) goto LA8_;
		result = postExprBlocks__parser_107(p, result);
	}
	goto LA6_;
	LA8_: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lhs;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106));
		if (!(T11_)) goto LA12_;
		T11_ = !((*isFirstParam));
		LA12_: ;
		if (!T11_) goto LA13_;
		lhs = result;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33), (&(*p)));
		getTok__parser_45(p);
		add__ast_4798(result, lhs);
		T15_ = NIM_NIL;
		T15_ = parseExpr__parser_256(p);
		add__ast_4798(result, T15_);
	}
	goto LA6_;
	LA13_: ;
	LA6_: ;
	(*isFirstParam) = NIM_FALSE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, commandExpr__parser_802)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NIM_BOOL isFirstParam;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26), (&(*p)));
	add__ast_4798(result, r);
	isFirstParam = NIM_TRUE;
	(*p).hasProgress = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = commandParam__parser_775(p, (&isFirstParam), mode);
	add__ast_4798(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, namedParams__parser_764)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callee, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	a = callee;
	result = newNodeP__parser_54(kind, (&(*p)));
	add__ast_4798(result, a);
	exprColonEqExprListAux__parser_426(p, endTok, result);
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5273(p);
	decRef__system_5318(T1_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNodeP__parser_65)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NimStringDesc* strVal, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NimStringDesc* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, p);
	T1_ = NIM_NIL;
	T1_ = (*result)._kind_3.strVal; (*result)._kind_3.strVal = copyStringRC1(strVal);
	if (T1_) nimGCunrefNoCycle(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseGStrLit__parser_587)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 86):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28), (&(*p)));
		add__ast_4798(result, a);
		T2_ = NIM_NIL;
		T2_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 21), (*p).tok.literal, (&(*p)));
		add__ast_4798(result, T2_);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 87):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28), (&(*p)));
		add__ast_4798(result, a);
		T4_ = NIM_NIL;
		T4_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22), (*p).tok.literal, (&(*p)));
		add__ast_4798(result, T4_);
		getTok__parser_45(p);
	}
	break;
	default:
	{
		result = a;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDotLike__parser_816)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110));
	if (!(T3_)) goto LA4_;
	T3_ = (((NI) 1) < ((*(*tok).ident).s ? (*(*tok).ident).s->Sup.len : 0));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = ((NU8)((*(*tok).ident).s->data[((NI) 0)]) == (NU8)(46));
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA6_;
	T1_ = !(((NU8)((*(*tok).ident).s->data[((NI) 1)]) == (NU8)(46)));
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, dotLikeExpr__parser_500)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* opNode;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	info = parLineInfo__parser_76((&(*p)));
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), info);
	optInd__parser_85(p, result);
	opNode = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
	getTok__parser_45(p);
	add__ast_4798(result, opNode);
	add__ast_4798(result, a);
	T1_ = NIM_NIL;
	T1_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 2));
	add__ast_4798(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnary__parser_279)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110) || (*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 108));
	if (!(T2_)) goto LA3_;
	T2_ = ((*tok).strongSpaceB == ((NI8) 0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((NI8) 0) < (*tok).strongSpaceA);
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, primarySuffix__parser_823)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* r, NI baseIndent, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = r;
	{
		while (1) {
			NIM_BOOL T3_;
			NIM_BOOL T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((*p).tok.indent < ((NI) 0));
			if (T3_) goto LA4_;
			T5_ = (NIM_BOOL)0;
			T5_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107));
			if (!(T5_)) goto LA6_;
			T5_ = (baseIndent <= (*p).tok.indent);
			LA6_: ;
			T3_ = T5_;
			LA4_: ;
			if (!T3_) goto LA2;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA10_;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
						if (!(mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2))) goto LA14_;
						result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26), (&(*p)));
						add__ast_4798(result, r);
						T16_ = NIM_NIL;
						T16_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
						add__ast_4798(result, T16_);
					}
					goto LA12_;
					LA14_: ;
					{
						result = commandExpr__parser_802(p, result, mode);
					}
					LA12_: ;
					goto LA1;
				}
				LA10_: ;
				result = namedParams__parser_764(p, result, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
				{
					NIM_BOOL T20_;
					NI T21_;
					T20_ = (NIM_BOOL)0;
					T21_ = (NI)0;
					T21_ = len__ast_3155(result);
					T20_ = (((NI) 1) < T21_);
					if (!(T20_)) goto LA22_;
					T20_ = ((*(*result)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34));
					LA22_: ;
					if (!T20_) goto LA23_;
					transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 38));
				}
				LA23_: ;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107):
			{
				result = dotExpr__parser_463(p, result);
				result = parseGStrLit__parser_587(p, result);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA29_;
					result = commandExpr__parser_802(p, result, mode);
					goto LA1;
				}
				LA29_: ;
				result = namedParams__parser_764(p, result, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93));
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 94):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA34_;
					result = commandExpr__parser_802(p, result, mode);
					goto LA1;
				}
				LA34_: ;
				result = namedParams__parser_764(p, result, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 40), ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95));
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69) ... ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 89):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 44):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 11):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 108):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 58):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 24):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 61):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 47):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 51):
			{
				NIM_BOOL isDotLike2;
				isDotLike2 = isDotLike__parser_816((&(*p).tok));
				{
					NIM_BOOL T39_;
					T39_ = (NIM_BOOL)0;
					T39_ = isDotLike2;
					if (!(T39_)) goto LA40_;
					T39_ = isDefined__options_2292((*p).lex.config, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_13));
					LA40_: ;
					if (!T39_) goto LA41_;
					result = dotLikeExpr__parser_500(p, result);
					result = parseGStrLit__parser_587(p, result);
				}
				goto LA37_;
				LA41_: ;
				{
					{
						if (!isDotLike2) goto LA46_;
						parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 23), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_14));
					}
					LA46_: ;
					{
						NIM_BOOL T50_;
						NIM_BOOL T52_;
						T50_ = (NIM_BOOL)0;
						T50_ = ((*p).inPragma == ((NI) 0));
						if (!(T50_)) goto LA51_;
						T52_ = (NIM_BOOL)0;
						T52_ = isUnary__parser_279((&(*p).tok));
						if (T52_) goto LA53_;
						T52_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 108)));
						LA53_: ;
						T50_ = T52_;
						LA51_: ;
						if (!T50_) goto LA54_;
						result = commandExpr__parser_802(p, result, mode);
					}
					LA54_: ;
					goto LA1;
				}
				LA37_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		} LA2: ;
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTuple__parser_1056)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL indentAllowed) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 134), (&(*p)));
	getTok__parser_45(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92))) goto LA3_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112))) goto LA6;
				a = parseIdentColonEquals__parser_998(p, 0);
				add__ast_4798(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103)))) goto LA9_;
					goto LA5;
				}
				LA9_: ;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			} LA6: ;
		} LA5: ;
		optPar__parser_83(p);
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!indentAllowed) goto LA12_;
		skipComment__parser_51(p, result);
		{
			NI oldIndX60gensym75_;
			if (!((*p).currInd < (*p).tok.indent)) goto LA16_;
			oldIndX60gensym75_ = (*p).currInd;
			(*p).currInd = (*p).tok.indent;
			rawSkipComment__parser_165(p, result);
			{
				while (1) {
					switch ((*p).tok.tokType) {
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
						a_2 = parseIdentColonEquals__parser_998(p, 0);
						{
							NIM_BOOL T23_;
							T23_ = (NIM_BOOL)0;
							T23_ = ((*p).tok.indent < ((NI) 0));
							if (T23_) goto LA24_;
							T23_ = ((*p).currInd <= (*p).tok.indent);
							LA24_: ;
							if (!T23_) goto LA25_;
							rawSkipComment__parser_165(p, a_2);
						}
						LA25_: ;
						add__ast_4798(result, a_2);
					}
					break;
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1):
					{
						goto LA18;
					}
					break;
					default:
					{
						parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
						goto LA18;
					}
					break;
					}
					{
						if (!!(((*p).tok.indent == (*p).currInd))) goto LA31_;
						goto LA18;
					}
					LA31_: ;
				}
			} LA18: ;
			(*p).currInd = oldIndX60gensym75_;
		}
		LA16_: ;
	}
	goto LA1_;
	LA12_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90))) goto LA34_;
		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_15));
	}
	goto LA1_;
	LA34_: ;
	{
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 135), (&(*p)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, optPragmas__parser_1120)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*p).tok.indent < ((NI) 0));
		if (T5_) goto LA6_;
		T5_ = ((*p).currInd < (*p).tok.indent);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = parsePragma__parser_105(p);
	}
	goto LA1_;
	LA7_: ;
	{
		result = (*p).emptyNode;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseProcExpr__parser_1149)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL isExpr, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
	NIM_BOOL hasSignature;
	NIM_BOOL T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas;
	result = NIM_NIL;
	info = parLineInfo__parser_76((&(*p)));
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104));
	if (!(T1_)) goto LA2_;
	T1_ = ((*p).tok.indent < ((NI) 0));
	LA2_: ;
	hasSignature = T1_;
	params = parseParamList__parser_262(p, NIM_TRUE);
	pragmas = optPragmas__parser_1120(p);
	{
		NIM_BOOL T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106));
		if (!(T5_)) goto LA6_;
		T5_ = isExpr;
		LA6_: ;
		if (!T5_) goto LA7_;
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		T9_ = NIM_NIL;
		T9_ = parseStmt__parser_258(p);
		result = newProcNode__ast_3809(kind, info, T9_, params, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, pragmas, (*p).emptyNode);
	}
	goto LA3_;
	LA7_: ;
	{
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw T11_;
		T11_ = (tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw)0;
		{
			if (!(kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84))) goto LA14_;
			T11_ = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 148);
		}
		goto LA12_;
		LA14_: ;
		{
			T11_ = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 147);
		}
		LA12_: ;
		result = newNodeI__ast_3320(T11_, info);
		{
			if (!hasSignature) goto LA19_;
			add__ast_4798(result, params);
			{
				if (!(kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159))) goto LA23_;
				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_16));
			}
			LA23_: ;
			add__ast_4798(result, pragmas);
		}
		LA19_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseEnum__parser_1271)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150), (&(*p)));
	getTok__parser_45(p);
	add__ast_4798(result, (*p).emptyNode);
	optInd__parser_85(p, result);
	flexComment__parser_183(p, result);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* symPragma;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragma;
			a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA5_;
				goto BeforeRet_;
			}
			LA5_: ;
			symPragma = a;
			pragma = NIM_NIL;
			{
				NIM_BOOL T9_;
				NIM_BOOL T10_;
				T9_ = (NIM_BOOL)0;
				T10_ = (NIM_BOOL)0;
				T10_ = ((*p).tok.indent < ((NI) 0));
				if (T10_) goto LA11_;
				T10_ = ((*p).currInd <= (*p).tok.indent);
				LA11_: ;
				T9_ = T10_;
				if (!(T9_)) goto LA12_;
				T9_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98));
				LA12_: ;
				if (!T9_) goto LA13_;
				pragma = optPragmas__parser_1120(p);
				symPragma = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43), (&(*p)));
				add__ast_4798(symPragma, a);
				add__ast_4798(symPragma, pragma);
			}
			LA13_: ;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (((NI) 0) <= (*p).tok.indent);
				if (!(T17_)) goto LA18_;
				T17_ = ((*p).tok.indent <= (*p).currInd);
				LA18_: ;
				if (!T17_) goto LA19_;
				add__ast_4798(result, symPragma);
				goto LA1;
			}
			LA19_: ;
			{
				NIM_BOOL T23_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
				T23_ = (NIM_BOOL)0;
				T23_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106));
				if (!(T23_)) goto LA24_;
				T23_ = ((*p).tok.indent < ((NI) 0));
				LA24_: ;
				if (!T23_) goto LA25_;
				getTok__parser_45(p);
				optInd__parser_85(p, symPragma);
				b = symPragma;
				symPragma = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 151), (&(*p)));
				add__ast_4798(symPragma, b);
				T27_ = NIM_NIL;
				T27_ = parseExpr__parser_256(p);
				add__ast_4798(symPragma, T27_);
				{
					NIM_BOOL T30_;
					T30_ = (NIM_BOOL)0;
					T30_ = ((*p).tok.indent < ((NI) 0));
					if (T30_) goto LA31_;
					T30_ = ((*p).currInd <= (*p).tok.indent);
					LA31_: ;
					if (!T30_) goto LA32_;
					rawSkipComment__parser_165(p, symPragma);
				}
				LA32_: ;
			}
			LA25_: ;
			{
				NIM_BOOL T36_;
				T36_ = (NIM_BOOL)0;
				T36_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102));
				if (!(T36_)) goto LA37_;
				T36_ = ((*p).tok.indent < ((NI) 0));
				LA37_: ;
				if (!T36_) goto LA38_;
				getTok__parser_45(p);
				rawSkipComment__parser_165(p, symPragma);
			}
			goto LA34_;
			LA38_: ;
			{
				{
					NIM_BOOL T43_;
					T43_ = (NIM_BOOL)0;
					T43_ = ((*p).tok.indent < ((NI) 0));
					if (T43_) goto LA44_;
					T43_ = ((*p).currInd <= (*p).tok.indent);
					LA44_: ;
					if (!T43_) goto LA45_;
					rawSkipComment__parser_165(p, symPragma);
				}
				LA45_: ;
			}
			LA34_: ;
			add__ast_4798(result, symPragma);
			{
				NIM_BOOL T49_;
				NIM_BOOL T50_;
				T49_ = (NIM_BOOL)0;
				T50_ = (NIM_BOOL)0;
				T50_ = (((NI) 0) <= (*p).tok.indent);
				if (!(T50_)) goto LA51_;
				T50_ = ((*p).tok.indent <= (*p).currInd);
				LA51_: ;
				T49_ = T50_;
				if (T49_) goto LA52_;
				T49_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1));
				LA52_: ;
				if (!T49_) goto LA53_;
				goto LA1;
			}
			LA53_: ;
		}
	} LA1: ;
	{
		NI T57_;
		T57_ = (NI)0;
		T57_ = len__ast_3155(result);
		if (!(T57_ <= ((NI) 1))) goto LA58_;
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
	}
	LA58_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, validInd__parser_162)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.indent < ((NI) 0));
	if (T1_) goto LA2_;
	T1_ = ((*p).currInd < (*p).tok.indent);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObjectWhen__parser_2069)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 140), (&(*p)));
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
			if (!((*p).tok.indent == (*p).currInd)) goto LA2;
			getTok__parser_45(p);
			branch = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), (&(*p)));
			optInd__parser_85(p, branch);
			T3_ = NIM_NIL;
			T3_ = parseExpr__parser_256(p);
			add__ast_4798(branch, T3_);
			colcom__parser_299(p, branch);
			T4_ = NIM_NIL;
			T4_ = parseObjectPart__parser_2067(p);
			add__ast_4798(branch, T4_);
			flexComment__parser_183(p, branch);
			add__ast_4798(result, branch);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
		} LA2: ;
	} LA1: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22));
		if (!(T11_)) goto LA12_;
		T11_ = ((*p).tok.indent == (*p).currInd);
		LA12_: ;
		if (!T11_) goto LA13_;
		branch_2 = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (&(*p)));
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22));
		colcom__parser_299(p, branch_2);
		T15_ = NIM_NIL;
		T15_ = parseObjectPart__parser_2067(p);
		add__ast_4798(branch_2, T15_);
		flexComment__parser_183(p, branch_2);
		add__ast_4798(result, branch_2);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObjectCase__parser_2102)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	NIM_BOOL wasIndented;
	NI oldInd;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139), (&(*p)));
	getTokNoInd__parser_196(p);
	a = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (&(*p)));
	T1_ = NIM_NIL;
	T1_ = identWithPragma__parser_973(p, NIM_FALSE);
	add__ast_4798(a, T1_);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104));
	T2_ = NIM_NIL;
	T2_ = parseTypeDesc__parser_260(p);
	add__ast_4798(a, T2_);
	add__ast_4798(a, (*p).emptyNode);
	add__ast_4798(result, a);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA5_;
		getTok__parser_45(p);
	}
	LA5_: ;
	flexComment__parser_183(p, result);
	wasIndented = NIM_FALSE;
	oldInd = (*p).currInd;
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA9_;
		(*p).currInd = (*p).tok.indent;
		wasIndented = NIM_TRUE;
	}
	LA9_: ;
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fields;
			if (!((*p).tok.indent == (*p).currInd)) goto LA12;
			b = NIM_NIL;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85), (&(*p)));
				exprList__parser_379(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104), b);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (&(*p)));
				getTok__parser_45(p);
			}
			break;
			default:
			{
				goto LA11;
			}
			break;
			}
			colcom__parser_299(p, b);
			fields = parseObjectPart__parser_2067(p);
			{
				if (!((*fields).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA18_;
				parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
				fields = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), (&(*p)));
			}
			LA18_: ;
			add__ast_4798(b, fields);
			add__ast_4798(result, b);
			{
				if (!((*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88))) goto LA22_;
				goto LA11;
			}
			LA22_: ;
		} LA12: ;
	} LA11: ;
	{
		if (!wasIndented) goto LA26_;
		(*p).currInd = oldInd;
	}
	LA26_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObjectPart__parser_2067)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NI oldIndX60gensym192_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138), (&(*p)));
		oldIndX60gensym192_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		rawSkipComment__parser_165(p, result);
		{
			while (1) {
				if (!((*p).tok.indent == (*p).currInd)) goto LA6;
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 10):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 44):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 17):
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
					T8_ = NIM_NIL;
					T8_ = parseObjectPart__parser_2067(p);
					add__ast_4798(result, T8_);
				}
				break;
				default:
				{
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
					goto LA5;
				}
				break;
				}
			} LA6: ;
		} LA5: ;
		(*p).currInd = oldIndX60gensym192_;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.indent == (*p).currInd);
		if (T11_) goto LA12_;
		T11_ = ((*p).tok.indent < ((NI) 0));
		LA12_: ;
		if (!T11_) goto LA13_;
		switch ((*p).tok.tokType) {
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
		{
			result = parseObjectWhen__parser_2069(p);
		}
		break;
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 10):
		{
			result = parseObjectCase__parser_2102(p);
		}
		break;
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
		{
			result = parseIdentColonEquals__parser_998(p, 1);
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*p).tok.indent < ((NI) 0));
				if (T20_) goto LA21_;
				T20_ = ((*p).currInd <= (*p).tok.indent);
				LA21_: ;
				if (!T20_) goto LA22_;
				rawSkipComment__parser_165(p, result);
			}
			LA22_: ;
		}
		break;
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 44):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 17):
		{
			result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), (&(*p)));
			getTok__parser_45(p);
		}
		break;
		default:
		{
			result = (*p).emptyNode;
		}
		break;
		}
	}
	goto LA1_;
	LA13_: ;
	{
		result = (*p).emptyNode;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseObject__parser_1273)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133), (&(*p)));
	getTok__parser_45(p);
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98));
		if (!(T3_)) goto LA4_;
		T3_ = validInd__parser_162(p);
		LA4_: ;
		if (!T3_) goto LA5_;
		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_17));
		T7_ = NIM_NIL;
		T7_ = parsePragma__parser_105(p);
		add__ast_4798(result, T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA1_: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48));
		if (!(T11_)) goto LA12_;
		T11_ = ((*p).tok.indent < ((NI) 0));
		LA12_: ;
		if (!T11_) goto LA13_;
		a = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 77), (&(*p)));
		getTok__parser_45(p);
		T15_ = NIM_NIL;
		T15_ = parseTypeDesc__parser_260(p);
		add__ast_4798(a, T15_);
		add__ast_4798(result, a);
	}
	goto LA9_;
	LA13_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA9_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111))) goto LA19_;
		skipComment__parser_51(p, result);
	}
	LA19_: ;
	{
		if (!!(((*p).currInd < (*p).tok.indent))) goto LA23_;
		add__ast_4798(result, (*p).emptyNode);
	}
	goto LA21_;
	LA23_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T26_;
		T26_ = NIM_NIL;
		T26_ = parseObjectPart__parser_2067(p);
		add__ast_4798(result, T26_);
	}
	LA21_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeClassParam__parser_2199)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw modifier;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
	{
		modifier = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 143);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 52):
	{
		modifier = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 54):
	{
		modifier = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 58):
	{
		modifier = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 137);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62):
	{
		modifier = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132);
	}
	break;
	default:
	{
		modifier = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1);
	}
	break;
	}
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
		if (!!((modifier == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA9_;
		result = newNodeP__parser_54(modifier, (&(*p)));
		getTok__parser_45(p);
		T11_ = NIM_NIL;
		T11_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
		add__ast_4798(result, T11_);
	}
	goto LA7_;
	LA9_: ;
	{
		result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
	}
	LA7_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5238)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeClass__parser_1275)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 136), (&(*p)));
	getTok__parser_45(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111))) goto LA3_;
		skipComment__parser_51(p, result);
	}
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* args;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
		if (!((*p).tok.indent < ((NI) 0))) goto LA7_;
		args = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 152), (&(*p)));
		add__ast_4798(result, args);
		T9_ = NIM_NIL;
		T9_ = parseTypeClassParam__parser_2199(p);
		add__ast_4798(args, T9_);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102))) goto LA11;
				getTok__parser_45(p);
				T12_ = NIM_NIL;
				T12_ = parseTypeClassParam__parser_2199(p);
				add__ast_4798(args, T12_);
			} LA11: ;
		}
	}
	goto LA5_;
	LA7_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA5_: ;
	{
		NIM_BOOL T16_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T20_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98));
		if (!(T16_)) goto LA17_;
		T16_ = validInd__parser_162(p);
		LA17_: ;
		if (!T16_) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = parsePragma__parser_105(p);
		add__ast_4798(result, T20_);
	}
	goto LA14_;
	LA18_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA14_: ;
	{
		NIM_BOOL T24_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48));
		if (!(T24_)) goto LA25_;
		T24_ = ((*p).tok.indent < ((NI) 0));
		LA25_: ;
		if (!T24_) goto LA26_;
		a = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 77), (&(*p)));
		getTok__parser_45(p);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
				T30_ = NIM_NIL;
				T30_ = parseTypeDesc__parser_260(p);
				add__ast_4798(a, T30_);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA33_;
					goto LA28;
				}
				LA33_: ;
				getTok__parser_45(p);
			}
		} LA28: ;
		add__ast_4798(result, a);
	}
	goto LA22_;
	LA26_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA22_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111))) goto LA38_;
		skipComment__parser_51(p, result);
	}
	LA38_: ;
	{
		if (!!(((*p).currInd < (*p).tok.indent))) goto LA42_;
		{
			NIM_BOOL T46_;
			T46_ = (NIM_BOOL)0;
			T46_ = isNewStyleConcept__ast_5238(result);
			if (!T46_) goto LA47_;
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_18), (&(*p).tok));
		}
		LA47_: ;
		add__ast_4798(result, (*p).emptyNode);
	}
	goto LA40_;
	LA42_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T50_;
		T50_ = NIM_NIL;
		T50_ = parseStmt__parser_258(p);
		add__ast_4798(result, T50_);
	}
	LA40_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parseSymbolList__parser_1185)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result) {
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
			s = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 1));
			{
				if (!((*s).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			add__ast_4798(result, s);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA9_;
				goto LA1;
			}
			LA9_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, s);
		}
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDescKAux__parser_1201)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*p).tok.indent == ((NI) -1)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*p).tok.indent <= (*p).currInd);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	optInd__parser_85(p, result);
	{
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T10_ = isOperator__parser_43((&(*p).tok));
		T9_ = !(T10_);
		if (!(T9_)) goto LA11_;
		T9_ = isExprStart__parser_1182((&(*p)));
		LA11_: ;
		if (!T9_) goto LA12_;
		T14_ = NIM_NIL;
		T14_ = primary__parser_114(p, mode);
		add__ast_4798(result, T14_);
	}
	LA12_: ;
	{
		NIM_BOOL T17_;
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw nodeKind;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* list;
		T17_ = (NIM_BOOL)0;
		T17_ = (kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 146));
		if (!(T17_)) goto LA18_;
		T17_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2));
		LA18_: ;
		if (!T17_) goto LA19_;
		nodeKind = (tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw)0;
		{
			if (!eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_20))) goto LA23_;
			nodeKind = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 130);
		}
		goto LA21_;
		LA23_: ;
		{
			if (!eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_21))) goto LA26_;
			nodeKind = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 131);
		}
		goto LA21_;
		LA26_: ;
		{
			goto BeforeRet_;
		}
		LA21_: ;
		getTok__parser_45(p);
		list = newNodeP__parser_54(nodeKind, (&(*p)));
		add__ast_4798(result, list);
		parseSymbolList__parser_1185(p, list);
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNodeP__parser_57)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, p);
	(*result)._kind_1.intVal = intVal;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setBaseFlags__parser_92)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q base) {
	switch (base) {
	case ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 0):
	{
	}
	break;
	case ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 1):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 1)) & 31);
	}
	break;
	case ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 2):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 2)) & 31);
	}
	break;
	case ((tyEnum_NumericalBase__TH9auiUrNz9bAsj4cpFtJS5Q) 3):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 3)) & 31);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newFloatNodeP__parser_61)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NF floatVal, tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, p);
	(*result)._kind_2.floatVal = floatVal;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, exprColonEqExprList__parser_458)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	exprColonEqExprListAux__parser_426(p, endTok, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIfOrWhenExpr__parser_612)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
			getTok__parser_45(p);
			branch = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49), (&(*p)));
			optInd__parser_85(p, branch);
			T3_ = NIM_NIL;
			T3_ = parseExpr__parser_256(p);
			add__ast_4798(branch, T3_);
			colcom__parser_299(p, branch);
			T4_ = NIM_NIL;
			T4_ = parseStmt__parser_258(p);
			add__ast_4798(branch, T4_);
			skipComment__parser_51(p, branch);
			add__ast_4798(result, branch);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
		}
	} LA1: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22))) goto LA11_;
		branch_2 = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 50), (&(*p)));
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22));
		colcom__parser_299(p, branch_2);
		T13_ = NIM_NIL;
		T13_ = parseStmt__parser_258(p);
		add__ast_4798(branch_2, T13_);
		add__ast_4798(result, branch_2);
	}
	LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semiStmtList__parser_615)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result) {
	NI oldIndX60gensym38_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	(*p).inSemiStmtList += ((NI) 1);
	oldIndX60gensym38_ = (*p).currInd;
	(*p).currInd = (*p).tok.indent;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 31):
	{
		a = parseIfOrWhenExpr__parser_612(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
	{
		a = parseIfOrWhenExpr__parser_612(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93));
	}
	break;
	default:
	{
		a = complexOrSimpleStmt__parser_607(p);
	}
	break;
	}
	add__ast_4798(result, a);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)))) goto LA5;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103))) goto LA8_;
				getTok__parser_45(p);
			}
			LA8_: ;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91))) goto LA12_;
				goto LA4;
			}
			goto LA10_;
			LA12_: ;
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = ((*p).tok.indent == (*p).currInd);
				if (T15_) goto LA16_;
				T15_ = ((*p).currInd < (*p).tok.indent);
				LA16_: ;
				if (!!(T15_)) goto LA17_;
				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
			}
			goto LA10_;
			LA17_: ;
			LA10_: ;
			a_2 = complexOrSimpleStmt__parser_607(p);
			{
				if (!((*a_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA21_;
				parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
				getTok__parser_45(p);
			}
			goto LA19_;
			LA21_: ;
			{
				add__ast_4798(result, a_2);
			}
			LA19_: ;
		} LA5: ;
	} LA4: ;
	(*p).currInd = oldIndX60gensym38_;
	(*p).inSemiStmtList -= ((NI) 1);
	transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 126));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseStmtPragma__parser_103)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = parsePragma__parser_105(p);
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104));
		if (!(T3_)) goto LA4_;
		T3_ = ((*p).tok.indent < ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		a = result;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 91), (*a).info);
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		add__ast_4798(result, a);
		T7_ = NIM_NIL;
		T7_ = parseStmt__parser_258(p);
		add__ast_4798(result, T7_);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parsePar__parser_654)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	flexComment__parser_183(p, result);
	{
		if (!((TM__FlWBYIOz13qHfz9ae813gBA_22[(NU)((*p).tok.tokType)>>3] &(1U<<((NU)((*p).tok.tokType)&7U)))!=0)) goto LA3_;
		semiStmtList__parser_615(p, result);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103))) goto LA6_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		semiStmtList__parser_615(p, result);
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98))) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = parseStmtPragma__parser_103(p);
		add__ast_4798(result, T11_);
	}
	goto LA1_;
	LA9_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91))) goto LA13_;
		transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 160));
	}
	goto LA1_;
	LA13_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		a = simpleExpr__parser_609(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 20))) goto LA18_;
			result = postExprBlocks__parser_107(p, a);
		}
		goto LA16_;
		LA18_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* asgn;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106))) goto LA21_;
			asgn = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (&(*p)));
			getTok__parser_45(p);
			optInd__parser_85(p, result);
			b = parseExpr__parser_256(p);
			add__ast_4798(asgn, a);
			add__ast_4798(asgn, b);
			add__ast_4798(result, asgn);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103))) goto LA25_;
				semiStmtList__parser_615(p, result);
			}
			LA25_: ;
		}
		goto LA16_;
		LA21_: ;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103))) goto LA28_;
			add__ast_4798(result, a);
			semiStmtList__parser_615(p, result);
		}
		goto LA16_;
		LA28_: ;
		{
			a = colonOrEquals__parser_343(p, a);
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA33_;
				transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 160));
			}
			LA33_: ;
			add__ast_4798(result, a);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102))) goto LA37_;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
				transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 160));
				{
					while (1) {
						NIM_BOOL T41_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
						T41_ = (NIM_BOOL)0;
						T41_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91)));
						if (!(T41_)) goto LA42_;
						T41_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)));
						LA42_: ;
						if (!T41_) goto LA40;
						a_2 = exprColonEqExpr__parser_371(p);
						add__ast_4798(result, a_2);
						{
							if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA45_;
							goto LA39;
						}
						LA45_: ;
						getTok__parser_45(p);
						skipComment__parser_51(p, a_2);
					} LA40: ;
				} LA39: ;
			}
			LA37_: ;
		}
		LA16_: ;
	}
	LA1_: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, setOrTableConstr__parser_525)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA3_;
		getTok__parser_45(p);
		transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 54));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)))) goto LA7;
				a = exprColonEqExpr__parser_371(p);
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA10_;
					transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 54));
				}
				LA10_: ;
				add__ast_4798(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA14_;
					goto LA6;
				}
				LA14_: ;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			} LA7: ;
		} LA6: ;
	}
	LA1_: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseCast__parser_549)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61), (&(*p)));
	getTok__parser_45(p);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92))) goto LA3_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T5_ = NIM_NIL;
		T5_ = parseTypeDesc__parser_260(p);
		add__ast_4798(result, T5_);
		optPar__parser_83(p);
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93));
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90));
		optInd__parser_85(p, result);
		T6_ = NIM_NIL;
		T6_ = parseExpr__parser_256(p);
		add__ast_4798(result, T6_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		add__ast_4798(result, (*p).emptyNode);
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90));
		optInd__parser_85(p, result);
		T8_ = NIM_NIL;
		T8_ = exprColonEqExpr__parser_371(p);
		add__ast_4798(result, T8_);
	}
	LA1_: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, identOrLiteral__parser_741)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 58):
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62):
	{
		result = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		getTok__parser_45(p);
		result = parseGStrLit__parser_587(p, result);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
	{
		result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 69):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 70):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 7), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 71):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 8), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 72):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 9), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 73):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 10), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 74):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 11), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 75):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 12), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 76):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 13), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 77):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 14), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 78):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 79):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 80):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 17), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 81):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 82):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 19), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 83):
	{
		result = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), (*p).tok.literal, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 84):
	{
		result = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 21), (*p).tok.literal, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 85):
	{
		result = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22), (*p).tok.literal, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 88):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5), ((NI64) (((NU8)((*p).tok.literal->data[((NI) 0)])))), (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 89):
	{
		NI splitPos;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* str;
		NimStringDesc* T22_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callee;
		NimStringDesc* T23_;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T24_;
		splitPos = ((NI) ((*p).tok.iNumber));
		T22_ = NIM_NIL;
		T22_ = substr__system_7745((*p).tok.literal, ((NI) 0), (NI)(splitPos - ((NI) 1)));
		str = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 21), T22_, (&(*p)));
		T23_ = NIM_NIL;
		T23_ = substr__system_7757((*p).tok.literal, splitPos);
		T24_ = NIM_NIL;
		T24_ = getIdent__idents_152((*p).lex.cache, T23_);
		callee = newIdentNodeP__parser_69(T24_, (&(*p)));
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45), (&(*p)));
		add__ast_4798(result, str);
		add__ast_4798(result, callee);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 44):
	{
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90):
	{
		{
			if (!((6 &((NU8)1<<((NU)(mode)&7U)))!=0)) goto LA29_;
			result = exprColonEqExprList__parser_458(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37), ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
		}
		goto LA27_;
		LA29_: ;
		{
			result = parsePar__parser_654(p);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 94):
	{
		result = setOrTableConstr__parser_525(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92):
	{
		result = exprColonEqExprList__parser_458(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 11):
	{
		result = parseCast__parser_549(p);
	}
	break;
	default:
	{
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
		getTok__parser_45(p);
		result = (*p).emptyNode;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, primary__parser_114)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL isSigil;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		T3_ = (NIM_BOOL)0;
		T3_ = isOperator__parser_43((&(*p).tok));
		if (!T3_) goto LA4_;
		isSigil = isSigilLike__parser_265((&(*p).tok));
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30), (&(*p)));
		a = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		add__ast_4798(result, a);
		getTok__parser_45(p);
		optInd__parser_85(p, a);
		{
			NI baseInd;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
			if (!isSigil) goto LA8_;
			baseInd = (*p).lex.currLineIndent;
			T10_ = NIM_NIL;
			T10_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 3));
			add__ast_4798(result, T10_);
			result = primarySuffix__parser_823(p, result, baseInd, mode);
		}
		goto LA6_;
		LA8_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
			T12_ = NIM_NIL;
			T12_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
			add__ast_4798(result, T12_);
		}
		LA6_: ;
		goto BeforeRet_;
	}
	LA4_: ;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 61):
	{
		result = parseTuple__parser_1056(p, (mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2)));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 51):
	{
		getTok__parser_45(p);
		result = parseProcExpr__parser_1149(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 30):
	{
		getTok__parser_45(p);
		result = parseProcExpr__parser_1149(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 38):
	{
		getTok__parser_45(p);
		result = parseProcExpr__parser_1149(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 24):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2))) goto LA20_;
			result = parseEnum__parser_1271(p);
		}
		goto LA18_;
		LA20_: ;
		{
			result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 150), (&(*p)));
			getTok__parser_45(p);
		}
		LA18_: ;
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 47):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2))) goto LA26_;
			result = parseObject__parser_1273(p);
		}
		goto LA24_;
		LA26_: ;
		{
			result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 133), (&(*p)));
			getTok__parser_45(p);
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 12):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2))) goto LA32_;
			result = parseTypeClass__parser_1275(p);
		}
		goto LA30_;
		LA32_: ;
		{
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_19));
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 7):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T36_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 55), (&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T36_ = NIM_NIL;
		T36_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
		add__ast_4798(result, T36_);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
	{
		result = parseTypeDescKAux__parser_1201(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 143), mode);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50):
	{
		result = parseTypeDescKAux__parser_1201(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 145), mode);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 54):
	{
		result = parseTypeDescKAux__parser_1201(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 141), mode);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 52):
	{
		result = parseTypeDescKAux__parser_1201(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 142), mode);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 18):
	{
		result = parseTypeDescKAux__parser_1201(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 146), mode);
	}
	break;
	default:
	{
		NI baseInd_2;
		baseInd_2 = (*p).lex.currLineIndent;
		result = identOrLiteral__parser_741(p, mode);
		{
			if (!!((mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 3)))) goto LA45_;
			result = primarySuffix__parser_823(p, result, baseInd_2, mode);
		}
		LA45_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, checkBinary__parser_286)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110))) goto LA3_;
		{
			NIM_BOOL T7_;
			NimStringDesc* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = (((NI8) 0) < (*p).tok.strongSpaceB);
			if (!(T7_)) goto LA8_;
			T7_ = ((*p).tok.strongSpaceA == ((NI8) 0));
			LA8_: ;
			if (!T7_) goto LA9_;
			T11_ = NIM_NIL;
			T11_ = prettyTok__lexer_239((&(*p).tok));
			parMessage__parser_47(p, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 55), T11_);
		}
		LA9_: ;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isRightAssociative__parser_272)(tyObject_Token__TUeI5CB5zbppKJkmeKoDMw* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*tok).tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110));
	if (!(T1_)) goto LA2_;
	T1_ = ((NU8)((*(*tok).ident).s->data[((NI) 0)]) == (NU8)(94));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseOperators__parser_858)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* headNode, NI limit, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI opPrec;
	tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w modeB;
	result = NIM_NIL;
	result = headNode;
	opPrec = getPrecedence__lexer_1376((&(*p).tok));
	{
		if (!(mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2))) goto LA3_;
		modeB = ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 1);
	}
	goto LA1_;
	LA3_: ;
	{
		modeB = mode;
	}
	LA1_: ;
	{
		while (1) {
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			NIM_BOOL T12_;
			NI leftAssoc;
			NIM_BOOL T13_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* opNode;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = (limit <= opPrec);
			if (!(T9_)) goto LA10_;
			T9_ = ((*p).tok.indent < ((NI) 0));
			LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = isUnary__parser_279((&(*p).tok));
			T8_ = !(T12_);
			LA11_: ;
			if (!T8_) goto LA7;
			checkBinary__parser_286((&(*p)));
			T13_ = (NIM_BOOL)0;
			T13_ = isRightAssociative__parser_272((&(*p).tok));
			leftAssoc = !(T13_);
			a = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), (&(*p)));
			opNode = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
			getTok__parser_45(p);
			flexComment__parser_183(p, a);
			optPar__parser_83(p);
			b = simpleExprAux__parser_117(p, (NI)(opPrec + leftAssoc), modeB);
			add__ast_4798(a, opNode);
			add__ast_4798(a, result);
			add__ast_4798(a, b);
			result = a;
			opPrec = getPrecedence__lexer_1376((&(*p).tok));
		} LA7: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, simpleExprAux__parser_117)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NI limit, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = primary__parser_114(p, mode);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmaExp;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = ((*p).tok.indent < ((NI) 0));
		if (T6_) goto LA7_;
		T6_ = ((*p).currInd < (*p).tok.indent);
		LA7_: ;
		T4_ = T6_;
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T3_ = (mode == ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
		LA8_: ;
		if (!T3_) goto LA9_;
		pragmaExp = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43), (&(*p)));
		add__ast_4798(pragmaExp, result);
		T11_ = NIM_NIL;
		T11_ = parsePragma__parser_105(p);
		add__ast_4798(pragmaExp, T11_);
		result = pragmaExp;
	}
	LA9_: ;
	result = parseOperators__parser_858(p, result, limit, mode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, simpleExpr__parser_609)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = simpleExprAux__parser_117(p, ((NI) -1), mode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, binaryNot__parser_1333)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* notOpr;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 45))) goto LA3_;
		notOpr = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, notOpr);
		b = parseExpr__parser_256(p);
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), (&(*p)));
		add__ast_4798(result, notOpr);
		add__ast_4798(result, a);
		add__ast_4798(result, b);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDesc__parser_260)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = simpleExpr__parser_609(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 1));
	result = binaryNot__parser_1333(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIdentColonEquals__parser_998)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tySet_tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
{	result = NIM_NIL;
	a = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (&(*p)));
	{
		while (1) {
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
			{
				{
					if (!((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ) 0))&7U)))!=0)) goto LA6_;
					a = identWithPragma__parser_973(p, ((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ) 2))&7U)))!=0));
				}
				goto LA4_;
				LA6_: ;
				{
					a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
				}
				LA4_: ;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA11_;
					goto BeforeRet_;
				}
				LA11_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA16_;
				goto LA1;
			}
			LA16_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T22_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA20_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T22_ = NIM_NIL;
		T22_ = parseTypeDesc__parser_260(p);
		add__ast_4798(result, T22_);
	}
	goto LA18_;
	LA20_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
		T24_ = NIM_NIL;
		T24_ = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (&(*p)));
		add__ast_4798(result, T24_);
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106)));
			if (!(T27_)) goto LA28_;
			T27_ = !(((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__ojTNJwusq6RFqsNg3Ps5TQ) 1))&7U)))!=0));
			LA28_: ;
			if (!T27_) goto LA29_;
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_23), (&(*p).tok));
		}
		LA29_: ;
	}
	LA18_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T35_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106))) goto LA33_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T35_ = NIM_NIL;
		T35_ = parseExpr__parser_256(p);
		add__ast_4798(result, T35_);
	}
	goto LA31_;
	LA33_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T37_;
		T37_ = NIM_NIL;
		T37_ = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (&(*p)));
		add__ast_4798(result, T37_);
	}
	LA31_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseParamList__parser_262)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL retColon) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	NIM_BOOL hasParLe;
	NIM_BOOL T1_;
	NIM_BOOL hasRet;
	result = NIM_NIL;
	a = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), (&(*p)));
	add__ast_4798(result, (*p).emptyNode);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90));
	if (!(T1_)) goto LA2_;
	T1_ = ((*p).tok.indent < ((NI) 0));
	LA2_: ;
	hasParLe = T1_;
	{
		if (!hasParLe) goto LA5_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		{
			while (1) {
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
				{
					a = parseIdentColonEquals__parser_998(p, 3);
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91):
				{
					goto LA7;
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
				{
					parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_24));
					goto LA7;
				}
				break;
				default:
				{
					parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_25));
					goto LA7;
				}
				break;
				}
				add__ast_4798(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103)))) goto LA15_;
					goto LA7;
				}
				LA15_: ;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			}
		} LA7: ;
		optPar__parser_83(p);
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
	}
	LA5_: ;
	{
		if (!retColon) goto LA19_;
		hasRet = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104));
	}
	goto LA17_;
	LA19_: ;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110));
		if (!(T22_)) goto LA23_;
		T22_ = eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_26));
		LA23_: ;
		hasRet = T22_;
	}
	LA17_: ;
	{
		NIM_BOOL T26_;
		T26_ = (NIM_BOOL)0;
		T26_ = hasRet;
		if (!(T26_)) goto LA27_;
		T26_ = ((*p).tok.indent < ((NI) 0));
		LA27_: ;
		if (!T26_) goto LA28_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), parseTypeDesc__parser_260(p));
	}
	goto LA24_;
	LA28_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = !(retColon);
		if (!(T31_)) goto LA32_;
		T31_ = !(hasParLe);
		LA32_: ;
		if (!T31_) goto LA33_;
		result = (*p).emptyNode;
	}
	goto LA24_;
	LA33_: ;
	LA24_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, makeCall__parser_1361)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA3_;
		result = n;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
		add__ast_4798(result, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseDoBlock__parser_1127)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragmas;
	result = NIM_NIL;
	params = parseParamList__parser_262(p, NIM_FALSE);
	pragmas = optPragmas__parser_1120(p);
	colcom__parser_299(p, result);
	result = parseStmt__parser_258(p);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*params).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		if (T3_) goto LA4_;
		T3_ = !(((*pragmas).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*params).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA9_;
			params = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), (&(*p)));
			add__ast_4798(params, (*p).emptyNode);
		}
		LA9_: ;
		result = newProcNode__ast_3809(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52), info, result, params, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, pragmas, (*p).emptyNode);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, optionalExprList__parser_405)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw endTok, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result) {
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*p).tok.tokType == endTok));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)));
			LA4_: ;
			if (!T3_) goto LA2;
			a = parseExpr__parser_256(p);
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		} LA2: ;
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, postExprBlocks__parser_107)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* openingParams;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* openingPragmas;
{	result = NIM_NIL;
	result = x;
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	openingParams = (*p).emptyNode;
	openingPragmas = (*p).emptyNode;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 20))) goto LA7_;
		getTok__parser_45(p);
		openingParams = parseParamList__parser_262(p, NIM_FALSE);
		openingPragmas = optPragmas__parser_1120(p);
	}
	LA7_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA11_;
		result = makeCall__parser_1361(result);
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* stmtList;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T17_;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 25)))) goto LA15_;
			stmtList = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (&(*p)));
			T17_ = NIM_NIL;
			T17_ = parseStmt__parser_258(p);
			add__ast_4798(stmtList, T17_);
			{
				if (!((*(*stmtList)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115))) goto LA20_;
				stmtList = (*stmtList)._kind_6.sons->data[((NI) 0)];
			}
			LA20_: ;
			(*stmtList).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 16)) & 31);
			{
				NIM_BOOL T24_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
				T24_ = (NIM_BOOL)0;
				T24_ = !(((*openingParams).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
				if (T24_) goto LA25_;
				T24_ = !(((*openingPragmas).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
				LA25_: ;
				if (!T24_) goto LA26_;
				{
					if (!((*openingParams).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA30_;
					openingParams = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 76), (&(*p)));
					add__ast_4798(openingParams, (*p).emptyNode);
				}
				LA30_: ;
				T32_ = NIM_NIL;
				T32_ = newProcNode__ast_3809(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52), (*stmtList).info, stmtList, openingParams, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, openingPragmas, (*p).emptyNode);
				add__ast_4798(result, T32_);
			}
			goto LA22_;
			LA26_: ;
			{
				add__ast_4798(result, stmtList);
			}
			LA22_: ;
		}
		LA15_: ;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nextBlock;
				tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw nextToken;
				if (!((*p).tok.indent == (*p).currInd)) goto LA35;
				nextBlock = NIM_NIL;
				nextToken = (*p).tok.tokType;
				{
					tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
					if (!(nextToken == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 20))) goto LA38_;
					info = parLineInfo__parser_76((&(*p)));
					getTok__parser_45(p);
					nextBlock = parseDoBlock__parser_1127(p, info);
				}
				goto LA36_;
				LA38_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T48_;
					switch (nextToken) {
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85), (&(*p)));
						exprList__parser_379(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104), nextBlock);
					}
					break;
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21):
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), (&(*p)));
						getTok__parser_45(p);
						optInd__parser_85(p, nextBlock);
						T43_ = NIM_NIL;
						T43_ = parseExpr__parser_256(p);
						add__ast_4798(nextBlock, T43_);
					}
					break;
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 25):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87), (&(*p)));
						optionalExprList__parser_405(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104), nextBlock);
					}
					break;
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 27):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107), (&(*p)));
						getTok__parser_45(p);
					}
					break;
					case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (&(*p)));
						getTok__parser_45(p);
					}
					break;
					default:
					{
						goto LA34;
					}
					break;
					}
					eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104));
					T48_ = NIM_NIL;
					T48_ = parseStmt__parser_258(p);
					add__ast_4798(nextBlock, T48_);
				}
				LA36_: ;
				(*nextBlock).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 16)) & 31);
				add__ast_4798(result, nextBlock);
				{
					if (!((*nextBlock).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88) || (*nextBlock).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA51_;
					goto LA34;
				}
				LA51_: ;
			} LA35: ;
		} LA34: ;
	}
	goto LA9_;
	LA11_: ;
	{
		{
			if (!!(((*openingParams).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA56_;
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_27));
		}
		LA56_: ;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseReturnOrRaise__parser_1584)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111))) goto LA3_;
		skipComment__parser_51(p, result);
		add__ast_4798(result, (*p).emptyNode);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T10_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = (((NI) 0) <= (*p).tok.indent);
		if (!(T7_)) goto LA8_;
		T7_ = ((*p).tok.indent <= (*p).currInd);
		LA8_: ;
		T6_ = T7_;
		if (T6_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = isExprStart__parser_1182((&(*p)));
		T6_ = !(T10_);
		LA9_: ;
		if (!T6_) goto LA11_;
		add__ast_4798(result, (*p).emptyNode);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e;
		e = parseExpr__parser_256(p);
		e = postExprBlocks__parser_107(p, e);
		add__ast_4798(result, e);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseModuleName__parser_1511)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = parseExpr__parser_256(p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseImport__parser_1515)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	a = parseModuleName__parser_1511(p, kind);
	add__ast_4798(result, a);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 25))) goto LA3_;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 25))) goto LA7_;
			transitionSonsKind__ast_4347(result, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw)(kind + ((NI) 1)))));
		}
		LA7_: ;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		{
			while (1) {
				(*p).hasProgress = NIM_FALSE;
				a = parseModuleName__parser_1511(p, kind);
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
					if (T13_) goto LA14_;
					T13_ = !((*p).hasProgress);
					LA14_: ;
					if (!T13_) goto LA15_;
					goto LA9;
				}
				LA15_: ;
				add__ast_4798(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA19_;
					goto LA9;
				}
				LA19_: ;
				getTok__parser_45(p);
				optInd__parser_85(p, a);
			}
		} LA9: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseFromStmt__parser_1564)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 120), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	a = parseModuleName__parser_1511(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 116));
	add__ast_4798(result, a);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 32));
	optInd__parser_85(p, result);
	{
		while (1) {
			(*p).hasProgress = NIM_FALSE;
			a = parseExpr__parser_256(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
				if (T5_) goto LA6_;
				T5_ = !((*p).hasProgress);
				LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA11_;
				goto LA1;
			}
			LA11_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIncludeStmt__parser_1548)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 121), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			(*p).hasProgress = NIM_FALSE;
			a = parseExpr__parser_256(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
				if (T5_) goto LA6_;
				T5_ = !((*p).hasProgress);
				LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA11_;
				goto LA1;
			}
			LA11_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newCommentStmt__parser_1972)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125), (&(*p)));
	commenteq___ast_1365(result, (*p).tok.literal);
	getTok__parser_45(p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseExprStmt__parser_110)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
	result = NIM_NIL;
	a = simpleExpr__parser_609(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		b = parseExpr__parser_256(p);
		b = postExprBlocks__parser_107(p, b);
		add__ast_4798(result, a);
		add__ast_4798(result, b);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL isFirstParam;
		isFirstParam = NIM_FALSE;
		{
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*p).tok.indent < ((NI) 0));
			if (!(T9_)) goto LA10_;
			T9_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102));
			LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			T8_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26));
			LA11_: ;
			if (!T8_) goto LA12_;
			result = a;
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
					getTok__parser_45(p);
					optInd__parser_85(p, result);
					T16_ = NIM_NIL;
					T16_ = commandParam__parser_775(p, (&isFirstParam), ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
					add__ast_4798(result, T16_);
					{
						if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA19_;
						goto LA14;
					}
					LA19_: ;
				}
			} LA14: ;
		}
		goto LA6_;
		LA12_: ;
		{
			NIM_BOOL T22_;
			tyArray__iegsN9bf6GqRiWprrJjTAoA T26_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*p).tok.indent < ((NI) 0));
			if (!(T22_)) goto LA23_;
			T22_ = isExprStart__parser_1182((&(*p)));
			LA23_: ;
			if (!T22_) goto LA24_;
			nimZeroMem((void*)T26_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
			T26_[0] = a;
			result = newTreeI__ast_3384(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26), (*a).info, T26_, 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T29_;
					T29_ = NIM_NIL;
					T29_ = commandParam__parser_775(p, (&isFirstParam), ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
					add__ast_4798(result, T29_);
					{
						if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA32_;
						goto LA27;
					}
					LA32_: ;
					getTok__parser_45(p);
					optInd__parser_85(p, result);
				}
			} LA27: ;
		}
		goto LA6_;
		LA24_: ;
		{
			result = a;
		}
		LA6_: ;
		result = postExprBlocks__parser_107(p, result);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, simpleStmt__parser_2451)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 55):
	{
		result = parseReturnOrRaise__parser_1584(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 53):
	{
		result = parseReturnOrRaise__parser_1584(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 68):
	{
		result = parseReturnOrRaise__parser_1584(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 104));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 17):
	{
		result = parseReturnOrRaise__parser_1584(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 114));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 9):
	{
		result = parseReturnOrRaise__parser_1584(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 14):
	{
		result = parseReturnOrRaise__parser_1584(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98):
	{
		result = parseStmtPragma__parser_103(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 32):
	{
		result = parseImport__parser_1515(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 116));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 26):
	{
		result = parseImport__parser_1515(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 118));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 29):
	{
		result = parseFromStmt__parser_1564(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 34):
	{
		result = parseIncludeStmt__parser_1548(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111):
	{
		result = newCommentStmt__parser_1972(p);
	}
	break;
	default:
	{
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = isExprStart__parser_1182((&(*p)));
			if (!T16_) goto LA17_;
			result = parseExprStmt__parser_110(p);
		}
		goto LA14_;
		LA17_: ;
		{
			result = (*p).emptyNode;
		}
		LA14_: ;
	}
	break;
	}
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125)))) goto LA22_;
		skipComment__parser_51(p, result);
	}
	LA22_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseStmt__parser_258)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NI oldIndX60gensym233_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (&(*p)));
		oldIndX60gensym233_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				{
					if (!((*p).tok.indent == (*p).currInd)) goto LA9_;
				}
				goto LA7_;
				LA9_: ;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103))) goto LA12_;
					getTok__parser_45(p);
					{
						NIM_BOOL T16_;
						T16_ = (NIM_BOOL)0;
						T16_ = ((*p).tok.indent < ((NI) 0));
						if (T16_) goto LA17_;
						T16_ = ((*p).tok.indent == (*p).currInd);
						LA17_: ;
						if (!T16_) goto LA18_;
					}
					goto LA14_;
					LA18_: ;
					{
						goto LA5;
					}
					LA14_: ;
				}
				goto LA7_;
				LA12_: ;
				{
					{
						NIM_BOOL T24_;
						T24_ = (NIM_BOOL)0;
						T24_ = ((*p).currInd < (*p).tok.indent);
						if (!(T24_)) goto LA25_;
						T24_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107)));
						LA25_: ;
						if (!T24_) goto LA26_;
						parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
					}
					LA26_: ;
					goto LA5;
				}
				LA7_: ;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 99) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93))) goto LA30_;
					goto LA5;
				}
				LA30_: ;
				(*p).hasProgress = NIM_FALSE;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21))) goto LA34_;
					goto LA5;
				}
				LA34_: ;
				a = complexOrSimpleStmt__parser_607(p);
				{
					NIM_BOOL T38_;
					T38_ = (NIM_BOOL)0;
					T38_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
					if (!(T38_)) goto LA39_;
					T38_ = !((*p).hasProgress);
					LA39_: ;
					if (!T38_) goto LA40_;
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
					goto LA5;
				}
				goto LA36_;
				LA40_: ;
				{
					add__ast_4798(result, a);
				}
				LA36_: ;
				{
					NIM_BOOL T45_;
					T45_ = (NIM_BOOL)0;
					T45_ = !((*p).hasProgress);
					if (!(T45_)) goto LA46_;
					T45_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1));
					LA46_: ;
					if (!T45_) goto LA47_;
					goto LA5;
				}
				LA47_: ;
			}
		} LA5: ;
		(*p).currInd = oldIndX60gensym233_;
	}
	goto LA1_;
	LA3_: ;
	{
		switch ((*p).tok.tokType) {
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 31):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 66):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 10):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 60):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 28):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 8):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 6):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 51):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 30):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 38):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 40):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 13):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
		case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
		{
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_10));
			result = (*p).emptyNode;
		}
		break;
		default:
		{
			{
				if (!(((NI) 0) < (*p).inSemiStmtList)) goto LA54_;
				result = simpleStmt__parser_2451(p);
				{
					if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA58_;
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
				}
				LA58_: ;
			}
			goto LA52_;
			LA54_: ;
			{
				result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (&(*p)));
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
						NIM_BOOL err;
						{
							if (!(((NI) 0) <= (*p).tok.indent)) goto LA65_;
							parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
						}
						LA65_: ;
						(*p).hasProgress = NIM_FALSE;
						a_2 = simpleStmt__parser_2451(p);
						err = !((*p).hasProgress);
						{
							if (!((*a_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA69_;
							parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
						}
						LA69_: ;
						add__ast_4798(result, a_2);
						{
							if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103)))) goto LA73_;
							goto LA61;
						}
						LA73_: ;
						getTok__parser_45(p);
						{
							NIM_BOOL T77_;
							T77_ = (NIM_BOOL)0;
							T77_ = err;
							if (!(T77_)) goto LA78_;
							T77_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1));
							LA78_: ;
							if (!T77_) goto LA79_;
							goto LA61;
						}
						LA79_: ;
					}
				} LA61: ;
			}
			LA52_: ;
		}
		break;
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseBlock__parser_112)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112), (&(*p)));
	getTokNoInd__parser_196(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA3_;
		add__ast_4798(result, (*p).emptyNode);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		T6_ = NIM_NIL;
		T6_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
		add__ast_4798(result, T6_);
	}
	LA1_: ;
	colcom__parser_299(p, result);
	T7_ = NIM_NIL;
	T7_ = parseStmt__parser_258(p);
	add__ast_4798(result, T7_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseVarTuple__parser_1224)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112))) goto LA2;
			a = identWithPragma__parser_973(p, NIM_TRUE);
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__parser_45(p);
			skipComment__parser_51(p, a);
		} LA2: ;
	} LA1: ;
	add__ast_4798(result, (*p).emptyNode);
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseFor__parser_1226)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
	result = NIM_NIL;
	getTokNoInd__parser_196(p);
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 94), (&(*p)));
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = parseVarTuple__parser_1224(p);
		add__ast_4798(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		a = identWithPragma__parser_973(p, NIM_FALSE);
		add__ast_4798(result, a);
		{
			while (1) {
				if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102))) goto LA8;
				getTok__parser_45(p);
				optInd__parser_85(p, a);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
					if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90))) goto LA11_;
					T13_ = NIM_NIL;
					T13_ = parseVarTuple__parser_1224(p);
					add__ast_4798(result, T13_);
					goto LA7;
				}
				LA11_: ;
				a = identWithPragma__parser_973(p, NIM_FALSE);
				add__ast_4798(result, a);
			} LA8: ;
		} LA7: ;
	}
	LA1_: ;
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 33));
	T14_ = NIM_NIL;
	T14_ = parseExpr__parser_256(p);
	add__ast_4798(result, T14_);
	colcom__parser_299(p, result);
	T15_ = NIM_NIL;
	T15_ = parseStmt__parser_258(p);
	add__ast_4798(result, T15_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseCase__parser_101)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
	NIM_BOOL inElif;
	NIM_BOOL wasIndented;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	NI oldInd;
	result = NIM_NIL;
	b = NIM_NIL;
	inElif = NIM_FALSE;
	wasIndented = NIM_FALSE;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97), (&(*p)));
	getTok__parser_45(p);
	T1_ = NIM_NIL;
	T1_ = parseExpr__parser_256(p);
	add__ast_4798(result, T1_);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA4_;
		getTok__parser_45(p);
	}
	LA4_: ;
	skipComment__parser_51(p, result);
	oldInd = (*p).currInd;
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA8_;
		(*p).currInd = (*p).tok.indent;
		wasIndented = NIM_TRUE;
	}
	LA8_: ;
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T21_;
			if (!((*p).tok.indent == (*p).currInd)) goto LA11;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 48):
			{
				{
					if (!inElif) goto LA15_;
					goto LA10;
				}
				LA15_: ;
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85), (&(*p)));
				exprList__parser_379(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104), b);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
				inElif = NIM_TRUE;
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), (&(*p)));
				getTok__parser_45(p);
				optInd__parser_85(p, b);
				T18_ = NIM_NIL;
				T18_ = parseExpr__parser_256(p);
				add__ast_4798(b, T18_);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (&(*p)));
				getTok__parser_45(p);
			}
			break;
			default:
			{
				goto LA10;
			}
			break;
			}
			colcom__parser_299(p, b);
			T21_ = NIM_NIL;
			T21_ = parseStmt__parser_258(p);
			add__ast_4798(b, T21_);
			add__ast_4798(result, b);
			{
				if (!((*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88))) goto LA24_;
				goto LA10;
			}
			LA24_: ;
		} LA11: ;
	} LA10: ;
	{
		if (!wasIndented) goto LA28_;
		(*p).currInd = oldInd;
	}
	LA28_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTry__parser_98)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, NIM_BOOL isExpr) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106), (&(*p)));
	getTok__parser_45(p);
	colcom__parser_299(p, result);
	T1_ = NIM_NIL;
	T1_ = parseStmt__parser_258(p);
	add__ast_4798(result, T1_);
	b = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	{
		while (1) {
			NIM_BOOL T4_;
			NIM_BOOL T5_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
			T4_ = (NIM_BOOL)0;
			T5_ = (NIM_BOOL)0;
			T5_ = ((*p).tok.indent == (*p).currInd);
			if (T5_) goto LA6_;
			T5_ = ((*p).tok.indent < ((NI) 0));
			LA6_: ;
			T4_ = T5_;
			if (T4_) goto LA7_;
			T4_ = isExpr;
			LA7_: ;
			if (!T4_) goto LA3;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 25):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87), (&(*p)));
				optionalExprList__parser_405(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104), b);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 27):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107), (&(*p)));
				getTok__parser_45(p);
			}
			break;
			default:
			{
				goto LA2;
			}
			break;
			}
			colcom__parser_299(p, b);
			T11_ = NIM_NIL;
			T11_ = parseStmt__parser_258(p);
			add__ast_4798(b, T11_);
			add__ast_4798(result, b);
		} LA3: ;
	} LA2: ;
	{
		if (!(b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL))) goto LA14_;
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_28));
	}
	LA14_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseExpr__parser_256)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 8):
	{
		result = parseBlock__parser_112(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 31):
	{
		result = parseIfOrWhenExpr__parser_612(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 28):
	{
		result = parseFor__parser_1226(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
	{
		result = parseIfOrWhenExpr__parser_612(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 10):
	{
		result = parseCase__parser_101(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 60):
	{
		result = parseTry__parser_98(p, NIM_TRUE);
	}
	break;
	default:
	{
		result = simpleExpr__parser_609(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseIfOrWhen__parser_1605)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
			getTok__parser_45(p);
			branch = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), (&(*p)));
			optInd__parser_85(p, branch);
			T3_ = NIM_NIL;
			T3_ = parseExpr__parser_256(p);
			add__ast_4798(branch, T3_);
			colcom__parser_299(p, branch);
			T4_ = NIM_NIL;
			T4_ = parseStmt__parser_258(p);
			add__ast_4798(branch, T4_);
			skipComment__parser_51(p, branch);
			add__ast_4798(result, branch);
			{
				NIM_BOOL T7_;
				NIM_BOOL T9_;
				T7_ = (NIM_BOOL)0;
				T7_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 21)));
				if (T7_) goto LA8_;
				T9_ = (NIM_BOOL)0;
				T9_ = ((*p).tok.indent == (*p).currInd);
				if (T9_) goto LA10_;
				T9_ = ((*p).tok.indent < ((NI) 0));
				LA10_: ;
				T7_ = !(T9_);
				LA8_: ;
				if (!T7_) goto LA11_;
				goto LA1;
			}
			LA11_: ;
		}
	} LA1: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch_2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T21_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*p).tok.indent == (*p).currInd);
		if (T17_) goto LA18_;
		T17_ = ((*p).tok.indent < ((NI) 0));
		LA18_: ;
		T15_ = T17_;
		LA16_: ;
		if (!T15_) goto LA19_;
		branch_2 = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (&(*p)));
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 22));
		colcom__parser_299(p, branch_2);
		T21_ = NIM_NIL;
		T21_ = parseStmt__parser_258(p);
		add__ast_4798(branch_2, T21_);
		add__ast_4798(result, branch_2);
	}
	LA19_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseWhile__parser_1673)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	T1_ = NIM_NIL;
	T1_ = parseExpr__parser_256(p);
	add__ast_4798(result, T1_);
	colcom__parser_299(p, result);
	T2_ = NIM_NIL;
	T2_ = parseStmt__parser_258(p);
	add__ast_4798(result, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseExceptBlock__parser_1736)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	colcom__parser_299(p, result);
	T1_ = NIM_NIL;
	T1_ = parseStmt__parser_258(p);
	add__ast_4798(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseStaticOrDefer__parser_1763)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw k) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(k, (&(*p)));
	getTok__parser_45(p);
	colcom__parser_299(p, result);
	T1_ = NIM_NIL;
	T1_ = parseStmt__parser_258(p);
	add__ast_4798(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseAsm__parser_1771)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 89), (&(*p)));
	getTokNoInd__parser_196(p);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = parsePragma__parser_105(p);
		add__ast_4798(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA1_: ;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 83):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		T8_ = NIM_NIL;
		T8_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), (*p).tok.literal, (&(*p)));
		add__ast_4798(result, T8_);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 84):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
		T10_ = NIM_NIL;
		T10_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 21), (*p).tok.literal, (&(*p)));
		add__ast_4798(result, T10_);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 85):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
		T12_ = NIM_NIL;
		T12_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22), (*p).tok.literal, (&(*p)));
		add__ast_4798(result, T12_);
	}
	break;
	default:
	{
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_29));
		add__ast_4798(result, (*p).emptyNode);
		goto BeforeRet_;
	}
	break;
	}
	getTok__parser_45(p);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parsePattern__parser_1871)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 94));
	result = parseStmt__parser_258(p);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 95));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, expectIdent__parser_74)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2)))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = prettyTok__lexer_239((&(*p).tok));
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), T5_);
		lexMessage__lexer_327((&(*p).lex), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T6_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseGenericParam__parser_1802)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
{	result = NIM_NIL;
	a = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (&(*p)));
	{
		while (1) {
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 33):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50):
			{
				tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* x;
				NimStringDesc* T4_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
				T4_ = NIM_NIL;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 33))) goto LA7_;
					T4_ = copyString(((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_30));
				}
				goto LA5_;
				LA7_: ;
				{
					T4_ = copyString(((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_31));
				}
				LA5_: ;
				x = getIdent__idents_152((*p).lex.cache, T4_);
				a = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30), (&(*p)));
				T10_ = NIM_NIL;
				T10_ = newIdentNodeP__parser_69(x, (&(*p)));
				add__ast_4798(a, T10_);
				getTok__parser_45(p);
				expectIdent__parser_74((&(*p)));
				T11_ = NIM_NIL;
				T11_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
				add__ast_4798(a, T11_);
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
			{
				a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA15_;
					goto BeforeRet_;
				}
				LA15_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA20_;
				goto LA1;
			}
			LA20_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T26_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA24_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T26_ = NIM_NIL;
		T26_ = parseExpr__parser_256(p);
		add__ast_4798(result, T26_);
	}
	goto LA22_;
	LA24_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA22_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106))) goto LA30_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T32_ = NIM_NIL;
		T32_ = parseExpr__parser_256(p);
		add__ast_4798(result, T32_);
	}
	goto LA28_;
	LA30_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseGenericParamList__parser_1855)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 33) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 50))) goto LA2;
			a = parseGenericParam__parser_1802(p);
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__parser_45(p);
			skipComment__parser_51(p, a);
		} LA2: ;
	} LA1: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 93));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, indAndComment__parser_88)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL maybeMissEquals) {
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111))) goto LA7_;
			rawSkipComment__parser_165(p, n);
		}
		goto LA5_;
		LA7_: ;
		{
			NI col;
			tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
			tyArray__nHXaesL0DJZHyVS07ARPRA T12_;
			NimStringDesc* T13_;
			if (!maybeMissEquals) goto LA10_;
			col = (NI)((*p).bufposPrevious - (*p).lineStartPrevious);
			info = newLineInfo__msgs_391((*p).lex.fileIdx, (*p).lineNumberPrevious, col);
			nimZeroMem((void*)T12_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T12_[0] = dollar___msgs_634((*p).lex.config, info);
			T13_ = NIM_NIL;
			T13_ = nsuFormatOpenArray(((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_32), T12_, 1);
			parMessage__parser_147((&(*p)), T13_);
		}
		goto LA5_;
		LA10_: ;
		{
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		skipComment__parser_51(p, n);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseRoutine__parser_1874)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
	NIM_BOOL maybeMissEquals;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
	NI T47_;
{	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		NIM_BOOL T3_;
		tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) || kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) || kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84) || kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2) || (*p).tok.tokType >= ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 3) && (*p).tok.tokType <= ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 68) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112)));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw)0;
		{
			if (!(kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79))) goto LA10_;
			T7_ = ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51);
		}
		goto LA8_;
		LA10_: ;
		{
			T7_ = kind;
		}
		LA8_: ;
		result = parseProcExpr__parser_1149(p, NIM_TRUE, T7_);
		goto BeforeRet_;
	}
	LA5_: ;
	T13_ = NIM_NIL;
	T13_ = identVis__parser_952(p, NIM_FALSE);
	add__ast_4798(result, T13_);
	{
		NIM_BOOL T16_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T20_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 94));
		if (!(T16_)) goto LA17_;
		T16_ = validInd__parser_162(p);
		LA17_: ;
		if (!T16_) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = parsePattern__parser_1871(p);
		add__ast_4798(result, T20_);
	}
	goto LA14_;
	LA18_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA14_: ;
	{
		NIM_BOOL T24_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T28_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92));
		if (!(T24_)) goto LA25_;
		T24_ = validInd__parser_162(p);
		LA25_: ;
		if (!T24_) goto LA26_;
		T28_ = NIM_NIL;
		T28_ = parseGenericParamList__parser_1855(p);
		add__ast_4798(result, T28_);
	}
	goto LA22_;
	LA26_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA22_: ;
	T30_ = NIM_NIL;
	T30_ = parseParamList__parser_262(p, NIM_TRUE);
	add__ast_4798(result, T30_);
	{
		NIM_BOOL T33_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T37_;
		T33_ = (NIM_BOOL)0;
		T33_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98));
		if (!(T33_)) goto LA34_;
		T33_ = validInd__parser_162(p);
		LA34_: ;
		if (!T33_) goto LA35_;
		T37_ = NIM_NIL;
		T37_ = parsePragma__parser_105(p);
		add__ast_4798(result, T37_);
	}
	goto LA31_;
	LA35_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA31_: ;
	add__ast_4798(result, (*p).emptyNode);
	maybeMissEquals = !(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106)));
	{
		NIM_BOOL T41_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T45_;
		T41_ = (NIM_BOOL)0;
		T41_ = !(maybeMissEquals);
		if (!(T41_)) goto LA42_;
		T41_ = validInd__parser_162(p);
		LA42_: ;
		if (!T41_) goto LA43_;
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		T45_ = NIM_NIL;
		T45_ = parseStmt__parser_258(p);
		add__ast_4798(result, T45_);
	}
	goto LA39_;
	LA43_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA39_: ;
	indAndComment__parser_88(p, result, maybeMissEquals);
	T47_ = (NI)0;
	T47_ = len__ast_3155(result);
	body = (*result)._kind_6.sons->data[(NI)(T47_ - ((NI) 1))];
	{
		NIM_BOOL T50_;
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NI T54_;
		NimStringDesc* T56_;
		T50_ = (NIM_BOOL)0;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T52_ = ((*body).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
		if (!(T52_)) goto LA53_;
		T54_ = (NI)0;
		T54_ = len__ast_3155(body);
		T52_ = (((NI) 0) < T54_);
		LA53_: ;
		T51_ = T52_;
		if (!(T51_)) goto LA55_;
		T56_ = NIM_NIL;
		T56_ = comment__ast_997((*body)._kind_6.sons->data[((NI) 0)]);
		T51_ = (((NI) 0) < (T56_ ? T56_->Sup.len : 0));
		LA55_: ;
		T50_ = T51_;
		if (!(T50_)) goto LA57_;
		T50_ = !(((*(*body)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125)));
		LA57_: ;
		if (!T50_) goto LA58_;
		{
			NimStringDesc* T62_;
			NimStringDesc* T65_;
			T62_ = NIM_NIL;
			T62_ = comment__ast_997(result);
			if (!((T62_ ? T62_->Sup.len : 0) == ((NI) 0))) goto LA63_;
			T65_ = NIM_NIL;
			T65_ = comment__ast_997((*body)._kind_6.sons->data[((NI) 0)]);
			commenteq___ast_1365(result, T65_);
			commenteq___ast_1365((*body)._kind_6.sons->data[((NI) 0)], ((NimStringDesc*) NIM_NIL));
		}
		LA63_: ;
	}
	LA58_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseSection__parser_1975)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyProc__C1NLf71cjuFzI2lAHOsMHQ defparser) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	{
		if (!!((kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98)))) goto LA3_;
		getTok__parser_45(p);
	}
	LA3_: ;
	skipComment__parser_51(p, result);
	{
		NI oldIndX60gensym172_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA7_;
		oldIndX60gensym172_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		skipComment__parser_51(p, result);
		{
			while (1) {
				if (!((*p).tok.indent == (*p).currInd)) goto LA10;
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112):
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90):
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
					a = defparser(p);
					skipComment__parser_51(p, a);
					add__ast_4798(result, a);
				}
				break;
				case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 111):
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a_2;
					a_2 = newCommentStmt__parser_1972(p);
					add__ast_4798(result, a_2);
				}
				break;
				default:
				{
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
					goto LA9;
				}
				break;
				}
			} LA10: ;
		} LA9: ;
		(*p).currInd = oldIndX60gensym172_;
		{
			NI T16_;
			T16_ = (NI)0;
			T16_ = len__ast_3155(result);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
		}
		LA17_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL T20_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
		T20_ = (NIM_BOOL)0;
		T20_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 2) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 112) || (*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90));
		if (!(T20_)) goto LA21_;
		T20_ = ((*p).tok.indent < ((NI) 0));
		LA21_: ;
		if (!T20_) goto LA22_;
		T24_ = NIM_NIL;
		T24_ = defparser(p);
		add__ast_4798(result, T24_);
	}
	goto LA5_;
	LA22_: ;
	{
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_5), (&(*p).tok));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDefAux__parser_1358)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = simpleExpr__parser_609(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 2));
	result = binaryNot__parser_1333(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTypeDef__parser_2284)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* identifier;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* identPragma;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* pragma;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* genericParam;
	NIM_BOOL noPragmaYet;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 103), (&(*p)));
	identifier = identVis__parser_952(p, NIM_TRUE);
	identPragma = identifier;
	pragma = NIM_NIL;
	genericParam = NIM_NIL;
	noPragmaYet = NIM_TRUE;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98))) goto LA3_;
		pragma = optPragmas__parser_1120(p);
		identPragma = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43), (&(*p)));
		add__ast_4798(identPragma, identifier);
		add__ast_4798(identPragma, pragma);
		noPragmaYet = NIM_FALSE;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 92));
		if (!(T7_)) goto LA8_;
		T7_ = validInd__parser_162(p);
		LA8_: ;
		if (!T7_) goto LA9_;
		{
			if (!!(noPragmaYet)) goto LA13_;
			parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 21), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_33));
		}
		LA13_: ;
		genericParam = parseGenericParamList__parser_1855(p);
	}
	goto LA5_;
	LA9_: ;
	{
		genericParam = (*p).emptyNode;
	}
	LA5_: ;
	{
		if (!noPragmaYet) goto LA18_;
		pragma = optPragmas__parser_1120(p);
		{
			if (!!(((*pragma).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA22_;
			identPragma = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 43), (&(*p)));
			add__ast_4798(identPragma, identifier);
			add__ast_4798(identPragma, pragma);
		}
		LA22_: ;
	}
	goto LA16_;
	LA18_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 98))) goto LA25_;
		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_34));
	}
	goto LA16_;
	LA25_: ;
	LA16_: ;
	add__ast_4798(result, identPragma);
	add__ast_4798(result, genericParam);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T31_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106))) goto LA29_;
		(*result).info = parLineInfo__parser_76((&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T31_ = NIM_NIL;
		T31_ = parseTypeDefAux__parser_1358(p);
		add__ast_4798(result, T31_);
	}
	goto LA27_;
	LA29_: ;
	{
		add__ast_4798(result, (*p).emptyNode);
	}
	LA27_: ;
	indAndComment__parser_88(p, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseConstant__parser_2385)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
	NI T14_;
	NI T15_;
	result = NIM_NIL;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90))) goto LA3_;
		result = parseVarTuple__parser_1224(p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102), (&(*p)));
		T6_ = NIM_NIL;
		T6_ = identWithPragma__parser_973(p, NIM_FALSE);
		add__ast_4798(result, T6_);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 104))) goto LA9_;
			getTok__parser_45(p);
			optInd__parser_85(p, result);
			T11_ = NIM_NIL;
			T11_ = parseTypeDesc__parser_260(p);
			add__ast_4798(result, T11_);
		}
		goto LA7_;
		LA9_: ;
		{
			add__ast_4798(result, (*p).emptyNode);
		}
		LA7_: ;
	}
	LA1_: ;
	eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106));
	optInd__parser_85(p, result);
	T13_ = NIM_NIL;
	T13_ = parseExpr__parser_256(p);
	add__ast_4798(result, T13_);
	T14_ = (NI)0;
	T14_ = len__ast_3155(result);
	T15_ = (NI)0;
	T15_ = len__ast_3155(result);
	asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T14_ - ((NI) 1))]), postExprBlocks__parser_107(p, (*result)._kind_6.sons->data[(NI)(T15_ - ((NI) 1))]));
	indAndComment__parser_88(p, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseVariable__parser_2364)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI T7_;
	NI T8_;
	result = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90))) goto LA3_;
		result = parseVarTuple__parser_1224(p);
		eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 106));
		optInd__parser_85(p, result);
		T5_ = NIM_NIL;
		T5_ = parseExpr__parser_256(p);
		add__ast_4798(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = parseIdentColonEquals__parser_998(p, 5);
	}
	LA1_: ;
	T7_ = (NI)0;
	T7_ = len__ast_3155(result);
	T8_ = (NI)0;
	T8_ = len__ast_3155(result);
	asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T7_ - ((NI) 1))]), postExprBlocks__parser_107(p, (*result)._kind_6.sons->data[(NI)(T8_ - ((NI) 1))]));
	indAndComment__parser_88(p, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, qualifiedIdent__parser_518)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__ZJCg9c1Wu8FDX3KD1APGx7g) 0));
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 107))) goto LA3_;
		result = dotExpr__parser_463(p, result);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseBind__parser_2422)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw k) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(k, (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			a = qualifiedIdent__parser_518(p);
			add__ast_4798(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 102)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, complexOrSimpleStmt__parser_607)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 31):
	{
		result = parseIfOrWhen__parser_1605(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 66):
	{
		result = parseWhile__parser_1673(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 10):
	{
		result = parseCase__parser_101(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 60):
	{
		result = parseTry__parser_98(p, NIM_FALSE);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 27):
	{
		result = parseExceptBlock__parser_1736(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 25):
	{
		result = parseExceptBlock__parser_1736(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 28):
	{
		result = parseFor__parser_1226(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 8):
	{
		result = parseBlock__parser_112(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 58):
	{
		result = parseStaticOrDefer__parser_1763(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 16):
	{
		result = parseStaticOrDefer__parser_1763(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 105));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 6):
	{
		result = parseAsm__parser_1771(p);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 51):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 30):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 41):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 80));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 38):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 40):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 82));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 59):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 15):
	{
		result = parseRoutine__parser_1874(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 62):
	{
		getTok__parser_45(p);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 90))) goto LA22_;
			getTok__parser_45(p);
			result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132), (&(*p)));
			T24_ = NIM_NIL;
			T24_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 1));
			add__ast_4798(result, T24_);
			eat__parser_78(p, ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 91));
			result = parseOperators__parser_858(p, result, ((NI) -1), ((tyEnum_PrimaryMode__oBwispCMNX4Z3Y2A9bLxS8w) 0));
		}
		goto LA20_;
		LA22_: ;
		{
			result = parseSection__parser_1975(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98), parseTypeDef__parser_2284);
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 13):
	{
		result = parseSection__parser_1975(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101), parseConstant__parser_2385);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 39):
	{
		result = parseSection__parser_1975(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100), parseVariable__parser_2364);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 64):
	{
		result = parseSection__parser_1975(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), parseVariable__parser_2364);
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 65):
	{
		result = parseIfOrWhen__parser_1605(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 7):
	{
		result = parseBind__parser_2422(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 42):
	{
		result = parseBind__parser_2422(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123));
	}
	break;
	case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 63):
	{
		result = parseSection__parser_1975(p, ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 124), parseVariable__parser_2364);
	}
	break;
	default:
	{
		result = simpleStmt__parser_2451(p);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseAll__parser_37)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (&(*p)));
	{
		while (1) {
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1)))) goto LA2;
			(*p).hasProgress = NIM_FALSE;
			a = complexOrSimpleStmt__parser_607(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
				if (!(T5_)) goto LA6_;
				T5_ = (*p).hasProgress;
				LA6_: ;
				if (!T5_) goto LA7_;
				add__ast_4798(result, a);
			}
			goto LA3_;
			LA7_: ;
			{
				parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
				getTok__parser_45(p);
			}
			LA3_: ;
			{
				if (!!(((*p).tok.indent == ((NI) 0)))) goto LA12_;
				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
			}
			LA12_: ;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, closeParser__parser_39)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	closeLexer__lexer_304((&(*p).lex));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseTopLevelStmt__parser_41)(tyObject_Parser__VfoSMFvkiwD1X70wCdediw* p) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = (*p).emptyNode;
	{
		while (1) {
			{
				if (!!(((*p).tok.indent == ((NI) 0)))) goto LA5_;
				{
					NIM_BOOL T9_;
					T9_ = (NIM_BOOL)0;
					T9_ = (*p).firstTok;
					if (!(T9_)) goto LA10_;
					T9_ = ((*p).tok.indent < ((NI) 0));
					LA10_: ;
					if (!T9_) goto LA11_;
				}
				goto LA7_;
				LA11_: ;
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103)))) goto LA14_;
					{
						NIM_BOOL T18_;
						T18_ = (NIM_BOOL)0;
						T18_ = ((*p).tok.tokType == ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 110));
						if (!(T18_)) goto LA19_;
						T18_ = eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_35));
						LA19_: ;
						if (!T18_) goto LA20_;
						parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_36));
					}
					goto LA16_;
					LA20_: ;
					{
						parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
					}
					LA16_: ;
				}
				goto LA7_;
				LA14_: ;
				LA7_: ;
			}
			LA5_: ;
			(*p).firstTok = NIM_FALSE;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 103):
			{
				getTok__parser_45(p);
				{
					if (!((*p).tok.indent <= ((NI) 0))) goto LA26_;
				}
				goto LA24_;
				LA26_: ;
				{
					parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_4));
				}
				LA24_: ;
				(*p).firstTok = NIM_TRUE;
			}
			break;
			case ((tyEnum_TokType__jtO8nsEQZ3q9auoz8Uy0Ohw) 1):
			{
				goto LA1;
			}
			break;
			default:
			{
				result = complexOrSimpleStmt__parser_607(p);
				{
					if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA33_;
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__FlWBYIOz13qHfz9ae813gBA_9), (&(*p).tok));
				}
				LA33_: ;
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, parseString__parser_2556)(NimStringDesc* s, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, NimStringDesc* filename, NI line, tyProc__9aGJhSmkuel6SMfp4pTpyXA errorHandler) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLLStream__7Xg7qwR6egjB3ej43ivLqg* stream;
	tyObject_Parser__VfoSMFvkiwD1X70wCdediw p;
	result = NIM_NIL;
	stream = llStreamOpen__llstream_30(s);
	(*stream).lineOffset = line;
	nimZeroMem((void*)(&p), sizeof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw));
	objectInit((&p), (&NTIparser__VfoSMFvkiwD1X70wCdediw_));
	p.lex.errorHandler.ClE_0 = errorHandler.ClE_0;
	p.lex.errorHandler.ClP_0 = errorHandler.ClP_0;
	openParser__parser_131((&p), filename, stream, cache, config);
	result = parseAll__parser_37((&p));
	closeParser__parser_39((&p));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmparserdotnim_DatInit000)(void) {
static TNimNode* TM__FlWBYIOz13qHfz9ae813gBA_2_11[11];
static TNimNode TM__FlWBYIOz13qHfz9ae813gBA_0[12];
NTIparser__VfoSMFvkiwD1X70wCdediw_.size = sizeof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw);
NTIparser__VfoSMFvkiwD1X70wCdediw_.align = NIM_ALIGNOF(tyObject_Parser__VfoSMFvkiwD1X70wCdediw);
NTIparser__VfoSMFvkiwD1X70wCdediw_.kind = 18;
NTIparser__VfoSMFvkiwD1X70wCdediw_.base = 0;
TM__FlWBYIOz13qHfz9ae813gBA_2_11[0] = &TM__FlWBYIOz13qHfz9ae813gBA_0[1];
TM__FlWBYIOz13qHfz9ae813gBA_0[1].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[1].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, currInd);
TM__FlWBYIOz13qHfz9ae813gBA_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__FlWBYIOz13qHfz9ae813gBA_0[1].name = "currInd";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[1] = &TM__FlWBYIOz13qHfz9ae813gBA_0[2];
TM__FlWBYIOz13qHfz9ae813gBA_0[2].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[2].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, firstTok);
TM__FlWBYIOz13qHfz9ae813gBA_0[2].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__FlWBYIOz13qHfz9ae813gBA_0[2].name = "firstTok";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[2] = &TM__FlWBYIOz13qHfz9ae813gBA_0[3];
TM__FlWBYIOz13qHfz9ae813gBA_0[3].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[3].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, hasProgress);
TM__FlWBYIOz13qHfz9ae813gBA_0[3].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__FlWBYIOz13qHfz9ae813gBA_0[3].name = "hasProgress";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[3] = &TM__FlWBYIOz13qHfz9ae813gBA_0[4];
TM__FlWBYIOz13qHfz9ae813gBA_0[4].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[4].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, lex);
TM__FlWBYIOz13qHfz9ae813gBA_0[4].typ = (&NTIlexer__D0giBxIIh38MSXTZOJp8yw_);
TM__FlWBYIOz13qHfz9ae813gBA_0[4].name = "lex";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[4] = &TM__FlWBYIOz13qHfz9ae813gBA_0[5];
TM__FlWBYIOz13qHfz9ae813gBA_0[5].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[5].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, tok);
TM__FlWBYIOz13qHfz9ae813gBA_0[5].typ = (&NTItoken__TUeI5CB5zbppKJkmeKoDMw_);
TM__FlWBYIOz13qHfz9ae813gBA_0[5].name = "tok";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[5] = &TM__FlWBYIOz13qHfz9ae813gBA_0[6];
TM__FlWBYIOz13qHfz9ae813gBA_0[6].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[6].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, lineStartPrevious);
TM__FlWBYIOz13qHfz9ae813gBA_0[6].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__FlWBYIOz13qHfz9ae813gBA_0[6].name = "lineStartPrevious";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[6] = &TM__FlWBYIOz13qHfz9ae813gBA_0[7];
TM__FlWBYIOz13qHfz9ae813gBA_0[7].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[7].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, lineNumberPrevious);
TM__FlWBYIOz13qHfz9ae813gBA_0[7].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__FlWBYIOz13qHfz9ae813gBA_0[7].name = "lineNumberPrevious";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[7] = &TM__FlWBYIOz13qHfz9ae813gBA_0[8];
TM__FlWBYIOz13qHfz9ae813gBA_0[8].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[8].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, bufposPrevious);
TM__FlWBYIOz13qHfz9ae813gBA_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__FlWBYIOz13qHfz9ae813gBA_0[8].name = "bufposPrevious";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[8] = &TM__FlWBYIOz13qHfz9ae813gBA_0[9];
TM__FlWBYIOz13qHfz9ae813gBA_0[9].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[9].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, inPragma);
TM__FlWBYIOz13qHfz9ae813gBA_0[9].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__FlWBYIOz13qHfz9ae813gBA_0[9].name = "inPragma";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[9] = &TM__FlWBYIOz13qHfz9ae813gBA_0[10];
TM__FlWBYIOz13qHfz9ae813gBA_0[10].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[10].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, inSemiStmtList);
TM__FlWBYIOz13qHfz9ae813gBA_0[10].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__FlWBYIOz13qHfz9ae813gBA_0[10].name = "inSemiStmtList";
TM__FlWBYIOz13qHfz9ae813gBA_2_11[10] = &TM__FlWBYIOz13qHfz9ae813gBA_0[11];
TM__FlWBYIOz13qHfz9ae813gBA_0[11].kind = 1;
TM__FlWBYIOz13qHfz9ae813gBA_0[11].offset = offsetof(tyObject_Parser__VfoSMFvkiwD1X70wCdediw, emptyNode);
TM__FlWBYIOz13qHfz9ae813gBA_0[11].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__FlWBYIOz13qHfz9ae813gBA_0[11].name = "emptyNode";
TM__FlWBYIOz13qHfz9ae813gBA_0[0].len = 11; TM__FlWBYIOz13qHfz9ae813gBA_0[0].kind = 2; TM__FlWBYIOz13qHfz9ae813gBA_0[0].sons = &TM__FlWBYIOz13qHfz9ae813gBA_2_11[0];
NTIparser__VfoSMFvkiwD1X70wCdediw_.node = &TM__FlWBYIOz13qHfz9ae813gBA_0[0];
}

