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

#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 NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw;
typedef struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g;
typedef struct tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence__shxop0zPIs5Ec3k71aCLuQ tySequence__shxop0zPIs5Ec3k71aCLuQ;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc__22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ enableNotes;
tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ disableNotes;
tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ foreignPackageNotes;
tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ notes;
tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc__QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc__22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
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;
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 tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag {
  RootObj Sup;
NI bufpos;
NimStringDesc* buf;
tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_CursorPosition__moKbK9a5baLOKMP3AQAcKoQ;
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__eADjAhqPI0ogAK7A2xrf0A;
struct tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw {
  tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyEnum_CursorPosition__moKbK9a5baLOKMP3AQAcKoQ cursor;
tyProc__eADjAhqPI0ogAK7A2xrf0A errorHandler;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA;
typedef NU8 tyEnum_TNumericalBase__9cbxR9czWgoXwHHSzHtd9aV7Q;
struct tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ {
tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA tokType;
NI indent;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
NI64 iNumber;
NF fNumber;
tyEnum_TNumericalBase__9cbxR9czWgoXwHHSzHtd9aV7Q base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
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__vqN8F2I9cNb9agHf5QUpC2lg;
struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
  RootObj Sup;
tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__vqN8F2I9cNb9agHf5QUpC2lg repl;
};
typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
typedef NU8 tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw;
typedef NU8 tySet_tyEnum_MsgFlag__BzRTaQ6LrPDZKEKt9bswkOQ;
typedef NU8 tySet_tyEnum_FormatFlag__F4vlKAV4d0Kt9aXmu9cVNBrg;
typedef NU8 tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA;
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__SiRwrEKZdLgxqz9a9aoVBglg[512];
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__SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__shxop0zPIs5Ec3k71aCLuQ {
  TGenericSeq Sup;
  NIM_BOOL data[SEQ_DECL_SIZE];
};
struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, setDefaultLibpath__CQGypz7djD4eDZIXokhWpg_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, newSeq__jtFooNiUXrUQkXZQ3LMOCQ)(NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath__20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getPrefixDir__oltK69akg0xLqkR2ITKbomg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___QVqo5OOQAdrjFqBsPctklw)(NimStringDesc* base, NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___0U8YTiSB6NvFwgvyimFN2Q)(NimStringDesc* base, NimStringDesc* f);
static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg)(NimStringDesc* filename, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen__knWUQJsEzojha6AJCi6LcA)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
N_LIB_PRIVATE N_NIMCALL(void, initToken__EaKJR9ap6SPzmmvwWz9aMd1g)(tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* L);
N_LIB_PRIVATE N_NIMCALL(void, openLexer__jJb0YCOUxTG2lqKbbQe89cA)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* lex, NimStringDesc* filename, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, confTok__gRRIWO4ECEOm1XpeGf9aODw)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok);
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__rwBXgYq6A9aRSWDrvp6B9cQg)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, parseDirective__gRRIWO4ECEOm1XpeGf9aODw_2)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__sZUQNPhNGEM8MllfcWvRiw)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_NIMCALL(void, Marker_tySequence__shxop0zPIs5Ec3k71aCLuQ)(void* p, NI op);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, evalppIf__6Vyk9bCiMmOBPCWuQwelZMQ)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseExpr__6Vyk9bCiMmOBPCWuQwelZMQ_2)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAndExpr__6Vyk9bCiMmOBPCWuQwelZMQ_3)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAtom__6Vyk9bCiMmOBPCWuQwelZMQ_4)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__7sgxHfR2r4xBBAjZv1DqbQ)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__jkXTnxDf8MX1Pmks3s0XxA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
N_LIB_PRIVATE N_NIMCALL(void, jumpToDirective__9cEnnbRfPuYZFc8kt9baR1Iw)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw dest, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doElse__gRRIWO4ECEOm1XpeGf9aODw_3)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doElif__gRRIWO4ECEOm1XpeGf9aODw_4)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doEnd__XwtSLjWzw9annOCYUHu3Xvg)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
static N_INLINE(NI, subInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, msgWriteln__PO49anyWCbe63GYNOs9cVuvg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s, tySet_tyEnum_MsgFlag__BzRTaQ6LrPDZKEKt9bswkOQ flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nstFormat)(NimStringDesc* f, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, tySet_tyEnum_FormatFlag__F4vlKAV4d0Kt9aXmu9cVNBrg flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___d3YnHm5OyfXf5tTfAaERTg_2)(tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, putEnv__YVZCqlK3fKyVR367JpYgKA)(NimStringDesc* key, NimStringDesc* val);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getEnv__hhED57tMl0Iaa5bOg9cJaig)(NimStringDesc* key, NimStringDesc* default_0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, parseAssignment__gRRIWO4ECEOm1XpeGf9aODw_5)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__lGlzs3oAU9bZxh6O9ctsjl5Qlexer)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__NPagzbOMpGo9aqJmfnDrITg)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(void, checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, processSwitch__DS57z9bPOnpy1Lyf6Fyb2vA)(NimStringDesc* switch_0, NimStringDesc* arg, tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA pass, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, closeLexer__ukE4jLLltKtD9aVT9bIEv6Gg)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* lex);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetConfigDir)(void);
static N_INLINE(NIM_BOOL, isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisRootDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(void, rawMessage__h30HgTFwbGq0PsyHmRqZ8g)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
extern TNimType NTI__PdyFIzn4patQ2zB5OFD9cjw_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
TNimType NTI__shxop0zPIs5Ec3k71aCLuQ_;
extern TNimType NTI__sM4lkSb7zS6F7OVMvW9cffQ_;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_2, "config", 6);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_3, "etc/nim", 7);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_4, "/etc/nim", 8);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_5, "@", 1);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_7, "expected closing \')\'", 20);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_8, "expected \':\'", 12);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_10, "expected @if", 12);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_12, "expected @end", 13);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_13, "putenv", 6);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_14, "prependenv", 10);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_15, "appendenv", 9);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_16, "invalid directive: \'$1\'", 23);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_17, "-", 1);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_18, "--", 2);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_19, "expected identifier, but got: ", 30);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_20, "expected closing \']\'", 20);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_21, "%=", 2);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_22, "&", 1);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_23, "nim", 3);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_27, "nimcfg", 6);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_28, "nim.cfg", 7);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_30, "iterators.nim(189, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = nosexistsFile(filename);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath__20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename) {	NimStringDesc* result;
	NimStringDesc* p;
	NimStringDesc* T1_;
	result = (NimStringDesc*)0;
	p = getPrefixDir__oltK69akg0xLqkR2ITKbomg(conf);
	T1_ = (NimStringDesc*)0;
	T1_ = slash___0U8YTiSB6NvFwgvyimFN2Q(p, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_2));
	result = slash___QVqo5OOQAdrjFqBsPctklw(T1_, filename);
	{
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		T4_ = (NIM_BOOL)0;
		T4_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(result);
		if (!!(T4_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = slash___0U8YTiSB6NvFwgvyimFN2Q(p, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_3));
		result = slash___QVqo5OOQAdrjFqBsPctklw(T7_, filename);
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(result);
		if (!!(T10_)) goto LA11_;
		result = slash___QVqo5OOQAdrjFqBsPctklw(((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_4), filename);
	}
	LA11_: ;
	return result;
}
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size) {	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {	nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(void, ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok) {	rawGetTok__rwBXgYq6A9aRSWDrvp6B9cQg(L, tok);
	{
		while (1) {
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 110))) goto LA2;
			rawGetTok__rwBXgYq6A9aRSWDrvp6B9cQg(L, tok);
		} LA2: ;
	}
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size) {	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) + (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence__shxop0zPIs5Ec3k71aCLuQ)(void* p, NI op) {
	tySequence__shxop0zPIs5Ec3k71aCLuQ* a;
	NI T1_;
	a = (tySequence__shxop0zPIs5Ec3k71aCLuQ*)p;
	T1_ = (NI)0;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAtom__6Vyk9bCiMmOBPCWuQwelZMQ_4)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 89))) goto LA3_;
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		result = parseExpr__6Vyk9bCiMmOBPCWuQwelZMQ_2(L, tok, config);
		{
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 90))) goto LA7_;
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA5_;
		LA7_: ;
		{
			lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_7));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T13_;
		if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 45))) goto LA11_;
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		T13_ = (NIM_BOOL)0;
		T13_ = parseAtom__6Vyk9bCiMmOBPCWuQwelZMQ_4(L, tok, config);
		result = !(T13_);
	}
	goto LA1_;
	LA11_: ;
	{
		result = isDefined__jkXTnxDf8MX1Pmks3s0XxA(config, (*(*tok).ident).s);
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAndExpr__6Vyk9bCiMmOBPCWuQwelZMQ_3)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = parseAtom__6Vyk9bCiMmOBPCWuQwelZMQ_4(L, tok, config);
	{
		while (1) {
			NIM_BOOL b;
			NIM_BOOL T3_;
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 4))) goto LA2;
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			b = parseAtom__6Vyk9bCiMmOBPCWuQwelZMQ_4(L, tok, config);
			T3_ = (NIM_BOOL)0;
			T3_ = result;
			if (!(T3_)) goto LA4_;
			T3_ = b;
			LA4_: ;
			result = T3_;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseExpr__6Vyk9bCiMmOBPCWuQwelZMQ_2)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = parseAndExpr__6Vyk9bCiMmOBPCWuQwelZMQ_3(L, tok, config);
	{
		while (1) {
			NIM_BOOL b;
			NIM_BOOL T3_;
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 49))) goto LA2;
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			b = parseAndExpr__6Vyk9bCiMmOBPCWuQwelZMQ_3(L, tok, config);
			T3_ = (NIM_BOOL)0;
			T3_ = result;
			if (T3_) goto LA4_;
			T3_ = b;
			LA4_: ;
			result = T3_;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, evalppIf__6Vyk9bCiMmOBPCWuQwelZMQ)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	result = parseExpr__6Vyk9bCiMmOBPCWuQwelZMQ_2(L, tok, config);
	{
		if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 103))) goto LA3_;
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	goto LA1_;
	LA3_: ;
	{
		lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_8));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, doElse__gRRIWO4ECEOm1XpeGf9aODw_3)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_10));
	}
	LA4_: ;
	ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	{
		if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 103))) goto LA8_;
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	LA8_: ;
	{
		NI T12_;
		T12_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T12_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T12_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(*condStack)->data[T12_]) goto LA13_;
		jumpToDirective__9cEnnbRfPuYZFc8kt9baR1Iw(L, tok, ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 0), config, condStack);
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, doElif__gRRIWO4ECEOm1XpeGf9aODw_4)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	NIM_BOOL res;
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_10));
	}
	LA4_: ;
	res = evalppIf__6Vyk9bCiMmOBPCWuQwelZMQ(L, tok, config);
	{
		NIM_BOOL T8_;
		NI T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T9_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T9_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		T8_ = (*condStack)->data[T9_];
		if (T8_) goto LA10_;
		T8_ = !(res);
		LA10_: ;
		if (!T8_) goto LA11_;
		jumpToDirective__9cEnnbRfPuYZFc8kt9baR1Iw(L, tok, ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1), config, condStack);
	}
	goto LA6_;
	LA11_: ;
	{
		NI T14_;
		T14_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T14_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T14_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		(*condStack)->data[T14_] = NIM_TRUE;
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, doEnd__XwtSLjWzw9annOCYUHu3Xvg)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	NI T6_;
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_10));
	}
	LA4_: ;
	ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	T6_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
	unsureAsgnRef((void**) (&(*condStack)), (tySequence__shxop0zPIs5Ec3k71aCLuQ*) setLengthSeqV2(&((*condStack))->Sup, (&NTI__shxop0zPIs5Ec3k71aCLuQ_), ((NI)chckRange(T6_, ((NI) 0), ((NI) 2147483647)))));
}
static N_INLINE(NI, subInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) - (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU32) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, jumpToDirective__9cEnnbRfPuYZFc8kt9baR1Iw)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw dest, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	NI nestedIfs;
	nestedIfs = ((NI) 0);
	{
		while (1) {
			{
				NIM_BOOL T5_;
				tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T9_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*tok).ident == NIM_NIL));
				if (!(T5_)) goto LA6_;
				T5_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_5));
				LA6_: ;
				if (!T5_) goto LA7_;
				ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
				T9_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
				T9_ = whichKeyword__sZUQNPhNGEM8MllfcWvRiw((*tok).ident);
				switch (T9_) {
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 29):
				{
					NI TM__6P25SLSLz0kOcUlvm51BiA_9;
					TM__6P25SLSLz0kOcUlvm51BiA_9 = addInt(nestedIfs, ((NI) 1));
					nestedIfs = (NI)(TM__6P25SLSLz0kOcUlvm51BiA_9);
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 20):
				{
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = (dest == ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1));
						if (!(T14_)) goto LA15_;
						T14_ = (nestedIfs == ((NI) 0));
						LA15_: ;
						if (!T14_) goto LA16_;
						doElse__gRRIWO4ECEOm1XpeGf9aODw_3(L, tok, config, condStack);
						goto LA1;
					}
					LA16_: ;
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 19):
				{
					{
						NIM_BOOL T21_;
						T21_ = (NIM_BOOL)0;
						T21_ = (dest == ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1));
						if (!(T21_)) goto LA22_;
						T21_ = (nestedIfs == ((NI) 0));
						LA22_: ;
						if (!T21_) goto LA23_;
						doElif__gRRIWO4ECEOm1XpeGf9aODw_4(L, tok, config, condStack);
						goto LA1;
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 21):
				{
					{
						if (!(nestedIfs == ((NI) 0))) goto LA28_;
						doEnd__XwtSLjWzw9annOCYUHu3Xvg(L, tok, condStack);
						goto LA1;
					}
					LA28_: ;
					{
						NI TM__6P25SLSLz0kOcUlvm51BiA_11;
						if (!(((NI) 0) < nestedIfs)) goto LA32_;
						TM__6P25SLSLz0kOcUlvm51BiA_11 = subInt(nestedIfs, ((NI) 1));
						nestedIfs = (NI)(TM__6P25SLSLz0kOcUlvm51BiA_11);
					}
					LA32_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			}
			goto LA3_;
			LA7_: ;
			{
				if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 1))) goto LA36_;
				lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_12));
			}
			goto LA3_;
			LA36_: ;
			{
				ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			}
			LA3_: ;
		}
	} LA1: ;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem__M04YC71iJg1N7gBF3HZTngsystem(((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, parseDirective__gRRIWO4ECEOm1XpeGf9aODw_2)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T1_;
	ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	T1_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
	T1_ = whichKeyword__sZUQNPhNGEM8MllfcWvRiw((*tok).ident);
	switch (T1_) {
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 29):
	{
		NI T3_;
		NI TM__6P25SLSLz0kOcUlvm51BiA_6;
		NIM_BOOL res;
		NI T4_;
		T3_ = ((*condStack) ? (*condStack)->Sup.len : 0);
		TM__6P25SLSLz0kOcUlvm51BiA_6 = addInt(T3_, ((NI) 1));
		unsureAsgnRef((void**) (&(*condStack)), (tySequence__shxop0zPIs5Ec3k71aCLuQ*) setLengthSeqV2(&((*condStack))->Sup, (&NTI__shxop0zPIs5Ec3k71aCLuQ_), ((NI)chckRange((NI)(TM__6P25SLSLz0kOcUlvm51BiA_6), ((NI) 0), ((NI) 2147483647)))));
		res = evalppIf__6Vyk9bCiMmOBPCWuQwelZMQ(L, tok, config);
		T4_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T4_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T4_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		(*condStack)->data[T4_] = res;
		{
			if (!!(res)) goto LA7_;
			jumpToDirective__9cEnnbRfPuYZFc8kt9baR1Iw(L, tok, ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1), config, condStack);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 19):
	{
		doElif__gRRIWO4ECEOm1XpeGf9aODw_4(L, tok, config, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 20):
	{
		doElse__gRRIWO4ECEOm1XpeGf9aODw_3(L, tok, config, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 21):
	{
		doEnd__XwtSLjWzw9annOCYUHu3Xvg(L, tok, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 191):
	{
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		T13_ = (NimStringDesc*)0;
		T13_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
		T14_ = (NimStringDesc*)0;
		T14_ = nstFormat(T13_, (*config).configVars, 5);
		msgWriteln__PO49anyWCbe63GYNOs9cVuvg(config, T14_, 0);
		ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	break;
	default:
	{
		NimStringDesc* T16_;
		T16_ = (NimStringDesc*)0;
		T16_ = nsuNormalize((*(*tok).ident).s);
		if (eqStrings(T16_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_13))) goto LA17_;
		if (eqStrings(T16_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_14))) goto LA18_;
		if (eqStrings(T16_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_15))) goto LA19_;
		goto LA20_;
		LA17_: ;
		{
			NimStringDesc* key;
			NimStringDesc* T23_;
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			key = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			T23_ = (NimStringDesc*)0;
			T23_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			putEnv__YVZCqlK3fKyVR367JpYgKA(key, T23_);
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA21_;
		LA18_: ;
		{
			NimStringDesc* key_2;
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			key_2 = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			T25_ = (NimStringDesc*)0;
			T26_ = (NimStringDesc*)0;
			T26_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			T27_ = (NimStringDesc*)0;
			T27_ = getEnv__hhED57tMl0Iaa5bOg9cJaig(key_2, ((NimStringDesc*) NIM_NIL));
			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + (T27_ ? T27_->Sup.len : 0) + 0);
appendString(T25_, T26_);
appendString(T25_, T27_);
			putEnv__YVZCqlK3fKyVR367JpYgKA(key_2, T25_);
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA21_;
		LA19_: ;
		{
			NimStringDesc* key_3;
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			NimStringDesc* T31_;
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			key_3 = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			T29_ = (NimStringDesc*)0;
			T30_ = (NimStringDesc*)0;
			T30_ = getEnv__hhED57tMl0Iaa5bOg9cJaig(key_3, ((NimStringDesc*) NIM_NIL));
			T31_ = (NimStringDesc*)0;
			T31_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + (T31_ ? T31_->Sup.len : 0) + 0);
appendString(T29_, T30_);
appendString(T29_, T31_);
			putEnv__YVZCqlK3fKyVR367JpYgKA(key_3, T29_);
			ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA21_;
		LA20_: ;
		{
			NimStringDesc* T33_;
			NimStringDesc* T34_;
			T33_ = (NimStringDesc*)0;
			T33_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			T34_ = (NimStringDesc*)0;
			T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_16), T33_);
			lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), T34_);
		}
		LA21_: ;
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, confTok__gRRIWO4ECEOm1XpeGf9aODw)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	ppGetTok__Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*tok).ident == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_5));
			LA4_: ;
			if (!T3_) goto LA2;
			parseDirective__gRRIWO4ECEOm1XpeGf9aODw_2(L, tok, config, condStack);
		} LA2: ;
	}
}
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__lGlzs3oAU9bZxh6O9ctsjl5Qlexer)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok) {	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	result = newLineInfo__NPagzbOMpGo9aqJmfnDrITg((*L).fileIdx, (*tok).line, (*tok).col);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok) {	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!!(((*tok).tokType >= ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 2) && (*tok).tokType <= ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 73) || (*tok).tokType >= ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 83) && (*tok).tokType <= ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 85)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2(tok);
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 30);
appendString(T5_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_19));
appendString(T5_, T6_);
		lexMessage__7sgxHfR2r4xBBAjZv1DqbQ(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), T5_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseAssignment__gRRIWO4ECEOm1XpeGf9aODw_5)(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	NimStringDesc* s;
	NimStringDesc* val;
	NIM_BOOL percent;
	NIM_BOOL T20_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_17));
		if (T3_) goto LA4_;
		T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_18));
		LA4_: ;
		if (!T3_) goto LA5_;
		confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
	}
	LA5_: ;
	info = getLineInfo__lGlzs3oAU9bZxh6O9ctsjl5Qlexer((&(*L)), (&(*tok)));
	checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
	s = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
	confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
	val = ((NimStringDesc*) NIM_NIL);
	{
		while (1) {
			NimStringDesc* T9_;
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 106))) goto LA8;
			s = addChar(s, 46);
			confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
			checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
			T9_ = (NimStringDesc*)0;
			T9_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			s = resizeString(s, (T9_ ? T9_->Sup.len : 0) + 0);
