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

#include "nimbase.h"
#include <string.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_Parser__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__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
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 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__1LTsGP7bSxg45u9aHcxh6OA* 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 lineStartPrevious;
NI lineNumberPrevious;
NI bufposPrevious;
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__facALICuu8zUj0hjvbTLFg* 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__nnJKJFyjDGi5mnv8jwfTGQ* sym;
} _kind_4;
struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g;
struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
NI id;
NimStringDesc* s;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
NI h;
};
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 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 NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[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;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__HzVCwACFYM9cx9aV62PdjtuA;
struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
  RootObj Sup;
tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__9cZV5JMJLsdOPMv55VbpOVg repl;
tyProc__HzVCwACFYM9cx9aV62PdjtuA onPrompt;
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_125)(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__lexer_248)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* L);
N_LIB_PRIVATE N_NIMCALL(void, openLexer__lexer_270)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, getTok__parser_45)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__lexer_1599)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__ast_3285)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__msgs_376)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeP__parser_54)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3316)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, parLineInfo__parser_76)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__lexer_192)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__msgs_381)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, complexOrSimpleStmt__parser_580)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfOrWhen__parser_1554)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, optInd__parser_85)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, skipComment__parser_51)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(void, rawSkipComment__parser_165)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_993)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, commenteq___ast_1361)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_47)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, lexMessageTok__lexer_340)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, skipInd__parser_81)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_147)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4772)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExpr__parser_256)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBlock__parser_112)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, getTokNoInd__parser_196)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSymbol__parser_95)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNodeP__parser_69)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5309)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5271)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5316)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5314)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5265)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_143)(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__lexer_239)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___lexer_230)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(void, eat__parser_78)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__lexer_336)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, colcom__parser_299)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmt__parser_258)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleStmt__parser_2388)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseReturnOrRaise__parser_1533)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExprStart__parser_1139)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, postExprBlocks__parser_107)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseParamList__parser_262)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL retColon);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIdentColonEquals__parser_971)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tySet_tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identWithPragma__parser_946)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identVis__parser_925)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotExpr__parser_436)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, exprList__parser_378)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(void, exprColonEqExprListAux__parser_399)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(void, flexComment__parser_183)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(void, optPar__parser_83)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExpr__parser_370)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, colonOrEquals__parser_342)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4334)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePragma__parser_105)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDesc__parser_260)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExpr__parser_582)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExprAux__parser_117)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primary__parser_114)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOperator__parser_43)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(NIM_BOOL, isSigilLike__parser_265)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primarySuffix__parser_796)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, NI baseIndent, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandExpr__parser_775)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandParam__parser_748)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL* isFirstParam, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, namedParams__parser_737)(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__parser_560)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNodeP__parser_65)(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, isDotLike__parser_789)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2284)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotLikeExpr__parser_473)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnary__parser_279)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTuple__parser_1029)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL indentAllowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseProcExpr__parser_1110)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optPragmas__parser_1093)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newProcNode__ast_3796)(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__parser_1228)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObject__parser_1230)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(NIM_BOOL, validInd__parser_162)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectPart__parser_2004)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectWhen__parser_2006)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectCase__parser_2039)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClass__parser_1232)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClassParam__parser_2136)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5201)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDescKAux__parser_1158)(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__system_1735)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, parseSymbolList__parser_1142)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identOrLiteral__parser_714)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNodeP__parser_57)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, setBaseFlags__parser_92)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog base);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newFloatNodeP__parser_61)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7744)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7756)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExprList__parser_431)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePar__parser_627)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, semiStmtList__parser_588)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfOrWhenExpr__parser_585)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmtPragma__parser_103)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setOrTableConstr__parser_498)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCast__parser_522)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseOperators__parser_831)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headNode, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode);
N_LIB_PRIVATE N_NIMCALL(NI, getPrecedence__lexer_1385)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(void, checkBinary__parser_286)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
static N_INLINE(NIM_BOOL, isRightAssociative__parser_272)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, binaryNot__parser_1294)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeCall__parser_1322)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseDoBlock__parser_1100)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseImport__parser_1464)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseModuleName__parser_1460)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFromStmt__parser_1513)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIncludeStmt__parser_1497)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCommentStmt__parser_1909)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExprStmt__parser_110)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeI__ast_3380)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFor__parser_1183)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVarTuple__parser_1181)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCase__parser_101)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTry__parser_98)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseWhile__parser_1622)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExceptBlock__parser_1685)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStaticOrDefer__parser_1712)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAsm__parser_1720)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseRoutine__parser_1823)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePattern__parser_1820)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParamList__parser_1804)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParam__parser_1751)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, expectIdent__parser_74)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, indAndComment__parser_88)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL maybeMissEquals);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___msgs_624)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSection__parser_1912)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyProc__DRjGxmJIweFVoAt8was9aww defparser);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDef__parser_2221)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDefAux__parser_1319)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseConstant__parser_2322)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVariable__parser_2301)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBind__parser_2359)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, qualifiedIdent__parser_491)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, closeLexer__lexer_304)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen__llstream_30)(NimStringDesc* data);
N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_131)(tyObject_Parser__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__parser_37)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE N_NIMCALL(void, closeParser__parser_39)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p);
N_LIB_PRIVATE TNimType NTIparser__kUTcqfBOdi2S1yCsNNzzUw_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
extern TNimType NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_;
extern TNimType NTItoken__sNMaWRTImjqfh1DU9cmdQkA_;
extern TNimType NTIpnode__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 TNimType NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_;
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, 0x50, 0x00}
;
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_13, "nimPreviewDotLikeOps", 20);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_14, "dot-like operators will be parsed differently with `-d:nimPreviewDotLikeOps`", 76);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_15, "the syntax for tuple types is \'tuple[...]\', not \'tuple(...)\'", 60);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_16, "func keyword is not allowed in type descriptions, use proc with {.noSideEffect.} pragma instead", 95);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_17, "type pragmas follow the type name; this form of writing pragmas is deprecated", 77);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_18, "routine expected, but found \'$1\' (empty new-styled concepts are not allowed)", 76);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_19, "the \'concept\' keyword is only valid in \'type\' sections", 54);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_20, "with", 4);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_21, "without", 7);
static NIM_CONST tySet_tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ TM__MW5RrD2zyVLHF67ojsDu8Q_22 = {
0x00, 0x25, 0x03, 0x9a, 0x84, 0x04, 0x00, 0x10,
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_23, "\':\' or \'=\' expected, but got \'$1\'", 33);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_24, "the syntax is \'parameter: var T\', not \'var parameter: T\'", 56);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_25, "expected closing \')\'", 20);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_26, "->", 2);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_27, "expected \':\'", 12);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_28, "expected \'except\'", 17);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_29, "the \'asm\' statement takes a string literal", 42);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_30, "in", 2);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_31, "out", 3);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_32, "invalid indentation, maybe you forgot a \'=\' at $1 \?", 51);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_33, "pragma before generic parameter list is deprecated", 50);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_34, "pragma already present", 22);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_35, "*", 1);
STRING_LITERAL(TM__MW5RrD2zyVLHF67ojsDu8Q_36, "invalid indentation; an export marker \'*\' follows the declared identifier", 73);
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5218;
N_LIB_PRIVATE N_NIMCALL(void, getTok__parser_45)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	(*p).lineNumberPrevious = (*p).lex.Sup.lineNumber;
	(*p).lineStartPrevious = (*p).lex.Sup.lineStart;
	(*p).bufposPrevious = (*p).lex.Sup.bufpos;
	rawGetTok__lexer_1599((&(*p).lex), (&(*p).tok));
	(*p).hasProgress = NIM_TRUE;
}
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_125)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI32 fileIdx, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputStream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	initToken__lexer_248((&(*p).tok));
	openLexer__lexer_270((&(*p).lex), fileIdx, inputStream, cache, config);
	getTok__parser_45(p);
	(*p).firstTok = NIM_TRUE;
	unsureAsgnRef((void**) (&(*p).emptyNode), newNode__ast_3285(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
}
N_LIB_PRIVATE N_NIMCALL(void, openParser__parser_131)(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__msgs_376(config, filename);
	openParser__parser_125(p, T1_, inputStream, cache, config);
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__lexer_192)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	result = newLineInfo__msgs_381((*L).fileIdx, (*tok).line, (*tok).col);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, parLineInfo__parser_76)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	result = getLineInfo__lexer_192((&(*p).lex), (&(*p).tok));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeP__parser_54)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	result = NIM_NIL;
	T1_ = parLineInfo__parser_76(p);
	result = newNodeI__ast_3316(kind, T1_);
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_47)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg) {
	lexMessageTok__lexer_340((&(*p).lex), msg, (&(*p).tok), arg);
}
N_LIB_PRIVATE N_NIMCALL(void, rawSkipComment__parser_165)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node) {
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA3_;
		{
			NimStringDesc* rhs;
			NimStringDesc* T9_;
			if (!!((node == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA7_;
			rhs = comment__ast_993(node);
			rhs = resizeString(rhs, ((*p).tok.literal ? (*p).tok.literal->Sup.len : 0) + 0);
appendString(rhs, (*p).tok.literal);
			T9_ = NIM_NIL;
			T9_ = rhs;
			rhs = NIM_NIL;
			commenteq___ast_1361(node, T9_);
		}
		goto LA5_;
		LA7_: ;
		{
			parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 2), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_3));
		}
		LA5_: ;
		getTok__parser_45(p);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, skipComment__parser_51)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node) {
	{
		if (!((*p).tok.indent < ((NI) 0))) goto LA3_;
		rawSkipComment__parser_165(p, node);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_147)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* arg) {
	lexMessageTok__lexer_340((&(*p).lex), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), (&(*p).tok), arg);
}
N_LIB_PRIVATE N_NIMCALL(void, skipInd__parser_81)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		{
			if (!!(((*p).currInd < (*p).tok.indent))) goto LA7_;
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, optInd__parser_85)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	skipComment__parser_51(p, n);
	skipInd__parser_81(p);
}
N_LIB_PRIVATE N_NIMCALL(void, getTokNoInd__parser_196)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	getTok__parser_45(p);
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
	}
	LA3_: ;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5309)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5271)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5314)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__system_5265((&gch__system_5218.zct), c);
}
static N_INLINE(void, decRef__system_5316)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5314(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__system_5271(src);
		incRef__system_5309(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__system_5271((*dest));
		decRef__system_5316(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNodeP__parser_69)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2), p);
	asgnRef((void**) (&(*result)._kind_5.ident), ident);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parMessage__parser_143)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NimStringDesc* msg, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = prettyTok__lexer_239(tok);
	T2_ = NIM_NIL;
	T2_ = nsuFormatSingleElem(msg, T1_);
	parMessage__parser_47(p, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T2_);
}
static N_INLINE(NI, len__ast_3151)(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__parser_78)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType) {
	{
		if (!((*p).tok.tokType == tokType)) goto LA3_;
		getTok__parser_45(p);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		T6_ = NIM_NIL;
		T7_ = NIM_NIL;
		T7_ = prettyTok__lexer_239((&(*p).tok));
		T6_ = rawNewString((reprEnum((NI)tokType, (&NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_)) ? reprEnum((NI)tokType, (&NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_))->Sup.len : 0) + (T7_ ? T7_->Sup.len : 0) + 25);
appendString(T6_, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_6));
appendString(T6_, reprEnum((NI)tokType, (&NTItoktype__5VVBIL7Ozj1cc9akK23jAGQ_)));
appendString(T6_, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_7));
appendString(T6_, T7_);
appendString(T6_, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_8));
		lexMessage__lexer_336((&(*p).lex), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSymbol__parser_95)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
	{
		result = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		getTok__parser_45(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__parser_69((*p).tok.ident, (&(*p)));
			getTok__parser_45(p);
		}
		goto LA3_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44));
			if (!(T10_)) goto LA11_;
			T10_ = (mode == ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 1));
			LA11_: ;
			if (!T10_) goto LA12_;
			result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
			getTok__parser_45(p);
		}
		goto LA3_;
		LA12_: ;
		{
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
			result = (*p).emptyNode;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
	{
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53), (&(*p)));
		getTok__parser_45(p);
		{
			while (1) {
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
				{
					{
						NI T21_;
						T21_ = (NI)0;
						T21_ = len__ast_3151(result);
						if (!(T21_ == ((NI) 0))) goto LA22_;
						parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					}
					LA22_: ;
					goto LA16;
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101):
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lineinfo;
					NimStringDesc* accm;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node;
					lineinfo = parLineInfo__parser_76((&(*p)));
					accm = ((NimStringDesc*) NIM_NIL);
					{
						while (1) {
							NimStringDesc* T27_;
							if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106) || (*p).tok.tokType >= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90) && (*p).tok.tokType <= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 101))) goto LA26;
							T27_ = NIM_NIL;
							T27_ = dollar___lexer_230((&(*p).tok));
							accm = resizeString(accm, (T27_ ? T27_->Sup.len : 0) + 0);
