/* Generated by Nim Compiler v1.4.0 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32
#define NIM_EmulateOverflowChecks

/* section: NIM_merge_HEADERS */

#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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw;
typedef struct tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw;
typedef struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;

/* section: NIM_merge_TYPES */
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag {
  RootObj Sup;
NI bufpos;
NCSTRING buf;
NimStringDesc* bufStorage;
NI bufLen;
tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc__pIuD7iLYdwrBMntVRm61ZA;
struct tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw {
  tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyProc__pIuD7iLYdwrBMntVRm61ZA errorHandler;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
typedef NU8 tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ;
typedef NU8 tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog;
struct tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA {
tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType;
NI indent;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
NI64 iNumber;
NF fNumber;
tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
struct tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw {
NI currInd;
NIM_BOOL firstTok;
NIM_BOOL hasProgress;
tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw lex;
tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA tok;
NI inPragma;
NI inSemiStmtList;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NU8 tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g;
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NimStringDesc* tyArray__sTZE9cvJ5s1a9bgahK51jmAw[116];
typedef NU8 tySet_tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA;
typedef NU8 tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA;
typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
typedef NU8 tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg;
typedef NU8 tySet_tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ[15];
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__DRjGxmJIweFVoAt8was9aww) (tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
typedef NU8 tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ;
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen, void* ClE_0);
void* ClE_0;
} tyProc__9cZV5JMJLsdOPMv55VbpOVg;
struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
  RootObj Sup;
tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__9cZV5JMJLsdOPMv55VbpOVg repl;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(void, openParser__pKvpy8JqXuUACbJ5ge9aMzA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputStream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, initToken__hOE5pLJGKF2PYhldDgGvPQ)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* L);
N_LIB_PRIVATE N_NIMCALL(void, openLexer__i2Ogi3tmyKy4HiKMh51bUg)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, getTok__8zUz9aMaVNXFAgx05le5t9aA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__9aV9cE1HeiD7SKKtdj1FAFoQ)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__3HRSVgYDcnQTolSZGx1zjA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeP__i6WnebBgHpaJpDTiezmZMA)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__9ceZor1TgjCqfqvmTLxHipAlexer)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__NPagzbOMpGo9aqJmfnDrITg)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfOrWhen__2jBrreK9aYHUoY5oY9bXlLyg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, optInd__p1rHa9cSKv0ZyuzqGSJ39bqA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, skipComment__hAKUgEHgmib1sc9caTftE2w)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(void, rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(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);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, lexMessageTok__6FtmrLK9aRc3HYYRF1awEpA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, skipInd__8zUz9aMaVNXFAgx05le5t9aA_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__jkeyBD0ouKfZiibOsopikg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExpr__OLFhtinvyGGYp40j9clU1hw_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBlock__OLFhtinvyGGYp40j9clU1hw_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, getTokNoInd__8zUz9aMaVNXFAgx05le5t9aA_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSymbol__HClT3dH1f08LRWq0R9a4tGA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNodeP__r3WJriglBfUSUq9b12OH5ag)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__1VWmQUgWIltd9cJD0MhGQdw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* msg, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prettyTok__PB6jYA2RGAC8IiD19cWHRSA_2)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___PB6jYA2RGAC8IiD19cWHRSA)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(void, eat__2LRRHBPHPFJJSGtK0719ayQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__EGsrb8R3hrhCHPuIqcgh1w)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmt__OLFhtinvyGGYp40j9clU1hw_5)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleStmt__OLFhtinvyGGYp40j9clU1hw_6)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExprStart__aKRVmNauliJPSjudLVAPqQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseParamList__FOjoKMl3ZvWc3VmCanXghw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL retColon);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tySet_tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identWithPragma__2X3B22n3YpggHp9aY9c06fSg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identVis__2X3B22n3YpggHp9aY9c06fSg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotExpr__lA8KBVXpy2uiG7zXRazPUg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, exprList__ZtQwR9a3UxFYtOdheviz0ug)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(void, exprColonEqExprListAux__ZtQwR9a3UxFYtOdheviz0ug_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(void, flexComment__hAKUgEHgmib1sc9caTftE2w_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(void, optPar__8zUz9aMaVNXFAgx05le5t9aA_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, colonOrEquals__lA8KBVXpy2uiG7zXRazPUg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePragma__OLFhtinvyGGYp40j9clU1hw_8)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExprAux__8pe7XRE9b9bOdUuKGlNyjykw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primary__XU9btjFatO4YiDn6xUnAZ9cg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOperator__PcdaSvVzZ41t0pU9bvCAxZg)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(NIM_BOOL, isSigilLike__Hj9aciRljZ8ekQKjXo9ayWaAparser)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primarySuffix__9c9abWc3ew5GZzHJ37kV6JVQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, NI baseIndent, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandExpr__Zmek9awjxQz6SBucRKpOkWw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandParam__hwBYTTgHHNZuQpkNRfHwzg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL* isFirstParam, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, namedParams__Jd3riSNh4hFzwdhuoW32gA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callee, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGStrLit__lA8KBVXpy2uiG7zXRazPUg_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNodeP__g3omsRXtNsVknnSY8EOK8w)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnary__PcdaSvVzZ41t0pU9bvCAxZg_2)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTuple__WikOcuu79cI7EmUew9cIYoGA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL indentAllowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseProcExpr__HDUkqwHY9cb4Utl6xMtnR9bQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optPragmas__OLFhtinvyGGYp40j9clU1hw_10)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newProcNode__g5PEkYP0A0RT03uHbJ6wKQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pattern, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptions);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseEnum__OLFhtinvyGGYp40j9clU1hw_11)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObject__OLFhtinvyGGYp40j9clU1hw_12)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(NIM_BOOL, validInd__68YgzuXF6e4XBSh13ki7Vwparser)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectWhen__OLFhtinvyGGYp40j9clU1hw_14)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectCase__OLFhtinvyGGYp40j9clU1hw_15)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClass__OLFhtinvyGGYp40j9clU1hw_16)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClassParam__OLFhtinvyGGYp40j9clU1hw_17)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, parseSymbolList__mhPMHT4rJ5dsh9cb2bE59bpw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identOrLiteral__XU9btjFatO4YiDn6xUnAZ9cg_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog base);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newFloatNodeP__K4eBdO5iIgYKWV3y6mz2Mw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExprList__fbkbNxQNOcFMps7yFW0tpg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePar__OLFhtinvyGGYp40j9clU1hw_18)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, semiStmtList__mhPMHT4rJ5dsh9cb2bE59bpw_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfExpr__2jBrreK9aYHUoY5oY9bXlLyg_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmtPragma__OLFhtinvyGGYp40j9clU1hw_19)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setOrTableConstr__OLFhtinvyGGYp40j9clU1hw_20)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCast__OLFhtinvyGGYp40j9clU1hw_21)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseOperators__M2ubTinDZ6cwqBTmyzzCrA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headNode, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__550NPbPmWDuMCBxeVYaWWg)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(void, checkBinary__jpxSJsT6ulQ8ZoIx9bxbTLQparser)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
static N_INLINE(NIM_BOOL, isRightAssociative__Hj9aciRljZ8ekQKjXo9ayWaA_2parser)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, binaryNot__lA8KBVXpy2uiG7zXRazPUg_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeCall__Q0XtPtKhjDEfZ4UlFkHa0g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseDoBlock__bPeHCqTbfm5XO9b9cFP456Gg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseImport__2jBrreK9aYHUoY5oY9bXlLyg_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseModuleName__2jBrreK9aYHUoY5oY9bXlLyg_5)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFromStmt__OLFhtinvyGGYp40j9clU1hw_22)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIncludeStmt__OLFhtinvyGGYp40j9clU1hw_23)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCommentStmt__OLFhtinvyGGYp40j9clU1hw_24)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExprStmt__OLFhtinvyGGYp40j9clU1hw_25)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeI__L1Xluv2iZ8cHbWec9bBiiaw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFor__OLFhtinvyGGYp40j9clU1hw_26)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVarTuple__OLFhtinvyGGYp40j9clU1hw_27)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCase__OLFhtinvyGGYp40j9clU1hw_28)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTry__KCUKC9bs3siJ9aJGo1tER7gg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseWhile__OLFhtinvyGGYp40j9clU1hw_29)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExceptBlock__2jBrreK9aYHUoY5oY9bXlLyg_6)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStaticOrDefer__9aIYZ3TxqCV2f0U1At59c2VA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAsm__OLFhtinvyGGYp40j9clU1hw_30)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePattern__OLFhtinvyGGYp40j9clU1hw_31)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParamList__OLFhtinvyGGYp40j9clU1hw_32)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParam__OLFhtinvyGGYp40j9clU1hw_33)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, expectIdent__iTgWY1FbspTx3h6YVB2IxQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, indAndComment__p1rHa9cSKv0ZyuzqGSJ39bqA_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyProc__DRjGxmJIweFVoAt8was9aww defparser);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDef__OLFhtinvyGGYp40j9clU1hw_34)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDefAux__OLFhtinvyGGYp40j9clU1hw_35)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseConstant__OLFhtinvyGGYp40j9clU1hw_36)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVariable__OLFhtinvyGGYp40j9clU1hw_37)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBind__9aIYZ3TxqCV2f0U1At59c2VA_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, qualifiedIdent__OLFhtinvyGGYp40j9clU1hw_38)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, closeLexer__DwtnSrPK9cWJ9csJe89cdABpA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen__jzv9bBGhVSDMwEPDegAAa2w)(NimStringDesc* data);
N_LIB_PRIVATE N_NIMCALL(void, openParser__BZV9appUD7Yfuooxw59ceeDw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* filename, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputStream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAll__OLFhtinvyGGYp40j9clU1hw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, closeParser__8zUz9aMaVNXFAgx05le5t9aA_5)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);

