text: /* Generated by Nim Compiler v0.15.0 */
  /*   (c) 2016 Andreas Rumpf */
  /* The generated code is subject to the original license. */
  #define NIM_INTBITS 64
  
  #include "nimbase.h"
  #include <string.h>
  #include <stdio.h>
  typedef struct TY292111 TY292111;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct Cell47305 Cell47305;
  typedef struct Cellseq47321 Cellseq47321;
  typedef struct Gcheap49818 Gcheap49818;
  typedef struct Gcstack49816 Gcstack49816;
  typedef struct Memregion29486 Memregion29486;
  typedef struct Smallchunk29440 Smallchunk29440;
  typedef struct Llchunk29480 Llchunk29480;
  typedef struct Bigchunk29442 Bigchunk29442;
  typedef struct Intset29414 Intset29414;
  typedef struct Trunk29410 Trunk29410;
  typedef struct Avlnode29484 Avlnode29484;
  typedef struct Gcstat49814 Gcstat49814;
  typedef struct Cellset47317 Cellset47317;
  typedef struct Pagedesc47313 Pagedesc47313;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct Tlexer287174 Tlexer287174;
  typedef struct Tbaselexer285015 Tbaselexer285015;
  typedef struct TNimObject TNimObject;
  typedef struct Tllstream284204 Tllstream284204;
  typedef struct Tlineinfo193336 Tlineinfo193336;
  typedef struct Ttoken287170 Ttoken287170;
  typedef struct Tident201010 Tident201010;
  typedef struct Tidobj201004 Tidobj201004;
  typedef struct Stringtableobj153608 Stringtableobj153608;
  typedef struct Basechunk29438 Basechunk29438;
  typedef struct Freecell29430 Freecell29430;
  typedef struct Keyvaluepairseq153606 Keyvaluepairseq153606;
  typedef struct Keyvaluepair153604 Keyvaluepair153604;
  struct  TGenericSeq  {
  NI len;
  NI reserved;
  };
  typedef NU8 Tnimkind3403;
  typedef NU8 Tnimtypeflag3409Set;
  typedef N_NIMCALL_PTR(void, TY3489) (void* p0, NI op0);
  typedef N_NIMCALL_PTR(void*, TY3494) (void* p0);
  struct  TNimType  {
  NI size;
  Tnimkind3403 kind;
  Tnimtypeflag3409Set flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  TY3489 marker;
  TY3494 deepcopy;
  };
  typedef NU8 Tnimnodekind3405;
  struct  TNimNode  {
  Tnimnodekind3405 kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  typedef N_NIMCALL_PTR(void, Globalmarkerproc55802) (void);
  struct  Cell47305  {
  NI refcount;
  TNimType* typ;
  };
  struct  Cellseq47321  {
  NI len;
  NI cap;
  Cell47305** d;
  };
  typedef Smallchunk29440* TY29501[512];
  typedef Trunk29410* Trunkbuckets29412[256];
  struct  Intset29414  {
  Trunkbuckets29412 data;
  };
  struct  Memregion29486  {
  NI minlargeobj;
  NI maxlargeobj;
  TY29501 freesmallchunks;
  Llchunk29480* llmem;
  NI currmem;
  NI maxmem;
  NI freemem;
  NI lastsize;
  Bigchunk29442* freechunkslist;
  Intset29414 chunkstarts;
  Avlnode29484* root;
  Avlnode29484* deleted;
  Avlnode29484* last;
  Avlnode29484* freeavlnodes;
  NIM_BOOL locked;
  };
  struct  Gcstat49814  {
  NI stackscans;
  NI cyclecollections;
  NI maxthreshold;
  NI maxstacksize;
  NI maxstackcells;
  NI cycletablesize;
  NI64 maxpause;
  };
  struct  Cellset47317  {
  NI counter;
  NI max;
  Pagedesc47313* head;
  Pagedesc47313** data;
  };
  struct  Gcheap49818  {
  Gcstack49816* stack;
  void* stackbottom;
  NI cyclethreshold;
  Cellseq47321 zct;
  Cellseq47321 decstack;
  Cellseq47321 tempstack;
  NI recgclock;
  Memregion29486 region;
  Gcstat49814 stat;
  Cellset47317 marked;
  Cellseq47321 additionalroots;
  };
  struct  NimStringDesc  {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  typedef NU64 Tglobaloption171013Set;
  typedef NU8 Tglobaloption171013;
  struct  TNimObject  {
  TNimType* m_type;
  };
  struct  Tbaselexer285015  {
    TNimObject Sup;
  NI bufpos;
  NCSTRING buf;
  NI buflen;
  Tllstream284204* stream;
  NI linenumber;
  NI sentinel;
  NI linestart;
  };
  typedef NU16 Tmsgkind193002;
  typedef struct {
  N_NIMCALL_PTR(void, ClPrc) (Tlineinfo193336 info0, Tmsgkind193002 msg0, NimStringDesc* arg0, void* ClEnv);
  void* ClEnv;
  } Terrorhandler287172;
  struct  Tlexer287174  {
    Tbaselexer285015 Sup;
  NI32 fileidx;
  NI indentahead;
  NI currlineindent;
  NIM_BOOL strongspaces;
  Terrorhandler287172 errorhandler;
  };
  typedef NU8 Ttoktype287016;
  typedef NU8 Tnumericalbase287168;
  struct  Ttoken287170  {
  Ttoktype287016 toktype;
  NI indent;
  Tident201010* ident;
  NI64 inumber;
  NF fnumber;
  Tnumericalbase287168 base;
  NI8 strongspacea;
  NI8 strongspaceb;
  NimStringDesc* literal;
  NI line;
  NI col;
  };
  typedef NU8 Filemode13009;
  struct  Tidobj201004  {
    TNimObject Sup;
  NI id;
  };
  struct  Tident201010  {
    Tidobj201004 Sup;
  NimStringDesc* s;
  Tident201010* next;
  NI h;
  };
  typedef NU16 Tspecialword277003;
  typedef NU8 Tjumpdest292147;
  typedef NU8 Msgflag194444Set;
  typedef NU8 Formatflag153702Set;
  struct  Tlineinfo193336  {
  NI16 line;
  NI16 col;
  NI32 fileindex;
  };
  typedef NU8 Tcmdlinepass282008;
  typedef NimStringDesc* TY195140[3];
  struct  Gcstack49816  {
  Gcstack49816* prev;
  Gcstack49816* next;
  void* starts;
  void* pos;
  NI maxstacksize;
  };
  struct  Basechunk29438  {
  NI prevsize;
  NI size;
  NIM_BOOL used;
  };
  struct  Smallchunk29440  {
    Basechunk29438 Sup;
  Smallchunk29440* next;
  Smallchunk29440* prev;
  Freecell29430* freelist;
  NI free;
  NI acc;
  NF data;
  };
  struct  Llchunk29480  {
  NI size;
  NI acc;
  Llchunk29480* next;
  };
  struct  Bigchunk29442  {
    Basechunk29438 Sup;
  Bigchunk29442* next;
  Bigchunk29442* prev;
  NI align;
  NF data;
  };
  typedef NI TY29419[8];
  struct  Trunk29410  {
  Trunk29410* next;
  NI key;
  TY29419 bits;
  };
  typedef Avlnode29484* TY29491[2];
  struct  Avlnode29484  {
  TY29491 link;
  NI key;
  NI upperbound;
  NI level;
  };
  struct  Pagedesc47313  {
  Pagedesc47313* next;
  NI key;
  TY29419 bits;
  };
  typedef NU8 Tllstreamkind284202;
  struct  Tllstream284204  {
    TNimObject Sup;
  Tllstreamkind284202 kind;
  FILE* f;
  NimStringDesc* s;
  NI rd;
  NI wr;
  NI lineoffset;
  };
  typedef NU8 Stringtablemode153602;
  struct  Stringtableobj153608  {
    TNimObject Sup;
  NI counter;
  Keyvaluepairseq153606* data;
  Stringtablemode153602 mode;
  };
  struct  Freecell29430  {
  Freecell29430* next;
  NI zerofield;
  };
  struct Keyvaluepair153604 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  };
  struct TY292111 {
    TGenericSeq Sup;
    NIM_BOOL data[SEQ_DECL_SIZE];
  };
  struct Keyvaluepairseq153606 {
    TGenericSeq Sup;
    Keyvaluepair153604 data[SEQ_DECL_SIZE];
  };
  N_NIMCALL(void, T930198375_2)(void* p, NI op);
  N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
  N_NIMCALL(void, T930198375_3)(void);
  N_NIMCALL(void, nimRegisterGlobalMarker)(Globalmarkerproc55802 markerproc0);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
  static N_INLINE(Cell47305*, usrtocell_51440_1689653243)(void* usr0);
  static N_INLINE(void, rtladdzct_52601_1689653243)(Cell47305* c0);
  N_NOINLINE(void, addzct_51417_1689653243)(Cellseq47321* s0, Cell47305* c0);
  N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0);
  N_NIMCALL(void, setdefaultlibpath_171308_2607990831)(void);
  N_NIMCALL(void, readconfigfile_292381_930198375)(NimStringDesc* filename0);
  N_NIMCALL(Tllstream284204*, llstreamopen_284242_597494479)(NimStringDesc* filename0, Filemode13009 mode0);
  N_NIMCALL(void, inittoken_287318_689113469)(Ttoken287170* L0);
  N_NIMCALL(void, openlexer_287341_689113469)(Tlexer287174* lex0, NimStringDesc* filename0, Tllstream284204* inputstream0);
  N_NIMCALL(void, conftok_292274_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(void, ppgettok_292002_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(void, rawgettok_290824_689113469)(Tlexer287174* L0, Ttoken287170* tok0);
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0);
  static N_INLINE(NIM_BOOL, equalmem_7495_1689653243)(void* a0, void* b0, NI size0);
  N_NIMCALL(void, parsedirective_292245_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(Tspecialword277003, whichkeyword_277365_1391470768)(Tident201010* id0);
  N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq0, NI elemsize0, NI newlen0);
  N_NIMCALL(NIM_BOOL, evalppif_292095_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(NIM_BOOL, parseexpr_292020_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(NIM_BOOL, parseandexpr_292060_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(NIM_BOOL, parseatom_292026_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(void, lexmessage_287378_689113469)(Tlexer287174* L0, Tmsgkind193002 msg0, NimStringDesc* arg0);
  N_NIMCALL(NIM_BOOL, isdefined_202141_1967573533)(Tident201010* symbol0);
  N_NIMCALL(void, jumptodirective_292150_930198375)(Tlexer287174* L0, Ttoken287170* tok0, Tjumpdest292147 dest0);
  N_NIMCALL(void, doelse_292157_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(void, doelif_292172_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(void, doend_292130_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(void, msgwriteln_194450_155036129)(NimStringDesc* s0, Msgflag194444Set flags0);
  N_NIMCALL(NimStringDesc*, nstFormat)(NimStringDesc* f0, Stringtableobj153608* t0, Formatflag153702Set flags0);
  N_NIMCALL(NimStringDesc*, toktostr_287293_689113469)(Ttoken287170* tok0);
  N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s0);
  N_NIMCALL(void, putenv_136638_2125978480)(NimStringDesc* key0, NimStringDesc* val0);
  static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
  static N_INLINE(void, copymem_7485_1689653243)(void* dest0, void* source0, NI size0);
  N_NIMCALL(NimStringDesc*, getenv_136625_2125978480)(NimStringDesc* key0);
  N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
  N_NIMCALL(void, parseassignment_292318_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(Tident201010*, getident_201441_791273810)(NimStringDesc* identifier0);
  static N_INLINE(Tlineinfo193336, getlineinfo_287206_689113469)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(Tlineinfo193336, newlineinfo_194014_155036129)(NI32 fileinfoidx0, NI line0, NI col0);
  N_NIMCALL(void, checksymbol_292293_930198375)(Tlexer287174* L0, Ttoken287170* tok0);
  N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
  N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0);
  N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest0, NI addlen0);
  N_NIMCALL(void, processswitch_282016_2004575671)(NimStringDesc* switch_282018_2004575671, NimStringDesc* arg0, Tcmdlinepass282008 pass0, Tlineinfo193336 info0);
  N_NIMCALL(void, closelexer_287347_689113469)(Tlexer287174* lex0);
  N_NIMCALL(void, rawmessage_196612_155036129)(Tmsgkind193002 msg0, NimStringDesc* arg0);
  N_NIMCALL(NimStringDesc*, getsystemconfigpath_292433_930198375)(NimStringDesc* filename0);
  N_NIMCALL(NimStringDesc*, getprefixdir_171305_2607990831)(void);
  N_NIMCALL(NimStringDesc*, nosjoinPathOpenArray)(NimStringDesc** parts0, NI parts0Len0);
  N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0);
  N_NIMCALL(NimStringDesc*, getuserconfigpath_292427_930198375)(NimStringDesc* filename0);
  N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0);
  N_NIMCALL(NimStringDesc*, nosgetConfigDir)(void);
  N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
  N_NIMCALL(NimStringDesc*, HEX2F_129265_2125978480)(NimStringDesc* head0, NimStringDesc* tail0);
  N_NIMCALL(NIM_BOOL, nosisRootDir)(NimStringDesc* path0);
  N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path0);
  N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_79210_1689653243, NI last0);
  N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
  N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename0, NimStringDesc* ext0);
  static N_INLINE(NIM_BOOL, fileexists_132604_2125978480)(NimStringDesc* filename0);
  STRING_LITERAL(T930198375_4, "@", 1);
  STRING_LITERAL(T930198375_5, "\')\'", 3);
  STRING_LITERAL(T930198375_6, "\':\'", 3);
  STRING_LITERAL(T930198375_7, "@if", 3);
  STRING_LITERAL(T930198375_8, "@end", 4);
  STRING_LITERAL(T930198375_9, "putenv", 6);
  STRING_LITERAL(T930198375_10, "prependenv", 10);
  STRING_LITERAL(T930198375_11, "appendenv", 9);
  STRING_LITERAL(T930198375_12, "-", 1);
  STRING_LITERAL(T930198375_13, "--", 2);
  STRING_LITERAL(T930198375_14, "", 0);
  STRING_LITERAL(T930198375_15, "\']\'", 3);
  STRING_LITERAL(T930198375_16, "%=", 2);
  STRING_LITERAL(T930198375_17, "&", 1);
  STRING_LITERAL(T930198375_18, "config", 6);
  STRING_LITERAL(T930198375_19, "etc", 3);
  STRING_LITERAL(T930198375_20, "/etc/", 5);
  STRING_LITERAL(T930198375_21, "nimcfg", 6);
  STRING_LITERAL(T930198375_22, "nim.cfg", 7);
  STRING_LITERAL(T930198375_23, "nimrod.cfg", 10);
  TY292111* condstack_292128_930198375;
  extern TNimType NTI130; /* bool */
  TNimType NTI292111; /* seq[bool] */
  extern Gcheap49818 gch_49858_1689653243;
  extern Tglobaloption171013Set gglobaloptions_171130_2607990831;
  extern TNimType NTI287174; /* TLexer */
  extern Stringtableobj153608* gconfigvars_171204_2607990831;
  extern NimStringDesc* gprojectpath_171210_2607990831;
  extern NimStringDesc* gprojectname_171209_2607990831;
  extern NimStringDesc* gprojectfull_171211_2607990831;
  N_NIMCALL(void, T930198375_2)(void* p, NI op) {
  	TY292111* a;
  	NI LOC1;
  	a = (TY292111*)p;
  	LOC1 = (NI)0;
  	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
  	}
  }
  N_NIMCALL(void, T930198375_3)(void) {
  	nimGCvisit((void*)condstack_292128_930198375, 0);
  }
  
  static N_INLINE(Cell47305*, usrtocell_51440_1689653243)(void* usr0) {
  	Cell47305* result0;
  	result0 = (Cell47305*)0;
  	result0 = ((Cell47305*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((NI)sizeof(Cell47305))))));
  	return result0;
  }
  
  static N_INLINE(void, rtladdzct_52601_1689653243)(Cell47305* c0) {
  	addzct_51417_1689653243((&gch_49858_1689653243.zct), c0);
  }
  
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
  	Cell47305* c0;
  	c0 = usrtocell_51440_1689653243(p0);
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
  		rtladdzct_52601_1689653243(c0);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, ppgettok_292002_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	rawgettok_290824_689113469(L0, tok0);
  	{
  		while (1) {
  			if (!((*tok0).toktype == ((Ttoktype287016) 113))) goto LA2;
  			rawgettok_290824_689113469(L0, tok0);
  		} LA2: ;
  	}
  }
  
  static N_INLINE(NIM_BOOL, equalmem_7495_1689653243)(void* a0, void* b0, NI size0) {
  	NIM_BOOL result0;
  	int LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (int)0;
  	LOC1 = memcmp(a0, b0, ((size_t) (size0)));
  	result0 = (LOC1 == ((NI32) 0));
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC11;
  {	result0 = (NIM_BOOL)0;
  	{
  		if (!(a0 == b0)) goto LA3;
  		result0 = NIM_TRUE;
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = (a0 == NIM_NIL);
  		if (LOC7) goto LA8;
  		LOC7 = (b0 == NIM_NIL);
  		LA8: ;
  		if (!LOC7) goto LA9;
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	LA9: ;
  	LOC11 = (NIM_BOOL)0;
  	LOC11 = ((*a0).Sup.len == (*b0).Sup.len);
  	if (!(LOC11)) goto LA12;
  	LOC11 = equalmem_7495_1689653243(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len)));
  	LA12: ;
  	result0 = LOC11;
  	goto BeforeRet;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, parseatom_292026_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	{
  		if (!((*tok0).toktype == ((Ttoktype287016) 93))) goto LA3;
  		ppgettok_292002_930198375(L0, tok0);
  		result0 = parseexpr_292020_930198375(L0, tok0);
  		{
  			if (!((*tok0).toktype == ((Ttoktype287016) 94))) goto LA7;
  			ppgettok_292002_930198375(L0, tok0);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_5));
  		}
  		LA5: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		NIM_BOOL LOC13;
  		if (!((*(*tok0).ident).Sup.id == ((NI) 45))) goto LA11;
  		ppgettok_292002_930198375(L0, tok0);
  		LOC13 = (NIM_BOOL)0;
  		LOC13 = parseatom_292026_930198375(L0, tok0);
  		result0 = !(LOC13);
  	}
  	goto LA1;
  	LA11: ;
  	{
  		result0 = isdefined_202141_1967573533((*tok0).ident);
  		ppgettok_292002_930198375(L0, tok0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, parseandexpr_292060_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = parseatom_292026_930198375(L0, tok0);
  	{
  		while (1) {
  			NIM_BOOL b0;
  			NIM_BOOL LOC3;
  			if (!((*(*tok0).ident).Sup.id == ((NI) 2))) goto LA2;
  			ppgettok_292002_930198375(L0, tok0);
  			b0 = parseatom_292026_930198375(L0, tok0);
  			LOC3 = (NIM_BOOL)0;
  			LOC3 = result0;
  			if (!(LOC3)) goto LA4;
  			LOC3 = b0;
  			LA4: ;
  			result0 = LOC3;
  		} LA2: ;
  	}
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, parseexpr_292020_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = parseandexpr_292060_930198375(L0, tok0);
  	{
  		while (1) {
  			NIM_BOOL b0;
  			NIM_BOOL LOC3;
  			if (!((*(*tok0).ident).Sup.id == ((NI) 49))) goto LA2;
  			ppgettok_292002_930198375(L0, tok0);
  			b0 = parseandexpr_292060_930198375(L0, tok0);
  			LOC3 = (NIM_BOOL)0;
  			LOC3 = result0;
  			if (LOC3) goto LA4;
  			LOC3 = b0;
  			LA4: ;
  			result0 = LOC3;
  		} LA2: ;
  	}
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, evalppif_292095_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	ppgettok_292002_930198375(L0, tok0);
  	result0 = parseexpr_292020_930198375(L0, tok0);
  	{
  		if (!((*tok0).toktype == ((Ttoktype287016) 107))) goto LA3;
  		ppgettok_292002_930198375(L0, tok0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_6));
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, doelse_292157_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	{
  		if (!((condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1) < ((NI) 0))) goto LA3;
  		lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_7));
  	}
  	LA3: ;
  	ppgettok_292002_930198375(L0, tok0);
  	{
  		if (!((*tok0).toktype == ((Ttoktype287016) 107))) goto LA7;
  		ppgettok_292002_930198375(L0, tok0);
  	}
  	LA7: ;
  	{
  		if (!condstack_292128_930198375->data[(condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1)]) goto LA11;
  		jumptodirective_292150_930198375(L0, tok0, ((Tjumpdest292147) 0));
  	}
  	LA11: ;
  }
  
  N_NIMCALL(void, doelif_292172_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	NIM_BOOL res0;
  	{
  		if (!((condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1) < ((NI) 0))) goto LA3;
  		lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_7));
  	}
  	LA3: ;
  	res0 = evalppif_292095_930198375(L0, tok0);
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = condstack_292128_930198375->data[(condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1)];
  		if (LOC7) goto LA8;
  		LOC7 = !(res0);
  		LA8: ;
  		if (!LOC7) goto LA9;
  		jumptodirective_292150_930198375(L0, tok0, ((Tjumpdest292147) 1));
  	}
  	goto LA5;
  	LA9: ;
  	{
  		condstack_292128_930198375->data[(condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1)] = NIM_TRUE;
  	}
  	LA5: ;
  }
  
  N_NIMCALL(void, doend_292130_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	{
  		if (!((condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1) < ((NI) 0))) goto LA3;
  		lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_7));
  	}
  	LA3: ;
  	ppgettok_292002_930198375(L0, tok0);
  	condstack_292128_930198375 = (TY292111*) setLengthSeq(&(condstack_292128_930198375)->Sup, sizeof(NIM_BOOL), ((NI) ((condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1))));
  }
  
  N_NIMCALL(void, jumptodirective_292150_930198375)(Tlexer287174* L0, Ttoken287170* tok0, Tjumpdest292147 dest0) {
  	NI nestedifs0;
  	nestedifs0 = ((NI) 0);
  	{
  		while (1) {
  			{
  				NIM_BOOL LOC5;
  				Tspecialword277003 LOC9;
  				LOC5 = (NIM_BOOL)0;
  				LOC5 = !(((*tok0).ident == NIM_NIL));
  				if (!(LOC5)) goto LA6;
  				LOC5 = eqStrings((*(*tok0).ident).s, ((NimStringDesc*) &T930198375_4));
  				LA6: ;
  				if (!LOC5) goto LA7;
  				ppgettok_292002_930198375(L0, tok0);
  				LOC9 = (Tspecialword277003)0;
  				LOC9 = whichkeyword_277365_1391470768((*tok0).ident);
  				switch (LOC9) {
  				case ((Tspecialword277003) 31):
  				{
  					nestedifs0 += ((NI) 1);
  				}
  				break;
  				case ((Tspecialword277003) 21):
  				{
  					{
  						NIM_BOOL LOC14;
  						LOC14 = (NIM_BOOL)0;
  						LOC14 = (dest0 == ((Tjumpdest292147) 1));
  						if (!(LOC14)) goto LA15;
  						LOC14 = (nestedifs0 == ((NI) 0));
  						LA15: ;
  						if (!LOC14) goto LA16;
  						doelse_292157_930198375(L0, tok0);
  						goto LA1;
  					}
  					LA16: ;
  				}
  				break;
  				case ((Tspecialword277003) 20):
  				{
  					{
  						NIM_BOOL LOC21;
  						LOC21 = (NIM_BOOL)0;
  						LOC21 = (dest0 == ((Tjumpdest292147) 1));
  						if (!(LOC21)) goto LA22;
  						LOC21 = (nestedifs0 == ((NI) 0));
  						LA22: ;
  						if (!LOC21) goto LA23;
  						doelif_292172_930198375(L0, tok0);
  						goto LA1;
  					}
  					LA23: ;
  				}
  				break;
  				case ((Tspecialword277003) 22):
  				{
  					{
  						if (!(nestedifs0 == ((NI) 0))) goto LA28;
  						doend_292130_930198375(L0, tok0);
  						goto LA1;
  					}
  					LA28: ;
  					{
  						if (!(((NI) 0) < nestedifs0)) goto LA32;
  						nestedifs0 -= ((NI) 1);
  					}
  					LA32: ;
  				}
  				break;
  				default:
  				{
  				}
  				break;
  				}
  				ppgettok_292002_930198375(L0, tok0);
  			}
  			goto LA3;
  			LA7: ;
  			{
  				if (!((*tok0).toktype == ((Ttoktype287016) 1))) goto LA36;
  				lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_8));
  			}
  			goto LA3;
  			LA36: ;
  			{
  				ppgettok_292002_930198375(L0, tok0);
  			}
  			LA3: ;
  		}
  	} LA1: ;
  }
  
  static N_INLINE(void, copymem_7485_1689653243)(void* dest0, void* source0, NI size0) {
  	void* LOC1;
  	LOC1 = (void*)0;
  	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
  }
  
  static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
  	copymem_7485_1689653243(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
  	(*dest0).Sup.len += (*src0).Sup.len;
  }
  
  N_NIMCALL(void, parsedirective_292245_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	Tspecialword277003 LOC1;
  	ppgettok_292002_930198375(L0, tok0);
  	LOC1 = (Tspecialword277003)0;
  	LOC1 = whichkeyword_277365_1391470768((*tok0).ident);
  	switch (LOC1) {
  	case ((Tspecialword277003) 31):
  	{
  		NIM_BOOL res0;
  		condstack_292128_930198375 = (TY292111*) setLengthSeq(&(condstack_292128_930198375)->Sup, sizeof(NIM_BOOL), ((NI) ((NI)((condstack_292128_930198375 ? condstack_292128_930198375->Sup.len : 0) + ((NI) 1)))));
  		res0 = evalppif_292095_930198375(L0, tok0);
  		condstack_292128_930198375->data[(condstack_292128_930198375 ? (condstack_292128_930198375->Sup.len-1) : -1)] = res0;
  		{
  			if (!!(res0)) goto LA5;
  			jumptodirective_292150_930198375(L0, tok0, ((Tjumpdest292147) 1));
  		}
  		LA5: ;
  	}
  	break;
  	case ((Tspecialword277003) 20):
  	{
  		doelif_292172_930198375(L0, tok0);
  	}
  	break;
  	case ((Tspecialword277003) 21):
  	{
  		doelse_292157_930198375(L0, tok0);
  	}
  	break;
  	case ((Tspecialword277003) 22):
  	{
  		doend_292130_930198375(L0, tok0);
  	}
  	break;
  	case ((Tspecialword277003) 185):
  	{
  		NimStringDesc* LOC11;
  		NimStringDesc* LOC12;
  		ppgettok_292002_930198375(L0, tok0);
  		LOC11 = (NimStringDesc*)0;
  		LOC11 = toktostr_287293_689113469((&(*tok0)));
  		LOC12 = (NimStringDesc*)0;
  		LOC12 = nstFormat(LOC11, gconfigvars_171204_2607990831, 5);
  		msgwriteln_194450_155036129(LOC12, 0);
  		ppgettok_292002_930198375(L0, tok0);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC14;
  		LOC14 = (NimStringDesc*)0;
  		LOC14 = nsuNormalize((*(*tok0).ident).s);
  		if (eqStrings(LOC14, ((NimStringDesc*) &T930198375_9))) goto LA15;
  		if (eqStrings(LOC14, ((NimStringDesc*) &T930198375_10))) goto LA16;
  		if (eqStrings(LOC14, ((NimStringDesc*) &T930198375_11))) goto LA17;
  		goto LA18;
  		LA15: ;
  		{
  			NimStringDesc* key0;
  			NimStringDesc* LOC21;
  			ppgettok_292002_930198375(L0, tok0);
  			key0 = toktostr_287293_689113469((&(*tok0)));
  			ppgettok_292002_930198375(L0, tok0);
  			LOC21 = (NimStringDesc*)0;
  			LOC21 = toktostr_287293_689113469((&(*tok0)));
  			putenv_136638_2125978480(key0, LOC21);
  			ppgettok_292002_930198375(L0, tok0);
  		}
  		goto LA19;
  		LA16: ;
  		{
  			NimStringDesc* key0;
  			NimStringDesc* LOC23;
  			NimStringDesc* LOC24;
  			NimStringDesc* LOC25;
  			ppgettok_292002_930198375(L0, tok0);
  			key0 = toktostr_287293_689113469((&(*tok0)));
  			ppgettok_292002_930198375(L0, tok0);
  			LOC23 = (NimStringDesc*)0;
  			LOC24 = (NimStringDesc*)0;
  			LOC24 = toktostr_287293_689113469((&(*tok0)));
  			LOC25 = (NimStringDesc*)0;
  			LOC25 = getenv_136625_2125978480(key0);
  			LOC23 = rawNewString(LOC24->Sup.len + LOC25->Sup.len + 0);
  appendString(LOC23, LOC24);
  appendString(LOC23, LOC25);
  			putenv_136638_2125978480(key0, LOC23);
  			ppgettok_292002_930198375(L0, tok0);
  		}
  		goto LA19;
  		LA17: ;
  		{
  			NimStringDesc* key0;
  			NimStringDesc* LOC27;
  			NimStringDesc* LOC28;
  			NimStringDesc* LOC29;
  			ppgettok_292002_930198375(L0, tok0);
  			key0 = toktostr_287293_689113469((&(*tok0)));
  			ppgettok_292002_930198375(L0, tok0);
  			LOC27 = (NimStringDesc*)0;
  			LOC28 = (NimStringDesc*)0;
  			LOC28 = getenv_136625_2125978480(key0);
  			LOC29 = (NimStringDesc*)0;
  			LOC29 = toktostr_287293_689113469((&(*tok0)));
  			LOC27 = rawNewString(LOC28->Sup.len + LOC29->Sup.len + 0);
  appendString(LOC27, LOC28);
  appendString(LOC27, LOC29);
  			putenv_136638_2125978480(key0, LOC27);
  			ppgettok_292002_930198375(L0, tok0);
  		}
  		goto LA19;
  		LA18: ;
  		{
  			NimStringDesc* LOC31;
  			LOC31 = (NimStringDesc*)0;
  			LOC31 = toktostr_287293_689113469((&(*tok0)));
  			lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 31), LOC31);
  		}
  		LA19: ;
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, conftok_292274_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	ppgettok_292002_930198375(L0, tok0);
  	{
  		while (1) {
  			NIM_BOOL LOC3;
  			LOC3 = (NIM_BOOL)0;
  			LOC3 = !(((*tok0).ident == NIM_NIL));
  			if (!(LOC3)) goto LA4;
  			LOC3 = eqStrings((*(*tok0).ident).s, ((NimStringDesc*) &T930198375_4));
  			LA4: ;
  			if (!LOC3) goto LA2;
  			parsedirective_292245_930198375(L0, tok0);
  		} LA2: ;
  	}
  }
  
  static N_INLINE(Tlineinfo193336, getlineinfo_287206_689113469)(Tlexer287174* L0, Ttoken287170* tok0) {
  	Tlineinfo193336 result0;
  	memset((void*)(&result0), 0, sizeof(result0));
  	result0 = newlineinfo_194014_155036129((*L0).fileidx, (*tok0).line, (*tok0).col);
  	return result0;
  }
  
  N_NIMCALL(void, checksymbol_292293_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	{
  		NimStringDesc* LOC5;
  		if (!!(((*tok0).toktype >= ((Ttoktype287016) 2) && (*tok0).toktype <= ((Ttoktype287016) 72) || (*tok0).toktype >= ((Ttoktype287016) 87) && (*tok0).toktype <= ((Ttoktype287016) 89)))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = toktostr_287293_689113469(tok0);
  		lexmessage_287378_689113469(L0, ((Tmsgkind193002) 20), LOC5);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, parseassignment_292318_930198375)(Tlexer287174* L0, Ttoken287170* tok0) {
  	Tlineinfo193336 info0;
  	NimStringDesc* s0;
  	NimStringDesc* val0;
  	NIM_BOOL percent0;
  	Tident201010* LOC22;
  	{
  		NIM_BOOL LOC3;
  		Tident201010* LOC4;
  		Tident201010* LOC6;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (Tident201010*)0;
  		LOC4 = getident_201441_791273810(((NimStringDesc*) &T930198375_12));
  		LOC3 = ((*(*tok0).ident).Sup.id == (*LOC4).Sup.id);
  		if (LOC3) goto LA5;
  		LOC6 = (Tident201010*)0;
  		LOC6 = getident_201441_791273810(((NimStringDesc*) &T930198375_13));
  		LOC3 = ((*(*tok0).ident).Sup.id == (*LOC6).Sup.id);
  		LA5: ;
  		if (!LOC3) goto LA7;
  		conftok_292274_930198375(L0, tok0);
  	}
  	LA7: ;
  	info0 = getlineinfo_287206_689113469((&(*L0)), (&(*tok0)));
  	checksymbol_292293_930198375((&(*L0)), (&(*tok0)));
  	s0 = toktostr_287293_689113469((&(*tok0)));
  	conftok_292274_930198375(L0, tok0);
  	val0 = copyString(((NimStringDesc*) &T930198375_14));
  	{
  		while (1) {
  			NimStringDesc* LOC11;
  			if (!((*tok0).toktype == ((Ttoktype287016) 110))) goto LA10;
  			s0 = addChar(s0, 46);
  			conftok_292274_930198375(L0, tok0);
  			checksymbol_292293_930198375((&(*L0)), (&(*tok0)));
  			LOC11 = (NimStringDesc*)0;
  			LOC11 = toktostr_287293_689113469((&(*tok0)));
  			s0 = resizeString(s0, LOC11->Sup.len + 0);
  appendString(s0, LOC11);
  			conftok_292274_930198375(L0, tok0);
  		} LA10: ;
  	}
  	{
  		NimStringDesc* LOC16;
  		if (!((*tok0).toktype == ((Ttoktype287016) 95))) goto LA14;
  		conftok_292274_930198375(L0, tok0);
  		checksymbol_292293_930198375((&(*L0)), (&(*tok0)));
  		LOC16 = (NimStringDesc*)0;
  		LOC16 = toktostr_287293_689113469((&(*tok0)));
  		val0 = resizeString(val0, LOC16->Sup.len + 0);
  appendString(val0, LOC16);
  		conftok_292274_930198375(L0, tok0);
  		{
  			if (!((*tok0).toktype == ((Ttoktype287016) 96))) goto LA19;
  			conftok_292274_930198375(L0, tok0);
  		}
  		goto LA17;
  		LA19: ;
  		{
  			lexmessage_287378_689113469((&(*L0)), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_15));
  		}
  		LA17: ;
  		val0 = addChar(val0, 93);
  	}
  	LA14: ;
  	LOC22 = (Tident201010*)0;
  	LOC22 = getident_201441_791273810(((NimStringDesc*) &T930198375_16));
  	percent0 = ((*(*tok0).ident).Sup.id == (*LOC22).Sup.id);
  	{
  		NIM_BOOL LOC25;
  		NimStringDesc* LOC33;
  		LOC25 = (NIM_BOOL)0;
  		LOC25 = ((*tok0).toktype == ((Ttoktype287016) 107) || (*tok0).toktype == ((Ttoktype287016) 109));
  		if (LOC25) goto LA26;
  		LOC25 = percent0;
  		LA26: ;
  		if (!LOC25) goto LA27;
  		{
  			if (!(((NI) 0) < (val0 ? val0->Sup.len : 0))) goto LA31;
  			val0 = addChar(val0, 58);
  		}
  		LA31: ;
  		conftok_292274_930198375(L0, tok0);
  		checksymbol_292293_930198375((&(*L0)), (&(*tok0)));
  		LOC33 = (NimStringDesc*)0;
  		LOC33 = toktostr_287293_689113469((&(*tok0)));
  		val0 = resizeString(val0, LOC33->Sup.len + 0);
  appendString(val0, LOC33);
  		conftok_292274_930198375(L0, tok0);
  		{
  			while (1) {
  				NIM_BOOL LOC36;
  				Tident201010* LOC38;
  				NimStringDesc* LOC39;
  				LOC36 = (NIM_BOOL)0;
  				LOC36 = !(((*tok0).ident == NIM_NIL));
  				if (!(LOC36)) goto LA37;
  				LOC38 = (Tident201010*)0;
  				LOC38 = getident_201441_791273810(((NimStringDesc*) &T930198375_17));
  				LOC36 = ((*(*tok0).ident).Sup.id == (*LOC38).Sup.id);
  				LA37: ;
  				if (!LOC36) goto LA35;
  				conftok_292274_930198375(L0, tok0);
  				checksymbol_292293_930198375((&(*L0)), (&(*tok0)));
  				LOC39 = (NimStringDesc*)0;
  				LOC39 = toktostr_287293_689113469((&(*tok0)));
  				val0 = resizeString(val0, LOC39->Sup.len + 0);
  appendString(val0, LOC39);
  				conftok_292274_930198375(L0, tok0);
  			} LA35: ;
  		}
  	}
  	LA27: ;
  	{
  		NimStringDesc* LOC44;
  		if (!percent0) goto LA42;
  		LOC44 = (NimStringDesc*)0;
  		LOC44 = nstFormat(val0, gconfigvars_171204_2607990831, 3);
  		processswitch_282016_2004575671(s0, LOC44, ((Tcmdlinepass282008) 2), info0);
  	}
  	goto LA40;
  	LA42: ;
  	{
  		processswitch_282016_2004575671(s0, val0, ((Tcmdlinepass282008) 2), info0);
  	}
  	LA40: ;
  }
  
  N_NIMCALL(void, readconfigfile_292381_930198375)(NimStringDesc* filename0) {
  	Tlexer287174 L0;
  	Ttoken287170 tok0;
  	Tllstream284204* stream0;
  	memset((void*)(&L0), 0, sizeof(L0));
  	L0.Sup.Sup.m_type = (&NTI287174);
  	memset((void*)(&tok0), 0, sizeof(tok0));
  	stream0 = (Tllstream284204*)0;
  	stream0 = llstreamopen_284242_597494479(filename0, ((Filemode13009) 0));
  	{
  		if (!!((stream0 == NIM_NIL))) goto LA3;
  		inittoken_287318_689113469((&tok0));
  		openlexer_287341_689113469((&L0), filename0, stream0);
  		tok0.toktype = ((Ttoktype287016) 1);
  		conftok_292274_930198375((&L0), (&tok0));
  		{
  			while (1) {
  				if (!!((tok0.toktype == ((Ttoktype287016) 1)))) goto LA6;
  				parseassignment_292318_930198375((&L0), (&tok0));
  			} LA6: ;
  		}
  		{
  			if (!(((NI) 0) < (condstack_292128_930198375 ? condstack_292128_930198375->Sup.len : 0))) goto LA9;
  			lexmessage_287378_689113469((&L0), ((Tmsgkind193002) 24), ((NimStringDesc*) &T930198375_8));
  		}
  		LA9: ;
  		closelexer_287347_689113469((&L0));
  		rawmessage_196612_155036129(((Tmsgkind193002) 279), filename0);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(NimStringDesc*, getsystemconfigpath_292433_930198375)(NimStringDesc* filename0) {
  	NimStringDesc* result0;
  	NimStringDesc* p0;
  	TY195140 LOC1;
  	result0 = (NimStringDesc*)0;
  	p0 = getprefixdir_171305_2607990831();
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = copyString(p0);
  	LOC1[1] = copyString(((NimStringDesc*) &T930198375_18));
  	LOC1[2] = copyString(filename0);
  	result0 = nosjoinPathOpenArray(LOC1, 3);
  	{
  		NIM_BOOL LOC4;
  		TY195140 LOC7;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = nosexistsFile(result0);
  		if (!!(LOC4)) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = copyString(p0);
  		LOC7[1] = copyString(((NimStringDesc*) &T930198375_19));
  		LOC7[2] = copyString(filename0);
  		result0 = nosjoinPathOpenArray(LOC7, 3);
  	}
  	LA5: ;
  	{
  		NIM_BOOL LOC10;
  		NimStringDesc* LOC13;
  		LOC10 = (NIM_BOOL)0;
  		LOC10 = nosexistsFile(result0);
  		if (!!(LOC10)) goto LA11;
  		LOC13 = (NimStringDesc*)0;
  		LOC13 = rawNewString(filename0->Sup.len + 5);
  appendString(LOC13, ((NimStringDesc*) &T930198375_20));
  appendString(LOC13, filename0);
  		result0 = LOC13;
  	}
  	LA11: ;
  	return result0;
  }
  
  N_NIMCALL(NimStringDesc*, getuserconfigpath_292427_930198375)(NimStringDesc* filename0) {
  	NimStringDesc* result0;
  	NimStringDesc* LOC1;
  	result0 = (NimStringDesc*)0;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = nosgetConfigDir();
  	result0 = nosjoinPath(LOC1, filename0);
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, fileexists_132604_2125978480)(NimStringDesc* filename0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = nosexistsFile(filename0);
  	return result0;
  }
  
  N_NIMCALL(void, loadconfigs_292603_930198375)(NimStringDesc* cfg0) {
  	NimStringDesc* pd0;
  	setdefaultlibpath_171308_2607990831();
  	{
  		NimStringDesc* LOC5;
  		if (!!(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 16))&63U)))!=0))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = getsystemconfigpath_292433_930198375(cfg0);
  		readconfigfile_292381_930198375(LOC5);
  	}
  	LA3: ;
  	{
  		NimStringDesc* LOC10;
  		if (!!(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 18))&63U)))!=0))) goto LA8;
  		LOC10 = (NimStringDesc*)0;
  		LOC10 = getuserconfigpath_292427_930198375(cfg0);
  		readconfigfile_292381_930198375(LOC10);
  	}
  	LA8: ;
  	{
  		if (!(((NI) 0) < (gprojectpath_171210_2607990831 ? gprojectpath_171210_2607990831->Sup.len : 0))) goto LA13;
  		pd0 = copyString(gprojectpath_171210_2607990831);
  	}
  	goto LA11;
  	LA13: ;
  	{
  		pd0 = nosgetCurrentDir();
  	}
  	LA11: ;
  	{
  		if (!!(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 19))&63U)))!=0))) goto LA18;
  		{
  			NimStringDesc* dir_292637_930198375;
  			dir_292637_930198375 = (NimStringDesc*)0;
  			{
  				NimStringDesc* current_292654_930198375;
  				if (!NIM_FALSE) goto LA23;
  				current_292654_930198375 = copyString(pd0);
  				{
  					NimStringDesc* LOC29;
  					if (!NIM_FALSE) goto LA27;
  					dir_292637_930198375 = pd0;
  					LOC29 = (NimStringDesc*)0;
  					LOC29 = HEX2F_129265_2125978480(dir_292637_930198375, cfg0);
  					readconfigfile_292381_930198375(LOC29);
  				}
  				LA27: ;
  				{
  					while (1) {
  						NimStringDesc* LOC37;
  						{
  							NIM_BOOL LOC34;
  							LOC34 = (NIM_BOOL)0;
  							LOC34 = nosisRootDir(current_292654_930198375);
  							if (!LOC34) goto LA35;
  							goto LA30;
  						}
  						LA35: ;
  						current_292654_930198375 = nosparentDir(current_292654_930198375);
  						dir_292637_930198375 = current_292654_930198375;
  						LOC37 = (NimStringDesc*)0;
  						LOC37 = HEX2F_129265_2125978480(dir_292637_930198375, cfg0);
  						readconfigfile_292381_930198375(LOC37);
  					}
  				} LA30: ;
  			}
  			goto LA21;
  			LA23: ;
  			{
  				{
  					NI i_292656_930198375;
  					NI HEX3Atmp_292658_930198375;
  					NI res_292660_930198375;
  					i_292656_930198375 = (NI)0;
  					HEX3Atmp_292658_930198375 = (NI)0;
  					HEX3Atmp_292658_930198375 = (NI)((pd0 ? pd0->Sup.len : 0) - ((NI) 2));
  					res_292660_930198375 = ((NI) 0);
  					{
  						while (1) {
  							if (!(res_292660_930198375 <= HEX3Atmp_292658_930198375)) goto LA41;
  							i_292656_930198375 = res_292660_930198375;
  							{
  								NIM_BOOL LOC44;
  								NIM_BOOL LOC46;
  								NimStringDesc* LOC50;
  								LOC44 = (NIM_BOOL)0;
  								LOC44 = (((NU8)(pd0->data[i_292656_930198375])) == ((NU8)(47)) || ((NU8)(pd0->data[i_292656_930198375])) == ((NU8)(47)));
  								if (!(LOC44)) goto LA45;
  								LOC46 = (NIM_BOOL)0;
  								LOC46 = (i_292656_930198375 == ((NI) 0));
  								if (LOC46) goto LA47;
  								LOC46 = !((((NU8)(pd0->data[(NI)(i_292656_930198375 - ((NI) 1))])) == ((NU8)(47)) || ((NU8)(pd0->data[(NI)(i_292656_930198375 - ((NI) 1))])) == ((NU8)(47))));
  								LA47: ;
  								LOC44 = LOC46;
  								LA45: ;
  								if (!LOC44) goto LA48;
  								dir_292637_930198375 = copyStrLast(pd0, ((NI) 0), i_292656_930198375);
  								LOC50 = (NimStringDesc*)0;
  								LOC50 = HEX2F_129265_2125978480(dir_292637_930198375, cfg0);
  								readconfigfile_292381_930198375(LOC50);
  							}
  							LA48: ;
  							res_292660_930198375 += ((NI) 1);
  						} LA41: ;
  					}
  				}
  				{
  					NimStringDesc* LOC55;
  					if (!NIM_FALSE) goto LA53;
  					dir_292637_930198375 = pd0;
  					LOC55 = (NimStringDesc*)0;
  					LOC55 = HEX2F_129265_2125978480(dir_292637_930198375, cfg0);
  					readconfigfile_292381_930198375(LOC55);
  				}
  				LA53: ;
  			}
  			LA21: ;
  		}
  	}
  	LA18: ;
  	{
  		NimStringDesc* LOC60;
  		if (!!(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 17))&63U)))!=0))) goto LA58;
  		LOC60 = (NimStringDesc*)0;
  		LOC60 = HEX2F_129265_2125978480(pd0, cfg0);
  		readconfigfile_292381_930198375(LOC60);
  		{
  			NimStringDesc* projectconfig0;
  			if (!!(((gprojectname_171209_2607990831 ? gprojectname_171209_2607990831->Sup.len : 0) == ((NI) 0)))) goto LA63;
  			projectconfig0 = noschangeFileExt(gprojectfull_171211_2607990831, ((NimStringDesc*) &T930198375_21));
  			{
  				NIM_BOOL LOC67;
  				LOC67 = (NIM_BOOL)0;
  				LOC67 = fileexists_132604_2125978480(projectconfig0);
  				if (!!(LOC67)) goto LA68;
  				projectconfig0 = noschangeFileExt(gprojectfull_171211_2607990831, ((NimStringDesc*) &T930198375_22));
  			}
  			LA68: ;
  			{
  				NIM_BOOL LOC72;
  				LOC72 = (NIM_BOOL)0;
  				LOC72 = fileexists_132604_2125978480(projectconfig0);
  				if (!!(LOC72)) goto LA73;
  				projectconfig0 = noschangeFileExt(gprojectfull_171211_2607990831, ((NimStringDesc*) &T930198375_23));
  				{
  					NIM_BOOL LOC77;
  					LOC77 = (NIM_BOOL)0;
  					LOC77 = fileexists_132604_2125978480(projectconfig0);
  					if (!LOC77) goto LA78;
  					rawmessage_196612_155036129(((Tmsgkind193002) 241), projectconfig0);
  				}
  				LA78: ;
  			}
  			LA73: ;
  			readconfigfile_292381_930198375(projectconfig0);
  		}
  		LA63: ;
  	}
  	LA58: ;
  }
  NIM_EXTERNC N_NOINLINE(void, compiler_nimconfInit000)(void) {
  nimRegisterGlobalMarker(T930198375_3);
  	if (condstack_292128_930198375) nimGCunrefNoCycle(condstack_292128_930198375);
  	condstack_292128_930198375 = (TY292111*) newSeqRC1((&NTI292111), 0);
  }
  
  NIM_EXTERNC N_NOINLINE(void, compiler_nimconfDatInit000)(void) {
  NTI292111.size = sizeof(TY292111*);
  NTI292111.kind = 24;
  NTI292111.base = (&NTI130);
  NTI292111.flags = 2;
  NTI292111.marker = T930198375_2;
  }
  
  