appendString(accm, T27_);
							getTok__parser_45(p);
						} LA26: ;
					}
					node = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2), lineinfo);
					asgnRef((void**) (&(*node)._kind_5.ident), getIdent__idents_143((*p).lex.cache, accm));
					add__ast_4772(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) 89):
				{
					NimStringDesc* T29_;
					tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T30_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
					T29_ = NIM_NIL;
					T29_ = dollar___lexer_230((&(*p).tok));
					T30_ = NIM_NIL;
					T30_ = getIdent__idents_143((*p).lex.cache, T29_);
					T31_ = NIM_NIL;
					T31_ = newIdentNodeP__parser_69(T30_, (&(*p)));
					add__ast_4772(result, T31_);
					getTok__parser_45(p);
				}
				break;
				default:
				{
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					goto LA16;
				}
				break;
				}
			}
		} LA16: ;
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112));
	}
	break;
	default:
	{
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
		result = (*p).emptyNode;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, colcom__parser_299)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
	skipComment__parser_51(p, n);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExprStart__parser_1139)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110):
	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) 90):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94):
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
	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__parser_378)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	getTok__parser_45(p);
	optInd__parser_85(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__parser_256(p);
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		} LA2: ;
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(void, flexComment__parser_183)(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__parser_165(p, node);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, optPar__parser_83)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		{
			if (!((*p).tok.indent < (*p).currInd)) goto LA7_;
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, colonOrEquals__parser_342)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), (&(*p)));
		getTok__parser_45(p);
		add__ast_4772(result, a);
		T5_ = NIM_NIL;
		T5_ = parseExpr__parser_256(p);
		add__ast_4772(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA7_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33), (&(*p)));
		getTok__parser_45(p);
		add__ast_4772(result, a);
		T9_ = NIM_NIL;
		T9_ = parseExpr__parser_256(p);
		add__ast_4772(result, T9_);
	}
	goto LA1_;
	LA7_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExpr__parser_370)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	a = parseExpr__parser_256(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA3_;
		result = postExprBlocks__parser_107(p, a);
	}
	goto LA1_;
	LA3_: ;
	{
		result = colonOrEquals__parser_342(p, a);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, exprColonEqExprListAux__parser_399)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	getTok__parser_45(p);
	flexComment__parser_183(p, result);
	optPar__parser_83(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__parser_370(p);
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA7_;
				goto LA1;
			}
			goto LA5_;
			LA7_: ;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37))) goto LA10_;
				transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
			}
			goto LA5_;
			LA10_: ;
			LA5_: ;
			getTok__parser_45(p);
			skipComment__parser_51(p, a);
		} LA2: ;
	} LA1: ;
	optPar__parser_83(p);
	eat__parser_78(p, endTok);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotExpr__parser_436)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	info = parLineInfo__parser_76((&(*p)));
	getTok__parser_45(p);
	result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), info);
	optInd__parser_85(p, result);
	add__ast_4772(result, a);
	T1_ = NIM_NIL;
	T1_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 2));
	add__ast_4772(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) 109));
		if (!(T4_)) goto LA5_;
		T4_ = ((*p).tok.strongSpaceA <= ((NI8) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		T8_ = parLineInfo__parser_76((&(*p)));
		x = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T8_);
		add__ast_4772(x, (*result)._kind_6.sons->data[((NI) 1)]);
		exprList__parser_378(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93), x);
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
		T9_ = parLineInfo__parser_76((&(*p)));
		y = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T9_);
		add__ast_4772(y, x);
		add__ast_4772(y, (*result)._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
			if (!(T12_)) goto LA13_;
			T12_ = ((*p).tok.strongSpaceA <= ((NI8) 0));
			LA13_: ;
			if (!T12_) goto LA14_;
			exprColonEqExprListAux__parser_399(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91), y);
		}
		LA14_: ;
		result = y;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identVis__parser_925)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31), (&(*p)));
		T5_ = NIM_NIL;
		T5_ = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		add__ast_4772(result, T5_);
		add__ast_4772(result, a);
		getTok__parser_45(p);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107));
		if (!(T7_)) goto LA8_;
		T7_ = allowDot;
		LA8_: ;
		if (!T7_) goto LA9_;
		result = dotExpr__parser_436(p, a);
	}
	goto LA1_;
	LA9_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePragma__parser_105)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90), (&(*p)));
	(*p).inPragma += ((NI) 1);
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 99) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA2;
			(*p).hasProgress = NIM_FALSE;
			a = exprColonEqExpr__parser_370(p);
			{
				if (!!((*p).hasProgress)) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			add__ast_4772(result, a);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA9_;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			}
			LA9_: ;
		} LA2: ;
	} LA1: ;
	optPar__parser_83(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 99) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95))) goto LA13_;
		getTok__parser_45(p);
	}
	goto LA11_;
	LA13_: ;
	{
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_11));
	}
	LA11_: ;
	(*p).inPragma -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identWithPragma__parser_946)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL allowDot) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	a = identVis__parser_925(p, allowDot);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
		add__ast_4772(result, a);
		T5_ = NIM_NIL;
		T5_ = parsePragma__parser_105(p);
		add__ast_4772(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOperator__parser_43)(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__parser_265)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110));
	if (!(T1_)) goto LA2_;
	T1_ = ((NU8)((*(*tok).ident).s->data[((NI) 0)]) == (NU8)(64));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandParam__parser_748)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL* isFirstParam, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 1))) goto LA3_;
		result = simpleExpr__parser_582(p, mode);
	}
	goto LA1_;
	LA3_: ;
	{
		result = parseExpr__parser_256(p);
	}
	LA1_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA8_;
		result = postExprBlocks__parser_107(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) 106));
		if (!(T11_)) goto LA12_;
		T11_ = !((*isFirstParam));
		LA12_: ;
		if (!T11_) goto LA13_;
		lhs = result;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33), (&(*p)));
		getTok__parser_45(p);
		add__ast_4772(result, lhs);
		T15_ = NIM_NIL;
		T15_ = parseExpr__parser_256(p);
		add__ast_4772(result, T15_);
	}
	goto LA6_;
	LA13_: ;
	LA6_: ;
	(*isFirstParam) = NIM_FALSE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commandExpr__parser_775)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL isFirstParam;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26), (&(*p)));
	add__ast_4772(result, r);
	isFirstParam = NIM_TRUE;
	(*p).hasProgress = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = commandParam__parser_748(p, (&isFirstParam), mode);
	add__ast_4772(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, namedParams__parser_737)(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 = NIM_NIL;
	a = callee;
	result = newNodeP__parser_54(kind, (&(*p)));
	add__ast_4772(result, a);
	exprColonEqExprListAux__parser_399(p, endTok, result);
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__system_5271(p);
	decRef__system_5316(T1_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNodeP__parser_65)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NimStringDesc* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, p);
	T1_ = NIM_NIL;
	T1_ = (*result)._kind_3.strVal; (*result)._kind_3.strVal = copyStringRC1(strVal);
	if (T1_) nimGCunrefNoCycle(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGStrLit__parser_560)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 86):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28), (&(*p)));
		add__ast_4772(result, a);
		T2_ = NIM_NIL;
		T2_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
		add__ast_4772(result, T2_);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 87):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28), (&(*p)));
		add__ast_4772(result, a);
		T4_ = NIM_NIL;
		T4_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
		add__ast_4772(result, T4_);
		getTok__parser_45(p);
	}
	break;
	default:
	{
		result = a;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDotLike__parser_789)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110));
	if (!(T3_)) goto LA4_;
	T3_ = (((NI) 1) < ((*(*tok).ident).s ? (*(*tok).ident).s->Sup.len : 0));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = ((NU8)((*(*tok).ident).s->data[((NI) 0)]) == (NU8)(46));
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA6_;
	T1_ = !(((NU8)((*(*tok).ident).s->data[((NI) 1)]) == (NU8)(46)));
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotLikeExpr__parser_473)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opNode;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	info = parLineInfo__parser_76((&(*p)));
	result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), info);
	optInd__parser_85(p, result);
	opNode = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
	getTok__parser_45(p);
	add__ast_4772(result, opNode);
	add__ast_4772(result, a);
	T1_ = NIM_NIL;
	T1_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 2));
	add__ast_4772(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnary__parser_279)(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) 110) || (*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108));
	if (!(T2_)) goto LA3_;
	T2_ = ((*tok).strongSpaceB == ((NI8) 0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((NI8) 0) < (*tok).strongSpaceA);
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primarySuffix__parser_796)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, NI baseIndent, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = r;
	{
		while (1) {
			NIM_BOOL T3_;
			NIM_BOOL T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((*p).tok.indent < ((NI) 0));
			if (T3_) goto LA4_;
			T5_ = (NIM_BOOL)0;
			T5_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107));
			if (!(T5_)) goto LA6_;
			T5_ = (baseIndent <= (*p).tok.indent);
			LA6_: ;
			T3_ = T5_;
			LA4_: ;
			if (!T3_) goto LA2;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA10_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
						if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA14_;
						result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26), (&(*p)));
						add__ast_4772(result, r);
						T16_ = NIM_NIL;
						T16_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
						add__ast_4772(result, T16_);
					}
					goto LA12_;
					LA14_: ;
					{
						result = commandExpr__parser_775(p, result, mode);
					}
					LA12_: ;
					goto LA1;
				}
				LA10_: ;
				result = namedParams__parser_737(p, result, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
				{
					NIM_BOOL T20_;
					NI T21_;
					T20_ = (NIM_BOOL)0;
					T21_ = (NI)0;
					T21_ = len__ast_3151(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__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 38));
				}
				LA23_: ;
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107):
			{
				result = dotExpr__parser_436(p, result);
				result = parseGStrLit__parser_560(p, result);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA29_;
					result = commandExpr__parser_775(p, result, mode);
					goto LA1;
				}
				LA29_: ;
				result = namedParams__parser_737(p, result, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94):
			{
				{
					if (!(((NI8) 0) < (*p).tok.strongSpaceA)) goto LA34_;
					result = commandExpr__parser_775(p, result, mode);
					goto LA1;
				}
				LA34_: ;
				result = namedParams__parser_737(p, result, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95));
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69) ... ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 11):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108):
			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 isDotLike2;
				isDotLike2 = isDotLike__parser_789((&(*p).tok));
				{
					NIM_BOOL T39_;
					T39_ = (NIM_BOOL)0;
					T39_ = isDotLike2;
					if (!(T39_)) goto LA40_;
					T39_ = isDefined__options_2284((*p).lex.config, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_13));
					LA40_: ;
					if (!T39_) goto LA41_;
					result = dotLikeExpr__parser_473(p, result);
					result = parseGStrLit__parser_560(p, result);
				}
				goto LA37_;
				LA41_: ;
				{
					{
						if (!isDotLike2) goto LA46_;
						parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 23), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_14));
					}
					LA46_: ;
					{
						NIM_BOOL T50_;
						NIM_BOOL T52_;
						T50_ = (NIM_BOOL)0;
						T50_ = ((*p).inPragma == ((NI) 0));
						if (!(T50_)) goto LA51_;
						T52_ = (NIM_BOOL)0;
						T52_ = isUnary__parser_279((&(*p).tok));
						if (T52_) goto LA53_;
						T52_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 108)));
						LA53_: ;
						T50_ = T52_;
						LA51_: ;
						if (!T50_) goto LA54_;
						result = commandExpr__parser_775(p, result, mode);
					}
					LA54_: ;
					goto LA1;
				}
				LA37_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		} LA2: ;
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTuple__parser_1029)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL indentAllowed) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134), (&(*p)));
	getTok__parser_45(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92))) goto LA3_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112))) goto LA6;
				a = parseIdentColonEquals__parser_971(p, 0);
				add__ast_4772(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103)))) goto LA9_;
					goto LA5;
				}
				LA9_: ;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			} LA6: ;
		} LA5: ;
		optPar__parser_83(p);
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!indentAllowed) goto LA12_;
		skipComment__parser_51(p, result);
		{
			NI oldIndX60gensym65_;
			if (!((*p).currInd < (*p).tok.indent)) goto LA16_;
			oldIndX60gensym65_ = (*p).currInd;
			(*p).currInd = (*p).tok.indent;
			rawSkipComment__parser_165(p, result);
			{
				while (1) {
					switch ((*p).tok.tokType) {
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
						a_2 = parseIdentColonEquals__parser_971(p, 0);
						{
							NIM_BOOL T23_;
							T23_ = (NIM_BOOL)0;
							T23_ = ((*p).tok.indent < ((NI) 0));
							if (T23_) goto LA24_;
							T23_ = ((*p).currInd <= (*p).tok.indent);
							LA24_: ;
							if (!T23_) goto LA25_;
							rawSkipComment__parser_165(p, a_2);
						}
						LA25_: ;
						add__ast_4772(result, a_2);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1):
					{
						goto LA18;
					}
					break;
					default:
					{
						parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
						goto LA18;
					}
					break;
					}
					{
						if (!!(((*p).tok.indent == (*p).currInd))) goto LA31_;
						goto LA18;
					}
					LA31_: ;
				}
			} LA18: ;
			(*p).currInd = oldIndX60gensym65_;
		}
		LA16_: ;
	}
	goto LA1_;
	LA12_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA34_;
		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_15));
	}
	goto LA1_;
	LA34_: ;
	{
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135), (&(*p)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optPragmas__parser_1093)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*p).tok.indent < ((NI) 0));
		if (T5_) goto LA6_;
		T5_ = ((*p).currInd < (*p).tok.indent);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = parsePragma__parser_105(p);
	}
	goto LA1_;
	LA7_: ;
	{
		result = (*p).emptyNode;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseProcExpr__parser_1110)(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 = NIM_NIL;
	info = parLineInfo__parser_76((&(*p)));
	getTok__parser_45(p);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
	if (!(T1_)) goto LA2_;
	T1_ = ((*p).tok.indent < ((NI) 0));
	LA2_: ;
	hasSignature = T1_;
	params = parseParamList__parser_262(p, NIM_TRUE);
	pragmas = optPragmas__parser_1093(p);
	{
		NIM_BOOL T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106));
		if (!(T5_)) goto LA6_;
		T5_ = isExpr;
		LA6_: ;
		if (!T5_) goto LA7_;
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		T9_ = NIM_NIL;
		T9_ = parseStmt__parser_258(p);
		result = newProcNode__ast_3796(kind, info, T9_, params, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, pragmas, (*p).emptyNode);
	}
	goto LA3_;
	LA7_: ;
	{
		result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147), info);
		{
			if (!hasSignature) goto LA13_;
			add__ast_4772(result, params);
			{
				if (!(kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159))) goto LA17_;
				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_16));
			}
			LA17_: ;
			add__ast_4772(result, pragmas);
		}
		LA13_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseEnum__parser_1228)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), (&(*p)));
	getTok__parser_45(p);
	add__ast_4772(result, (*p).emptyNode);
	optInd__parser_85(p, result);
	flexComment__parser_183(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* symPragma;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragma;
			a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA5_;
				goto BeforeRet_;
			}
			LA5_: ;
			symPragma = a;
			pragma = NIM_NIL;
			{
				NIM_BOOL T9_;
				NIM_BOOL T10_;
				T9_ = (NIM_BOOL)0;
				T10_ = (NIM_BOOL)0;
				T10_ = ((*p).tok.indent < ((NI) 0));
				if (T10_) goto LA11_;
				T10_ = ((*p).currInd <= (*p).tok.indent);
				LA11_: ;
				T9_ = T10_;
				if (!(T9_)) goto LA12_;
				T9_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98));
				LA12_: ;
				if (!T9_) goto LA13_;
				pragma = optPragmas__parser_1093(p);
				symPragma = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
				add__ast_4772(symPragma, a);
				add__ast_4772(symPragma, pragma);
			}
			LA13_: ;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (((NI) 0) <= (*p).tok.indent);
				if (!(T17_)) goto LA18_;
				T17_ = ((*p).tok.indent <= (*p).currInd);
				LA18_: ;
				if (!T17_) goto LA19_;
				add__ast_4772(result, symPragma);
				goto LA1;
			}
			LA19_: ;
			{
				NIM_BOOL T23_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
				T23_ = (NIM_BOOL)0;
				T23_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106));
				if (!(T23_)) goto LA24_;
				T23_ = ((*p).tok.indent < ((NI) 0));
				LA24_: ;
				if (!T23_) goto LA25_;
				getTok__parser_45(p);
				optInd__parser_85(p, symPragma);
				b = symPragma;
				symPragma = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151), (&(*p)));
				add__ast_4772(symPragma, b);
				T27_ = NIM_NIL;
				T27_ = parseExpr__parser_256(p);
				add__ast_4772(symPragma, T27_);
				{
					NIM_BOOL T30_;
					T30_ = (NIM_BOOL)0;
					T30_ = ((*p).tok.indent < ((NI) 0));
					if (T30_) goto LA31_;
					T30_ = ((*p).currInd <= (*p).tok.indent);
					LA31_: ;
					if (!T30_) goto LA32_;
					rawSkipComment__parser_165(p, symPragma);
				}
				LA32_: ;
			}
			LA25_: ;
			{
				NIM_BOOL T36_;
				T36_ = (NIM_BOOL)0;
				T36_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102));
				if (!(T36_)) goto LA37_;
				T36_ = ((*p).tok.indent < ((NI) 0));
				LA37_: ;
				if (!T36_) goto LA38_;
				getTok__parser_45(p);
				rawSkipComment__parser_165(p, symPragma);
			}
			goto LA34_;
			LA38_: ;
			{
				{
					NIM_BOOL T43_;
					T43_ = (NIM_BOOL)0;
					T43_ = ((*p).tok.indent < ((NI) 0));
					if (T43_) goto LA44_;
					T43_ = ((*p).currInd <= (*p).tok.indent);
					LA44_: ;
					if (!T43_) goto LA45_;
					rawSkipComment__parser_165(p, symPragma);
				}
				LA45_: ;
			}
			LA34_: ;
			add__ast_4772(result, symPragma);
			{
				NIM_BOOL T49_;
				NIM_BOOL T50_;
				T49_ = (NIM_BOOL)0;
				T50_ = (NIM_BOOL)0;
				T50_ = (((NI) 0) <= (*p).tok.indent);
				if (!(T50_)) goto LA51_;
				T50_ = ((*p).tok.indent <= (*p).currInd);
				LA51_: ;
				T49_ = T50_;
				if (T49_) goto LA52_;
				T49_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1));
				LA52_: ;
				if (!T49_) goto LA53_;
				goto LA1;
			}
			LA53_: ;
		}
	} LA1: ;
	{
		NI T57_;
		T57_ = (NI)0;
		T57_ = len__ast_3151(result);
		if (!(T57_ <= ((NI) 1))) goto LA58_;
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
	}
	LA58_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, validInd__parser_162)(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__parser_2006)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((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__parser_45(p);
			branch = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
			optInd__parser_85(p, branch);
			T3_ = NIM_NIL;
			T3_ = parseExpr__parser_256(p);
			add__ast_4772(branch, T3_);
			colcom__parser_299(p, branch);
			T4_ = NIM_NIL;
			T4_ = parseObjectPart__parser_2004(p);
			add__ast_4772(branch, T4_);
			flexComment__parser_183(p, branch);
			add__ast_4772(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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		colcom__parser_299(p, branch_2);
		T15_ = NIM_NIL;
		T15_ = parseObjectPart__parser_2004(p);
		add__ast_4772(branch_2, T15_);
		flexComment__parser_183(p, branch_2);
		add__ast_4772(result, branch_2);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObjectCase__parser_2039)(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 = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139), (&(*p)));
	getTokNoInd__parser_196(p);
	a = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (&(*p)));
	T1_ = NIM_NIL;
	T1_ = identWithPragma__parser_946(p, NIM_FALSE);
	add__ast_4772(a, T1_);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
	T2_ = NIM_NIL;
	T2_ = parseTypeDesc__parser_260(p);
	add__ast_4772(a, T2_);
	add__ast_4772(a, (*p).emptyNode);
	add__ast_4772(result, a);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA5_;
		getTok__parser_45(p);
	}
	LA5_: ;
	flexComment__parser_183(p, result);
	wasIndented = NIM_FALSE;
	oldInd = (*p).currInd;
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA9_;
		(*p).currInd = (*p).tok.indent;
		wasIndented = NIM_TRUE;
	}
	LA9_: ;
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fields;
			if (!((*p).tok.indent == (*p).currInd)) goto LA12;
			b = NIM_NIL;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85), (&(*p)));
				exprList__parser_378(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104), b);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
				getTok__parser_45(p);
			}
			break;
			default:
			{
				goto LA11;
			}
			break;
			}
			colcom__parser_299(p, b);
			fields = parseObjectPart__parser_2004(p);
			{
				if (!((*fields).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA18_;
				parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
				fields = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
			}
			LA18_: ;
			add__ast_4772(b, fields);
			add__ast_4772(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__parser_2004)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NI oldIndX60gensym145_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (&(*p)));
		oldIndX60gensym145_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		rawSkipComment__parser_165(p, result);
		{
			while (1) {
				if (!((*p).tok.indent == (*p).currInd)) goto LA6;
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 17):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
					T8_ = NIM_NIL;
					T8_ = parseObjectPart__parser_2004(p);
					add__ast_4772(result, T8_);
				}
				break;
				default:
				{
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					goto LA5;
				}
				break;
				}
			} LA6: ;
		} LA5: ;
		(*p).currInd = oldIndX60gensym145_;
	}
	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__parser_2006(p);
		}
		break;
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
		{
			result = parseObjectCase__parser_2039(p);
		}
		break;
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
		{
			result = parseIdentColonEquals__parser_971(p, 1);
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*p).tok.indent < ((NI) 0));
				if (T20_) goto LA21_;
				T20_ = ((*p).currInd <= (*p).tok.indent);
				LA21_: ;
				if (!T20_) goto LA22_;
				rawSkipComment__parser_165(p, result);
			}
			LA22_: ;
		}
		break;
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
		case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 17):
		{
			result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
			getTok__parser_45(p);
		}
		break;
		default:
		{
			result = (*p).emptyNode;
		}
		break;
		}
	}
	goto LA1_;
	LA13_: ;
	{
		result = (*p).emptyNode;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseObject__parser_1230)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), (&(*p)));
	getTok__parser_45(p);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98));
		if (!(T3_)) goto LA4_;
		T3_ = validInd__parser_162(p);
		LA4_: ;
		if (!T3_) goto LA5_;
		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 21), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_17));
		T7_ = NIM_NIL;
		T7_ = parsePragma__parser_105(p);
		add__ast_4772(result, T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		add__ast_4772(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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 77), (&(*p)));
		getTok__parser_45(p);
		T15_ = NIM_NIL;
		T15_ = parseTypeDesc__parser_260(p);
		add__ast_4772(a, T15_);
		add__ast_4772(result, a);
	}
	goto LA9_;
	LA13_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA9_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA19_;
		skipComment__parser_51(p, result);
	}
	LA19_: ;
	{
		if (!!(((*p).currInd < (*p).tok.indent))) goto LA23_;
		add__ast_4772(result, (*p).emptyNode);
	}
	goto LA21_;
	LA23_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
		T26_ = NIM_NIL;
		T26_ = parseObjectPart__parser_2004(p);
		add__ast_4772(result, T26_);
	}
	LA21_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClassParam__parser_2136)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw modifier;
	result = NIM_NIL;
	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__parser_54(modifier, (&(*p)));
		getTok__parser_45(p);
		T11_ = NIM_NIL;
		T11_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
		add__ast_4772(result, T11_);
	}
	goto LA7_;
	LA9_: ;
	{
		result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	}
	LA7_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5201)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeClass__parser_1232)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 136), (&(*p)));
	getTok__parser_45(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA3_;
		skipComment__parser_51(p, result);
	}
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* args;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		if (!((*p).tok.indent < ((NI) 0))) goto LA7_;
		args = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (&(*p)));
		add__ast_4772(result, args);
		T9_ = NIM_NIL;
		T9_ = parseTypeClassParam__parser_2136(p);
		add__ast_4772(args, T9_);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA11;
				getTok__parser_45(p);
				T12_ = NIM_NIL;
				T12_ = parseTypeClassParam__parser_2136(p);
				add__ast_4772(args, T12_);
			} LA11: ;
		}
	}
	goto LA5_;
	LA7_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA5_: ;
	{
		NIM_BOOL T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98));
		if (!(T16_)) goto LA17_;
		T16_ = validInd__parser_162(p);
		LA17_: ;
		if (!T16_) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = parsePragma__parser_105(p);
		add__ast_4772(result, T20_);
	}
	goto LA14_;
	LA18_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA14_: ;
	{
		NIM_BOOL T24_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48));
		if (!(T24_)) goto LA25_;
		T24_ = ((*p).tok.indent < ((NI) 0));
		LA25_: ;
		if (!T24_) goto LA26_;
		a = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 77), (&(*p)));
		getTok__parser_45(p);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
				T30_ = NIM_NIL;
				T30_ = parseTypeDesc__parser_260(p);
				add__ast_4772(a, T30_);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA33_;
					goto LA28;
				}
				LA33_: ;
				getTok__parser_45(p);
			}
		} LA28: ;
		add__ast_4772(result, a);
	}
	goto LA22_;
	LA26_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA22_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA38_;
		skipComment__parser_51(p, result);
	}
	LA38_: ;
	{
		if (!!(((*p).currInd < (*p).tok.indent))) goto LA42_;
		{
			NIM_BOOL T46_;
			T46_ = (NIM_BOOL)0;
			T46_ = isNewStyleConcept__ast_5201(result);
			if (!T46_) goto LA47_;
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_18), (&(*p).tok));
		}
		LA47_: ;
		add__ast_4772(result, (*p).emptyNode);
	}
	goto LA40_;
	LA42_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
		T50_ = NIM_NIL;
		T50_ = parseStmt__parser_258(p);
		add__ast_4772(result, T50_);
	}
	LA40_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parseSymbolList__parser_1142)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
			s = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 1));
			{
				if (!((*s).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			add__ast_4772(result, s);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA9_;
				goto LA1;
			}
			LA9_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, s);
		}
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDescKAux__parser_1158)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*p).tok.indent == ((NI) -1)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*p).tok.indent <= (*p).currInd);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	optInd__parser_85(p, result);
	{
		NIM_BOOL T9_;
		NIM_BOOL T10_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NIM_BOOL)0;
		T10_ = isOperator__parser_43((&(*p).tok));
		T9_ = !(T10_);
		if (!(T9_)) goto LA11_;
		T9_ = isExprStart__parser_1139((&(*p)));
		LA11_: ;
		if (!T9_) goto LA12_;
		T14_ = NIM_NIL;
		T14_ = primary__parser_114(p, mode);
		add__ast_4772(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_20))) goto LA23_;
			nodeKind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 130);
		}
		goto LA21_;
		LA23_: ;
		{
			if (!eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_21))) goto LA26_;
			nodeKind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 131);
		}
		goto LA21_;
		LA26_: ;
		{
			goto BeforeRet_;
		}
		LA21_: ;
		getTok__parser_45(p);
		list = newNodeP__parser_54(nodeKind, (&(*p)));
		add__ast_4772(result, list);
		parseSymbolList__parser_1142(p, list);
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNodeP__parser_57)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, p);
	(*result)._kind_1.intVal = intVal;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setBaseFlags__parser_92)(tyObject_TNode__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__parser_61)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal, tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, p);
	(*result)._kind_2.floatVal = floatVal;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, exprColonEqExprList__parser_431)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ endTok) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	exprColonEqExprListAux__parser_399(p, endTok, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfOrWhenExpr__parser_585)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			getTok__parser_45(p);
			branch = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49), (&(*p)));
			optInd__parser_85(p, branch);
			T3_ = NIM_NIL;
			T3_ = parseExpr__parser_256(p);
			add__ast_4772(branch, T3_);
			colcom__parser_299(p, branch);
			T4_ = NIM_NIL;
			T4_ = parseStmt__parser_258(p);
			add__ast_4772(branch, T4_);
			skipComment__parser_51(p, branch);
			add__ast_4772(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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50), (&(*p)));
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		colcom__parser_299(p, branch_2);
		T13_ = NIM_NIL;
		T13_ = parseStmt__parser_258(p);
		add__ast_4772(branch_2, T13_);
		add__ast_4772(result, branch_2);
	}
	LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semiStmtList__parser_588)(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;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
	{
		a = parseIfOrWhenExpr__parser_585(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
	{
		a = parseIfOrWhenExpr__parser_585(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93));
	}
	break;
	default:
	{
		a = complexOrSimpleStmt__parser_580(p);
	}
	break;
	}
	add__ast_4772(result, a);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
			if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA5;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA8_;
				getTok__parser_45(p);
			}
			LA8_: ;
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91))) goto LA12_;
				goto LA4;
			}
			goto LA10_;
			LA12_: ;
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = ((*p).tok.indent == (*p).currInd);
				if (T15_) goto LA16_;
				T15_ = ((*p).currInd < (*p).tok.indent);
				LA16_: ;
				if (!!(T15_)) goto LA17_;
				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
			}
			goto LA10_;
			LA17_: ;
			LA10_: ;
			a_2 = complexOrSimpleStmt__parser_580(p);
			{
				if (!((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA21_;
				parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				getTok__parser_45(p);
			}
			goto LA19_;
			LA21_: ;
			{
				add__ast_4772(result, a_2);
			}
			LA19_: ;
		} LA5: ;
	} LA4: ;
	(*p).currInd = oldIndX60gensym32_;
	(*p).inSemiStmtList -= ((NI) 1);
	transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 126));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmtPragma__parser_103)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = parsePragma__parser_105(p);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
		if (!(T3_)) goto LA4_;
		T3_ = ((*p).tok.indent < ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		a = result;
		result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91), (*a).info);
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		add__ast_4772(result, a);
		T7_ = NIM_NIL;
		T7_ = parseStmt__parser_258(p);
		add__ast_4772(result, T7_);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePar__parser_627)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	flexComment__parser_183(p, result);
	{
		if (!((TM__MW5RrD2zyVLHF67ojsDu8Q_22[(NU)((*p).tok.tokType)>>3] &(1U<<((NU)((*p).tok.tokType)&7U)))!=0)) goto LA3_;
		semiStmtList__parser_588(p, result);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA6_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		semiStmtList__parser_588(p, result);
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98))) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = parseStmtPragma__parser_103(p);
		add__ast_4772(result, T11_);
	}
	goto LA1_;
	LA9_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91))) goto LA13_;
		transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
	}
	goto LA1_;
	LA13_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = simpleExpr__parser_582(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA18_;
			result = postExprBlocks__parser_107(p, a);
		}
		goto LA16_;
		LA18_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA21_;
			asgn = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (&(*p)));
			getTok__parser_45(p);
			optInd__parser_85(p, result);
			b = parseExpr__parser_256(p);
			add__ast_4772(asgn, a);
			add__ast_4772(asgn, b);
			add__ast_4772(result, asgn);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA25_;
				semiStmtList__parser_588(p, result);
			}
			LA25_: ;
		}
		goto LA16_;
		LA21_: ;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA28_;
			add__ast_4772(result, a);
			semiStmtList__parser_588(p, result);
		}
		goto LA16_;
		LA28_: ;
		{
			a = colonOrEquals__parser_342(p, a);
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA33_;
				transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
			}
			LA33_: ;
			add__ast_4772(result, a);
			{
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA37_;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
				transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
				{
					while (1) {
						NIM_BOOL T41_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
						T41_ = (NIM_BOOL)0;
						T41_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91)));
						if (!(T41_)) goto LA42_;
						T41_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)));
						LA42_: ;
						if (!T41_) goto LA40;
						a_2 = exprColonEqExpr__parser_370(p);
						add__ast_4772(result, a_2);
						{
							if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA45_;
							goto LA39;
						}
						LA45_: ;
						getTok__parser_45(p);
						skipComment__parser_51(p, a_2);
					} LA40: ;
				} LA39: ;
			}
			LA37_: ;
		}
		LA16_: ;
	}
	LA1_: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setOrTableConstr__parser_498)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA3_;
		getTok__parser_45(p);
		transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 54));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA7;
				a = exprColonEqExpr__parser_370(p);
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA10_;
					transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 54));
				}
				LA10_: ;
				add__ast_4772(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA14_;
					goto LA6;
				}
				LA14_: ;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			} LA7: ;
		} LA6: ;
	}
	LA1_: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCast__parser_522)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61), (&(*p)));
	getTok__parser_45(p);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92))) goto LA3_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T5_ = NIM_NIL;
		T5_ = parseTypeDesc__parser_260(p);
		add__ast_4772(result, T5_);
		optPar__parser_83(p);
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
		optInd__parser_85(p, result);
		T6_ = NIM_NIL;
		T6_ = parseExpr__parser_256(p);
		add__ast_4772(result, T6_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		add__ast_4772(result, (*p).emptyNode);
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
		optInd__parser_85(p, result);
		T8_ = NIM_NIL;
		T8_ = exprColonEqExpr__parser_370(p);
		add__ast_4772(result, T8_);
	}
	LA1_: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, identOrLiteral__parser_714)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	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__parser_69((*p).tok.ident, (&(*p)));
		getTok__parser_45(p);
		result = parseGStrLit__parser_560(p, result);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
	{
		result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 69):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 70):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 7), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 71):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 8), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 72):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 9), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 73):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 74):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 75):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 12), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 76):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 13), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 77):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 14), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 78):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15), (*p).tok.iNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 79):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 80):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 17), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 81):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 82):
	{
		result = newFloatNodeP__parser_61(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19), (*p).tok.fNumber, (&(*p)));
		setBaseFlags__parser_92(result, (*p).tok.base);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 83):
	{
		result = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*p).tok.literal, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 84):
	{
		result = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 85):
	{
		result = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 88):
	{
		result = newIntNodeP__parser_57(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5), ((NI64) (((NU8)((*p).tok.literal->data[((NI) 0)])))), (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89):
	{
		NI splitPos;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* str;
		NimStringDesc* T22_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callee;
		NimStringDesc* T23_;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T24_;
		splitPos = ((NI) ((*p).tok.iNumber));
		T22_ = NIM_NIL;
		T22_ = substr__system_7744((*p).tok.literal, ((NI) 0), (NI)(splitPos - ((NI) 1)));
		str = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), T22_, (&(*p)));
		T23_ = NIM_NIL;
		T23_ = substr__system_7756((*p).tok.literal, splitPos);
		T24_ = NIM_NIL;
		T24_ = getIdent__idents_143((*p).lex.cache, T23_);
		callee = newIdentNodeP__parser_69(T24_, (&(*p)));
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (&(*p)));
		add__ast_4772(result, str);
		add__ast_4772(result, callee);
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 44):
	{
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (&(*p)));
		getTok__parser_45(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90):
	{
		{
			if (!((6 &((NU8)1<<((NU)(mode)&7U)))!=0)) goto LA29_;
			result = exprColonEqExprList__parser_431(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
		}
		goto LA27_;
		LA29_: ;
		{
			result = parsePar__parser_627(p);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94):
	{
		result = setOrTableConstr__parser_498(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92):
	{
		result = exprColonEqExprList__parser_431(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 11):
	{
		result = parseCast__parser_522(p);
	}
	break;
	default:
	{
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
		getTok__parser_45(p);
		result = (*p).emptyNode;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, primary__parser_114)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL isSigil;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		T3_ = (NIM_BOOL)0;
		T3_ = isOperator__parser_43((&(*p).tok));
		if (!T3_) goto LA4_;
		isSigil = isSigilLike__parser_265((&(*p).tok));
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (&(*p)));
		a = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		add__ast_4772(result, a);
		getTok__parser_45(p);
		optInd__parser_85(p, a);
		{
			NI baseInd;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
			if (!isSigil) goto LA8_;
			baseInd = (*p).lex.currLineIndent;
			T10_ = NIM_NIL;
			T10_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 3));
			add__ast_4772(result, T10_);
			result = primarySuffix__parser_796(p, result, baseInd, mode);
		}
		goto LA6_;
		LA8_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			T12_ = NIM_NIL;
			T12_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
			add__ast_4772(result, T12_);
		}
		LA6_: ;
		goto BeforeRet_;
	}
	LA4_: ;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 61):
	{
		result = parseTuple__parser_1029(p, (mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2)));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
	{
		result = parseProcExpr__parser_1110(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 30):
	{
		result = parseProcExpr__parser_1110(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 38):
	{
		result = parseProcExpr__parser_1110(p, !(((6 &((NU8)1<<((NU)(mode)&7U)))!=0)), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51));
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51))) goto LA19_;
			transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 84));
		}
		goto LA17_;
		LA19_: ;
		{
			transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 148));
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 24):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA25_;
			result = parseEnum__parser_1228(p);
		}
		goto LA23_;
		LA25_: ;
		{
			result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), (&(*p)));
			getTok__parser_45(p);
		}
		LA23_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 47):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA31_;
			result = parseObject__parser_1230(p);
		}
		goto LA29_;
		LA31_: ;
		{
			result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133), (&(*p)));
			getTok__parser_45(p);
		}
		LA29_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 12):
	{
		{
			if (!(mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2))) goto LA37_;
			result = parseTypeClass__parser_1232(p);
		}
		goto LA35_;
		LA37_: ;
		{
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_19));
		}
		LA35_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 7):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55), (&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T41_ = NIM_NIL;
		T41_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		add__ast_4772(result, T41_);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
	{
		result = parseTypeDescKAux__parser_1158(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
	{
		result = parseTypeDescKAux__parser_1158(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 145), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 54):
	{
		result = parseTypeDescKAux__parser_1158(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 52):
	{
		result = parseTypeDescKAux__parser_1158(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142), mode);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 18):
	{
		result = parseTypeDescKAux__parser_1158(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146), mode);
	}
	break;
	default:
	{
		NI baseInd_2;
		baseInd_2 = (*p).lex.currLineIndent;
		result = identOrLiteral__parser_714(p, mode);
		{
			if (!!((mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 3)))) goto LA50_;
			result = primarySuffix__parser_796(p, result, baseInd_2, mode);
		}
		LA50_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, checkBinary__parser_286)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA3_;
		{
			NIM_BOOL T7_;
			NimStringDesc* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = (((NI8) 0) < (*p).tok.strongSpaceB);
			if (!(T7_)) goto LA8_;
			T7_ = ((*p).tok.strongSpaceA == ((NI8) 0));
			LA8_: ;
			if (!T7_) goto LA9_;
			T11_ = NIM_NIL;
			T11_ = prettyTok__lexer_239((&(*p).tok));
			parMessage__parser_47(p, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 55), T11_);
		}
		LA9_: ;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isRightAssociative__parser_272)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110));
	if (!(T1_)) goto LA2_;
	T1_ = ((NU8)((*(*tok).ident).s->data[((NI) 0)]) == (NU8)(94));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseOperators__parser_831)(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 = NIM_NIL;
	result = headNode;
	opPrec = getPrecedence__lexer_1385((&(*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__parser_279((&(*p).tok));
			T8_ = !(T12_);
			LA11_: ;
			if (!T8_) goto LA7;
			checkBinary__parser_286((&(*p)));
			T13_ = (NIM_BOOL)0;
			T13_ = isRightAssociative__parser_272((&(*p).tok));
			leftAssoc = !(T13_);
			a = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (&(*p)));
			opNode = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
			getTok__parser_45(p);
			flexComment__parser_183(p, a);
			optPar__parser_83(p);
			b = simpleExprAux__parser_117(p, (NI)(opPrec + leftAssoc), modeB);
			add__ast_4772(a, opNode);
			add__ast_4772(a, result);
			add__ast_4772(a, b);
			result = a;
			opPrec = getPrecedence__lexer_1385((&(*p).tok));
		} LA7: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExprAux__parser_117)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NI limit, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = primary__parser_114(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) 98));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = ((*p).tok.indent < ((NI) 0));
		if (T6_) goto LA7_;
		T6_ = ((*p).currInd < (*p).tok.indent);
		LA7_: ;
		T4_ = T6_;
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T3_ = (mode == ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		LA8_: ;
		if (!T3_) goto LA9_;
		pragmaExp = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
		add__ast_4772(pragmaExp, result);
		T11_ = NIM_NIL;
		T11_ = parsePragma__parser_105(p);
		add__ast_4772(pragmaExp, T11_);
		result = pragmaExp;
	}
	LA9_: ;
	result = parseOperators__parser_831(p, result, limit, mode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleExpr__parser_582)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = simpleExprAux__parser_117(p, ((NI) -1), mode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, binaryNot__parser_1294)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notOpr;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 45))) goto LA3_;
		notOpr = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, notOpr);
		b = parseExpr__parser_256(p);
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (&(*p)));
		add__ast_4772(result, notOpr);
		add__ast_4772(result, a);
		add__ast_4772(result, b);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDesc__parser_260)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = simpleExpr__parser_582(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 1));
	result = binaryNot__parser_1294(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIdentColonEquals__parser_971)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tySet_tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = NIM_NIL;
	a = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (&(*p)));
	{
		while (1) {
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
			{
				{
					if (!((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA) 0))&7U)))!=0)) goto LA6_;
					a = identWithPragma__parser_946(p, ((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA) 2))&7U)))!=0));
				}
				goto LA4_;
				LA6_: ;
				{
					a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
				}
				LA4_: ;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA11_;
					goto BeforeRet_;
				}
				LA11_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA16_;
				goto LA1;
			}
			LA16_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA20_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T22_ = NIM_NIL;
		T22_ = parseTypeDesc__parser_260(p);
		add__ast_4772(result, T22_);
	}
	goto LA18_;
	LA20_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
		T24_ = NIM_NIL;
		T24_ = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (&(*p)));
		add__ast_4772(result, T24_);
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106)));
			if (!(T27_)) goto LA28_;
			T27_ = !(((flags &((NU8)1<<((NU)(((tyEnum_DeclaredIdentFlag__5CdK8b1znEHaI0ZaCQKLRA) 1))&7U)))!=0));
			LA28_: ;
			if (!T27_) goto LA29_;
			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_23), (&(*p).tok));
		}
		LA29_: ;
	}
	LA18_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA33_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T35_ = NIM_NIL;
		T35_ = parseExpr__parser_256(p);
		add__ast_4772(result, T35_);
	}
	goto LA31_;
	LA33_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		T37_ = NIM_NIL;
		T37_ = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (&(*p)));
		add__ast_4772(result, T37_);
	}
	LA31_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseParamList__parser_262)(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 = NIM_NIL;
	a = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), (&(*p)));
	add__ast_4772(result, (*p).emptyNode);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
	if (!(T1_)) goto LA2_;
	T1_ = ((*p).tok.indent < ((NI) 0));
	LA2_: ;
	hasParLe = T1_;
	{
		if (!hasParLe) goto LA5_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		{
			while (1) {
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
				{
					a = parseIdentColonEquals__parser_971(p, 3);
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91):
				{
					goto LA7;
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
				{
					parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_24));
					goto LA7;
				}
				break;
				default:
				{
					parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_25));
					goto LA7;
				}
				break;
				}
				add__ast_4772(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103)))) goto LA15_;
					goto LA7;
				}
				LA15_: ;
				getTok__parser_45(p);
				skipComment__parser_51(p, a);
			}
		} LA7: ;
		optPar__parser_83(p);
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
	}
	LA5_: ;
	{
		if (!retColon) goto LA19_;
		hasRet = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
	}
	goto LA17_;
	LA19_: ;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110));
		if (!(T22_)) goto LA23_;
		T22_ = eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_26));
		LA23_: ;
		hasRet = T22_;
	}
	LA17_: ;
	{
		NIM_BOOL T26_;
		T26_ = (NIM_BOOL)0;
		T26_ = hasRet;
		if (!(T26_)) goto LA27_;
		T26_ = ((*p).tok.indent < ((NI) 0));
		LA27_: ;
		if (!T26_) goto LA28_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), parseTypeDesc__parser_260(p));
	}
	goto LA24_;
	LA28_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = !(retColon);
		if (!(T31_)) goto LA32_;
		T31_ = !(hasParLe);
		LA32_: ;
		if (!T31_) goto LA33_;
		result = (*p).emptyNode;
	}
	goto LA24_;
	LA33_: ;
	LA24_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeCall__parser_1322)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		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__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		add__ast_4772(result, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseDoBlock__parser_1100)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas;
	result = NIM_NIL;
	params = parseParamList__parser_262(p, NIM_FALSE);
	pragmas = optPragmas__parser_1093(p);
	colcom__parser_299(p, result);
	result = parseStmt__parser_258(p);
	{
		if (!!(((*params).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		result = newProcNode__ast_3796(((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__parser_107)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* openingParams;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* openingPragmas;
{	result = NIM_NIL;
	result = x;
	{
		if (!(((NI) 0) <= (*p).tok.indent)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	openingParams = (*p).emptyNode;
	openingPragmas = (*p).emptyNode;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA7_;
		getTok__parser_45(p);
		openingParams = parseParamList__parser_262(p, NIM_FALSE);
		openingPragmas = optPragmas__parser_1093(p);
	}
	LA7_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA11_;
		result = makeCall__parser_1322(result);
		getTok__parser_45(p);
		skipComment__parser_51(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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
			T17_ = NIM_NIL;
			T17_ = parseStmt__parser_258(p);
			add__ast_4772(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_ = NIM_NIL;
				T26_ = newProcNode__ast_3796(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52), (*stmtList).info, stmtList, openingParams, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, openingPragmas, (*p).emptyNode);
				add__ast_4772(result, T26_);
			}
			goto LA22_;
			LA24_: ;
			{
				add__ast_4772(result, stmtList);
			}
			LA22_: ;
		}
		LA15_: ;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nextBlock;
				tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ nextToken;
				if (!((*p).tok.indent == (*p).currInd)) goto LA29;
				nextBlock = NIM_NIL;
				nextToken = (*p).tok.tokType;
				{
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					if (!(nextToken == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 20))) goto LA32_;
					info = parLineInfo__parser_76((&(*p)));
					getTok__parser_45(p);
					nextBlock = parseDoBlock__parser_1100(p, info);
				}
				goto LA30_;
				LA32_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
					switch (nextToken) {
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 48):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85), (&(*p)));
						exprList__parser_378(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104), nextBlock);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
						getTok__parser_45(p);
						optInd__parser_85(p, nextBlock);
						T37_ = NIM_NIL;
						T37_ = parseExpr__parser_256(p);
						add__ast_4772(nextBlock, T37_);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87), (&(*p)));
						exprList__parser_378(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104), nextBlock);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 27):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107), (&(*p)));
						getTok__parser_45(p);
					}
					break;
					case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22):
					{
						nextBlock = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
						getTok__parser_45(p);
					}
					break;
					default:
					{
						goto LA28;
					}
					break;
					}
					eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
					T42_ = NIM_NIL;
					T42_ = parseStmt__parser_258(p);
					add__ast_4772(nextBlock, T42_);
				}
				LA30_: ;
				(*nextBlock).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 16)) & 31);
				add__ast_4772(result, nextBlock);
				{
					if (!((*nextBlock).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88) || (*nextBlock).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA45_;
					goto LA28;
				}
				LA45_: ;
			} LA29: ;
		} LA28: ;
	}
	goto LA9_;
	LA11_: ;
	{
		{
			if (!!(((*openingParams).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA50_;
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_27));
		}
		LA50_: ;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseReturnOrRaise__parser_1533)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA3_;
		skipComment__parser_51(p, result);
		add__ast_4772(result, (*p).emptyNode);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T10_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = (((NI) 0) <= (*p).tok.indent);
		if (!(T7_)) goto LA8_;
		T7_ = ((*p).tok.indent <= (*p).currInd);
		LA8_: ;
		T6_ = T7_;
		if (T6_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = isExprStart__parser_1139((&(*p)));
		T6_ = !(T10_);
		LA9_: ;
		if (!T6_) goto LA11_;
		add__ast_4772(result, (*p).emptyNode);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
		e = parseExpr__parser_256(p);
		e = postExprBlocks__parser_107(p, e);
		add__ast_4772(result, e);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseModuleName__parser_1460)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = parseExpr__parser_256(p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseImport__parser_1464)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	a = parseModuleName__parser_1460(p, kind);
	add__ast_4772(result, a);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25))) goto LA3_;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25))) goto LA7_;
			transitionSonsKind__ast_4334(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw)(kind + ((NI) 1)))));
		}
		LA7_: ;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		{
			while (1) {
				(*p).hasProgress = NIM_FALSE;
				a = parseModuleName__parser_1460(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__ast_4772(result, a);
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA19_;
					goto LA9;
				}
				LA19_: ;
				getTok__parser_45(p);
				optInd__parser_85(p, a);
			}
		} LA9: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFromStmt__parser_1513)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	a = parseModuleName__parser_1460(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116));
	add__ast_4772(result, a);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 32));
	optInd__parser_85(p, result);
	{
		while (1) {
			(*p).hasProgress = NIM_FALSE;
			a = parseExpr__parser_256(p);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (T5_) goto LA6_;
				T5_ = !((*p).hasProgress);
				LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
			LA7_: ;
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA11_;
				goto LA1;
			}
			LA11_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIncludeStmt__parser_1497)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			(*p).hasProgress = NIM_FALSE;
			a = parseExpr__parser_256(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__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA11_;
				goto LA1;
			}
			LA11_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCommentStmt__parser_1909)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125), (&(*p)));
	commenteq___ast_1361(result, (*p).tok.literal);
	getTok__parser_45(p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExprStmt__parser_110)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	a = simpleExpr__parser_582(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		b = parseExpr__parser_256(p);
		b = postExprBlocks__parser_107(p, b);
		add__ast_4772(result, a);
		add__ast_4772(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) 102));
			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__parser_45(p);
					optInd__parser_85(p, result);
					T16_ = NIM_NIL;
					T16_ = commandParam__parser_748(p, (&isFirstParam), ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
					add__ast_4772(result, T16_);
					{
						if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) 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__parser_1139((&(*p)));
			LA23_: ;
			if (!T22_) goto LA24_;
			nimZeroMem((void*)T26_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T26_[0] = a;
			result = newTreeI__ast_3380(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26), (*a).info, T26_, 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
					T29_ = NIM_NIL;
					T29_ = commandParam__parser_748(p, (&isFirstParam), ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
					add__ast_4772(result, T29_);
					{
						if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA32_;
						goto LA27;
					}
					LA32_: ;
					getTok__parser_45(p);
					optInd__parser_85(p, result);
				}
			} LA27: ;
		}
		goto LA6_;
		LA24_: ;
		{
			result = a;
		}
		LA6_: ;
		result = postExprBlocks__parser_107(p, result);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, simpleStmt__parser_2388)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 55):
	{
		result = parseReturnOrRaise__parser_1533(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 53):
	{
		result = parseReturnOrRaise__parser_1533(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 68):
	{
		result = parseReturnOrRaise__parser_1533(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 17):
	{
		result = parseReturnOrRaise__parser_1533(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 9):
	{
		result = parseReturnOrRaise__parser_1533(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 14):
	{
		result = parseReturnOrRaise__parser_1533(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98):
	{
		result = parseStmtPragma__parser_103(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 32):
	{
		result = parseImport__parser_1464(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 26):
	{
		result = parseImport__parser_1464(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 29):
	{
		result = parseFromStmt__parser_1513(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 34):
	{
		result = parseIncludeStmt__parser_1497(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
	{
		result = newCommentStmt__parser_1909(p);
	}
	break;
	default:
	{
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = isExprStart__parser_1139((&(*p)));
			if (!T16_) goto LA17_;
			result = parseExprStmt__parser_110(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__parser_51(p, result);
	}
	LA22_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStmt__parser_258)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NI oldIndX60gensym176_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
		oldIndX60gensym176_ = (*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) 103))) goto LA12_;
					getTok__parser_45(p);
					{
						NIM_BOOL T16_;
						T16_ = (NIM_BOOL)0;
						T16_ = ((*p).tok.indent < ((NI) 0));
						if (T16_) goto LA17_;
						T16_ = ((*p).tok.indent == (*p).currInd);
						LA17_: ;
						if (!T16_) goto LA18_;
					}
					goto LA14_;
					LA18_: ;
					{
						goto LA5;
					}
					LA14_: ;
				}
				goto LA7_;
				LA12_: ;
				{
					{
						NIM_BOOL T24_;
						T24_ = (NIM_BOOL)0;
						T24_ = ((*p).currInd < (*p).tok.indent);
						if (!(T24_)) goto LA25_;
						T24_ = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107)));
						LA25_: ;
						if (!T24_) goto LA26_;
						parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
					}
					LA26_: ;
					goto LA5;
				}
				LA7_: ;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 99) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93))) 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__parser_580(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__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
					goto LA5;
				}
				goto LA36_;
				LA40_: ;
				{
					add__ast_4772(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 = oldIndX60gensym176_;
	}
	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__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_10));
			result = (*p).emptyNode;
		}
		break;
		default:
		{
			{
				if (!(((NI) 0) < (*p).inSemiStmtList)) goto LA54_;
				result = simpleStmt__parser_2388(p);
				{
					if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA58_;
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				}
				LA58_: ;
			}
			goto LA52_;
			LA54_: ;
			{
				result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (&(*p)));
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
						NIM_BOOL err;
						{
							if (!(((NI) 0) <= (*p).tok.indent)) goto LA65_;
							parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
						}
						LA65_: ;
						(*p).hasProgress = NIM_FALSE;
						a_2 = simpleStmt__parser_2388(p);
						err = !((*p).hasProgress);
						{
							if (!((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA69_;
							parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
						}
						LA69_: ;
						add__ast_4772(result, a_2);
						{
							if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103)))) goto LA73_;
							goto LA61;
						}
						LA73_: ;
						getTok__parser_45(p);
						{
							NIM_BOOL T77_;
							T77_ = (NIM_BOOL)0;
							T77_ = err;
							if (!(T77_)) goto LA78_;
							T77_ = ((*p).tok.tokType == ((tyEnum_TokType__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__parser_112)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112), (&(*p)));
	getTokNoInd__parser_196(p);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA3_;
		add__ast_4772(result, (*p).emptyNode);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		T6_ = NIM_NIL;
		T6_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
		add__ast_4772(result, T6_);
	}
	LA1_: ;
	colcom__parser_299(p, result);
	T7_ = NIM_NIL;
	T7_ = parseStmt__parser_258(p);
	add__ast_4772(result, T7_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVarTuple__parser_1181)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112))) goto LA2;
			a = identWithPragma__parser_946(p, NIM_TRUE);
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__parser_45(p);
			skipComment__parser_51(p, a);
		} LA2: ;
	} LA1: ;
	add__ast_4772(result, (*p).emptyNode);
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFor__parser_1183)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
	result = NIM_NIL;
	getTokNoInd__parser_196(p);
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94), (&(*p)));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = parseVarTuple__parser_1181(p);
		add__ast_4772(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = identWithPragma__parser_946(p, NIM_FALSE);
		add__ast_4772(result, a);
		{
			while (1) {
				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA8;
				getTok__parser_45(p);
				optInd__parser_85(p, a);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA11_;
					T13_ = NIM_NIL;
					T13_ = parseVarTuple__parser_1181(p);
					add__ast_4772(result, T13_);
					goto LA7;
				}
				LA11_: ;
				a = identWithPragma__parser_946(p, NIM_FALSE);
				add__ast_4772(result, a);
			} LA8: ;
		} LA7: ;
	}
	LA1_: ;
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33));
	T14_ = NIM_NIL;
	T14_ = parseExpr__parser_256(p);
	add__ast_4772(result, T14_);
	colcom__parser_299(p, result);
	T15_ = NIM_NIL;
	T15_ = parseStmt__parser_258(p);
	add__ast_4772(result, T15_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseCase__parser_101)(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 = NIM_NIL;
	b = NIM_NIL;
	inElif = NIM_FALSE;
	wasIndented = NIM_FALSE;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97), (&(*p)));
	getTok__parser_45(p);
	T1_ = NIM_NIL;
	T1_ = parseExpr__parser_256(p);
	add__ast_4772(result, T1_);
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA4_;
		getTok__parser_45(p);
	}
	LA4_: ;
	skipComment__parser_51(p, result);
	oldInd = (*p).currInd;
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA8_;
		(*p).currInd = (*p).tok.indent;
		wasIndented = NIM_TRUE;
	}
	LA8_: ;
	{
		while (1) {
			tyObject_TNode__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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85), (&(*p)));
				exprList__parser_378(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104), b);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 21):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
				inElif = NIM_TRUE;
				b = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
				getTok__parser_45(p);
				optInd__parser_85(p, b);
				T18_ = NIM_NIL;
				T18_ = parseExpr__parser_256(p);
				add__ast_4772(b, T18_);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
				getTok__parser_45(p);
			}
			break;
			default:
			{
				goto LA10;
			}
			break;
			}
			colcom__parser_299(p, b);
			T21_ = NIM_NIL;
			T21_ = parseStmt__parser_258(p);
			add__ast_4772(b, T21_);
			add__ast_4772(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__parser_98)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, NIM_BOOL isExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106), (&(*p)));
	getTok__parser_45(p);
	colcom__parser_299(p, result);
	T1_ = NIM_NIL;
	T1_ = parseStmt__parser_258(p);
	add__ast_4772(result, T1_);
	b = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) 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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87), (&(*p)));
				exprList__parser_378(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104), b);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 27):
			{
				b = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107), (&(*p)));
				getTok__parser_45(p);
			}
			break;
			default:
			{
				goto LA2;
			}
			break;
			}
			colcom__parser_299(p, b);
			T11_ = NIM_NIL;
			T11_ = parseStmt__parser_258(p);
			add__ast_4772(b, T11_);
			add__ast_4772(result, b);
		} LA3: ;
	} LA2: ;
	{
		if (!(b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA14_;
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_28));
	}
	LA14_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExpr__parser_256)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 8):
	{
		result = parseBlock__parser_112(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
	{
		result = parseIfOrWhenExpr__parser_585(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 28):
	{
		result = parseFor__parser_1183(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
	{
		result = parseIfOrWhenExpr__parser_585(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
	{
		result = parseCase__parser_101(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 60):
	{
		result = parseTry__parser_98(p, NIM_TRUE);
	}
	break;
	default:
	{
		result = simpleExpr__parser_582(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseIfOrWhen__parser_1554)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
			getTok__parser_45(p);
			branch = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (&(*p)));
			optInd__parser_85(p, branch);
			T3_ = NIM_NIL;
			T3_ = parseExpr__parser_256(p);
			add__ast_4772(branch, T3_);
			colcom__parser_299(p, branch);
			T4_ = NIM_NIL;
			T4_ = parseStmt__parser_258(p);
			add__ast_4772(branch, T4_);
			skipComment__parser_51(p, branch);
			add__ast_4772(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__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (&(*p)));
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 22));
		colcom__parser_299(p, branch_2);
		T21_ = NIM_NIL;
		T21_ = parseStmt__parser_258(p);
		add__ast_4772(branch_2, T21_);
		add__ast_4772(result, branch_2);
	}
	LA19_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseWhile__parser_1622)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	T1_ = NIM_NIL;
	T1_ = parseExpr__parser_256(p);
	add__ast_4772(result, T1_);
	colcom__parser_299(p, result);
	T2_ = NIM_NIL;
	T2_ = parseStmt__parser_258(p);
	add__ast_4772(result, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseExceptBlock__parser_1685)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	colcom__parser_299(p, result);
	T1_ = NIM_NIL;
	T1_ = parseStmt__parser_258(p);
	add__ast_4772(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseStaticOrDefer__parser_1712)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	result = newNodeP__parser_54(k, (&(*p)));
	getTok__parser_45(p);
	colcom__parser_299(p, result);
	T1_ = NIM_NIL;
	T1_ = parseStmt__parser_258(p);
	add__ast_4772(result, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAsm__parser_1720)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89), (&(*p)));
	getTokNoInd__parser_196(p);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = parsePragma__parser_105(p);
		add__ast_4772(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA1_: ;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 83):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T8_ = NIM_NIL;
		T8_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*p).tok.literal, (&(*p)));
		add__ast_4772(result, T8_);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 84):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		T10_ = NIM_NIL;
		T10_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
		add__ast_4772(result, T10_);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 85):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
		T12_ = NIM_NIL;
		T12_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
		add__ast_4772(result, T12_);
	}
	break;
	default:
	{
		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_29));
		add__ast_4772(result, (*p).emptyNode);
		goto BeforeRet_;
	}
	break;
	}
	getTok__parser_45(p);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parsePattern__parser_1820)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94));
	result = parseStmt__parser_258(p);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 95));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, expectIdent__parser_74)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2)))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = prettyTok__lexer_239((&(*p).tok));
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), T5_);
		lexMessage__lexer_336((&(*p).lex), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParam__parser_1751)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = NIM_NIL;
	a = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (&(*p)));
	{
		while (1) {
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50):
			{
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* x;
				NimStringDesc* T4_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
				T4_ = NIM_NIL;
				{
					if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33))) goto LA7_;
					T4_ = copyString(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_30));
				}
				goto LA5_;
				LA7_: ;
				{
					T4_ = copyString(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_31));
				}
				LA5_: ;
				x = getIdent__idents_143((*p).lex.cache, T4_);
				a = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (&(*p)));
				T10_ = NIM_NIL;
				T10_ = newIdentNodeP__parser_69(x, (&(*p)));
				add__ast_4772(a, T10_);
				getTok__parser_45(p);
				expectIdent__parser_74((&(*p)));
				T11_ = NIM_NIL;
				T11_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
				add__ast_4772(a, T11_);
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
			{
				a = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA15_;
					goto BeforeRet_;
				}
				LA15_: ;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA20_;
				goto LA1;
			}
			LA20_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA24_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T26_ = NIM_NIL;
		T26_ = parseExpr__parser_256(p);
		add__ast_4772(result, T26_);
	}
	goto LA22_;
	LA24_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA22_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA30_;
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T32_ = NIM_NIL;
		T32_ = parseExpr__parser_256(p);
		add__ast_4772(result, T32_);
	}
	goto LA28_;
	LA30_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseGenericParamList__parser_1804)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75), (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 50))) goto LA2;
			a = parseGenericParam__parser_1751(p);
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__parser_45(p);
			skipComment__parser_51(p, a);
		} LA2: ;
	} LA1: ;
	optPar__parser_83(p);
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 93));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, indAndComment__parser_88)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL maybeMissEquals) {
	{
		if (!((*p).currInd < (*p).tok.indent)) goto LA3_;
		{
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111))) goto LA7_;
			rawSkipComment__parser_165(p, n);
		}
		goto LA5_;
		LA7_: ;
		{
			NI col;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
			tyArray__nHXaesL0DJZHyVS07ARPRA T12_;
			NimStringDesc* T13_;
			if (!maybeMissEquals) goto LA10_;
			col = (NI)((*p).bufposPrevious - (*p).lineStartPrevious);
			info = newLineInfo__msgs_381((*p).lex.fileIdx, (*p).lineNumberPrevious, col);
			nimZeroMem((void*)T12_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T12_[0] = dollar___msgs_624((*p).lex.config, info);
			T13_ = NIM_NIL;
			T13_ = nsuFormatOpenArray(((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_32), T12_, 1);
			parMessage__parser_147((&(*p)), T13_);
		}
		goto LA5_;
		LA10_: ;
		{
			parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		skipComment__parser_51(p, n);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseRoutine__parser_1823)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
	NIM_BOOL maybeMissEquals;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
	NI T35_;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	T1_ = NIM_NIL;
	T1_ = identVis__parser_925(p, NIM_FALSE);
	add__ast_4772(result, T1_);
	{
		NIM_BOOL T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 94));
		if (!(T4_)) goto LA5_;
		T4_ = validInd__parser_162(p);
		LA5_: ;
		if (!T4_) goto LA6_;
		T8_ = NIM_NIL;
		T8_ = parsePattern__parser_1820(p);
		add__ast_4772(result, T8_);
	}
	goto LA2_;
	LA6_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA2_: ;
	{
		NIM_BOOL T12_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
		if (!(T12_)) goto LA13_;
		T12_ = validInd__parser_162(p);
		LA13_: ;
		if (!T12_) goto LA14_;
		T16_ = NIM_NIL;
		T16_ = parseGenericParamList__parser_1804(p);
		add__ast_4772(result, T16_);
	}
	goto LA10_;
	LA14_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA10_: ;
	T18_ = NIM_NIL;
	T18_ = parseParamList__parser_262(p, NIM_TRUE);
	add__ast_4772(result, T18_);
	{
		NIM_BOOL T21_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		T21_ = (NIM_BOOL)0;
		T21_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98));
		if (!(T21_)) goto LA22_;
		T21_ = validInd__parser_162(p);
		LA22_: ;
		if (!T21_) goto LA23_;
		T25_ = NIM_NIL;
		T25_ = parsePragma__parser_105(p);
		add__ast_4772(result, T25_);
	}
	goto LA19_;
	LA23_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA19_: ;
	add__ast_4772(result, (*p).emptyNode);
	maybeMissEquals = !(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106)));
	{
		NIM_BOOL T29_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		T29_ = (NIM_BOOL)0;
		T29_ = !(maybeMissEquals);
		if (!(T29_)) goto LA30_;
		T29_ = validInd__parser_162(p);
		LA30_: ;
		if (!T29_) goto LA31_;
		getTok__parser_45(p);
		skipComment__parser_51(p, result);
		T33_ = NIM_NIL;
		T33_ = parseStmt__parser_258(p);
		add__ast_4772(result, T33_);
	}
	goto LA27_;
	LA31_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA27_: ;
	indAndComment__parser_88(p, result, maybeMissEquals);
	T35_ = (NI)0;
	T35_ = len__ast_3151(result);
	body = (*result)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))];
	{
		NIM_BOOL T38_;
		NIM_BOOL T39_;
		NIM_BOOL T40_;
		NI T42_;
		NimStringDesc* T44_;
		T38_ = (NIM_BOOL)0;
		T39_ = (NIM_BOOL)0;
		T40_ = (NIM_BOOL)0;
		T40_ = ((*body).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
		if (!(T40_)) goto LA41_;
		T42_ = (NI)0;
		T42_ = len__ast_3151(body);
		T40_ = (((NI) 0) < T42_);
		LA41_: ;
		T39_ = T40_;
		if (!(T39_)) goto LA43_;
		T44_ = NIM_NIL;
		T44_ = comment__ast_993((*body)._kind_6.sons->data[((NI) 0)]);
		T39_ = (((NI) 0) < (T44_ ? T44_->Sup.len : 0));
		LA43_: ;
		T38_ = T39_;
		if (!(T38_)) goto LA45_;
		T38_ = !(((*(*body)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125)));
		LA45_: ;
		if (!T38_) goto LA46_;
		{
			NimStringDesc* T50_;
			NimStringDesc* T53_;
			T50_ = NIM_NIL;
			T50_ = comment__ast_993(result);
			if (!((T50_ ? T50_->Sup.len : 0) == ((NI) 0))) goto LA51_;
			T53_ = NIM_NIL;
			T53_ = comment__ast_993((*body)._kind_6.sons->data[((NI) 0)]);
			commenteq___ast_1361(result, T53_);
			commenteq___ast_1361((*body)._kind_6.sons->data[((NI) 0)], ((NimStringDesc*) NIM_NIL));
		}
		LA51_: ;
	}
	LA46_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseSection__parser_1912)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyProc__DRjGxmJIweFVoAt8was9aww defparser) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(kind, (&(*p)));
	{
		if (!!((kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98)))) goto LA3_;
		getTok__parser_45(p);
	}
	LA3_: ;
	skipComment__parser_51(p, result);
	{
		NI oldIndX60gensym129_;
		if (!((*p).currInd < (*p).tok.indent)) goto LA7_;
		oldIndX60gensym129_ = (*p).currInd;
		(*p).currInd = (*p).tok.indent;
		skipComment__parser_51(p, result);
		{
			while (1) {
				if (!((*p).tok.indent == (*p).currInd)) goto LA10;
				switch ((*p).tok.tokType) {
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 112):
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					a = defparser(p);
					skipComment__parser_51(p, a);
					add__ast_4772(result, a);
				}
				break;
				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
					a_2 = newCommentStmt__parser_1909(p);
					add__ast_4772(result, a_2);
				}
				break;
				default:
				{
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
					goto LA9;
				}
				break;
				}
			} LA10: ;
		} LA9: ;
		(*p).currInd = oldIndX60gensym129_;
		{
			NI T16_;
			T16_ = (NI)0;
			T16_ = len__ast_3151(result);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			parMessage__parser_143((&(*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) 112) || (*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90));
		if (!(T20_)) goto LA21_;
		T20_ = ((*p).tok.indent < ((NI) 0));
		LA21_: ;
		if (!T20_) goto LA22_;
		T24_ = NIM_NIL;
		T24_ = defparser(p);
		add__ast_4772(result, T24_);
	}
	goto LA5_;
	LA22_: ;
	{
		parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_5), (&(*p).tok));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDefAux__parser_1319)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = simpleExpr__parser_582(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 2));
	result = binaryNot__parser_1294(p, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTypeDef__parser_2221)(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 = NIM_NIL;
	result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103), (&(*p)));
	identifier = identVis__parser_925(p, NIM_TRUE);
	identPragma = identifier;
	pragma = NIM_NIL;
	genericParam = NIM_NIL;
	noPragmaYet = NIM_TRUE;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98))) goto LA3_;
		pragma = optPragmas__parser_1093(p);
		identPragma = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
		add__ast_4772(identPragma, identifier);
		add__ast_4772(identPragma, pragma);
		noPragmaYet = NIM_FALSE;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92));
		if (!(T7_)) goto LA8_;
		T7_ = validInd__parser_162(p);
		LA8_: ;
		if (!T7_) goto LA9_;
		{
			if (!!(noPragmaYet)) goto LA13_;
			parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 21), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_33));
		}
		LA13_: ;
		genericParam = parseGenericParamList__parser_1804(p);
	}
	goto LA5_;
	LA9_: ;
	{
		genericParam = (*p).emptyNode;
	}
	LA5_: ;
	{
		if (!noPragmaYet) goto LA18_;
		pragma = optPragmas__parser_1093(p);
		{
			if (!!(((*pragma).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA22_;
			identPragma = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (&(*p)));
			add__ast_4772(identPragma, identifier);
			add__ast_4772(identPragma, pragma);
		}
		LA22_: ;
	}
	goto LA16_;
	LA18_: ;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98))) goto LA25_;
		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_34));
	}
	goto LA16_;
	LA25_: ;
	LA16_: ;
	add__ast_4772(result, identPragma);
	add__ast_4772(result, genericParam);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA29_;
		(*result).info = parLineInfo__parser_76((&(*p)));
		getTok__parser_45(p);
		optInd__parser_85(p, result);
		T31_ = NIM_NIL;
		T31_ = parseTypeDefAux__parser_1319(p);
		add__ast_4772(result, T31_);
	}
	goto LA27_;
	LA29_: ;
	{
		add__ast_4772(result, (*p).emptyNode);
	}
	LA27_: ;
	indAndComment__parser_88(p, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseConstant__parser_2322)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
	NI T14_;
	NI T15_;
	result = NIM_NIL;
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA3_;
		result = parseVarTuple__parser_1181(p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102), (&(*p)));
		T6_ = NIM_NIL;
		T6_ = identWithPragma__parser_946(p, NIM_FALSE);
		add__ast_4772(result, T6_);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104))) goto LA9_;
			getTok__parser_45(p);
			optInd__parser_85(p, result);
			T11_ = NIM_NIL;
			T11_ = parseTypeDesc__parser_260(p);
			add__ast_4772(result, T11_);
		}
		goto LA7_;
		LA9_: ;
		{
			add__ast_4772(result, (*p).emptyNode);
		}
		LA7_: ;
	}
	LA1_: ;
	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106));
	optInd__parser_85(p, result);
	T13_ = NIM_NIL;
	T13_ = parseExpr__parser_256(p);
	add__ast_4772(result, T13_);
	T14_ = (NI)0;
	T14_ = len__ast_3151(result);
	T15_ = (NI)0;
	T15_ = len__ast_3151(result);
	asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T14_ - ((NI) 1))]), postExprBlocks__parser_107(p, (*result)._kind_6.sons->data[(NI)(T15_ - ((NI) 1))]));
	indAndComment__parser_88(p, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseVariable__parser_2301)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI T7_;
	NI T8_;
	result = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA3_;
		result = parseVarTuple__parser_1181(p);
		eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106));
		optInd__parser_85(p, result);
		T5_ = NIM_NIL;
		T5_ = parseExpr__parser_256(p);
		add__ast_4772(result, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		result = parseIdentColonEquals__parser_971(p, 5);
	}
	LA1_: ;
	T7_ = (NI)0;
	T7_ = len__ast_3151(result);
	T8_ = (NI)0;
	T8_ = len__ast_3151(result);
	asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T7_ - ((NI) 1))]), postExprBlocks__parser_107(p, (*result)._kind_6.sons->data[(NI)(T8_ - ((NI) 1))]));
	indAndComment__parser_88(p, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, qualifiedIdent__parser_491)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
	{
		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 107))) goto LA3_;
		result = dotExpr__parser_436(p, result);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseBind__parser_2359)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(k, (&(*p)));
	getTok__parser_45(p);
	optInd__parser_85(p, result);
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = qualifiedIdent__parser_491(p);
			add__ast_4772(result, a);
			{
				if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			getTok__parser_45(p);
			optInd__parser_85(p, a);
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, complexOrSimpleStmt__parser_580)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*p).tok.tokType) {
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 31):
	{
		result = parseIfOrWhen__parser_1554(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 66):
	{
		result = parseWhile__parser_1622(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 10):
	{
		result = parseCase__parser_101(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 60):
	{
		result = parseTry__parser_98(p, NIM_FALSE);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 27):
	{
		result = parseExceptBlock__parser_1685(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 25):
	{
		result = parseExceptBlock__parser_1685(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 28):
	{
		result = parseFor__parser_1183(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 8):
	{
		result = parseBlock__parser_112(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 58):
	{
		result = parseStaticOrDefer__parser_1712(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 16):
	{
		result = parseStaticOrDefer__parser_1712(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 6):
	{
		result = parseAsm__parser_1720(p);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 51):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 30):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 41):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 38):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 40):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 59):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 15):
	{
		result = parseRoutine__parser_1823(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 62):
	{
		getTok__parser_45(p);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
			if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA22_;
			getTok__parser_45(p);
			result = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132), (&(*p)));
			T24_ = NIM_NIL;
			T24_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 1));
			add__ast_4772(result, T24_);
			eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91));
			result = parseOperators__parser_831(p, result, ((NI) -1), ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
		}
		goto LA20_;
		LA22_: ;
		{
			result = parseSection__parser_1912(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98), parseTypeDef__parser_2221);
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 13):
	{
		result = parseSection__parser_1912(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101), parseConstant__parser_2322);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 39):
	{
		result = parseSection__parser_1912(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), parseVariable__parser_2301);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 64):
	{
		result = parseSection__parser_1912(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), parseVariable__parser_2301);
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 65):
	{
		result = parseIfOrWhen__parser_1554(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 7):
	{
		result = parseBind__parser_2359(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 42):
	{
		result = parseBind__parser_2359(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123));
	}
	break;
	case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 63):
	{
		result = parseSection__parser_1912(p, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 124), parseVariable__parser_2301);
	}
	break;
	default:
	{
		result = simpleStmt__parser_2388(p);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseAll__parser_37)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeP__parser_54(((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__parser_580(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__ast_4772(result, a);
			}
			goto LA3_;
			LA7_: ;
			{
				parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				getTok__parser_45(p);
			}
			LA3_: ;
			{
				if (!!(((*p).tok.indent == ((NI) 0)))) goto LA12_;
				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
			}
			LA12_: ;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, closeParser__parser_39)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	closeLexer__lexer_304((&(*p).lex));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseTopLevelStmt__parser_41)(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw* p) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = (*p).emptyNode;
	{
		while (1) {
			{
				if (!!(((*p).tok.indent == ((NI) 0)))) goto LA5_;
				{
					NIM_BOOL T9_;
					T9_ = (NIM_BOOL)0;
					T9_ = (*p).firstTok;
					if (!(T9_)) goto LA10_;
					T9_ = ((*p).tok.indent < ((NI) 0));
					LA10_: ;
					if (!T9_) goto LA11_;
				}
				goto LA7_;
				LA11_: ;
				{
					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103)))) goto LA14_;
					{
						NIM_BOOL T18_;
						T18_ = (NIM_BOOL)0;
						T18_ = ((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110));
						if (!(T18_)) goto LA19_;
						T18_ = eqStrings((*(*p).tok.ident).s, ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_35));
						LA19_: ;
						if (!T18_) goto LA20_;
						parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_36));
					}
					goto LA16_;
					LA20_: ;
					{
						parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
					}
					LA16_: ;
				}
				goto LA7_;
				LA14_: ;
				LA7_: ;
			}
			LA5_: ;
			(*p).firstTok = NIM_FALSE;
			switch ((*p).tok.tokType) {
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103):
			{
				getTok__parser_45(p);
				{
					if (!((*p).tok.indent <= ((NI) 0))) goto LA26_;
				}
				goto LA24_;
				LA26_: ;
				{
					parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_4));
				}
				LA24_: ;
				(*p).firstTok = NIM_TRUE;
			}
			break;
			case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1):
			{
				goto LA1;
			}
			break;
			default:
			{
				result = complexOrSimpleStmt__parser_580(p);
				{
					if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA33_;
					parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_9), (&(*p).tok));
				}
				LA33_: ;
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseString__parser_2493)(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 = NIM_NIL;
	stream = llStreamOpen__llstream_30(s);
	(*stream).lineOffset = line;
	nimZeroMem((void*)(&parser), sizeof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw));
	objectInit((&parser), (&NTIparser__kUTcqfBOdi2S1yCsNNzzUw_));
	parser.lex.errorHandler.ClE_0 = errorHandler.ClE_0;
	parser.lex.errorHandler.ClP_0 = errorHandler.ClP_0;
	openParser__parser_131((&parser), filename, stream, cache, config);
	result = parseAll__parser_37((&parser));
	closeParser__parser_39((&parser));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmparserdotnim_DatInit000)(void) {
static TNimNode* TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[11];
static TNimNode TM__MW5RrD2zyVLHF67ojsDu8Q_0[12];
NTIparser__kUTcqfBOdi2S1yCsNNzzUw_.size = sizeof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw);
NTIparser__kUTcqfBOdi2S1yCsNNzzUw_.align = NIM_ALIGNOF(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw);
NTIparser__kUTcqfBOdi2S1yCsNNzzUw_.kind = 18;
NTIparser__kUTcqfBOdi2S1yCsNNzzUw_.base = 0;
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[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 = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[1].name = "currInd";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[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 = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[2].name = "firstTok";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[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 = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[3].name = "hasProgress";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[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 = (&NTIlexer__JC9bQ4bKzkuzV9bdqS4ju8yw_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[4].name = "lex";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[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 = (&NTItoken__sNMaWRTImjqfh1DU9cmdQkA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[5].name = "tok";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[5] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[6];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, lineStartPrevious);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[6].name = "lineStartPrevious";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[6] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[7];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, lineNumberPrevious);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[7].name = "lineNumberPrevious";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[7] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[8];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, bufposPrevious);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[8].name = "bufposPrevious";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[8] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[9];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[9].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[9].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, inPragma);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[9].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[9].name = "inPragma";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[9] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[10];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[10].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[10].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, inSemiStmtList);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[10].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[10].name = "inSemiStmtList";
TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[10] = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[11];
TM__MW5RrD2zyVLHF67ojsDu8Q_0[11].kind = 1;
TM__MW5RrD2zyVLHF67ojsDu8Q_0[11].offset = offsetof(tyObject_Parser__kUTcqfBOdi2S1yCsNNzzUw, emptyNode);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[11].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__MW5RrD2zyVLHF67ojsDu8Q_0[11].name = "emptyNode";
TM__MW5RrD2zyVLHF67ojsDu8Q_0[0].len = 11; TM__MW5RrD2zyVLHF67ojsDu8Q_0[0].kind = 2; TM__MW5RrD2zyVLHF67ojsDu8Q_0[0].sons = &TM__MW5RrD2zyVLHF67ojsDu8Q_2_11[0];
NTIparser__kUTcqfBOdi2S1yCsNNzzUw_.node = &TM__MW5RrD2zyVLHF67ojsDu8Q_0[0];
}

