text: /* Generated by Nim Compiler v1.6.2 */
  #define NIM_INTBITS 32
  #define NIM_EmulateOverflowChecks
  
  #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_1588)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__ast_3332)(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_3356)(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_4797)(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_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(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_3198)(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_4359)(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_2279)(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_3821)(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_5226)(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_7764)(NimStringDesc* s, NI first, NI last);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7776)(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_1374)(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_3420)(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_5238;
  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_1588((&(*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_3332(((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_3356(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) 14), (&(*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)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
  }
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	NI T1_;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = (NI)0;
  	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
  	return result;
  }
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5285((&gch__system_5238.zct), c);
  }
  static N_INLINE(void, decRef__system_5336)(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_5334(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_5291(src);
  		incRef__system_5329(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5291((*dest));
  		decRef__system_5336(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) 14), T2_);
  }
  static N_INLINE(NI, len__ast_3198)(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) 14), 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_3198(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2), lineinfo);
  					asgnRef((void**) (&(*node)._kind_5.ident), getIdent__idents_143((*p).lex.cache, accm));
  					add__ast_4797(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_4797(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_4797(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_4797(result, a);
  		T5_ = NIM_NIL;
  		T5_ = parseExpr__parser_256(p);
  		add__ast_4797(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_4797(result, a);
  		T9_ = NIM_NIL;
  		T9_ = parseExpr__parser_256(p);
  		add__ast_4797(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_4797(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_4359(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), info);
  	optInd__parser_85(p, result);
  	add__ast_4797(result, a);
  	T1_ = NIM_NIL;
  	T1_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 2));
  	add__ast_4797(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T8_);
  		add__ast_4797(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T9_);
  		add__ast_4797(y, x);
  		add__ast_4797(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_4797(result, T5_);
  		add__ast_4797(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_4797(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_4797(result, a);
  		T5_ = NIM_NIL;
  		T5_ = parsePragma__parser_105(p);
  		add__ast_4797(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_4797(result, lhs);
  		T15_ = NIM_NIL;
  		T15_ = parseExpr__parser_256(p);
  		add__ast_4797(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_4797(result, r);
  	isFirstParam = NIM_TRUE;
  	(*p).hasProgress = NIM_FALSE;
  	T1_ = NIM_NIL;
  	T1_ = commandParam__parser_748(p, (&isFirstParam), mode);
  	add__ast_4797(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_4797(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_5291(p);
  	decRef__system_5336(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_4797(result, a);
  		T2_ = NIM_NIL;
  		T2_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21), (*p).tok.literal, (&(*p)));
  		add__ast_4797(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_4797(result, a);
  		T4_ = NIM_NIL;
  		T4_ = newStrNodeP__parser_65(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22), (*p).tok.literal, (&(*p)));
  		add__ast_4797(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), info);
  	optInd__parser_85(p, result);
  	opNode = newIdentNodeP__parser_69((*p).tok.ident, (&(*p)));
  	getTok__parser_45(p);
  	add__ast_4797(result, opNode);
  	add__ast_4797(result, a);
  	T1_ = NIM_NIL;
  	T1_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 2));
  	add__ast_4797(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_4797(result, r);
  						T16_ = NIM_NIL;
  						T16_ = primary__parser_114(p, ((tyEnum_PrimaryMode__oEVT2Q885qI5p3u0L42zBg) 0));
  						add__ast_4797(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_3198(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_4359(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_2279((*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) 22), ((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_4797(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_4797(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) 14), ((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_3821(kind, info, T9_, params, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, pragmas, (*p).emptyNode);
  	}
  	goto LA3_;
  	LA7_: ;
  	{
  		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147), info);
  		{
  			if (!hasSignature) goto LA13_;
  			add__ast_4797(result, params);
  			{
  				if (!(kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159))) goto LA17_;
  				parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_16));
  			}
  			LA17_: ;
  			add__ast_4797(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_4797(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_4797(symPragma, a);
  				add__ast_4797(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_4797(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_4797(symPragma, b);
  				T27_ = NIM_NIL;
  				T27_ = parseExpr__parser_256(p);
  				add__ast_4797(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_4797(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_3198(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_4797(branch, T3_);
  			colcom__parser_299(p, branch);
  			T4_ = NIM_NIL;
  			T4_ = parseObjectPart__parser_2004(p);
  			add__ast_4797(branch, T4_);
  			flexComment__parser_183(p, branch);
  			add__ast_4797(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_4797(branch_2, T15_);
  		flexComment__parser_183(p, branch_2);
  		add__ast_4797(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_4797(a, T1_);
  	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 104));
  	T2_ = NIM_NIL;
  	T2_ = parseTypeDesc__parser_260(p);
  	add__ast_4797(a, T2_);
  	add__ast_4797(a, (*p).emptyNode);
  	add__ast_4797(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_4797(b, fields);
  			add__ast_4797(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_4797(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) 20), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_17));
  		T7_ = NIM_NIL;
  		T7_ = parsePragma__parser_105(p);
  		add__ast_4797(result, T7_);
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		add__ast_4797(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_4797(a, T15_);
  		add__ast_4797(result, a);
  	}
  	goto LA9_;
  	LA13_: ;
  	{
  		add__ast_4797(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_4797(result, (*p).emptyNode);
  	}
  	goto LA21_;
  	LA23_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
  		T26_ = NIM_NIL;
  		T26_ = parseObjectPart__parser_2004(p);
  		add__ast_4797(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_4797(result, T11_);
  	}
  	goto LA7_;
  	LA9_: ;
  	{
  		result = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
  	}
  	LA7_: ;
  	return result;
  }
  static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5226)(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_4797(result, args);
  		T9_ = NIM_NIL;
  		T9_ = parseTypeClassParam__parser_2136(p);
  		add__ast_4797(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_4797(args, T12_);
  			} LA11: ;
  		}
  	}
  	goto LA5_;
  	LA7_: ;
  	{
  		add__ast_4797(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_4797(result, T20_);
  	}
  	goto LA14_;
  	LA18_: ;
  	{
  		add__ast_4797(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_4797(a, T30_);
  				{
  					if (!!(((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102)))) goto LA33_;
  					goto LA28;
  				}
  				LA33_: ;
  				getTok__parser_45(p);
  			}
  		} LA28: ;
  		add__ast_4797(result, a);
  	}
  	goto LA22_;
  	LA26_: ;
  	{
  		add__ast_4797(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_5226(result);
  			if (!T46_) goto LA47_;
  			parMessage__parser_143((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_18), (&(*p).tok));
  		}
  		LA47_: ;
  		add__ast_4797(result, (*p).emptyNode);
  	}
  	goto LA40_;
  	LA42_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
  		T50_ = NIM_NIL;
  		T50_ = parseStmt__parser_258(p);
  		add__ast_4797(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_4797(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_4797(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_4797(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_4797(branch, T3_);
  			colcom__parser_299(p, branch);
  			T4_ = NIM_NIL;
  			T4_ = parseStmt__parser_258(p);
  			add__ast_4797(branch, T4_);
  			skipComment__parser_51(p, branch);
  			add__ast_4797(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_4797(branch_2, T13_);
  		add__ast_4797(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_4797(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_4797(result, a_2);
  			}
  			LA19_: ;
  		} LA5: ;
  	} LA4: ;
  	(*p).currInd = oldIndX60gensym32_;
  	(*p).inSemiStmtList -= ((NI) 1);
  	transitionSonsKind__ast_4359(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91), (*a).info);
  		getTok__parser_45(p);
  		skipComment__parser_51(p, result);
  		add__ast_4797(result, a);
  		T7_ = NIM_NIL;
  		T7_ = parseStmt__parser_258(p);
  		add__ast_4797(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_4797(result, T11_);
  	}
  	goto LA1_;
  	LA9_: ;
  	{
  		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91))) goto LA13_;
  		transitionSonsKind__ast_4359(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_4797(asgn, a);
  			add__ast_4797(asgn, b);
  			add__ast_4797(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_4797(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_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
  			}
  			LA33_: ;
  			add__ast_4797(result, a);
  			{
  				if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 102))) goto LA37_;
  				getTok__parser_45(p);
  				skipComment__parser_51(p, a);
  				transitionSonsKind__ast_4359(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_4797(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_4359(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_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 54));
  				}
  				LA10_: ;
  				add__ast_4797(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_4797(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_4797(result, T6_);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
  		add__ast_4797(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_4797(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_7764((*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_7776((*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_4797(result, str);
  		add__ast_4797(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_4797(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_4797(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_4797(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_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 84));
  		}
  		goto LA17_;
  		LA19_: ;
  		{
  			transitionSonsKind__ast_4359(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_4797(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) 54), 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_1374((&(*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_4797(a, opNode);
  			add__ast_4797(a, result);
  			add__ast_4797(a, b);
  			result = a;
  			opPrec = getPrecedence__lexer_1374((&(*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_4797(pragmaExp, result);
  		T11_ = NIM_NIL;
  		T11_ = parsePragma__parser_105(p);
  		add__ast_4797(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_4797(result, notOpr);
  		add__ast_4797(result, a);
  		add__ast_4797(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_4797(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_4797(result, T22_);
  	}
  	goto LA18_;
  	LA20_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
  		T24_ = NIM_NIL;
  		T24_ = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (&(*p)));
  		add__ast_4797(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_4797(result, T35_);
  	}
  	goto LA31_;
  	LA33_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
  		T37_ = NIM_NIL;
  		T37_ = newNodeP__parser_54(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (&(*p)));
  		add__ast_4797(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_4797(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) 14), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_24));
  					goto LA7;
  				}
  				break;
  				default:
  				{
  					parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_25));
  					goto LA7;
  				}
  				break;
  				}
  				add__ast_4797(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_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
  		add__ast_4797(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_3821(((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_4797(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_3821(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52), (*stmtList).info, stmtList, openingParams, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, openingPragmas, (*p).emptyNode);
  				add__ast_4797(result, T26_);
  			}
  			goto LA22_;
  			LA24_: ;
  			{
  				add__ast_4797(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_4797(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_4797(nextBlock, T42_);
  				}
  				LA30_: ;
  				(*nextBlock).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 16)) & 31);
  				add__ast_4797(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_4797(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_4797(result, (*p).emptyNode);
  	}
  	goto LA1_;
  	LA11_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
  		e = parseExpr__parser_256(p);
  		e = postExprBlocks__parser_107(p, e);
  		add__ast_4797(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_4797(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_4359(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_4797(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_4797(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_4797(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_4797(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_4797(result, a);
  		add__ast_4797(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_4797(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_3420(((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_4797(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_4797(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_4797(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_4797(result, (*p).emptyNode);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
  		T6_ = NIM_NIL;
  		T6_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
  		add__ast_4797(result, T6_);
  	}
  	LA1_: ;
  	colcom__parser_299(p, result);
  	T7_ = NIM_NIL;
  	T7_ = parseStmt__parser_258(p);
  	add__ast_4797(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_4797(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_4797(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_4797(result, T5_);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
  		a = identWithPragma__parser_946(p, NIM_FALSE);
  		add__ast_4797(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_4797(result, T13_);
  					goto LA7;
  				}
  				LA11_: ;
  				a = identWithPragma__parser_946(p, NIM_FALSE);
  				add__ast_4797(result, a);
  			} LA8: ;
  		} LA7: ;
  	}
  	LA1_: ;
  	eat__parser_78(p, ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 33));
  	T14_ = NIM_NIL;
  	T14_ = parseExpr__parser_256(p);
  	add__ast_4797(result, T14_);
  	colcom__parser_299(p, result);
  	T15_ = NIM_NIL;
  	T15_ = parseStmt__parser_258(p);
  	add__ast_4797(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_4797(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_4797(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_4797(b, T21_);
  			add__ast_4797(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_4797(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_4797(b, T11_);
  			add__ast_4797(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_4797(branch, T3_);
  			colcom__parser_299(p, branch);
  			T4_ = NIM_NIL;
  			T4_ = parseStmt__parser_258(p);
  			add__ast_4797(branch, T4_);
  			skipComment__parser_51(p, branch);
  			add__ast_4797(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_4797(branch_2, T21_);
  		add__ast_4797(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_4797(result, T1_);
  	colcom__parser_299(p, result);
  	T2_ = NIM_NIL;
  	T2_ = parseStmt__parser_258(p);
  	add__ast_4797(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_4797(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_4797(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_4797(result, T5_);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		add__ast_4797(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_4797(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_4797(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_4797(result, T12_);
  	}
  	break;
  	default:
  	{
  		parMessage__parser_147((&(*p)), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_29));
  		add__ast_4797(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) 14), 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_4797(a, T10_);
  				getTok__parser_45(p);
  				expectIdent__parser_74((&(*p)));
  				T11_ = NIM_NIL;
  				T11_ = parseSymbol__parser_95(p, ((tyEnum_SymbolMode__9aoP9cJZtqH9cYXp2xqhRfe4g) 0));
  				add__ast_4797(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_4797(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_4797(result, T26_);
  	}
  	goto LA22_;
  	LA24_: ;
  	{
  		add__ast_4797(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_4797(result, T32_);
  	}
  	goto LA28_;
  	LA30_: ;
  	{
  		add__ast_4797(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_4797(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_4797(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_4797(result, T8_);
  	}
  	goto LA2_;
  	LA6_: ;
  	{
  		add__ast_4797(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_4797(result, T16_);
  	}
  	goto LA10_;
  	LA14_: ;
  	{
  		add__ast_4797(result, (*p).emptyNode);
  	}
  	LA10_: ;
  	T18_ = NIM_NIL;
  	T18_ = parseParamList__parser_262(p, NIM_TRUE);
  	add__ast_4797(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_4797(result, T25_);
  	}
  	goto LA19_;
  	LA23_: ;
  	{
  		add__ast_4797(result, (*p).emptyNode);
  	}
  	LA19_: ;
  	add__ast_4797(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_4797(result, T33_);
  	}
  	goto LA27_;
  	LA31_: ;
  	{
  		add__ast_4797(result, (*p).emptyNode);
  	}
  	LA27_: ;
  	indAndComment__parser_88(p, result, maybeMissEquals);
  	T35_ = (NI)0;
  	T35_ = len__ast_3198(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_3198(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_4797(result, a);
  				}
  				break;
  				case ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 111):
  				{
  					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
  					a_2 = newCommentStmt__parser_1909(p);
  					add__ast_4797(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_3198(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_4797(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_4797(identPragma, identifier);
  		add__ast_4797(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) 20), ((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_4797(identPragma, identifier);
  			add__ast_4797(identPragma, pragma);
  		}
  		LA22_: ;
  	}
  	goto LA16_;
  	LA18_: ;
  	{
  		if (!((*p).tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 98))) goto LA25_;
  		parMessage__parser_47((&(*p)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__MW5RrD2zyVLHF67ojsDu8Q_34));
  	}
  	goto LA16_;
  	LA25_: ;
  	LA16_: ;
  	add__ast_4797(result, identPragma);
  	add__ast_4797(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_4797(result, T31_);
  	}
  	goto LA27_;
  	LA29_: ;
  	{
  		add__ast_4797(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_4797(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_4797(result, T11_);
  		}
  		goto LA7_;
  		LA9_: ;
  		{
  			add__ast_4797(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_4797(result, T13_);
  	T14_ = (NI)0;
  	T14_ = len__ast_3198(result);
  	T15_ = (NI)0;
  	T15_ = len__ast_3198(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_4797(result, T5_);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = parseIdentColonEquals__parser_971(p, 5);
  	}
  	LA1_: ;
  	T7_ = (NI)0;
  	T7_ = len__ast_3198(result);
  	T8_ = (NI)0;
  	T8_ = len__ast_3198(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_4797(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_4797(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_4797(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) 14), ((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, compiler_parserDatInit000)(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];
  }
  
  