/* section: NIM_merge_DATA */
N_LIB_PRIVATE TNimType NTI__kUTcqfBOdi2S1yCsNNzzUw_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
extern TNimType NTI__JC9bQ4bKzkuzV9bdqS4ju8yw_;
extern TNimType NTI__sNMaWRTImjqfh1DU9cmdQkA_;
extern TNimType NTI__fKfcLzXYiz5jNu3NH3Tv8Q_;
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_3, "skipComment", 11);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_4, "invalid indentation", 19);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_5, "identifier expected, but got \'$1\'", 33);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_6, "expected: \'", 11);
extern NIM_CONST tyArray__sTZE9cvJ5s1a9bgahK51jmAw TokTypeToStr__7y4sYGQdJmj2c4r0emPULw;
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_7, "\', but got: \'", 13);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_8, "\'", 1);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_9, "expression expected, but found \'$1\'", 35);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_10, "nestable statement requires indentation", 39);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_11, "expected \'.}\'", 13);
static NIM_CONST tySet_tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ TM__MW5RrD2zyVLHF67ojsDu8Q_12 = {
0x30, 0x00, 0x08, 0x20, 0x32, 0x68, 0x03, 0x03,
0x08, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00}
;
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_13, "the syntax for tuple types is \'tuple[...]\', not \'tuple(...)\'", 60);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_14, "func keyword is not allowed in type descriptions, use proc with"
" {.noSideEffect.} pragma instead", 95);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_15, "type pragmas follow the type name; this form of writing pragmas"
" is deprecated", 77);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_16, "the \'concept\' keyword is only valid in \'type\' sections", 54);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_17, "with", 4);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_18, "without", 7);
static NIM_CONST tySet_tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ TM__MW5RrD2zyVLHF67ojsDu8Q_19 = {
0x00, 0x25, 0x03, 0x9a, 0x84, 0x04, 0x00, 0x10,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_20, "\':\' or \'=\' expected, but got \'$1\'", 33);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_21, "the syntax is \'parameter: var T\', not \'var parameter: T\'", 56);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_22, "expected closing \')\'", 20);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_23, "->", 2);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_24, "expected \':\'", 12);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_25, "expected \'except\'", 17);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_26, "the \'asm\' statement takes a string literal", 42);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_27, "in", 2);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_28, "out", 3);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_29, "pragma before generic parameter list is deprecated", 50);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_30, "pragma already present", 22);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_31, "*", 1);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_32, "invalid indentation; an export marker \'*\' follows the declared "
"identifier", 73);

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
N_LIB_PRIVATE N_NIMCALL(void, getTok__8zUz9aMaVNXFAgx05le5t9aA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	rawGetTok__9aV9cE1HeiD7SKKtdj1FAFoQ((&(*p).lex), (&(*p).tok));
	(*p).hasProgress = NIM_TRUE;
}
N_LIB_PRIVATE N_NIMCALL(void, openParser__pKvpy8JqXuUACbJ5ge9aMzA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputStream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	initToken__hOE5pLJGKF2PYhldDgGvPQ((&(*p).tok));
	openLexer__i2Ogi3tmyKy4HiKMh51bUg((&(*p).lex), fileIdx, inputStream, cache, config);
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	(*p).firstTok = NIM_TRUE;
	unsureAsgnRef((void**) (&(*p).emptyNode), newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
}
N_LIB_PRIVATE N_NIMCALL(void, openParser__BZV9appUD7Yfuooxw59ceeDw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* filename, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputStream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	NI32 T1_;
	T1_ = (NI32)0;
	T1_ = fileInfoIdx__3HRSVgYDcnQTolSZGx1zjA(config, filename);
	openParser__pKvpy8JqXuUACbJ5ge9aMzA(p, T1_, inputStream, cache, config);
}
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(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__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__9ceZor1TgjCqfqvmTLxHipAlexer)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	result = newLineInfo__NPagzbOMpGo9aqJmfnDrITg((*L).fileIdx, (*tok).line, (*tok).col);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	result = getLineInfo__9ceZor1TgjCqfqvmTLxHipAlexer((&(*p).lex), (&(*p).tok));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeP__i6WnebBgHpaJpDTiezmZMA)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA(p);
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(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__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__M04YC71iJg1N7gBF3HZTngsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg) {
	lexMessageTok__6FtmrLK9aRc3HYYRF1awEpA((&(*p).lex), msg, (&(*p).tok), arg);
}
N_LIB_PRIVATE N_NIMCALL(void, rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node) {
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA3_;
		{
			if (!!((node == NIM_NIL))) goto LA7_;
			asgnRef((void**) (&(*node).comment), resizeString((*node).comment, ((*p).tok.literal ? (*p).tok.literal->Sup.len : 0) + 0));
appendString((*node).comment, (*p).tok.literal);
		}
		goto LA5_;
		LA7_: ;
		{
			parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 1), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_3));
		}
		LA5_: ;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, skipComment__hAKUgEHgmib1sc9caTftE2w)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node) {
	{
		if (!((*p).tok.indent < ((NI) 0))) goto LA3_;
		rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, node);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__jkeyBD0ouKfZiibOsopikg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* arg) {
	lexMessageTok__6FtmrLK9aRc3HYYRF1awEpA((&(*p).lex), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), (&(*p).tok), arg);
}
N_LIB_PRIVATE N_NIMCALL(void, skipInd__8zUz9aMaVNXFAgx05le5t9aA_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		{
			if (!!(((*p).currInd < (*p).tok.indent))) goto LA7_;
			parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, optInd__p1rHa9cSKv0ZyuzqGSJ39bqA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	skipComment__hAKUgEHgmib1sc9caTftE2w(p, n);
	skipInd__8zUz9aMaVNXFAgx05le5t9aA_2(p);
}
N_LIB_PRIVATE N_NIMCALL(void, getTokNoInd__8zUz9aMaVNXFAgx05le5t9aA_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNodeP__r3WJriglBfUSUq9b12OH5ag)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2), p);
	asgnRef((void**) (&(*result)._kind_5.ident), ident);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__1VWmQUgWIltd9cJD0MhGQdw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* msg, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T1_ = prettyTok__PB6jYA2RGAC8IiD19cWHRSA_2(tok);
	T2_ = (NimStringDesc*)0;
	T2_ = nsuFormatSingleElem(msg, T1_);
	parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ(p, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T2_);
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__2LRRHBPHPFJJSGtK0719ayQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType) {
	{
		if (!((*p).tok.tokType == tokType)) goto LA3_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw T6_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		nimZeroMem((void*)(&T6_), sizeof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw));
		T6_.Sup.Sup.m_type = (&NTI__JC9bQ4bKzkuzV9bdqS4ju8yw_);
		nimCopyMem((void*)(&T6_), (NIM_CONST void*)(&(*p).lex), sizeof(T6_));
		T7_ = (NimStringDesc*)0;
		T8_ = (NimStringDesc*)0;
		T8_ = prettyTok__PB6jYA2RGAC8IiD19cWHRSA_2((&(*p).tok));
		T7_ = rawNewString((TokTypeToStr__7y4sYGQdJmj2c4r0emPULw[(tokType)- 0] ? TokTypeToStr__7y4sYGQdJmj2c4r0emPULw[(tokType)- 0]->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + 25);
appendString(T7_, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_6));
appendString(T7_, TokTypeToStr__7y4sYGQdJmj2c4r0emPULw[(tokType)- 0]);
appendString(T7_, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_7));
appendString(T7_, T8_);
appendString(T7_, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_8));
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&T6_), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T7_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSymbol__HClT3dH1f08LRWq0R9a4tGA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
	{
		result = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 3) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 68):
	{
		{
			NIM_BOOL T5_;
			T5_ = (NIM_BOOL)0;
			T5_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 3));
			if (T5_) goto LA6_;
			T5_ = (mode == ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 2));
			LA6_: ;
			if (!T5_) goto LA7_;
			result = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		}
		goto LA3_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44));
			if (!(T10_)) goto LA11_;
			T10_ = (mode == ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 1));
			LA11_: ;
			if (!T10_) goto LA12_;
			result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		}
		goto LA3_;
		LA12_: ;
		{
			parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
			result = (*p).emptyNode;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
	{
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		{
			while (1) {
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
				{
					{
						NI T21_;
						T21_ = (NI)0;
						T21_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
						if (!(T21_ == ((NI) 0))) goto LA22_;
						parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					}
					LA22_: ;
					goto LA16;
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 100):
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lineinfo;
					NimStringDesc* accm;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node;
					lineinfo = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
					accm = ((NimStringDesc*) NIM_NIL);
					{
						while (1) {
							NimStringDesc* T27_;
							if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105) || (*p).tok.tokType >= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89) && (*p).tok.tokType <= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 100))) goto LA26;
							T27_ = (NimStringDesc*)0;
							T27_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*p).tok));
							accm = resizeString(accm, (T27_ ? T27_->Sup.len : 0) + 0);