appendString(s, T9_);
			confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		} LA8: ;
	}
	{
		NimStringDesc* T14_;
		if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 91))) goto LA12_;
		confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
		val = addChar(val, 91);
		T14_ = (NimStringDesc*)0;
		T14_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
		val = resizeString(val, (T14_ ? T14_->Sup.len : 0) + 0);
appendString(val, T14_);
		confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		{
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 92))) goto LA17_;
			confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		}
		goto LA15_;
		LA17_: ;
		{
			lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
		}
		LA15_: ;
		val = addChar(val, 93);
	}
	LA12_: ;
	T20_ = (NIM_BOOL)0;
	T20_ = !(((*tok).ident == NIM_NIL));
	if (!(T20_)) goto LA21_;
	T20_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
	LA21_: ;
	percent = T20_;
	{
		NIM_BOOL T24_;
		NimStringDesc* T32_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 103) || (*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 105));
		if (T24_) goto LA25_;
		T24_ = percent;
		LA25_: ;
		if (!T24_) goto LA26_;
		{
			if (!(((NI) 0) < (val ? val->Sup.len : 0))) goto LA30_;
			val = addChar(val, 58);
		}
		LA30_: ;
		confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
		T32_ = (NimStringDesc*)0;
		T32_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
		val = resizeString(val, (T32_ ? T32_->Sup.len : 0) + 0);
appendString(val, T32_);
		confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		{
			NimStringDesc* T37_;
			NimStringDesc* T38_;
			if (!((*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 103) || (*tok).tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 105))) goto LA35_;
			T37_ = (NimStringDesc*)0;
			T37_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			val = resizeString(val, (T37_ ? T37_->Sup.len : 0) + 0);
appendString(val, T37_);
			confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
			checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
			T38_ = (NimStringDesc*)0;
			T38_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			val = resizeString(val, (T38_ ? T38_->Sup.len : 0) + 0);
appendString(val, T38_);
			confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		}
		LA35_: ;
		{
			while (1) {
				NIM_BOOL T41_;
				NimStringDesc* T43_;
				T41_ = (NIM_BOOL)0;
				T41_ = !(((*tok).ident == NIM_NIL));
				if (!(T41_)) goto LA42_;
				T41_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_22));
				LA42_: ;
				if (!T41_) goto LA40;
				confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
				checkSymbol__f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
				T43_ = (NimStringDesc*)0;
				T43_ = dollar___d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
				val = resizeString(val, (T43_ ? T43_->Sup.len : 0) + 0);
appendString(val, T43_);
				confTok__gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
			} LA40: ;
		}
	}
	LA26_: ;
	{
		NimStringDesc* T48_;
		if (!percent) goto LA46_;
		T48_ = (NimStringDesc*)0;
		T48_ = nstFormat(val, (*config).configVars, 3);
		processSwitch__DS57z9bPOnpy1Lyf6Fyb2vA(s, T48_, ((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 2), info, config);
	}
	goto LA44_;
	LA46_: ;
	{
		processSwitch__DS57z9bPOnpy1Lyf6Fyb2vA(s, val, ((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 2), info, config);
	}
	LA44_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg)(NimStringDesc* filename, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {	NIM_BOOL result;
	tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw L;
	tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ tok;
	tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
{	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&L), sizeof(tyObject_TLexer__PdyFIzn4patQ2zB5OFD9cjw));
	L.Sup.Sup.m_type = (&NTI__PdyFIzn4patQ2zB5OFD9cjw_);
	nimZeroMem((void*)(&tok), sizeof(tyObject_TToken__kLaEEPwLj8cag79cbYQIkHQ));
	stream = (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*)0;
	stream = llStreamOpen__knWUQJsEzojha6AJCi6LcA(filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0));
	{
		tySequence__shxop0zPIs5Ec3k71aCLuQ* condStack;
		if (!!((stream == NIM_NIL))) goto LA3_;
		initToken__EaKJR9ap6SPzmmvwWz9aMd1g((&tok));
		openLexer__jJb0YCOUxTG2lqKbbQe89cA((&L), filename, stream, cache, config);
		tok.tokType = ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 1);
		condStack = NIM_NIL;
		confTok__gRRIWO4ECEOm1XpeGf9aODw((&L), (&tok), config, (&condStack));
		{
			while (1) {
				if (!!((tok.tokType == ((tyEnum_TTokType__vw8YkgaVtNadqP8v5OpXKA) 1)))) goto LA6;
				parseAssignment__gRRIWO4ECEOm1XpeGf9aODw_5((&L), (&tok), config, (&condStack));
			} LA6: ;
		}
		{
			NI T9_;
			T9_ = (condStack ? condStack->Sup.len : 0);
			if (!(((NI) 0) < T9_)) goto LA10_;
			lexMessage__7sgxHfR2r4xBBAjZv1DqbQ((&L), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_12));
		}
		LA10_: ;
		closeLexer__ukE4jLLltKtD9aVT9bIEv6Gg((&L));
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU32)((*c).refcount) - (NU32)(((NI) 8)));
	{
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA3_: ;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI) 8)))));
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename) {	NimStringDesc* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = (NimStringDesc*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = nosgetConfigDir();
	T2_ = (NimStringDesc*)0;
	T2_ = slash___0U8YTiSB6NvFwgvyimFN2Q(T1_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_23));
	result = slash___QVqo5OOQAdrjFqBsPctklw(T2_, filename);
	return result;
}
static N_INLINE(NIM_BOOL, isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, loadConfigs__YEwEmZgkg9cjY353WcQKcEQ)(NimStringDesc* cfg, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
	NimStringDesc* pd;
	setDefaultLibpath__CQGypz7djD4eDZIXokhWpg_3(conf);
	configFiles = newSeq__jtFooNiUXrUQkXZQ3LMOCQ(((NI) 0));
	{
		NimStringDesc* configPathX60gensym1090869_;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 15))&63U)))!=0))) goto LA3_;
		configPathX60gensym1090869_ = getSystemConfigPath__20ZvyukzMEoGWloXckQXaw(conf, cfg);
		{
			NIM_BOOL T7_;
			NI T10_;
			NimStringDesc* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090869_, cache, conf);
			if (!T7_) goto LA8_;
			configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T10_ = configFiles->Sup.len++;
			T11_ = (NimStringDesc*)0;
			T11_ = configFiles->data[T10_]; configFiles->data[T10_] = copyStringRC1(configPathX60gensym1090869_);
			if (T11_) nimGCunrefNoCycle(T11_);
		}
		LA8_: ;
	}
	LA3_: ;
	{
		NimStringDesc* configPathX60gensym1090884_;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 17))&63U)))!=0))) goto LA14_;
		configPathX60gensym1090884_ = getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA(cfg);
		{
			NIM_BOOL T18_;
			NI T21_;
			NimStringDesc* T22_;
			T18_ = (NIM_BOOL)0;
			T18_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090884_, cache, conf);
			if (!T18_) goto LA19_;
			configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T21_ = configFiles->Sup.len++;
			T22_ = (NimStringDesc*)0;
			T22_ = configFiles->data[T21_]; configFiles->data[T21_] = copyStringRC1(configPathX60gensym1090884_);
			if (T22_) nimGCunrefNoCycle(T22_);
		}
		LA19_: ;
	}
	LA14_: ;
	{
		NIM_BOOL T25_;
		T25_ = (NIM_BOOL)0;
		T25_ = isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils((*conf).projectPath);
		if (!!(T25_)) goto LA26_;
		pd = (*conf).projectPath;
	}
	goto LA23_;
	LA26_: ;
	{
		pd = nosgetCurrentDir();
	}
	LA23_: ;
	{
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 18))&63U)))!=0))) goto LA31_;
		{
			NimStringDesc* dir;
			NimStringDesc* colontmp_;
			dir = (NimStringDesc*)0;
			colontmp_ = (NimStringDesc*)0;
			colontmp_ = pd;
			{
				NimStringDesc* current;
				if (!NIM_FALSE) goto LA36_;
				current = copyString(colontmp_);
				{
					NimStringDesc* configPathX60gensym1090905_;
					if (!NIM_FALSE) goto LA40_;
					dir = colontmp_;
					configPathX60gensym1090905_ = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
					{
						NIM_BOOL T44_;
						NI T47_;
						NimStringDesc* T48_;
						T44_ = (NIM_BOOL)0;
						T44_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090905_, cache, conf);
						if (!T44_) goto LA45_;
						configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
						T47_ = configFiles->Sup.len++;
						T48_ = (NimStringDesc*)0;
						T48_ = configFiles->data[T47_]; configFiles->data[T47_] = copyStringRC1(configPathX60gensym1090905_);
						if (T48_) nimGCunrefNoCycle(T48_);
					}
					LA45_: ;
				}
				LA40_: ;
				{
					while (1) {
						NimStringDesc* configPathX60gensym1090905__2;
						{
							NIM_BOOL T53_;
							T53_ = (NIM_BOOL)0;
							T53_ = nosisRootDir(current);
							if (!T53_) goto LA54_;
							goto LA49;
						}
						LA54_: ;
						current = nosparentDir(current);
						dir = current;
						configPathX60gensym1090905__2 = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
						{
							NIM_BOOL T58_;
							NI T61_;
							NimStringDesc* T62_;
							T58_ = (NIM_BOOL)0;
							T58_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090905__2, cache, conf);
							if (!T58_) goto LA59_;
							configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
							T61_ = configFiles->Sup.len++;
							T62_ = (NimStringDesc*)0;
							T62_ = configFiles->data[T61_]; configFiles->data[T61_] = copyStringRC1(configPathX60gensym1090905__2);
							if (T62_) nimGCunrefNoCycle(T62_);
						}
						LA59_: ;
					}
				} LA49: ;
			}
			goto LA34_;
			LA36_: ;
			{
				{
					NI i;
					NI colontmp__2;
					NI TM__6P25SLSLz0kOcUlvm51BiA_24;
					NI res;
					i = (NI)0;
					colontmp__2 = (NI)0;
					TM__6P25SLSLz0kOcUlvm51BiA_24 = subInt((colontmp_ ? colontmp_->Sup.len : 0), ((NI) 2));
					colontmp__2 = (NI)(TM__6P25SLSLz0kOcUlvm51BiA_24);
					res = ((NI) 0);
					{
						while (1) {
							NI TM__6P25SLSLz0kOcUlvm51BiA_26;
							if (!(res <= colontmp__2)) goto LA66;
							i = res;
							{
								NIM_BOOL T69_;
								NIM_BOOL T71_;
								NI TM__6P25SLSLz0kOcUlvm51BiA_25;
								NimStringDesc* configPathX60gensym1090905__3;
								T69_ = (NIM_BOOL)0;
								if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
								T69_ = (((NU8)(colontmp_->data[i])) == ((NU8)(47)) || ((NU8)(colontmp_->data[i])) == ((NU8)(47)));
								if (!(T69_)) goto LA70_;
								T71_ = (NIM_BOOL)0;
								T71_ = (i == ((NI) 0));
								if (T71_) goto LA72_;
								TM__6P25SLSLz0kOcUlvm51BiA_25 = subInt(i, ((NI) 1));
								if ((NU)((NI)(TM__6P25SLSLz0kOcUlvm51BiA_25)) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2((NI)(TM__6P25SLSLz0kOcUlvm51BiA_25),(colontmp_ ? colontmp_->Sup.len : 0)-1);
								T71_ = !((((NU8)(colontmp_->data[(NI)(TM__6P25SLSLz0kOcUlvm51BiA_25)])) == ((NU8)(47)) || ((NU8)(colontmp_->data[(NI)(TM__6P25SLSLz0kOcUlvm51BiA_25)])) == ((NU8)(47))));
								LA72_: ;
								T69_ = T71_;
								LA70_: ;
								if (!T69_) goto LA73_;
								dir = substr__2yh9cer0ymNRHlOOg8P7IuA(colontmp_, ((NI) 0), i);
								configPathX60gensym1090905__3 = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
								{
									NIM_BOOL T77_;
									NI T80_;
									NimStringDesc* T81_;
									T77_ = (NIM_BOOL)0;
									T77_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090905__3, cache, conf);
									if (!T77_) goto LA78_;
									configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
									T80_ = configFiles->Sup.len++;
									T81_ = (NimStringDesc*)0;
									T81_ = configFiles->data[T80_]; configFiles->data[T80_] = copyStringRC1(configPathX60gensym1090905__3);
									if (T81_) nimGCunrefNoCycle(T81_);
								}
								LA78_: ;
							}
							LA73_: ;
							TM__6P25SLSLz0kOcUlvm51BiA_26 = addInt(res, ((NI) 1));
							res = (NI)(TM__6P25SLSLz0kOcUlvm51BiA_26);
						} LA66: ;
					}
				}
				{
					NimStringDesc* configPathX60gensym1090905__4;
					if (!NIM_FALSE) goto LA84_;
					dir = colontmp_;
					configPathX60gensym1090905__4 = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
					{
						NIM_BOOL T88_;
						NI T91_;
						NimStringDesc* T92_;
						T88_ = (NIM_BOOL)0;
						T88_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090905__4, cache, conf);
						if (!T88_) goto LA89_;
						configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
						T91_ = configFiles->Sup.len++;
						T92_ = (NimStringDesc*)0;
						T92_ = configFiles->data[T91_]; configFiles->data[T91_] = copyStringRC1(configPathX60gensym1090905__4);
						if (T92_) nimGCunrefNoCycle(T92_);
					}
					LA89_: ;
				}
				LA84_: ;
			}
			LA34_: ;
		}
	}
	LA31_: ;
	{
		NimStringDesc* configPathX60gensym1090920_;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0))) goto LA95_;
		configPathX60gensym1090920_ = slash___QVqo5OOQAdrjFqBsPctklw(pd, cfg);
		{
			NIM_BOOL T99_;
			NI T102_;
			NimStringDesc* T103_;
			T99_ = (NIM_BOOL)0;
			T99_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090920_, cache, conf);
			if (!T99_) goto LA100_;
			configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T102_ = configFiles->Sup.len++;
			T103_ = (NimStringDesc*)0;
			T103_ = configFiles->data[T102_]; configFiles->data[T102_] = copyStringRC1(configPathX60gensym1090920_);
			if (T103_) nimGCunrefNoCycle(T103_);
		}
		LA100_: ;
		{
			NimStringDesc* projectConfig;
			NimStringDesc* configPathX60gensym1090930_;
			if (!!((((*conf).projectName ? (*conf).projectName->Sup.len : 0) == ((NI) 0)))) goto LA106_;
			projectConfig = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_27));
			{
				NIM_BOOL T110_;
				T110_ = (NIM_BOOL)0;
				T110_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(projectConfig);
				if (!!(T110_)) goto LA111_;
				projectConfig = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_28));
			}
			LA111_: ;
			configPathX60gensym1090930_ = projectConfig;
			{
				NIM_BOOL T115_;
				NI T118_;
				NimStringDesc* T119_;
				T115_ = (NIM_BOOL)0;
				T115_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym1090930_, cache, conf);
				if (!T115_) goto LA116_;
				configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T118_ = configFiles->Sup.len++;
				T119_ = (NimStringDesc*)0;
				T119_ = configFiles->data[T118_]; configFiles->data[T118_] = copyStringRC1(configPathX60gensym1090930_);
				if (T119_) nimGCunrefNoCycle(T119_);
			}
			LA116_: ;
		}
		LA106_: ;
	}
	LA95_: ;
	{
		NimStringDesc* filename;
		NI i_2;
		NI L;
		NI T121_;
		filename = (NimStringDesc*)0;
		i_2 = ((NI) 0);
		T121_ = (configFiles ? configFiles->Sup.len : 0);
		L = T121_;
		{
			while (1) {
				NI TM__6P25SLSLz0kOcUlvm51BiA_29;
				if (!(i_2 < L)) goto LA123;
				if ((NU)(i_2) >= (NU)(configFiles ? configFiles->Sup.len : 0)) raiseIndexError2(i_2,(configFiles ? configFiles->Sup.len : 0)-1);
				filename = configFiles->data[i_2];
				rawMessage__h30HgTFwbGq0PsyHmRqZ8g(conf, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 55), filename);
				TM__6P25SLSLz0kOcUlvm51BiA_29 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__6P25SLSLz0kOcUlvm51BiA_29);
				{
					NI T126_;
					T126_ = (configFiles ? configFiles->Sup.len : 0);
					if (!!((T126_ == L))) goto LA127_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_30));
				}
				LA127_: ;
			} LA123: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_nimconfDatInit000)(void) {
NTI__shxop0zPIs5Ec3k71aCLuQ_.size = sizeof(tySequence__shxop0zPIs5Ec3k71aCLuQ*);
NTI__shxop0zPIs5Ec3k71aCLuQ_.kind = 24;
NTI__shxop0zPIs5Ec3k71aCLuQ_.base = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
NTI__shxop0zPIs5Ec3k71aCLuQ_.flags = 2;
NTI__shxop0zPIs5Ec3k71aCLuQ_.marker = Marker_tySequence__shxop0zPIs5Ec3k71aCLuQ;
}