appendString(accm, T27_);
							getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
						} LA26: ;
					}
					node = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2), lineinfo);
					asgnRef((void**) (&(*node)._kind_5.ident), getIdent__9coBOmdXN09be4rJvXK6fQGQ((*p).lex.cache, accm));
					add__P8dDSotTW25BkfbyspojGg(result, node);
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 3) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 68):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88):
				{
					tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* T29_;
					NimStringDesc* T30_;
					tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T31_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
					T29_ = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*)0;
					T29_ = (*p).lex.cache;
					T30_ = (NimStringDesc*)0;
					T30_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*p).tok));
					T31_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
					T31_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ(T29_, T30_);
					T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T32_ = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag(T31_, (&(*p)));
					add__P8dDSotTW25BkfbyspojGg(result, T32_);
					getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				}
				break;
				default:
				{
					parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					goto LA16;
				}
				break;
				}
			}
		} LA16: ;
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111));
	}
	break;
	default:
	{
		parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
		result = (*p).emptyNode;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103));
	skipComment__hAKUgEHgmib1sc9caTftE2w(p, n);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExprStart__aKRVmNauliJPSjudLVAPqQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 45):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 11):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 28):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 30):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 38):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 7):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 3):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 54):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 52):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 61):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 47):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
	{
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, exprList__ZtQwR9a3UxFYtOdheviz0ug)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*p).tok.tokType == endTok));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)));
			LA4_: ;
			if (!T3_) goto LA2;
			a = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		} LA2: ;
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(void, flexComment__hAKUgEHgmib1sc9caTftE2w_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__hAKUgEHgmib1sc9caTftE2w_2(p, node);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, optPar__8zUz9aMaVNXFAgx05le5t9aA_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		{
			if (!((*p).tok.indent < (*p).currInd)) goto LA7_;
			parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, colonOrEquals__lA8KBVXpy2uiG7zXRazPUg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA3_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA7_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T9_);
	}
	goto LA1_;
	LA7_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA3_;
		result = postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, a);
	}
	goto LA1_;
	LA3_: ;
	{
		result = colonOrEquals__lA8KBVXpy2uiG7zXRazPUg_2(p, a);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, exprColonEqExprListAux__ZtQwR9a3UxFYtOdheviz0ug_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	flexComment__hAKUgEHgmib1sc9caTftE2w_3(p, result);
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	{
		while (1) {
			NIM_BOOL T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*p).tok.tokType == endTok));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)));
			LA4_: ;
			if (!T3_) goto LA2;
			a = exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7(p);
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			{
				NIM_BOOL T11_;
				NIM_BOOL T12_;
				T11_ = (NIM_BOOL)0;
				T12_ = (NIM_BOOL)0;
				T12_ = (endTok == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
				if (!(T12_)) goto LA13_;
				T12_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
				LA13_: ;
				T11_ = T12_;
				if (!(T11_)) goto LA14_;
				T11_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37));
				LA14_: ;
				if (!T11_) goto LA15_;
				transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
			}
			LA15_: ;
			skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
		} LA2: ;
	} LA1: ;
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, endTok);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotExpr__lA8KBVXpy2uiG7zXRazPUg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	info = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), info);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	add__P8dDSotTW25BkfbyspojGg(result, a);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 2));
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	{
		NIM_BOOL T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T9_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108));
		if (!(T4_)) goto LA5_;
		T4_ = ((*p).tok.strongSpaceA <= ((NI8) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		T8_ = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
		x = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T8_);
		add__P8dDSotTW25BkfbyspojGg(x, (*result)._kind_6.sons->data[((NI) 1)]);
		exprList__ZtQwR9a3UxFYtOdheviz0ug(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92), x);
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
		T9_ = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
		y = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T9_);
		add__P8dDSotTW25BkfbyspojGg(y, x);
		add__P8dDSotTW25BkfbyspojGg(y, (*result)._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89));
			if (!(T12_)) goto LA13_;
			T12_ = ((*p).tok.strongSpaceA <= ((NI8) 0));
			LA13_: ;
			if (!T12_) goto LA14_;
			exprColonEqExprListAux__ZtQwR9a3UxFYtOdheviz0ug_2(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90), y);
		}
		LA14_: ;
		result = y;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identVis__2X3B22n3YpggHp9aY9c06fSg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109))) goto LA3_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31), (&(*p)));
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106));
		if (!(T7_)) goto LA8_;
		T7_ = allowDot;
		LA8_: ;
		if (!T7_) goto LA9_;
		result = dotExpr__lA8KBVXpy2uiG7zXRazPUg(p, a);
	}
	goto LA1_;
	LA9_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePragma__OLFhtinvyGGYp40j9clU1hw_8)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90), (&(*p)));
	(*p).inPragma += ((NI) 1);
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA2;
			(*p).hasProgress = NIM_FALSE;
			a = exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7(p);
			{
				if (!!((*p).hasProgress)) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101))) goto LA9_;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
			}
			LA9_: ;
		} LA2: ;
	} LA1: ;
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94))) goto LA13_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	goto LA11_;
	LA13_: ;
	{
		parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_11));
	}
	LA11_: ;
	(*p).inPragma -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identWithPragma__2X3B22n3YpggHp9aY9c06fSg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = identVis__2X3B22n3YpggHp9aY9c06fSg_2(p, allowDot);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97))) goto LA3_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, a);
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOperator__PcdaSvVzZ41t0pU9bvCAxZg)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((TM__MW5RrD2zyVLHF67ojsDu8Q_12[(NU)((*tok).tokType)>>3] &(1U<<((NU)((*tok).tokType)&7U)))!=0);
	return result;
}
static N_INLINE(NIM_BOOL, isSigilLike__Hj9aciRljZ8ekQKjXo9ayWaAparser)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109));
	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__bROa11lyF5vxEN9aYNbHmhw*, commandParam__hwBYTTgHHNZuQpkNRfHwzg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL* isFirstParam, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 1))) goto LA3_;
		result = simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg(p, mode);
	}
	goto LA1_;
	LA3_: ;
	{
		result = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	}
	LA1_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA8_;
		result = postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, result);
	}
	goto LA6_;
	LA8_: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
		if (!(T11_)) goto LA12_;
		T11_ = !((*isFirstParam));
		LA12_: ;
		if (!T11_) goto LA13_;
		lhs = result;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		add__P8dDSotTW25BkfbyspojGg(result, lhs);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T15_);
	}
	goto LA6_;
	LA13_: ;
	LA6_: ;
	(*isFirstParam) = NIM_FALSE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandExpr__Zmek9awjxQz6SBucRKpOkWw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL isFirstParam;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26), (&(*p)));
	add__P8dDSotTW25BkfbyspojGg(result, r);
	isFirstParam = NIM_TRUE;
	(*p).hasProgress = NIM_FALSE;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = commandParam__hwBYTTgHHNZuQpkNRfHwzg(p, (&isFirstParam), mode);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, namedParams__Jd3riSNh4hFzwdhuoW32gA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callee, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = callee;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	add__P8dDSotTW25BkfbyspojGg(result, a);
	exprColonEqExprListAux__ZtQwR9a3UxFYtOdheviz0ug_2(p, endTok, result);
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNodeP__g3omsRXtNsVknnSY8EOK8w)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NimStringDesc* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, p);
	T1_ = (NimStringDesc*)0;
	T1_ = (*result)._kind_3.strVal; (*result)._kind_3.strVal = copyStringRC1(strVal);
	if (T1_) nimGCunrefNoCycle(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGStrLit__lA8KBVXpy2uiG7zXRazPUg_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 86):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, a);
		T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T2_ = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T2_);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 87):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, a);
		T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T4_);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	default:
	{
		result = a;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnary__PcdaSvVzZ41t0pU9bvCAxZg_2)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* 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__5VVBIL7Ozj1cc9akK23jAGQ) 109) || (*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107));
	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__bROa11lyF5vxEN9aYNbHmhw*, primarySuffix__9c9abWc3ew5GZzHJ37kV6JVQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, NI baseIndent, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	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__5VVBIL7Ozj1cc9akK23jAGQ) 106));
			if (!(T5_)) goto LA6_;
			T5_ = (baseIndent <= (*p).tok.indent);
			LA6_: ;
			T3_ = T5_;
			LA4_: ;
			if (!T3_) goto LA2;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA10_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
						if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA14_;
						result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26), (&(*p)));
						add__P8dDSotTW25BkfbyspojGg(result, r);
						T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T16_ = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
						add__P8dDSotTW25BkfbyspojGg(result, T16_);
					}
					goto LA12_;
					LA14_: ;
					{
						result = commandExpr__Zmek9awjxQz6SBucRKpOkWw(p, result, mode);
					}
					LA12_: ;
					goto LA1;
				}
				LA10_: ;
				result = namedParams__Jd3riSNh4hFzwdhuoW32gA(p, result, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
				{
					NIM_BOOL T20_;
					NI T21_;
					T20_ = (NIM_BOOL)0;
					T21_ = (NI)0;
					T21_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
					T20_ = (((NI) 1) < T21_);
					if (!(T20_)) goto LA22_;
					T20_ = ((*(*result)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
					LA22_: ;
					if (!T20_) goto LA23_;
					transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 38));
				}
				LA23_: ;
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106):
			{
				result = dotExpr__lA8KBVXpy2uiG7zXRazPUg(p, result);
				result = parseGStrLit__lA8KBVXpy2uiG7zXRazPUg_3(p, result);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA29_;
					result = commandExpr__Zmek9awjxQz6SBucRKpOkWw(p, result, mode);
					goto LA1;
				}
				LA29_: ;
				result = namedParams__Jd3riSNh4hFzwdhuoW32gA(p, result, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA34_;
					result = commandExpr__Zmek9awjxQz6SBucRKpOkWw(p, result, mode);
					goto LA1;
				}
				LA34_: ;
				result = namedParams__Jd3riSNh4hFzwdhuoW32gA(p, result, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94));
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 11):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 24):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 61):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 47):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
			{
				{
					NIM_BOOL T39_;
					NIM_BOOL T41_;
					T39_ = (NIM_BOOL)0;
					T39_ = ((*p).inPragma == ((NI) 0));
					if (!(T39_)) goto LA40_;
					T41_ = (NIM_BOOL)0;
					T41_ = isUnary__PcdaSvVzZ41t0pU9bvCAxZg_2((&(*p).tok));
					if (T41_) goto LA42_;
					T41_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107)));
					LA42_: ;
					T39_ = T41_;
					LA40_: ;
					if (!T39_) goto LA43_;
					result = commandExpr__Zmek9awjxQz6SBucRKpOkWw(p, result, mode);
				}
				LA43_: ;
				goto LA1;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		} LA2: ;
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTuple__WikOcuu79cI7EmUew9cIYoGA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL indentAllowed) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91))) goto LA3_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA6;
				a = parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg(p, 0);
				add__P8dDSotTW25BkfbyspojGg(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA9_;
					goto LA5;
				}
				LA9_: ;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
			} LA6: ;
		} LA5: ;
		optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!indentAllowed) goto LA12_;
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		{
			NI oldIndX60gensym64_;
			if (!((*p).currInd < (*p).tok.indent)) goto LA16_;
			oldIndX60gensym64_ = (*p).currInd;
			(*p).currInd = (*p).tok.indent;
			rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, result);
			{
				while (1) {
					switch ((*p).tok.tokType) {
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
						a_2 = parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg(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__hAKUgEHgmib1sc9caTftE2w_2(p, a_2);
						}
						LA25_: ;
						add__P8dDSotTW25BkfbyspojGg(result, a_2);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1):
					{
						goto LA18;
					}
					break;
					default:
					{
						parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
						goto LA18;
					}
					break;
					}
					{
						if (!!(((*p).tok.indent == (*p).currInd))) goto LA31_;
						goto LA18;
					}
					LA31_: ;
				}
			} LA18: ;
			(*p).currInd = oldIndX60gensym64_;
		}
		LA16_: ;
	}
	goto LA1_;
	LA12_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA34_;
		parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_13));
	}
	goto LA1_;
	LA34_: ;
	{
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135), (&(*p)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optPragmas__OLFhtinvyGGYp40j9clU1hw_10)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97));
		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__OLFhtinvyGGYp40j9clU1hw_8(p);
	}
	goto LA1_;
	LA7_: ;
	{
		result = (*p).emptyNode;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseProcExpr__HDUkqwHY9cb4Utl6xMtnR9bQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	NIM_BOOL hasSignature;
	NIM_BOOL T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	info = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103));
	if (!(T1_)) goto LA2_;
	T1_ = ((*p).tok.indent < ((NI) 0));
	LA2_: ;
	hasSignature = T1_;
	params = parseParamList__FOjoKMl3ZvWc3VmCanXghw(p, NIM_TRUE);
	pragmas = optPragmas__OLFhtinvyGGYp40j9clU1hw_10(p);
	{
		NIM_BOOL T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
		if (!(T5_)) goto LA6_;
		T5_ = isExpr;
		LA6_: ;
		if (!T5_) goto LA7_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
		result = newProcNode__g5PEkYP0A0RT03uHbJ6wKQ(kind, info, T9_, params, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, pragmas, (*p).emptyNode);
	}
	goto LA3_;
	LA7_: ;
	{
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147), info);
		{
			if (!hasSignature) goto LA13_;
			add__P8dDSotTW25BkfbyspojGg(result, params);
			{
				if (!(kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159))) goto LA17_;
				parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_14));
			}
			LA17_: ;
			add__P8dDSotTW25BkfbyspojGg(result, pragmas);
		}
		LA13_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseEnum__OLFhtinvyGGYp40j9clU1hw_11)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	flexComment__hAKUgEHgmib1sc9caTftE2w_3(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* symPragma;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragma;
			a = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA5_;
				goto BeforeRet_;
			}
			LA5_: ;
			symPragma = a;
			pragma = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97))) goto LA9_;
				pragma = optPragmas__OLFhtinvyGGYp40j9clU1hw_10(p);
				symPragma = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
				add__P8dDSotTW25BkfbyspojGg(symPragma, a);
				add__P8dDSotTW25BkfbyspojGg(symPragma, pragma);
			}
			LA9_: ;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = (((NI) 0) <= (*p).tok.indent);
				if (!(T13_)) goto LA14_;
				T13_ = ((*p).tok.indent <= (*p).currInd);
				LA14_: ;
				if (!T13_) goto LA15_;
				add__P8dDSotTW25BkfbyspojGg(result, symPragma);
				goto LA1;
			}
			LA15_: ;
			{
				NIM_BOOL T19_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
				T19_ = (NIM_BOOL)0;
				T19_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
				if (!(T19_)) goto LA20_;
				T19_ = ((*p).tok.indent < ((NI) 0));
				LA20_: ;
				if (!T19_) goto LA21_;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, symPragma);
				b = symPragma;
				symPragma = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151), (&(*p)));
				add__P8dDSotTW25BkfbyspojGg(symPragma, b);
				T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T23_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
				add__P8dDSotTW25BkfbyspojGg(symPragma, T23_);
				{
					NIM_BOOL T26_;
					T26_ = (NIM_BOOL)0;
					T26_ = ((*p).tok.indent < ((NI) 0));
					if (T26_) goto LA27_;
					T26_ = ((*p).currInd <= (*p).tok.indent);
					LA27_: ;
					if (!T26_) goto LA28_;
					rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, symPragma);
				}
				LA28_: ;
			}
			LA21_: ;
			{
				NIM_BOOL T32_;
				T32_ = (NIM_BOOL)0;
				T32_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101));
				if (!(T32_)) goto LA33_;
				T32_ = ((*p).tok.indent < ((NI) 0));
				LA33_: ;
				if (!T32_) goto LA34_;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, symPragma);
			}
			goto LA30_;
			LA34_: ;
			{
				{
					NIM_BOOL T39_;
					T39_ = (NIM_BOOL)0;
					T39_ = ((*p).tok.indent < ((NI) 0));
					if (T39_) goto LA40_;
					T39_ = ((*p).currInd <= (*p).tok.indent);
					LA40_: ;
					if (!T39_) goto LA41_;
					rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, symPragma);
				}
				LA41_: ;
			}
			LA30_: ;
			add__P8dDSotTW25BkfbyspojGg(result, symPragma);
			{
				NIM_BOOL T45_;
				NIM_BOOL T46_;
				T45_ = (NIM_BOOL)0;
				T46_ = (NIM_BOOL)0;
				T46_ = (((NI) 0) <= (*p).tok.indent);
				if (!(T46_)) goto LA47_;
				T46_ = ((*p).tok.indent <= (*p).currInd);
				LA47_: ;
				T45_ = T46_;
				if (T45_) goto LA48_;
				T45_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1));
				LA48_: ;
				if (!T45_) goto LA49_;
				goto LA1;
			}
			LA49_: ;
		}
	} LA1: ;
	{
		NI T53_;
		T53_ = (NI)0;
		T53_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (!(T53_ <= ((NI) 1))) goto LA54_;
		parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
	}
	LA54_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, validInd__68YgzuXF6e4XBSh13ki7Vwparser)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* 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__bROa11lyF5vxEN9aYNbHmhw*, parseObjectWhen__OLFhtinvyGGYp40j9clU1hw_14)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 140), (&(*p)));
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			if (!((*p).tok.indent == (*p).currInd)) goto LA2;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			branch = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, branch);
			T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T3_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			add__P8dDSotTW25BkfbyspojGg(branch, T3_);
			colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, branch);
			T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T4_ = parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13(p);
			add__P8dDSotTW25BkfbyspojGg(branch, T4_);
			flexComment__hAKUgEHgmib1sc9caTftE2w_3(p, branch);
			add__P8dDSotTW25BkfbyspojGg(result, branch);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
		} LA2: ;
	} LA1: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		if (!(T11_)) goto LA12_;
		T11_ = ((*p).tok.indent == (*p).currInd);
		LA12_: ;
		if (!T11_) goto LA13_;
		branch_2 = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, branch_2);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13(p);
		add__P8dDSotTW25BkfbyspojGg(branch_2, T15_);
		flexComment__hAKUgEHgmib1sc9caTftE2w_3(p, branch_2);
		add__P8dDSotTW25BkfbyspojGg(result, branch_2);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectCase__OLFhtinvyGGYp40j9clU1hw_15)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	NIM_BOOL wasIndented;
	NI oldInd;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139), (&(*p)));
	getTokNoInd__8zUz9aMaVNXFAgx05le5t9aA_3(p);
	a = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (&(*p)));
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = identWithPragma__2X3B22n3YpggHp9aY9c06fSg(p, NIM_FALSE);
	add__P8dDSotTW25BkfbyspojGg(a, T1_);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(p);
	add__P8dDSotTW25BkfbyspojGg(a, T2_);
	add__P8dDSotTW25BkfbyspojGg(a, (*p).emptyNode);
	add__P8dDSotTW25BkfbyspojGg(result, a);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA5_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	LA5_: ;
	flexComment__hAKUgEHgmib1sc9caTftE2w_3(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__bROa11lyF5vxEN9aYNbHmhw* b;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fields;
			if (!((*p).tok.indent == (*p).currInd)) goto LA12;
			b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48):
			{
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85), (&(*p)));
				exprList__ZtQwR9a3UxFYtOdheviz0ug(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103), b);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22):
			{
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			}
			break;
			default:
			{
				goto LA11;
			}
			break;
			}
			colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, b);
			fields = parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13(p);
			{
				if (!((*fields).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA18_;
				parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
				fields = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
			}
			LA18_: ;
			add__P8dDSotTW25BkfbyspojGg(b, fields);
			add__P8dDSotTW25BkfbyspojGg(result, b);
			{
				if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*, parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI oldIndX60gensym131_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (&(*p)));
		oldIndX60gensym131_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, result);
		{
			while (1) {
				if (!((*p).tok.indent == (*p).currInd)) goto LA6;
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 17):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
					T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T8_ = parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13(p);
					add__P8dDSotTW25BkfbyspojGg(result, T8_);
				}
				break;
				default:
				{
					parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					goto LA5;
				}
				break;
				}
			} LA6: ;
		} LA5: ;
		(*p).currInd = oldIndX60gensym131_;
	}
	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__5VVBIL7Ozj1cc9akK23jAGQ) 65):
		{
			result = parseObjectWhen__OLFhtinvyGGYp40j9clU1hw_14(p);
		}
		break;
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
		{
			result = parseObjectCase__OLFhtinvyGGYp40j9clU1hw_15(p);
		}
		break;
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
		{
			result = parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg(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__hAKUgEHgmib1sc9caTftE2w_2(p, result);
			}
			LA22_: ;
		}
		break;
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 17):
		{
			result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		}
		break;
		default:
		{
			result = (*p).emptyNode;
		}
		break;
		}
	}
	goto LA1_;
	LA13_: ;
	{
		result = (*p).emptyNode;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObject__OLFhtinvyGGYp40j9clU1hw_12)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97));
		if (!(T3_)) goto LA4_;
		T3_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA4_: ;
		if (!T3_) goto LA5_;
		parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 16), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_15));
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
		add__P8dDSotTW25BkfbyspojGg(result, T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA1_: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48));
		if (!(T11_)) goto LA12_;
		T11_ = ((*p).tok.indent < ((NI) 0));
		LA12_: ;
		if (!T11_) goto LA13_;
		a = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 77), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(p);
		add__P8dDSotTW25BkfbyspojGg(a, T15_);
		add__P8dDSotTW25BkfbyspojGg(result, a);
	}
	goto LA9_;
	LA13_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA9_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA19_;
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
	}
	LA19_: ;
	{
		if (!!(((*p).currInd < (*p).tok.indent))) goto LA23_;
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	goto LA21_;
	LA23_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
		T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T26_ = parseObjectPart__OLFhtinvyGGYp40j9clU1hw_13(p);
		add__P8dDSotTW25BkfbyspojGg(result, T26_);
	}
	LA21_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClassParam__OLFhtinvyGGYp40j9clU1hw_17)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw modifier;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
	{
		modifier = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 52):
	{
		modifier = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 54):
	{
		modifier = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58):
	{
		modifier = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
	{
		modifier = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132);
	}
	break;
	default:
	{
		modifier = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1);
	}
	break;
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		if (!!((modifier == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA9_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(modifier, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
		add__P8dDSotTW25BkfbyspojGg(result, T11_);
	}
	goto LA7_;
	LA9_: ;
	{
		result = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClass__OLFhtinvyGGYp40j9clU1hw_16)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* args;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 136), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	args = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (&(*p)));
	add__P8dDSotTW25BkfbyspojGg(result, args);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseTypeClassParam__OLFhtinvyGGYp40j9clU1hw_17(p);
	add__P8dDSotTW25BkfbyspojGg(args, T1_);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101))) goto LA3;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T4_ = parseTypeClassParam__OLFhtinvyGGYp40j9clU1hw_17(p);
			add__P8dDSotTW25BkfbyspojGg(args, T4_);
		} LA3: ;
	}
	{
		NIM_BOOL T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97));
		if (!(T7_)) goto LA8_;
		T7_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA8_: ;
		if (!T7_) goto LA9_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
		add__P8dDSotTW25BkfbyspojGg(result, T11_);
	}
	goto LA5_;
	LA9_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA5_: ;
	{
		NIM_BOOL T15_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48));
		if (!(T15_)) goto LA16_;
		T15_ = ((*p).tok.indent < ((NI) 0));
		LA16_: ;
		if (!T15_) goto LA17_;
		a = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 77), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
				T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T21_ = parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(p);
				add__P8dDSotTW25BkfbyspojGg(a, T21_);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA24_;
					goto LA19;
				}
				LA24_: ;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			}
		} LA19: ;
		add__P8dDSotTW25BkfbyspojGg(result, a);
	}
	goto LA13_;
	LA17_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA13_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA29_;
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
	}
	LA29_: ;
	{
		if (!!(((*p).currInd < (*p).tok.indent))) goto LA33_;
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	goto LA31_;
	LA33_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
		T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T36_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
		add__P8dDSotTW25BkfbyspojGg(result, T36_);
	}
	LA31_: ;
	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__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(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__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((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__mhPMHT4rJ5dsh9cb2bE59bpw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
			s = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 1));
			{
				if (!((*s).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			add__P8dDSotTW25BkfbyspojGg(result, s);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA9_;
				goto LA1;
			}
			LA9_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, s);
		}
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(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__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T10_ = isOperator__PcdaSvVzZ41t0pU9bvCAxZg((&(*p).tok));
		T9_ = !(T10_);
		if (!(T9_)) goto LA11_;
		T9_ = isExprStart__aKRVmNauliJPSjudLVAPqQ((&(*p)));
		LA11_: ;
		if (!T9_) goto LA12_;
		T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T14_ = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, mode);
		add__P8dDSotTW25BkfbyspojGg(result, T14_);
	}
	LA12_: ;
	{
		NIM_BOOL T17_;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw nodeKind;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* list;
		T17_ = (NIM_BOOL)0;
		T17_ = (kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146));
		if (!(T17_)) goto LA18_;
		T17_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2));
		LA18_: ;
		if (!T17_) goto LA19_;
		nodeKind = (tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)0;
		{
			if (!eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_17))) goto LA23_;
			nodeKind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 130);
		}
		goto LA21_;
		LA23_: ;
		{
			if (!eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_18))) goto LA26_;
			nodeKind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 131);
		}
		goto LA21_;
		LA26_: ;
		{
			goto BeforeRet_;
		}
		LA21_: ;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		list = newNodeP__i6WnebBgHpaJpDTiezmZMA(nodeKind, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, list);
		parseSymbolList__mhPMHT4rJ5dsh9cb2bE59bpw(p, list);
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, p);
	(*result)._kind_1.intVal = intVal;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog base) {
	switch (base) {
	case ((tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog) 0):
	{
	}
	break;
	case ((tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog) 1):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 1)) & 31);
	}
	break;
	case ((tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog) 2):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 2)) & 31);
	}
	break;
	case ((tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog) 3):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 3)) & 31);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newFloatNodeP__K4eBdO5iIgYKWV3y6mz2Mw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, p);
	(*result)._kind_2.floatVal = floatVal;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExprList__fbkbNxQNOcFMps7yFW0tpg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	exprColonEqExprListAux__ZtQwR9a3UxFYtOdheviz0ug_2(p, endTok, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfExpr__2jBrreK9aYHUoY5oY9bXlLyg_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			branch = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49), (&(*p)));
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, branch);
			T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T3_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			add__P8dDSotTW25BkfbyspojGg(branch, T3_);
			colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, branch);
			T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T4_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
			add__P8dDSotTW25BkfbyspojGg(branch, T4_);
			skipComment__hAKUgEHgmib1sc9caTftE2w(p, branch);
			add__P8dDSotTW25BkfbyspojGg(result, branch);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
		}
	} LA1: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22))) goto LA11_;
		branch_2 = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50), (&(*p)));
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, branch_2);
		T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
		add__P8dDSotTW25BkfbyspojGg(branch_2, T13_);
		add__P8dDSotTW25BkfbyspojGg(result, branch_2);
	}
	LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semiStmtList__mhPMHT4rJ5dsh9cb2bE59bpw_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	NI oldIndX60gensym32_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	(*p).inSemiStmtList += ((NI) 1);
	oldIndX60gensym32_ = (*p).currInd;
	(*p).currInd = (*p).tok.indent;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31))) goto LA3_;
		a = parseIfExpr__2jBrreK9aYHUoY5oY9bXlLyg_3(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92));
	}
	goto LA1_;
	LA3_: ;
	{
		a = complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2(p);
	}
	LA1_: ;
	add__P8dDSotTW25BkfbyspojGg(result, a);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA7;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA10_;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			}
			LA10_: ;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA14_;
				goto LA6;
			}
			goto LA12_;
			LA14_: ;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = ((*p).tok.indent == (*p).currInd);
				if (T17_) goto LA18_;
				T17_ = ((*p).currInd < (*p).tok.indent);
				LA18_: ;
				if (!!(T17_)) goto LA19_;
				parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
			}
			goto LA12_;
			LA19_: ;
			LA12_: ;
			a_2 = complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2(p);
			{
				if (!((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA23_;
				parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
			}
			goto LA21_;
			LA23_: ;
			{
				add__P8dDSotTW25BkfbyspojGg(result, a_2);
			}
			LA21_: ;
		} LA7: ;
	} LA6: ;
	(*p).currInd = oldIndX60gensym32_;
	(*p).inSemiStmtList -= ((NI) 1);
	transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 126));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmtPragma__OLFhtinvyGGYp40j9clU1hw_19)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103));
		if (!(T3_)) goto LA4_;
		T3_ = ((*p).tok.indent < ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		a = result;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91), (*a).info);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
		add__P8dDSotTW25BkfbyspojGg(result, T7_);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePar__OLFhtinvyGGYp40j9clU1hw_18)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	flexComment__hAKUgEHgmib1sc9caTftE2w_3(p, result);
	{
		if (!((TM__MW5RrD2zyVLHF67ojsDu8Q_19[(NU)((*p).tok.tokType)>>3] &(1U<<((NU)((*p).tok.tokType)&7U)))!=0)) goto LA3_;
		semiStmtList__mhPMHT4rJ5dsh9cb2bE59bpw_2(p, result);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA6_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		semiStmtList__mhPMHT4rJ5dsh9cb2bE59bpw_2(p, result);
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97))) goto LA9_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = parseStmtPragma__OLFhtinvyGGYp40j9clU1hw_19(p);
		add__P8dDSotTW25BkfbyspojGg(result, T11_);
	}
	goto LA1_;
	LA9_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90)))) goto LA13_;
		a = simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA17_;
			result = postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, a);
		}
		goto LA15_;
		LA17_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA20_;
			asgn = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
			b = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			add__P8dDSotTW25BkfbyspojGg(asgn, a);
			add__P8dDSotTW25BkfbyspojGg(asgn, b);
			add__P8dDSotTW25BkfbyspojGg(result, asgn);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA24_;
				semiStmtList__mhPMHT4rJ5dsh9cb2bE59bpw_2(p, result);
			}
			LA24_: ;
		}
		goto LA15_;
		LA20_: ;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA27_;
			add__P8dDSotTW25BkfbyspojGg(result, a);
			semiStmtList__mhPMHT4rJ5dsh9cb2bE59bpw_2(p, result);
		}
		goto LA15_;
		LA27_: ;
		{
			a = colonOrEquals__lA8KBVXpy2uiG7zXRazPUg_2(p, a);
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101))) goto LA32_;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA36_;
					transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
				}
				LA36_: ;
				{
					while (1) {
						NIM_BOOL T40_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
						T40_ = (NIM_BOOL)0;
						T40_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90)));
						if (!(T40_)) goto LA41_;
						T40_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)));
						LA41_: ;
						if (!T40_) goto LA39;
						a_2 = exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7(p);
						add__P8dDSotTW25BkfbyspojGg(result, a_2);
						{
							if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA44_;
							goto LA38;
						}
						LA44_: ;
						getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
						skipComment__hAKUgEHgmib1sc9caTftE2w(p, a_2);
					} LA39: ;
				} LA38: ;
			}
			LA32_: ;
		}
		LA15_: ;
	}
	goto LA1_;
	LA13_: ;
	LA1_: ;
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setOrTableConstr__OLFhtinvyGGYp40j9clU1hw_20)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA3_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 54));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA7;
				a = exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7(p);
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA10_;
					transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 54));
				}
				LA10_: ;
				add__P8dDSotTW25BkfbyspojGg(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA14_;
					goto LA6;
				}
				LA14_: ;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
			} LA7: ;
		} LA6: ;
	}
	LA1_: ;
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCast__OLFhtinvyGGYp40j9clU1hw_21)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91))) goto LA3_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(p);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
		optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89));
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89));
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = exprColonEqExpr__OLFhtinvyGGYp40j9clU1hw_7(p);
		add__P8dDSotTW25BkfbyspojGg(result, T8_);
	}
	LA1_: ;
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identOrLiteral__XU9btjFatO4YiDn6xUnAZ9cg_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 3):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
	{
		result = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		result = parseGStrLit__lA8KBVXpy2uiG7zXRazPUg_3(p, result);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
	{
		result = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 70):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 7), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 71):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 8), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 72):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 9), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 73):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 74):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 75):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 12), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 76):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 13), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 77):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 14), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 78):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 79):
	{
		result = newFloatNodeP__K4eBdO5iIgYKWV3y6mz2Mw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 80):
	{
		result = newFloatNodeP__K4eBdO5iIgYKWV3y6mz2Mw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 17), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 81):
	{
		result = newFloatNodeP__K4eBdO5iIgYKWV3y6mz2Mw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 82):
	{
		result = newFloatNodeP__K4eBdO5iIgYKWV3y6mz2Mw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__YrTSut9a6tm3qu8bTyDc8oQ(result, (*p).tok.base);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 83):
	{
		result = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*p).tok.literal, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 84):
	{
		result = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 85):
	{
		result = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88):
	{
		result = newIntNodeP__pSdqSKiam4sB0c9bl9cnyG7w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5), ((NI64) (((NU8)((*p).tok.literal->data[((NI) 0)])))), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
	{
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
	{
		{
			if (!((6 &((NU8)1<<((NU)(mode)&7U)))!=0)) goto LA25_;
			result = exprColonEqExprList__fbkbNxQNOcFMps7yFW0tpg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
		}
		goto LA23_;
		LA25_: ;
		{
			result = parsePar__OLFhtinvyGGYp40j9clU1hw_18(p);
		}
		LA23_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93):
	{
		result = setOrTableConstr__OLFhtinvyGGYp40j9clU1hw_20(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91):
	{
		result = exprColonEqExprList__fbkbNxQNOcFMps7yFW0tpg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 11):
	{
		result = parseCast__OLFhtinvyGGYp40j9clU1hw_21(p);
	}
	break;
	default:
	{
		parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		result = (*p).emptyNode;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primary__XU9btjFatO4YiDn6xUnAZ9cg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL isSigil;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		T3_ = (NIM_BOOL)0;
		T3_ = isOperator__PcdaSvVzZ41t0pU9bvCAxZg((&(*p).tok));
		if (!T3_) goto LA4_;
		isSigil = isSigilLike__Hj9aciRljZ8ekQKjXo9ayWaAparser((&(*p).tok));
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (&(*p)));
		a = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, a);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		{
			NI baseInd;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
			if (!isSigil) goto LA8_;
			baseInd = (*p).lex.currLineIndent;
			T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T10_ = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 3));
			add__P8dDSotTW25BkfbyspojGg(result, T10_);
			result = primarySuffix__9c9abWc3ew5GZzHJ37kV6JVQ(p, result, baseInd, mode);
		}
		goto LA6_;
		LA8_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T12_);
		}
		LA6_: ;
		goto BeforeRet_;
	}
	LA4_: ;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 61):
	{
		result = parseTuple__WikOcuu79cI7EmUew9cIYoGA(p, (mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2)));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
	{
		result = parseProcExpr__HDUkqwHY9cb4Utl6xMtnR9bQ(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 30):
	{
		result = parseProcExpr__HDUkqwHY9cb4Utl6xMtnR9bQ(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 38):
	{
		result = parseProcExpr__HDUkqwHY9cb4Utl6xMtnR9bQ(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51));
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51))) goto LA19_;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 84));
		}
		goto LA17_;
		LA19_: ;
		{
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 148));
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 24):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA25_;
			result = parseEnum__OLFhtinvyGGYp40j9clU1hw_11(p);
		}
		goto LA23_;
		LA25_: ;
		{
			result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		}
		LA23_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 47):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA31_;
			result = parseObject__OLFhtinvyGGYp40j9clU1hw_12(p);
		}
		goto LA29_;
		LA31_: ;
		{
			result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		}
		LA29_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 12):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA37_;
			result = parseTypeClass__OLFhtinvyGGYp40j9clU1hw_16(p);
		}
		goto LA35_;
		LA37_: ;
		{
			parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_16));
		}
		LA35_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 7):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T41_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T41_ = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		add__P8dDSotTW25BkfbyspojGg(result, T41_);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
	{
		result = parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
	{
		result = parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 145), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 54):
	{
		result = parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 52):
	{
		result = parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 18):
	{
		result = parseTypeDescKAux__ifhHzhVShONoL8eRVwPcFQ(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146), mode);
	}
	break;
	default:
	{
		NI baseInd_2;
		baseInd_2 = (*p).lex.currLineIndent;
		result = identOrLiteral__XU9btjFatO4YiDn6xUnAZ9cg_3(p, mode);
		{
			if (!!((mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 3)))) goto LA50_;
			result = primarySuffix__9c9abWc3ew5GZzHJ37kV6JVQ(p, result, baseInd_2, mode);
		}
		LA50_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, checkBinary__jpxSJsT6ulQ8ZoIx9bxbTLQparser)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109))) goto LA3_;
		{
			NIM_BOOL T7_;
			tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw T11_;
			NimStringDesc* T12_;
			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_;
			nimZeroMem((void*)(&T11_), sizeof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw));
			objectInit((&T11_), (&NTI__kUTcqfBOdi2S1yCsNNzzUw_));
			nimCopyMem((void*)(&T11_), (NIM_CONST void*)p, sizeof(T11_));
			T12_ = (NimStringDesc*)0;
			T12_ = prettyTok__PB6jYA2RGAC8IiD19cWHRSA_2((&(*p).tok));
			parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&T11_), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 47), T12_);
		}
		LA9_: ;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isRightAssociative__Hj9aciRljZ8ekQKjXo9ayWaA_2parser)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109));
	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__bROa11lyF5vxEN9aYNbHmhw*, parseOperators__M2ubTinDZ6cwqBTmyzzCrA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headNode, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI opPrec;
	tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg modeB;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = headNode;
	opPrec = getPrecedence__550NPbPmWDuMCBxeVYaWWg((&(*p).tok));
	{
		if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA3_;
		modeB = ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 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__bROa11lyF5vxEN9aYNbHmhw* a;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opNode;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__PcdaSvVzZ41t0pU9bvCAxZg_2((&(*p).tok));
			T8_ = !(T12_);
			LA11_: ;
			if (!T8_) goto LA7;
			checkBinary__jpxSJsT6ulQ8ZoIx9bxbTLQparser((&(*p)));
			T13_ = (NIM_BOOL)0;
			T13_ = isRightAssociative__Hj9aciRljZ8ekQKjXo9ayWaA_2parser((&(*p).tok));
			leftAssoc = !(T13_);
			a = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (&(*p)));
			opNode = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			flexComment__hAKUgEHgmib1sc9caTftE2w_3(p, a);
			optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
			b = simpleExprAux__8pe7XRE9b9bOdUuKGlNyjykw(p, (NI)(opPrec + leftAssoc), modeB);
			add__P8dDSotTW25BkfbyspojGg(a, opNode);
			add__P8dDSotTW25BkfbyspojGg(a, result);
			add__P8dDSotTW25BkfbyspojGg(a, b);
			result = a;
			opPrec = getPrecedence__550NPbPmWDuMCBxeVYaWWg((&(*p).tok));
		} LA7: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExprAux__8pe7XRE9b9bOdUuKGlNyjykw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, mode);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaExp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97));
		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__oEVT2Q885qI5p3u0L42zBg) 0));
		LA8_: ;
		if (!T3_) goto LA9_;
		pragmaExp = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(pragmaExp, result);
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
		add__P8dDSotTW25BkfbyspojGg(pragmaExp, T11_);
		result = pragmaExp;
	}
	LA9_: ;
	result = parseOperators__M2ubTinDZ6cwqBTmyzzCrA(p, result, limit, mode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = simpleExprAux__8pe7XRE9b9bOdUuKGlNyjykw(p, ((NI) -1), mode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, binaryNot__lA8KBVXpy2uiG7zXRazPUg_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notOpr;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 45))) goto LA3_;
		notOpr = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag((*p).tok.ident, (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, notOpr);
		b = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, notOpr);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		add__P8dDSotTW25BkfbyspojGg(result, b);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 1));
	result = binaryNot__lA8KBVXpy2uiG7zXRazPUg_4(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tySet_tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (&(*p)));
	{
		while (1) {
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
			{
				{
					if (!((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA) 0))&7U)))!=0)) goto LA6_;
					a = identWithPragma__2X3B22n3YpggHp9aY9c06fSg(p, ((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA) 2))&7U)))!=0));
				}
				goto LA4_;
				LA6_: ;
				{
					a = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
				}
				LA4_: ;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA11_;
					goto BeforeRet_;
				}
				LA11_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA16_;
				goto LA1;
			}
			LA16_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		}
	} LA1: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA20_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T22_ = parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(p);
		add__P8dDSotTW25BkfbyspojGg(result, T22_);
	}
	goto LA18_;
	LA20_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
		T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T24_ = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T24_);
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105)));
			if (!(T27_)) goto LA28_;
			T27_ = !(((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA) 1))&7U)))!=0));
			LA28_: ;
			if (!T27_) goto LA29_;
			parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_20), (&(*p).tok));
		}
		LA29_: ;
	}
	LA18_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA33_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T35_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T35_);
	}
	goto LA31_;
	LA33_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T37_ = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T37_);
	}
	LA31_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseParamList__FOjoKMl3ZvWc3VmCanXghw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL retColon) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	NIM_BOOL hasParLe;
	NIM_BOOL T1_;
	NIM_BOOL hasRet;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), (&(*p)));
	add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89));
	if (!(T1_)) goto LA2_;
	T1_ = ((*p).tok.indent < ((NI) 0));
	LA2_: ;
	hasParLe = T1_;
	{
		if (!hasParLe) goto LA5_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		{
			while (1) {
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
				{
					a = parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg(p, 3);
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90):
				{
					goto LA7;
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
				{
					parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_21));
					goto LA7;
				}
				break;
				default:
				{
					parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_22));
					goto LA7;
				}
				break;
				}
				add__P8dDSotTW25BkfbyspojGg(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA15_;
					goto LA7;
				}
				LA15_: ;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
			}
		} LA7: ;
		optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
	}
	LA5_: ;
	{
		if (!retColon) goto LA19_;
		hasRet = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103));
	}
	goto LA17_;
	LA19_: ;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109));
		if (!(T22_)) goto LA23_;
		T22_ = eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_23));
		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__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(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__bROa11lyF5vxEN9aYNbHmhw*, makeCall__Q0XtPtKhjDEfZ4UlFkHa0g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
		result = n;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		add__P8dDSotTW25BkfbyspojGg(result, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseDoBlock__bPeHCqTbfm5XO9b9cFP456Gg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	params = parseParamList__FOjoKMl3ZvWc3VmCanXghw(p, NIM_FALSE);
	pragmas = optPragmas__OLFhtinvyGGYp40j9clU1hw_10(p);
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	result = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	{
		if (!!(((*params).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		result = newProcNode__g5PEkYP0A0RT03uHbJ6wKQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52), info, result, params, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, pragmas, (*p).emptyNode);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* openingParams;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* openingPragmas;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	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__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA7_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		openingParams = parseParamList__FOjoKMl3ZvWc3VmCanXghw(p, NIM_FALSE);
		openingPragmas = optPragmas__OLFhtinvyGGYp40j9clU1hw_10(p);
	}
	LA7_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA11_;
		result = makeCall__Q0XtPtKhjDEfZ4UlFkHa0g(result);
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* stmtList;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25)))) goto LA15_;
			stmtList = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
			T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T17_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
			add__P8dDSotTW25BkfbyspojGg(stmtList, T17_);
			{
				if (!((*(*stmtList)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA20_;
				stmtList = (*stmtList)._kind_6.sons->data[((NI) 0)];
			}
			LA20_: ;
			(*stmtList).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 16)) & 31);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
				if (!!(((*openingParams).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA24_;
				T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T26_ = newProcNode__g5PEkYP0A0RT03uHbJ6wKQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52), (*stmtList).info, stmtList, openingParams, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, openingPragmas, (*p).emptyNode);
				add__P8dDSotTW25BkfbyspojGg(result, T26_);
			}
			goto LA22_;
			LA24_: ;
			{
				add__P8dDSotTW25BkfbyspojGg(result, stmtList);
			}
			LA22_: ;
		}
		LA15_: ;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nextBlock;
				tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ nextToken;
				if (!((*p).tok.indent == (*p).currInd)) goto LA29;
				nextBlock = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				nextToken = (*p).tok.tokType;
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					if (!(nextToken == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA32_;
					info = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
					getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
					nextBlock = parseDoBlock__bPeHCqTbfm5XO9b9cFP456Gg(p, info);
				}
				goto LA30_;
				LA32_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
					switch (nextToken) {
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48):
					{
						nextBlock = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85), (&(*p)));
						exprList__ZtQwR9a3UxFYtOdheviz0ug(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103), nextBlock);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
						nextBlock = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
						getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
						optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, nextBlock);
						T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T37_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
						add__P8dDSotTW25BkfbyspojGg(nextBlock, T37_);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25):
					{
						nextBlock = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87), (&(*p)));
						exprList__ZtQwR9a3UxFYtOdheviz0ug(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103), nextBlock);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22):
					{
						nextBlock = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
						getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
					}
					break;
					default:
					{
						goto LA28;
					}
					break;
					}
					eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103));
					T41_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T41_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
					add__P8dDSotTW25BkfbyspojGg(nextBlock, T41_);
				}
				LA30_: ;
				(*nextBlock).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 16)) & 31);
				add__P8dDSotTW25BkfbyspojGg(result, nextBlock);
				{
					if (!((*nextBlock).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88))) goto LA44_;
					goto LA28;
				}
				LA44_: ;
			} LA29: ;
		} LA28: ;
	}
	goto LA9_;
	LA11_: ;
	{
		{
			if (!!(((*openingParams).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA49_;
			parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_24));
		}
		LA49_: ;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA3_;
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		add__P8dDSotTW25BkfbyspojGg(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__aKRVmNauliJPSjudLVAPqQ((&(*p)));
		T6_ = !(T10_);
		LA9_: ;
		if (!T6_) goto LA11_;
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
		e = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		e = postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, e);
		add__P8dDSotTW25BkfbyspojGg(result, e);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseModuleName__2jBrreK9aYHUoY5oY9bXlLyg_5)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseImport__2jBrreK9aYHUoY5oY9bXlLyg_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	a = parseModuleName__2jBrreK9aYHUoY5oY9bXlLyg_5(p, kind);
	add__P8dDSotTW25BkfbyspojGg(result, a);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25))) goto LA3_;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25))) goto LA7_;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)(kind + ((NI) 1)))));
		}
		LA7_: ;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		{
			while (1) {
				(*p).hasProgress = NIM_FALSE;
				a = parseModuleName__2jBrreK9aYHUoY5oY9bXlLyg_5(p, kind);
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
					if (T13_) goto LA14_;
					T13_ = !((*p).hasProgress);
					LA14_: ;
					if (!T13_) goto LA15_;
					goto LA9;
				}
				LA15_: ;
				add__P8dDSotTW25BkfbyspojGg(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA19_;
					goto LA9;
				}
				LA19_: ;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
			}
		} LA9: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFromStmt__OLFhtinvyGGYp40j9clU1hw_22)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	a = parseModuleName__2jBrreK9aYHUoY5oY9bXlLyg_5(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116));
	add__P8dDSotTW25BkfbyspojGg(result, a);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 32));
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			(*p).hasProgress = NIM_FALSE;
			a = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (T5_) goto LA6_;
				T5_ = !((*p).hasProgress);
				LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA11_;
				goto LA1;
			}
			LA11_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIncludeStmt__OLFhtinvyGGYp40j9clU1hw_23)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			(*p).hasProgress = NIM_FALSE;
			a = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (T5_) goto LA6_;
				T5_ = !((*p).hasProgress);
				LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA11_;
				goto LA1;
			}
			LA11_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCommentStmt__OLFhtinvyGGYp40j9clU1hw_24)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NimStringDesc* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125), (&(*p)));
	T1_ = (NimStringDesc*)0;
	T1_ = (*result).comment; (*result).comment = copyStringRC1((*p).tok.literal);
	if (T1_) nimGCunrefNoCycle(T1_);
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExprStmt__OLFhtinvyGGYp40j9clU1hw_25)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA3_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		b = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		b = postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, b);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		add__P8dDSotTW25BkfbyspojGg(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__5VVBIL7Ozj1cc9akK23jAGQ) 101));
			LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			T8_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26));
			LA11_: ;
			if (!T8_) goto LA12_;
			result = a;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
					getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
					optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
					T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T16_ = commandParam__hwBYTTgHHNZuQpkNRfHwzg(p, (&isFirstParam), ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
					add__P8dDSotTW25BkfbyspojGg(result, T16_);
					{
						if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA19_;
						goto LA14;
					}
					LA19_: ;
				}
			} LA14: ;
		}
		goto LA6_;
		LA12_: ;
		{
			NIM_BOOL T22_;
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T26_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*p).tok.indent < ((NI) 0));
			if (!(T22_)) goto LA23_;
			T22_ = isExprStart__aKRVmNauliJPSjudLVAPqQ((&(*p)));
			LA23_: ;
			if (!T22_) goto LA24_;
			nimZeroMem((void*)T26_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T26_[0] = a;
			result = newTreeI__L1Xluv2iZ8cHbWec9bBiiaw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26), (*a).info, T26_, 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
					T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T29_ = commandParam__hwBYTTgHHNZuQpkNRfHwzg(p, (&isFirstParam), ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
					add__P8dDSotTW25BkfbyspojGg(result, T29_);
					{
						if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA32_;
						goto LA27;
					}
					LA32_: ;
					getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
					optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
				}
			} LA27: ;
		}
		goto LA6_;
		LA24_: ;
		{
			result = a;
		}
		LA6_: ;
		result = postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, result);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleStmt__OLFhtinvyGGYp40j9clU1hw_6)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 55):
	{
		result = parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 53):
	{
		result = parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 68):
	{
		result = parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 17):
	{
		result = parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 9):
	{
		result = parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 14):
	{
		result = parseReturnOrRaise__2jBrreK9aYHUoY5oY9bXlLyg_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97):
	{
		result = parseStmtPragma__OLFhtinvyGGYp40j9clU1hw_19(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 32):
	{
		result = parseImport__2jBrreK9aYHUoY5oY9bXlLyg_4(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 26):
	{
		result = parseImport__2jBrreK9aYHUoY5oY9bXlLyg_4(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 29):
	{
		result = parseFromStmt__OLFhtinvyGGYp40j9clU1hw_22(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 34):
	{
		result = parseIncludeStmt__OLFhtinvyGGYp40j9clU1hw_23(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110):
	{
		result = newCommentStmt__OLFhtinvyGGYp40j9clU1hw_24(p);
	}
	break;
	default:
	{
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = isExprStart__aKRVmNauliJPSjudLVAPqQ((&(*p)));
			if (!T16_) goto LA17_;
			result = parseExprStmt__OLFhtinvyGGYp40j9clU1hw_25(p);
		}
		goto LA14_;
		LA17_: ;
		{
			result = (*p).emptyNode;
		}
		LA14_: ;
	}
	break;
	}
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125)))) goto LA22_;
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
	}
	LA22_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmt__OLFhtinvyGGYp40j9clU1hw_5)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI oldIndX60gensym162_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
		oldIndX60gensym162_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				{
					if (!((*p).tok.indent == (*p).currInd)) goto LA9_;
				}
				goto LA7_;
				LA9_: ;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA12_;
					getTok__8zUz9aMaVNXFAgx05le5t9aA(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__5VVBIL7Ozj1cc9akK23jAGQ) 106)));
						LA25_: ;
						if (!T24_) goto LA26_;
						parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
					}
					LA26_: ;
					goto LA5;
				}
				LA7_: ;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92))) goto LA30_;
					goto LA5;
				}
				LA30_: ;
				(*p).hasProgress = NIM_FALSE;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21))) goto LA34_;
					goto LA5;
				}
				LA34_: ;
				a = complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2(p);
				{
					NIM_BOOL T38_;
					T38_ = (NIM_BOOL)0;
					T38_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
					if (!(T38_)) goto LA39_;
					T38_ = !((*p).hasProgress);
					LA39_: ;
					if (!T38_) goto LA40_;
					parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
					goto LA5;
				}
				goto LA36_;
				LA40_: ;
				{
					add__P8dDSotTW25BkfbyspojGg(result, a);
				}
				LA36_: ;
				{
					NIM_BOOL T45_;
					T45_ = (NIM_BOOL)0;
					T45_ = !((*p).hasProgress);
					if (!(T45_)) goto LA46_;
					T45_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1));
					LA46_: ;
					if (!T45_) goto LA47_;
					goto LA5;
				}
				LA47_: ;
			}
		} LA5: ;
		(*p).currInd = oldIndX60gensym162_;
	}
	goto LA1_;
	LA3_: ;
	{
		switch ((*p).tok.tokType) {
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 66):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 60):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 28):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 8):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 6):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 30):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 38):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 40):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 13):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
		{
			parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_10));
			result = (*p).emptyNode;
		}
		break;
		default:
		{
			{
				if (!(((NI) 0) < (*p).inSemiStmtList)) goto LA54_;
				result = simpleStmt__OLFhtinvyGGYp40j9clU1hw_6(p);
				{
					if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA58_;
					parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				}
				LA58_: ;
			}
			goto LA52_;
			LA54_: ;
			{
				result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
						NIM_BOOL err;
						{
							if (!(((NI) 0) <= (*p).tok.indent)) goto LA65_;
							parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
						}
						LA65_: ;
						(*p).hasProgress = NIM_FALSE;
						a_2 = simpleStmt__OLFhtinvyGGYp40j9clU1hw_6(p);
						err = !((*p).hasProgress);
						{
							if (!((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA69_;
							parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
						}
						LA69_: ;
						add__P8dDSotTW25BkfbyspojGg(result, a_2);
						{
							if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA73_;
							goto LA61;
						}
						LA73_: ;
						getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
						{
							NIM_BOOL T77_;
							T77_ = (NIM_BOOL)0;
							T77_ = err;
							if (!(T77_)) goto LA78_;
							T77_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1));
							LA78_: ;
							if (!T77_) goto LA79_;
							goto LA61;
						}
						LA79_: ;
					}
				} LA61: ;
			}
			LA52_: ;
		}
		break;
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBlock__OLFhtinvyGGYp40j9clU1hw_4)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112), (&(*p)));
	getTokNoInd__8zUz9aMaVNXFAgx05le5t9aA_3(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA3_;
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
	}
	LA1_: ;
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	add__P8dDSotTW25BkfbyspojGg(result, T7_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVarTuple__OLFhtinvyGGYp40j9clU1hw_27)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA2;
			a = identWithPragma__2X3B22n3YpggHp9aY9c06fSg(p, NIM_TRUE);
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
		} LA2: ;
	} LA1: ;
	add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFor__OLFhtinvyGGYp40j9clU1hw_26)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	getTokNoInd__8zUz9aMaVNXFAgx05le5t9aA_3(p);
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94), (&(*p)));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = parseVarTuple__OLFhtinvyGGYp40j9clU1hw_27(p);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = identWithPragma__2X3B22n3YpggHp9aY9c06fSg(p, NIM_FALSE);
		add__P8dDSotTW25BkfbyspojGg(result, a);
		{
			while (1) {
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101))) goto LA8;
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA11_;
					T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T13_ = parseVarTuple__OLFhtinvyGGYp40j9clU1hw_27(p);
					add__P8dDSotTW25BkfbyspojGg(result, T13_);
					goto LA7;
				}
				LA11_: ;
				a = identWithPragma__2X3B22n3YpggHp9aY9c06fSg(p, NIM_FALSE);
				add__P8dDSotTW25BkfbyspojGg(result, a);
			} LA8: ;
		} LA7: ;
	}
	LA1_: ;
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33));
	T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T14_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	add__P8dDSotTW25BkfbyspojGg(result, T14_);
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T15_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	add__P8dDSotTW25BkfbyspojGg(result, T15_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCase__OLFhtinvyGGYp40j9clU1hw_28)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
	NIM_BOOL inElif;
	NIM_BOOL wasIndented;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI oldInd;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	inElif = NIM_FALSE;
	wasIndented = NIM_FALSE;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA4_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	LA4_: ;
	skipComment__hAKUgEHgmib1sc9caTftE2w(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__bROa11lyF5vxEN9aYNbHmhw* T21_;
			if (!((*p).tok.indent == (*p).currInd)) goto LA11;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48):
			{
				{
					if (!inElif) goto LA15_;
					goto LA10;
				}
				LA15_: ;
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85), (&(*p)));
				exprList__ZtQwR9a3UxFYtOdheviz0ug(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103), b);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
				inElif = NIM_TRUE;
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, b);
				T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T18_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
				add__P8dDSotTW25BkfbyspojGg(b, T18_);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22):
			{
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			}
			break;
			default:
			{
				goto LA10;
			}
			break;
			}
			colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, b);
			T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T21_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
			add__P8dDSotTW25BkfbyspojGg(b, T21_);
			add__P8dDSotTW25BkfbyspojGg(result, b);
			{
				if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*, parseTry__KCUKC9bs3siJ9aJGo1tER7gg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	b = NIM_NIL;
	{
		while (1) {
			NIM_BOOL T4_;
			NIM_BOOL T5_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__5VVBIL7Ozj1cc9akK23jAGQ) 25):
			{
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87), (&(*p)));
				exprList__ZtQwR9a3UxFYtOdheviz0ug(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103), b);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 27):
			{
				b = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107), (&(*p)));
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			}
			break;
			default:
			{
				goto LA2;
			}
			break;
			}
			colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, b);
			T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
			add__P8dDSotTW25BkfbyspojGg(b, T11_);
			add__P8dDSotTW25BkfbyspojGg(result, b);
		} LA3: ;
	} LA2: ;
	{
		if (!(b == NIM_NIL)) goto LA14_;
		parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_25));
	}
	LA14_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExpr__OLFhtinvyGGYp40j9clU1hw_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 8):
	{
		result = parseBlock__OLFhtinvyGGYp40j9clU1hw_4(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
	{
		result = parseIfExpr__2jBrreK9aYHUoY5oY9bXlLyg_3(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 28):
	{
		result = parseFor__OLFhtinvyGGYp40j9clU1hw_26(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
	{
		result = parseIfExpr__2jBrreK9aYHUoY5oY9bXlLyg_3(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
	{
		result = parseCase__OLFhtinvyGGYp40j9clU1hw_28(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 60):
	{
		result = parseTry__KCUKC9bs3siJ9aJGo1tER7gg(p, NIM_TRUE);
	}
	break;
	default:
	{
		result = simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfOrWhen__2jBrreK9aYHUoY5oY9bXlLyg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			branch = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, branch);
			T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T3_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
			add__P8dDSotTW25BkfbyspojGg(branch, T3_);
			colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, branch);
			T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T4_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
			add__P8dDSotTW25BkfbyspojGg(branch, T4_);
			skipComment__hAKUgEHgmib1sc9caTftE2w(p, branch);
			add__P8dDSotTW25BkfbyspojGg(result, branch);
			{
				NIM_BOOL T7_;
				NIM_BOOL T9_;
				T7_ = (NIM_BOOL)0;
				T7_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__bROa11lyF5vxEN9aYNbHmhw* branch_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 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__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, branch_2);
		T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T21_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
		add__P8dDSotTW25BkfbyspojGg(branch_2, T21_);
		add__P8dDSotTW25BkfbyspojGg(result, branch_2);
	}
	LA19_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseWhile__OLFhtinvyGGYp40j9clU1hw_29)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	add__P8dDSotTW25BkfbyspojGg(result, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExceptBlock__2jBrreK9aYHUoY5oY9bXlLyg_6)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStaticOrDefer__9aIYZ3TxqCV2f0U1At59c2VA)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(k, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	colcom__p1rHa9cSKv0ZyuzqGSJ39bqA_2(p, result);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAsm__OLFhtinvyGGYp40j9clU1hw_30)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89), (&(*p)));
	getTokNoInd__8zUz9aMaVNXFAgx05le5t9aA_3(p);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97))) goto LA3_;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA1_: ;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 83):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*p).tok.literal, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T8_);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 84):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T10_ = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T10_);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 85):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
		T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T12_ = newStrNodeP__g3omsRXtNsVknnSY8EOK8w(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(result, T12_);
	}
	break;
	default:
	{
		parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_26));
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
		goto BeforeRet_;
	}
	break;
	}
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePattern__OLFhtinvyGGYp40j9clU1hw_31)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
	result = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, expectIdent__iTgWY1FbspTx3h6YVB2IxQ)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw T5_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2)))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw));
		T5_.Sup.Sup.m_type = (&NTI__JC9bQ4bKzkuzV9bdqS4ju8yw_);
		nimCopyMem((void*)(&T5_), (NIM_CONST void*)(&(*p).lex), sizeof(T5_));
		T6_ = (NimStringDesc*)0;
		T6_ = prettyTok__PB6jYA2RGAC8IiD19cWHRSA_2((&(*p).tok));
		T7_ = (NimStringDesc*)0;
		T7_ = nsuFormatSingleElem(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), T6_);
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&T5_), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T7_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParam__OLFhtinvyGGYp40j9clU1hw_33)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (&(*p)));
	{
		while (1) {
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
			{
				tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* x;
				tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* T4_;
				NimStringDesc* T5_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
				T4_ = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*)0;
				T4_ = (*p).lex.cache;
				T5_ = (NimStringDesc*)0;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33))) goto LA8_;
					T5_ = copyString(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_27));
				}
				goto LA6_;
				LA8_: ;
				{
					T5_ = copyString(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_28));
				}
				LA6_: ;
				x = getIdent__9coBOmdXN09be4rJvXK6fQGQ(T4_, T5_);
				a = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (&(*p)));
				T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T11_ = newIdentNodeP__r3WJriglBfUSUq9b12OH5ag(x, (&(*p)));
				add__P8dDSotTW25BkfbyspojGg(a, T11_);
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				expectIdent__iTgWY1FbspTx3h6YVB2IxQ((&(*p)));
				T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T12_ = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
				add__P8dDSotTW25BkfbyspojGg(a, T12_);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
			{
				a = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA16_;
					goto BeforeRet_;
				}
				LA16_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA21_;
				goto LA1;
			}
			LA21_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		}
	} LA1: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA25_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T27_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T27_);
	}
	goto LA23_;
	LA25_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA23_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA31_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T33_);
	}
	goto LA29_;
	LA31_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA29_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParamList__OLFhtinvyGGYp40j9clU1hw_32)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75), (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50))) goto LA2;
			a = parseGenericParam__OLFhtinvyGGYp40j9clU1hw_33(p);
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
		} LA2: ;
	} LA1: ;
	optPar__8zUz9aMaVNXFAgx05le5t9aA_4(p);
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, indAndComment__p1rHa9cSKv0ZyuzqGSJ39bqA_3)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA7_;
			rawSkipComment__hAKUgEHgmib1sc9caTftE2w_2(p, n);
		}
		goto LA5_;
		LA7_: ;
		{
			parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, n);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = identVis__2X3B22n3YpggHp9aY9c06fSg_2(p, NIM_FALSE);
	add__P8dDSotTW25BkfbyspojGg(result, T1_);
	{
		NIM_BOOL T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
		if (!(T4_)) goto LA5_;
		T4_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA5_: ;
		if (!T4_) goto LA6_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = parsePattern__OLFhtinvyGGYp40j9clU1hw_31(p);
		add__P8dDSotTW25BkfbyspojGg(result, T8_);
	}
	goto LA2_;
	LA6_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA2_: ;
	{
		NIM_BOOL T12_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
		if (!(T12_)) goto LA13_;
		T12_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA13_: ;
		if (!T12_) goto LA14_;
		T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T16_ = parseGenericParamList__OLFhtinvyGGYp40j9clU1hw_32(p);
		add__P8dDSotTW25BkfbyspojGg(result, T16_);
	}
	goto LA10_;
	LA14_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA10_: ;
	T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T18_ = parseParamList__FOjoKMl3ZvWc3VmCanXghw(p, NIM_TRUE);
	add__P8dDSotTW25BkfbyspojGg(result, T18_);
	{
		NIM_BOOL T21_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		T21_ = (NIM_BOOL)0;
		T21_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97));
		if (!(T21_)) goto LA22_;
		T21_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA22_: ;
		if (!T21_) goto LA23_;
		T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T25_ = parsePragma__OLFhtinvyGGYp40j9clU1hw_8(p);
		add__P8dDSotTW25BkfbyspojGg(result, T25_);
	}
	goto LA19_;
	LA23_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA19_: ;
	add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	{
		NIM_BOOL T29_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		T29_ = (NIM_BOOL)0;
		T29_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
		if (!(T29_)) goto LA30_;
		T29_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA30_: ;
		if (!T29_) goto LA31_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = parseStmt__OLFhtinvyGGYp40j9clU1hw_5(p);
		add__P8dDSotTW25BkfbyspojGg(result, T33_);
	}
	goto LA27_;
	LA31_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA27_: ;
	indAndComment__p1rHa9cSKv0ZyuzqGSJ39bqA_3(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyProc__DRjGxmJIweFVoAt8was9aww defparser) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(kind, (&(*p)));
	{
		if (!!((kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98)))) goto LA3_;
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	}
	LA3_: ;
	skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
	{
		NI oldIndX60gensym116_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA7_;
		oldIndX60gensym116_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		skipComment__hAKUgEHgmib1sc9caTftE2w(p, result);
		{
			while (1) {
				if (!((*p).tok.indent == (*p).currInd)) goto LA10;
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					a = defparser(p);
					skipComment__hAKUgEHgmib1sc9caTftE2w(p, a);
					add__P8dDSotTW25BkfbyspojGg(result, a);
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
					a_2 = newCommentStmt__OLFhtinvyGGYp40j9clU1hw_24(p);
					add__P8dDSotTW25BkfbyspojGg(result, a_2);
				}
				break;
				default:
				{
					parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					goto LA9;
				}
				break;
				}
			} LA10: ;
		} LA9: ;
		(*p).currInd = oldIndX60gensym116_;
		{
			NI T16_;
			T16_ = (NI)0;
			T16_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
		}
		LA17_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL T20_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
		T20_ = (NIM_BOOL)0;
		T20_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89));
		if (!(T20_)) goto LA21_;
		T20_ = ((*p).tok.indent < ((NI) 0));
		LA21_: ;
		if (!T20_) goto LA22_;
		T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T24_ = defparser(p);
		add__P8dDSotTW25BkfbyspojGg(result, T24_);
	}
	goto LA5_;
	LA22_: ;
	{
		parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDefAux__OLFhtinvyGGYp40j9clU1hw_35)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = simpleExpr__XU9btjFatO4YiDn6xUnAZ9cg(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2));
	result = binaryNot__lA8KBVXpy2uiG7zXRazPUg_4(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDef__OLFhtinvyGGYp40j9clU1hw_34)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identifier;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identPragma;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragma;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParam;
	NIM_BOOL noPragmaYet;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103), (&(*p)));
	identifier = identVis__2X3B22n3YpggHp9aY9c06fSg_2(p, NIM_TRUE);
	identPragma = identifier;
	pragma = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	genericParam = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	noPragmaYet = NIM_TRUE;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97))) goto LA3_;
		pragma = optPragmas__OLFhtinvyGGYp40j9clU1hw_10(p);
		identPragma = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
		add__P8dDSotTW25BkfbyspojGg(identPragma, identifier);
		add__P8dDSotTW25BkfbyspojGg(identPragma, pragma);
		noPragmaYet = NIM_FALSE;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
		if (!(T7_)) goto LA8_;
		T7_ = validInd__68YgzuXF6e4XBSh13ki7Vwparser(p);
		LA8_: ;
		if (!T7_) goto LA9_;
		{
			if (!!(noPragmaYet)) goto LA13_;
			parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 16), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_29));
		}
		LA13_: ;
		genericParam = parseGenericParamList__OLFhtinvyGGYp40j9clU1hw_32(p);
	}
	goto LA5_;
	LA9_: ;
	{
		genericParam = (*p).emptyNode;
	}
	LA5_: ;
	{
		if (!noPragmaYet) goto LA18_;
		pragma = optPragmas__OLFhtinvyGGYp40j9clU1hw_10(p);
		{
			if (!!(((*pragma).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA22_;
			identPragma = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
			add__P8dDSotTW25BkfbyspojGg(identPragma, identifier);
			add__P8dDSotTW25BkfbyspojGg(identPragma, pragma);
		}
		LA22_: ;
	}
	goto LA16_;
	LA18_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 97))) goto LA25_;
		parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_30));
	}
	goto LA16_;
	LA25_: ;
	LA16_: ;
	add__P8dDSotTW25BkfbyspojGg(result, identPragma);
	add__P8dDSotTW25BkfbyspojGg(result, genericParam);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA29_;
		(*result).info = parLineInfo__zXqlzXRjw7qiz2WpPJOB9aA((&(*p)));
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = parseTypeDefAux__OLFhtinvyGGYp40j9clU1hw_35(p);
		add__P8dDSotTW25BkfbyspojGg(result, T31_);
	}
	goto LA27_;
	LA29_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
	}
	LA27_: ;
	indAndComment__p1rHa9cSKv0ZyuzqGSJ39bqA_3(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseConstant__OLFhtinvyGGYp40j9clU1hw_36)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
	NI T14_;
	NI T15_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA3_;
		result = parseVarTuple__OLFhtinvyGGYp40j9clU1hw_27(p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102), (&(*p)));
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = identWithPragma__2X3B22n3YpggHp9aY9c06fSg(p, NIM_FALSE);
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA9_;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
			T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = parseTypeDesc__OLFhtinvyGGYp40j9clU1hw_9(p);
			add__P8dDSotTW25BkfbyspojGg(result, T11_);
		}
		goto LA7_;
		LA9_: ;
		{
			add__P8dDSotTW25BkfbyspojGg(result, (*p).emptyNode);
		}
		LA7_: ;
	}
	LA1_: ;
	eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T13_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
	add__P8dDSotTW25BkfbyspojGg(result, T13_);
	T14_ = (NI)0;
	T14_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
	T15_ = (NI)0;
	T15_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
	asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T14_ - ((NI) 1))]), postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, (*result)._kind_6.sons->data[(NI)(T15_ - ((NI) 1))]));
	indAndComment__p1rHa9cSKv0ZyuzqGSJ39bqA_3(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVariable__OLFhtinvyGGYp40j9clU1hw_37)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI T7_;
	NI T8_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA3_;
		result = parseVarTuple__OLFhtinvyGGYp40j9clU1hw_27(p);
		eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
		optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = parseExpr__OLFhtinvyGGYp40j9clU1hw_3(p);
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = parseIdentColonEquals__WTdBPIV18P10v9bNaQgrNrg(p, 5);
	}
	LA1_: ;
	T7_ = (NI)0;
	T7_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
	T8_ = (NI)0;
	T8_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
	asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T7_ - ((NI) 1))]), postExprBlocks__E5OxIAnrGn1cbp9bhDF0aTg(p, (*result)._kind_6.sons->data[(NI)(T8_ - ((NI) 1))]));
	indAndComment__p1rHa9cSKv0ZyuzqGSJ39bqA_3(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, qualifiedIdent__OLFhtinvyGGYp40j9clU1hw_38)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = parseSymbol__HClT3dH1f08LRWq0R9a4tGA(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA3_;
		result = dotExpr__lA8KBVXpy2uiG7zXRazPUg(p, result);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBind__9aIYZ3TxqCV2f0U1At59c2VA_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(k, (&(*p)));
	getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
	optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = qualifiedIdent__OLFhtinvyGGYp40j9clU1hw_38(p);
			add__P8dDSotTW25BkfbyspojGg(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			optInd__p1rHa9cSKv0ZyuzqGSJ39bqA(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
	{
		result = parseIfOrWhen__2jBrreK9aYHUoY5oY9bXlLyg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 66):
	{
		result = parseWhile__OLFhtinvyGGYp40j9clU1hw_29(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
	{
		result = parseCase__OLFhtinvyGGYp40j9clU1hw_28(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 60):
	{
		result = parseTry__KCUKC9bs3siJ9aJGo1tER7gg(p, NIM_FALSE);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 27):
	{
		result = parseExceptBlock__2jBrreK9aYHUoY5oY9bXlLyg_6(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25):
	{
		result = parseExceptBlock__2jBrreK9aYHUoY5oY9bXlLyg_6(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 28):
	{
		result = parseFor__OLFhtinvyGGYp40j9clU1hw_26(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 8):
	{
		result = parseBlock__OLFhtinvyGGYp40j9clU1hw_4(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58):
	{
		result = parseStaticOrDefer__9aIYZ3TxqCV2f0U1At59c2VA(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 16):
	{
		result = parseStaticOrDefer__9aIYZ3TxqCV2f0U1At59c2VA(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 6):
	{
		result = parseAsm__OLFhtinvyGGYp40j9clU1hw_30(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 30):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 41):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 38):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 40):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 59):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 15):
	{
		result = parseRoutine__2jBrreK9aYHUoY5oY9bXlLyg_7(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
	{
		getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA22_;
			getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132), (&(*p)));
			T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T24_ = primary__XU9btjFatO4YiDn6xUnAZ9cg_2(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T24_);
			eat__2LRRHBPHPFJJSGtK0719ayQ(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
			result = parseOperators__M2ubTinDZ6cwqBTmyzzCrA(p, result, ((NI) -1), ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		}
		goto LA20_;
		LA22_: ;
		{
			result = parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98), parseTypeDef__OLFhtinvyGGYp40j9clU1hw_34);
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 13):
	{
		result = parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101), parseConstant__OLFhtinvyGGYp40j9clU1hw_36);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 39):
	{
		result = parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), parseVariable__OLFhtinvyGGYp40j9clU1hw_37);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
	{
		result = parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), parseVariable__OLFhtinvyGGYp40j9clU1hw_37);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
	{
		result = parseIfOrWhen__2jBrreK9aYHUoY5oY9bXlLyg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 7):
	{
		result = parseBind__9aIYZ3TxqCV2f0U1At59c2VA_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 42):
	{
		result = parseBind__9aIYZ3TxqCV2f0U1At59c2VA_2(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 63):
	{
		result = parseSection__Oa0j2nSXQJ9aFgqPOtmBoFg(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 124), parseVariable__OLFhtinvyGGYp40j9clU1hw_37);
	}
	break;
	default:
	{
		result = simpleStmt__OLFhtinvyGGYp40j9clU1hw_6(p);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAll__OLFhtinvyGGYp40j9clU1hw)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeP__i6WnebBgHpaJpDTiezmZMA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA2;
			(*p).hasProgress = NIM_FALSE;
			a = complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
				if (!(T5_)) goto LA6_;
				T5_ = (*p).hasProgress;
				LA6_: ;
				if (!T5_) goto LA7_;
				add__P8dDSotTW25BkfbyspojGg(result, a);
			}
			goto LA3_;
			LA7_: ;
			{
				parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
			}
			LA3_: ;
			{
				if (!!(((*p).tok.indent == ((NI) 0)))) goto LA12_;
				parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
			}
			LA12_: ;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, closeParser__8zUz9aMaVNXFAgx05le5t9aA_5)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	closeLexer__DwtnSrPK9cWJ9csJe89cdABpA((&(*p).lex));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTopLevelStmt__OLFhtinvyGGYp40j9clU1hw_39)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	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__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA14_;
					{
						NIM_BOOL T18_;
						T18_ = (NIM_BOOL)0;
						T18_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 109));
						if (!(T18_)) goto LA19_;
						T18_ = eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_31));
						LA19_: ;
						if (!T18_) goto LA20_;
						parMessage__x1e9aN9b9cHLxZIZN17RpVxTQ((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_32));
					}
					goto LA16_;
					LA20_: ;
					{
						parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
					}
					LA16_: ;
				}
				goto LA7_;
				LA14_: ;
				LA7_: ;
			}
			LA5_: ;
			(*p).firstTok = NIM_FALSE;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102):
			{
				getTok__8zUz9aMaVNXFAgx05le5t9aA(p);
				{
					if (!((*p).tok.indent <= ((NI) 0))) goto LA26_;
				}
				goto LA24_;
				LA26_: ;
				{
					parMessage__jkeyBD0ouKfZiibOsopikg((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
				}
				LA24_: ;
				(*p).firstTok = NIM_TRUE;
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1):
			{
				goto LA1;
			}
			break;
			default:
			{
				result = complexOrSimpleStmt__OLFhtinvyGGYp40j9clU1hw_2(p);
				{
					if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA33_;
					parMessage__1VWmQUgWIltd9cJD0MhGQdw((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				}
				LA33_: ;
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseString__60l3XWY7pBPSQ4Pi9ao9bZPg)(NimStringDesc* s, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, NimStringDesc* filename, NI line, tyProc__pIuD7iLYdwrBMntVRm61ZA errorHandler) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
	tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw parser;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	stream = llStreamOpen__jzv9bBGhVSDMwEPDegAAa2w(s);
	(*stream).lineOffset = line;
	nimZeroMem((void*)(&parser), sizeof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw));
	objectInit((&parser), (&NTI__kUTcqfBOdi2S1yCsNNzzUw_));
	parser.lex.errorHandler.ClE_0 = errorHandler.ClE_0;
	parser.lex.errorHandler.ClP_0 = errorHandler.ClP_0;
	openParser__BZV9appUD7Yfuooxw59ceeDw((&parser), filename, stream, cache, config);
	result = parseAll__OLFhtinvyGGYp40j9clU1hw((&parser));
	closeParser__8zUz9aMaVNXFAgx05le5t9aA_5((&parser));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_parserDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[8];
static TNimNode TM__MW5RrD2zyVLHF67ojsDu8Q_0[9];

/* section: NIM_merge_TYPE_INIT3 */
NTI__kUTcqfBOdi2S1yCsNNzzUw_.size = sizeof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw);
NTI__kUTcqfBOdi2S1yCsNNzzUw_.align = NIM_ALIGNOF(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw);
NTI__kUTcqfBOdi2S1yCsNNzzUw_.kind = 18;
NTI__kUTcqfBOdi2S1yCsNNzzUw_.base = 0;
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[0] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[1];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[1].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[1].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, currInd);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[1].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[1].name = "currInd";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[1] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[2];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[2].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[2].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, firstTok);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[2].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[2].name = "firstTok";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[2] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[3];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[3].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[3].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, hasProgress);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[3].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[3].name = "hasProgress";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[3] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[4];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[4].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[4].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, lex);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[4].typ = (&NTI__JC9bQ4bKzkuzV9bdqS4ju8yw_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[4].name = "lex";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[4] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[5];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[5].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[5].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, tok);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[5].typ = (&NTI__sNMaWRTImjqfh1DU9cmdQkA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[5].name = "tok";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[5] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[6];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, inPragma);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].name = "inPragma";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[6] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[7];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, inSemiStmtList);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].name = "inSemiStmtList";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[7] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[8];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, emptyNode);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].typ = (&NTI__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].name = "emptyNode";
TM__MW5RrD2zyVLHF67ojsDu8Q_0[0].len = 8; TM__MW5RrD2zyVLHF67ojsDu8Q_0[0].kind = 2; TM__MW5RrD2zyVLHF67ojsDu8Q_0[0].sons = &TM__MW5RrD2zyVLHF67ojsDu8Q_2_8[0];
NTI__kUTcqfBOdi2S1yCsNNzzUw_.node = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[0];
}

