/* Generated by Nimrod Compiler v0.9.5 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, i386, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing  -I/build/nimrod/src/nimrod/lib -o compiler/nimcache/commands.o compiler/nimcache/commands.c */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>

#include <stdlib.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tinfoos142044 tinfoos142044;
typedef struct tinfocpu142453 tinfocpu142453;
typedef struct tlineinfo163527 tlineinfo163527;
typedef struct tlinkedlist118023 tlinkedlist118023;
typedef struct tlistentry118017 tlistentry118017;
typedef struct tcell41090 tcell41090;
typedef struct TNimType TNimType;
typedef struct tcellseq41106 tcellseq41106;
typedef struct tgcheap43016 tgcheap43016;
typedef struct tcellset41102 tcellset41102;
typedef struct tpagedesc41098 tpagedesc41098;
typedef struct tmemregion23410 tmemregion23410;
typedef struct tsmallchunk22638 tsmallchunk22638;
typedef struct tllchunk23404 tllchunk23404;
typedef struct tbigchunk22640 tbigchunk22640;
typedef struct tintset22615 tintset22615;
typedef struct ttrunk22611 ttrunk22611;
typedef struct tavlnode23408 tavlnode23408;
typedef struct tgcstat43014 tgcstat43014;
typedef struct TY110805 TY110805;
typedef struct TNimObject TNimObject;
typedef struct TNimNode TNimNode;
typedef struct tbasechunk22636 tbasechunk22636;
typedef struct tfreecell22628 tfreecell22628;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NimStringDesc* TY173034[3];
struct tinfoos142044 {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NU8 Field12;
};
typedef tinfoos142044 TY142064[23];
struct tinfocpu142453 {
NimStringDesc* Field0;
NI Field1;
NU8 Field2;
NI Field3;
NI Field4;
};
typedef tinfocpu142453 TY142469[14];
struct  tlineinfo163527  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
typedef NimStringDesc* TY174057[10];
struct  tlinkedlist118023  {
tlistentry118017* Head;
tlistentry118017* Tail;
NI Counter;
};
struct  tcell41090  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq41106  {
NI Len;
NI Cap;
tcell41090** D;
};
struct  tcellset41102  {
NI Counter;
NI Max;
tpagedesc41098* Head;
tpagedesc41098** Data;
};
typedef tsmallchunk22638* TY23422[512];
typedef ttrunk22611* ttrunkbuckets22613[256];
struct  tintset22615  {
ttrunkbuckets22613 Data;
};
struct  tmemregion23410  {
NI Minlargeobj;
NI Maxlargeobj;
TY23422 Freesmallchunks;
tllchunk23404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk22640* Freechunkslist;
tintset22615 Chunkstarts;
tavlnode23408* Root;
tavlnode23408* Deleted;
tavlnode23408* Last;
tavlnode23408* Freeavlnodes;
};
struct  tgcstat43014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap43016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq41106 Zct;
tcellseq41106 Decstack;
tcellset41102 Cycleroots;
tcellseq41106 Tempstack;
NI Recgclock;
tmemregion23410 Region;
tgcstat43014 Stat;
};
typedef NimStringDesc* TY163492[16];
typedef NimStringDesc* TY163486[27];
typedef N_NIMCALL_PTR(void, TY2289) (void* p, NI op);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY2289 marker;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tlistentry118017  {
  TNimObject Sup;
tlistentry118017* Prev;
tlistentry118017* Next;
};
typedef NI TY22618[16];
struct  tpagedesc41098  {
tpagedesc41098* Next;
NI Key;
TY22618 Bits;
};
struct  tbasechunk22636  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk22638  {
  tbasechunk22636 Sup;
tsmallchunk22638* Next;
tsmallchunk22638* Prev;
tfreecell22628* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk23404  {
NI Size;
NI Acc;
tllchunk23404* Next;
};
struct  tbigchunk22640  {
  tbasechunk22636 Sup;
tbigchunk22640* Next;
tbigchunk22640* Prev;
NI Align;
NF Data;
};
struct  ttrunk22611  {
ttrunk22611* Next;
NI Key;
TY22618 Bits;
};
typedef tavlnode23408* TY23414[2];
struct  tavlnode23408  {
TY23414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tfreecell22628  {
tfreecell22628* Next;
NI Zerofield;
};
struct TY110805 {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, msgwriteln_164937)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, getcommandlinedesc_173029)(void);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NI, hashString)(NimStringDesc* s);
N_NIMCALL(void, expectarg_173298)(NimStringDesc* switch_173300, NimStringDesc* arg, NU8 pass, tlineinfo163527 info);
N_NIMCALL(void, localerror_165571)(tlineinfo163527 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, addprefix_173124)(NimStringDesc* switch_173126);
N_NIMCALL(void, addpath_172007)(NimStringDesc* path, tlineinfo163527 info);
N_NIMCALL(NimStringDesc*, processpath_174049)(NimStringDesc* path, NIM_BOOL notrelativetoproj);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NIM_BOOL, contains_90244)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, HEX2F_108477)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(NimStringDesc*, nosunixToNativePath)(NimStringDesc* path, NimStringDesc* drive);
N_NIMCALL(NimStringDesc*, getprefixdir_137330)(void);
N_NIMCALL(NimStringDesc*, removetrailingdirsep_137410)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, nosgetHomeDir)(void);
N_NIMCALL(void, babelpath_172290)(NimStringDesc* path, tlineinfo163527 info);
N_NIMCALL(void, expectnoarg_173306)(NimStringDesc* switch_173308, NimStringDesc* arg, NU8 pass, tlineinfo163527 info);
N_NIMCALL(void, excludestr_118803)(tlinkedlist118023* list, NimStringDesc* data);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell41090*, usrtocell_44443)(void* usr);
static N_INLINE(void, rtladdzct_46002)(tcell41090* c);
N_NOINLINE(void, addzct_44418)(tcellseq41106* s, tcell41090* c);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void, definesymbol_168006)(NimStringDesc* symbol);
N_NIMCALL(void, undefsymbol_168011)(NimStringDesc* symbol);
N_NIMCALL(void, processcompile_173452)(NimStringDesc* filename);
N_NIMCALL(NimStringDesc*, findfile_138306)(NimStringDesc* f);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(void, addexternalfiletocompile_170407)(NimStringDesc* filename);
N_NIMCALL(void, addfiletolink_169779)(NimStringDesc* filename);
N_NIMCALL(NimStringDesc*, completecfilepath_169753)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(void, processonoffswitch_173214)(NU32 op, NimStringDesc* arg, NU8 pass, tlineinfo163527 info);
N_NIMCALL(NU8, whichkeyword_171367)(NimStringDesc* id);
N_NIMCALL(void, processspecificnote_173314)(NimStringDesc* arg, NU8 state, NU8 pass, tlineinfo163527 info);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(void, invalidcmdlineoption_173130)(NU8 pass, NimStringDesc* switch_173133, tlineinfo163527 info);
N_NIMCALL(NI, findstr_171334)(NimStringDesc** a, NI aLen0, NimStringDesc* s);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI start);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI first);
N_NIMCALL(void, processonoffswitchg_173256)(NU32 op, NimStringDesc* arg, NU8 pass, tlineinfo163527 info);
N_NIMCALL(void, addcompileoption_169707)(NimStringDesc* option);
N_NIMCALL(void, addlinkoption_169700)(NimStringDesc* option);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(NU8, nametoos_142582)(NimStringDesc* name);
N_NIMCALL(void, settarget_142599)(NU8 o, NU8 c);
N_NIMCALL(void, initdefines_168072)(void);
N_NIMCALL(NU8, nametocpu_142586)(NimStringDesc* name);
N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s);
N_NIMCALL(void, writeversioninfo_173099)(NU8 pass);
N_NIMCALL(void, writeadvancedusage_173052)(NU8 pass);
N_NIMCALL(void, helponerror_173038)(NU8 pass);
N_NIMCALL(void, splitswitch_173137)(NimStringDesc* switch_173139, NimStringDesc** cmd, NimStringDesc** arg, NU8 pass, tlineinfo163527 info);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, putenv_111443)(NimStringDesc* key, NimStringDesc* val);
N_NIMCALL(void, setcc_169632)(NimStringDesc* ccname);
N_NIMCALL(void, track_174085)(NimStringDesc* arg, tlineinfo163527 info);
N_NIMCALL(TY110805*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep);
N_NIMCALL(NI, npuParseInt)(NimStringDesc* s, NI* number, NI start);
static N_INLINE(tlineinfo163527, newlineinfo_164077)(NimStringDesc* filename, NI line, NI col);
N_NIMCALL(tlineinfo163527, newlineinfo_164069)(NI32 fileinfoidx, NI line, NI col);
N_NIMCALL(NI32, fileinfoidx_163721)(NimStringDesc* filename);
N_NIMCALL(void, addcheckpoint_164874)(tlineinfo163527 info);
N_NIMCALL(void, trackdirty_174061)(NimStringDesc* arg, tlineinfo163527 info);
N_NIMCALL(void, dynliboverride_174109)(NimStringDesc* switch_174111, NimStringDesc* arg, NU8 pass, tlineinfo163527 info);
N_NIMCALL(void, incldynliboverride_138369)(NimStringDesc* lib);
N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start);
N_NIMCALL(void, setconfigvar_137317)(NimStringDesc* key, NimStringDesc* val);
STRING_LITERAL(TMP1011, "Nimrod Compiler Version $1 (2014-04-30) [$2: $3]\012Copyright (c) "
"2006-2014 by Andreas Rumpf\012", 90);
STRING_LITERAL(TMP1012, "0.9.5", 5);
extern NIM_CONST TY142064 os_142063;
extern NIM_CONST TY142469 cpu_142468;
STRING_LITERAL(TMP1013, "Usage::\012  nimrod command [options] [projectfile] [arguments]\012\012C"
"ommand:\012  compile, c                compile project with default"
" code generator (C)\012  doc                       generate the doc"
"umentation for inputfile\012  doc2                      generate th"
"e documentation for the whole project\012  i                       "
"  start Nimrod in interactive mode (limited)\012\012Arguments:\012  argum"
"ents are passed to the program being run (if --run option is sel"
"ected)\012Options:\012  -p, --path:PATH           add path to search p"
"aths\012  -d, --define:SYMBOL       define a conditional symbol\012  -"
"u, --undef:SYMBOL        undefine a conditional symbol\012  -f, --f"
"orceBuild          force rebuilding of all modules\012  --stackTrac"
"e:on|off       turn stack tracing on|off\012  --lineTrace:on|off   "
"     turn line tracing on|off\012  --threads:on|off          turn s"
"upport for multi-threading on|off\012  -x, --checks:on|off       tu"
"rn all runtime checks on|off\012  --objChecks:on|off        turn ob"
"j conversion checks on|off\012  --fieldChecks:on|off      turn case"
" variant field checks on|off\012  --rangeChecks:on|off      turn ra"
"nge checks on|off\012  --boundChecks:on|off      turn bound checks "
"on|off\012  --overflowChecks:on|off   turn int over-/underflow chec"
"ks on|off\012  -a, --assertions:on|off   turn assertions on|off\012  -"
"-floatChecks:on|off      turn all floating point (NaN/Inf) check"
"s on|off\012  --nanChecks:on|off        turn NaN checks on|off\012  --"
"infChecks:on|off        turn Inf checks on|off\012  --deadCodeElim:"
"on|off     whole program dead code elimination on|off\012  --opt:no"
"ne|speed|size     optimize not at all or for speed|size\012  --app:"
"console|gui|lib|staticlib\012                            generate a"
" console app|GUI app|DLL|static library\012  -r, --run             "
"    run the compiled program with given arguments\012  --advanced  "
"              show advanced command line switches\012  -h, --help  "
"              show this help\012", 1884);
STRING_LITERAL(TMP1025, "path", 4);
STRING_LITERAL(TMP1026, "p", 1);
STRING_LITERAL(TMP1027, "babelpath", 9);
STRING_LITERAL(TMP1028, "nobabelpath", 11);
STRING_LITERAL(TMP1029, "excludepath", 11);
STRING_LITERAL(TMP1030, "nimcache", 8);
STRING_LITERAL(TMP1031, "out", 3);
STRING_LITERAL(TMP1032, "o", 1);
STRING_LITERAL(TMP1033, "docseesrcurl", 12);
STRING_LITERAL(TMP1034, "mainmodule", 10);
STRING_LITERAL(TMP1035, "m", 1);
STRING_LITERAL(TMP1036, "define", 6);
STRING_LITERAL(TMP1037, "d", 1);
STRING_LITERAL(TMP1038, "undef", 5);
STRING_LITERAL(TMP1039, "u", 1);
STRING_LITERAL(TMP1040, "compile", 7);
STRING_LITERAL(TMP1041, "link", 4);
STRING_LITERAL(TMP1042, "debuginfo", 9);
STRING_LITERAL(TMP1043, "embedsrc", 8);
STRING_LITERAL(TMP1044, "compileonly", 11);
STRING_LITERAL(TMP1045, "c", 1);
STRING_LITERAL(TMP1046, "nolinking", 9);
STRING_LITERAL(TMP1047, "nomain", 6);
STRING_LITERAL(TMP1048, "forcebuild", 10);
STRING_LITERAL(TMP1049, "f", 1);
STRING_LITERAL(TMP1050, "project", 7);
STRING_LITERAL(TMP1051, "gc", 2);
STRING_LITERAL(TMP1052, "warnings", 8);
STRING_LITERAL(TMP1053, "w", 1);
STRING_LITERAL(TMP1054, "warning", 7);
STRING_LITERAL(TMP1055, "hint", 4);
STRING_LITERAL(TMP1056, "hints", 5);
STRING_LITERAL(TMP1057, "threadanalysis", 14);
STRING_LITERAL(TMP1058, "stacktrace", 10);
STRING_LITERAL(TMP1059, "linetrace", 9);
STRING_LITERAL(TMP1060, "debugger", 8);
STRING_LITERAL(TMP1061, "profiler", 8);
STRING_LITERAL(TMP1062, "checks", 6);
STRING_LITERAL(TMP1063, "x", 1);
STRING_LITERAL(TMP1064, "floatchecks", 11);
STRING_LITERAL(TMP1065, "infchecks", 9);
STRING_LITERAL(TMP1066, "nanchecks", 9);
STRING_LITERAL(TMP1067, "objchecks", 9);
STRING_LITERAL(TMP1068, "fieldchecks", 11);
STRING_LITERAL(TMP1069, "rangechecks", 11);
STRING_LITERAL(TMP1070, "boundchecks", 11);
STRING_LITERAL(TMP1071, "overflowchecks", 14);
STRING_LITERAL(TMP1072, "linedir", 7);
STRING_LITERAL(TMP1073, "assertions", 10);
STRING_LITERAL(TMP1074, "a", 1);
STRING_LITERAL(TMP1075, "deadcodeelim", 12);
STRING_LITERAL(TMP1076, "threads", 7);
STRING_LITERAL(TMP1077, "tlsemulation", 12);
STRING_LITERAL(TMP1078, "taintmode", 9);
STRING_LITERAL(TMP1079, "implicitstatic", 14);
STRING_LITERAL(TMP1080, "patterns", 8);
STRING_LITERAL(TMP1081, "opt", 3);
STRING_LITERAL(TMP1082, "app", 3);
STRING_LITERAL(TMP1083, "passc", 5);
STRING_LITERAL(TMP1084, "t", 1);
STRING_LITERAL(TMP1085, "passl", 5);
STRING_LITERAL(TMP1086, "l", 1);
STRING_LITERAL(TMP1087, "cincludes", 9);
STRING_LITERAL(TMP1088, "clibdir", 7);
STRING_LITERAL(TMP1089, "clib", 4);
STRING_LITERAL(TMP1090, "header", 6);
STRING_LITERAL(TMP1091, "index", 5);
STRING_LITERAL(TMP1092, "import", 6);
STRING_LITERAL(TMP1093, "include", 7);
STRING_LITERAL(TMP1094, "listcmd", 7);
STRING_LITERAL(TMP1095, "genmapping", 10);
STRING_LITERAL(TMP1096, "os", 2);
STRING_LITERAL(TMP1097, "cpu", 3);
STRING_LITERAL(TMP1098, "run", 3);
STRING_LITERAL(TMP1099, "r", 1);
STRING_LITERAL(TMP1100, "verbosity", 9);
STRING_LITERAL(TMP1101, "parallelbuild", 13);
STRING_LITERAL(TMP1102, "version", 7);
STRING_LITERAL(TMP1103, "v", 1);
STRING_LITERAL(TMP1104, "advanced", 8);
STRING_LITERAL(TMP1105, "help", 4);
STRING_LITERAL(TMP1106, "h", 1);
STRING_LITERAL(TMP1107, "symbolfiles", 11);
STRING_LITERAL(TMP1108, "skipcfg", 7);
STRING_LITERAL(TMP1109, "skipprojcfg", 11);
STRING_LITERAL(TMP1110, "skipusercfg", 11);
STRING_LITERAL(TMP1111, "skipparentcfg", 13);
STRING_LITERAL(TMP1112, "genscript", 9);
STRING_LITERAL(TMP1113, "lib", 3);
STRING_LITERAL(TMP1114, "putenv", 6);
STRING_LITERAL(TMP1115, "cc", 2);
STRING_LITERAL(TMP1116, "track", 5);
STRING_LITERAL(TMP1117, "trackdirty", 10);
STRING_LITERAL(TMP1118, "suggest", 7);
STRING_LITERAL(TMP1119, "def", 3);
STRING_LITERAL(TMP1120, "eval", 4);
STRING_LITERAL(TMP1121, "context", 7);
STRING_LITERAL(TMP1122, "usages", 6);
STRING_LITERAL(TMP1123, "stdout", 6);
STRING_LITERAL(TMP1124, "listfullpaths", 13);
STRING_LITERAL(TMP1125, "dynliboverride", 14);
STRING_LITERAL(TMP1126, "cs", 2);
STRING_LITERAL(TMP1150, "-", 1);
STRING_LITERAL(TMP1151, "--", 2);
STRING_LITERAL(TMP1153, "nimrod", 6);
STRING_LITERAL(TMP1156, "home", 4);
STRING_LITERAL(TMP1159, "projectname", 11);
STRING_LITERAL(TMP1160, "projectpath", 11);
STRING_LITERAL(TMP1161, "", 0);
STRING_LITERAL(TMP1296, "boehm", 5);
STRING_LITERAL(TMP1297, "refc", 4);
STRING_LITERAL(TMP1298, "v2", 2);
STRING_LITERAL(TMP1299, "markandsweep", 12);
STRING_LITERAL(TMP1300, "generational", 12);
STRING_LITERAL(TMP1301, "none", 4);
STRING_LITERAL(TMP1302, "boehmgc", 7);
STRING_LITERAL(TMP1303, "gcmarkandsweep", 14);
STRING_LITERAL(TMP1304, "gcgenerational", 14);
STRING_LITERAL(TMP1305, "nogc", 4);
STRING_LITERAL(TMP1306, " ", 1);
STRING_LITERAL(TMP1308, "Success", 7);
STRING_LITERAL(TMP1309, "SuccessX", 8);
STRING_LITERAL(TMP1310, "LineTooLong", 11);
STRING_LITERAL(TMP1311, "XDeclaredButNotUsed", 19);
STRING_LITERAL(TMP1312, "ConvToBaseNotNeeded", 19);
STRING_LITERAL(TMP1313, "ConvFromXtoItselfNotNeeded", 26);
STRING_LITERAL(TMP1314, "ExprAlwaysX", 11);
STRING_LITERAL(TMP1315, "QuitCalled", 10);
STRING_LITERAL(TMP1316, "Processing", 10);
STRING_LITERAL(TMP1317, "CodeBegin", 9);
STRING_LITERAL(TMP1318, "CodeEnd", 7);
STRING_LITERAL(TMP1319, "Conf", 4);
STRING_LITERAL(TMP1320, "Path", 4);
STRING_LITERAL(TMP1321, "CondTrue", 8);
STRING_LITERAL(TMP1322, "Pattern", 7);
STRING_LITERAL(TMP1323, "User", 4);
NIM_CONST TY163492 TMP1307 = {((NimStringDesc*) &TMP1308),
((NimStringDesc*) &TMP1309),
((NimStringDesc*) &TMP1310),
((NimStringDesc*) &TMP1311),
((NimStringDesc*) &TMP1312),
((NimStringDesc*) &TMP1313),
((NimStringDesc*) &TMP1314),
((NimStringDesc*) &TMP1315),
((NimStringDesc*) &TMP1316),
((NimStringDesc*) &TMP1317),
((NimStringDesc*) &TMP1318),
((NimStringDesc*) &TMP1319),
((NimStringDesc*) &TMP1320),
((NimStringDesc*) &TMP1321),
((NimStringDesc*) &TMP1322),
((NimStringDesc*) &TMP1323)}
;
STRING_LITERAL(TMP1325, "CannotOpenFile", 14);
STRING_LITERAL(TMP1326, "OctalEscape", 11);
STRING_LITERAL(TMP1327, "XIsNeverRead", 12);
STRING_LITERAL(TMP1328, "XmightNotBeenInit", 17);
STRING_LITERAL(TMP1329, "Deprecated", 10);
STRING_LITERAL(TMP1330, "ConfigDeprecated", 16);
STRING_LITERAL(TMP1331, "SmallLshouldNotBeUsed", 21);
STRING_LITERAL(TMP1332, "UnknownMagic", 12);
STRING_LITERAL(TMP1333, "RedefinitionOfLabel", 19);
STRING_LITERAL(TMP1334, "UnknownSubstitutionX", 20);
STRING_LITERAL(TMP1335, "LanguageXNotSupported", 21);
STRING_LITERAL(TMP1336, "CommentXIgnored", 15);
STRING_LITERAL(TMP1337, "NilStmt", 7);
STRING_LITERAL(TMP1338, "AnalysisLoophole", 16);
STRING_LITERAL(TMP1339, "DifferentHeaps", 14);
STRING_LITERAL(TMP1340, "WriteToForeignHeap", 18);
STRING_LITERAL(TMP1341, "UnsafeCode", 10);
STRING_LITERAL(TMP1342, "EachIdentIsTuple", 16);
STRING_LITERAL(TMP1343, "ShadowIdent", 11);
STRING_LITERAL(TMP1344, "ProveInit", 9);
STRING_LITERAL(TMP1345, "ProveField", 10);
STRING_LITERAL(TMP1346, "ProveIndex", 10);
STRING_LITERAL(TMP1347, "GcUnsafe", 8);
STRING_LITERAL(TMP1348, "GcUnsafe2", 9);
STRING_LITERAL(TMP1349, "Uninit", 6);
STRING_LITERAL(TMP1350, "GcMem", 5);
NIM_CONST TY163486 TMP1324 = {((NimStringDesc*) &TMP1325),
((NimStringDesc*) &TMP1326),
((NimStringDesc*) &TMP1327),
((NimStringDesc*) &TMP1328),
((NimStringDesc*) &TMP1329),
((NimStringDesc*) &TMP1330),
((NimStringDesc*) &TMP1331),
((NimStringDesc*) &TMP1332),
((NimStringDesc*) &TMP1333),
((NimStringDesc*) &TMP1334),
((NimStringDesc*) &TMP1335),
((NimStringDesc*) &TMP1336),
((NimStringDesc*) &TMP1337),
((NimStringDesc*) &TMP1338),
((NimStringDesc*) &TMP1339),
((NimStringDesc*) &TMP1340),
((NimStringDesc*) &TMP1341),
((NimStringDesc*) &TMP1342),
((NimStringDesc*) &TMP1343),
((NimStringDesc*) &TMP1344),
((NimStringDesc*) &TMP1345),
((NimStringDesc*) &TMP1346),
((NimStringDesc*) &TMP1347),
((NimStringDesc*) &TMP1348),
((NimStringDesc*) &TMP1349),
((NimStringDesc*) &TMP1350),
((NimStringDesc*) &TMP1323)}
;
STRING_LITERAL(TMP1351, "endb", 4);
STRING_LITERAL(TMP1352, "speed", 5);
STRING_LITERAL(TMP1353, "size", 4);
STRING_LITERAL(TMP1354, "gui", 3);
STRING_LITERAL(TMP1355, "console", 7);
STRING_LITERAL(TMP1356, "staticlib", 9);
STRING_LITERAL(TMP1357, "executable", 10);
STRING_LITERAL(TMP1358, "guiapp", 6);
STRING_LITERAL(TMP1359, "consoleapp", 10);
STRING_LITERAL(TMP1360, "library", 7);
STRING_LITERAL(TMP1361, "dll", 3);
STRING_LITERAL(TMP1362, "active boot switches: -d:release --gc:markAndSweep --gc:generat"
"ional", 68);
STRING_LITERAL(TMP1363, "Advanced commands:\012  compileToC, cc          compile project wi"
"th C code generator\012  compileToCpp, cpp       compile project to"
" C++ code\012  compileToOC, objc       compile project to Objective"
" C code\012  rst2html                convert a reStructuredText fil"
"e to HTML\012  rst2tex                 convert a reStructuredText f"
"ile to TeX\012  jsondoc                 extract the documentation t"
"o a json file\012  buildIndex              build an index for the w"
"hole documentation\012  run                     run the project (wi"
"th Tiny C backend; buggy!)\012  genDepend               generate a "
"DOT file containing the\012                            module depen"
"dency graph\012  dump                    dump all defined condition"
"als and search paths\012  check                   checks the projec"
"t for syntax and semantic\012  idetools                compiler sup"
"port for IDEs: possible options:\012    --track:FILE,LINE,COL   tra"
"ck a file/cursor position\012    --trackDirty:DIRTY_FILE,ORIG_FILE,"
"LINE,COL\012                            track a file, currently not"
" saved to disk\012    --suggest               suggest all possible "
"symbols at position\012    --def                   list all possibl"
"e definitions at position\012    --context               list possi"
"ble invokation context\012    --usages                list all usag"
"es of the symbol at position\012    --eval                  evaluat"
"es an expression\012  serve                   start the compiler as"
" a service mode (CAAS)\012    --server.type:TYPE      either stdin "
"or tcp\012    --server.port:PORT      port for tcp mode, by default"
" 6000\012    --server.address:HOST   binds to that address, by defa"
"ult \"\"\012\012Advanced options:\012  -m, --mainmodule:FILE     set the pr"
"oject main module\012  -o, --out:FILE            set the output fil"
"ename\012  --stdout                  output to stdout\012  --listFullP"
"aths           list full paths in messages\012  -w, --warnings:on|o"
"ff     turn all warnings on|off\012  --warning[X]:on|off       turn"
" specific warning X on|off\012  --hints:on|off            turn all "
"hints on|off\012  --hint[X]:on|off          turn specific hint X on"
"|off\012  --lib:PATH                set the system library path\012  -"
"-import:PATH             add an automatically imported module\012  "
"--include:PATH            add an automatically included module\012 "
" --nimcache:PATH           set the path used for generated files"
"\012  --header:FILE             the compiler should produce a .h fi"
"le (FILE\012                            is optional)\012  -c, --compil"
"eOnly         compile only; do not assemble or link\012  --noLinkin"
"g               compile but do not link\012  --noMain              "
"    do not generate a main procedure\012  --genScript              "
" generate a compile script (in the \'nimcache\'\012                  "
"          subdirectory named \'compile_$project$scriptext\')\012  --o"
"s:SYMBOL               set the target operating system (cross-co"
"mpilation)\012  --cpu:SYMBOL              set the target processor "
"(cross-compilation)\012  --debuginfo               enables debug in"
"formation\012  --debugger:on|off         turn Embedded Nimrod Debug"
"ger on|off\012  -t, --passC:OPTION        pass an option to the C c"
"ompiler\012  -l, --passL:OPTION        pass an option to the linker"
"\012  --cincludes:DIR           modify the C compiler header search"
" path\012  --clibdir:DIR             modify the linker library sear"
"ch path\012  --clib:LIBNAME            link an additional C library"
"\012                            (you should omit platform-specific "
"extensions)\012  --genMapping              generate a mapping file "
"containing\012                            (Nimrod, mangled) identif"
"ier pairs\012  --project                 document the whole project"
" (doc2)\012  --docSeeSrcUrl:url        activate \'see source\' for do"
"c and doc2 commands\012                            (see doc.item.se"
"esrc in config/nimdoc.cfg)\012  --lineDir:on|off          generatio"
"n of #line directive on|off\012  --embedsrc                embeds t"
"he original source code as comments\012                            "
"in the generated output\012  --threadanalysis:on|off   turn thread "
"analysis on|off\012  --tlsEmulation:on|off     turn thread local st"
"orage emulation on|off\012  --taintMode:on|off        turn taint mo"
"de on|off\012  --symbolFiles:on|off      turn symbol files on|off ("
"experimental)\012  --implicitStatic:on|off   turn implicit compile "
"time evaluation on|off\012  --patterns:on|off         turn pattern "
"matching on|off\012  --skipCfg                 do not read the gene"
"ral configuration file\012  --skipUserCfg             do not read t"
"he user\'s configuration file\012  --skipParentCfg           do not "
"read the parent dirs\' configuration files\012  --skipProjCfg       "
"      do not read the project\'s configuration file\012  --gc:refc|v"
"2|markAndSweep|boehm|none\012                            select the"
" GC to use; default is \'refc\'\012  --index:on|off            turn i"
"ndex file generation on|off\012  --putenv:key=value        set an e"
"nvironment variable\012  --babelPath:PATH          add a path for B"
"abel support\012  --excludePath:PATH        exclude a path from the"
" list of search paths\012  --dynlibOverride:SYMBOL   marks SYMBOL s"
"o that dynlib:SYMBOL\012                            has no effect a"
"nd can be statically linked instead;\012                           "
" symbol matching is fuzzy so\012                            that --"
"dynlibOverride:lua matches \012                            dynlib: "
"\"liblua.so.3\"\012  --listCmd                 list the commands used"
" to execute external programs\012  --parallelBuild=0|1|...   perfor"
"m a parallel build\012                            value = number of"
" processors (0 for auto-detect)\012  --verbosity:0|1|2|3       set "
"Nimrod\'s verbosity level (1 is default)\012  --cs:none|partial     "
"    set case sensitivity level (default: none);\012                "
"            do not use! this setting affects the whole language\012"
"  -v, --version             show detailed version information\012", 5757);
STRING_LITERAL(TMP1367, "FILE,LINE,COLUMN", 16);
STRING_LITERAL(TMP1369, "DIRTY_BUFFER,ORIGINAL_FILE,LINE,COLUMN", 38);
STRING_LITERAL(TMP1373, "partial", 7);
STRING_LITERAL(TMP1374, "\'partial\' or \'none\' expected, but found ", 40);
NIM_BOOL helpwritten_173117;
extern NU8 hostos_142576;
extern NU8 hostcpu_142574;
extern NimStringDesc* gprojectpath_137207;
extern NimStringDesc* libpath_137205;
extern NimStringDesc* gprojectname_137206;
extern NIM_BOOL gnobabelpath_137129;
extern tlinkedlist118023 searchpaths_137115;
extern tlinkedlist118023 lazypaths_137116;
extern NimStringDesc* nimcachedir_137211;
extern tgcheap43016 gch_43044;
extern NimStringDesc* outfile_137117;
extern NimStringDesc* docseesrcurl_137118;
extern NimStringDesc* optmainmodule_137210;
extern NU32 gglobaloptions_137111;
extern NIM_BOOL gwholeproject_137122;
extern NU8 gselectedgc_137114;
extern NU32 goptions_137108;
extern NU64 gnotes_164181;
extern TY110805* cincludes_169448;
extern TY110805* clibs_169470;
extern TY110805* clinkedlibs_169492;
extern NimStringDesc* headerfile_137119;
extern TY110805* implicitimports_137257;
extern TY110805* implicitincludes_137279;
extern NU8 targetcpu_142573;
extern NU8 targetos_142575;
extern NI gverbosity_137120;
extern NI gnumberofprocessors_137121;
extern tlineinfo163527 opttrackpos_164871;
extern NI32 gdirtybufferidx_137127;
extern NI32 gdirtyoriginalidx_137128;
extern NimStringDesc* gevalexpr_137123;
extern NIM_BOOL glistfullpaths_137125;
extern NIM_BOOL firstchariscs_167025;

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) (&(*dest).data[((*dest).Sup.len)- 0])), ((NCSTRING) ((*src).data)), (NI32)((*src).Sup.len + 1));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(NimStringDesc*, getcommandlinedesc_173029)(void) {
	NimStringDesc* result;
	NimStringDesc* LOC1;
	TY173034 LOC2;
	NimStringDesc* LOC3;
	result = 0;
	LOC1 = 0;
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = copyString(((NimStringDesc*) &TMP1012));
	LOC2[1] = copyString(os_142063[(hostos_142576)- 1].Field0);
	LOC2[2] = copyString(cpu_142468[(hostcpu_142574)- 1].Field0);
	LOC3 = 0;
	LOC3 = nsuFormatOpenArray(((NimStringDesc*) &TMP1011), LOC2, 3);
	LOC1 = rawNewString(LOC3->Sup.len + 1884);
appendString(LOC1, LOC3);
appendString(LOC1, ((NimStringDesc*) &TMP1013));
	result = LOC1;
	return result;
}

N_NIMCALL(void, writecommandlineusage_173002)(void) {
	{
		NimStringDesc* LOC5;
		if (!!(helpwritten_173117)) goto LA3;
		LOC5 = 0;
		LOC5 = getcommandlinedesc_173029();
		msgwriteln_164937(LOC5);
		helpwritten_173117 = NIM_TRUE;
	}
	LA3: ;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (NI32)((*a).Sup.len * 1));
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NimStringDesc*, addprefix_173124)(NimStringDesc* switch_173126) {
	NimStringDesc* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		if (!(switch_173126->Sup.len == 1)) goto LA3;
		LOC5 = 0;
		LOC5 = rawNewString(switch_173126->Sup.len + 1);
appendString(LOC5, ((NimStringDesc*) &TMP1150));
appendString(LOC5, switch_173126);
		result = LOC5;
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		LOC7 = 0;
		LOC7 = rawNewString(switch_173126->Sup.len + 2);
appendString(LOC7, ((NimStringDesc*) &TMP1151));
appendString(LOC7, switch_173126);
		result = LOC7;
	}
	LA1: ;
	return result;
}

N_NIMCALL(void, expectarg_173298)(NimStringDesc* switch_173300, NimStringDesc* arg, NU8 pass, tlineinfo163527 info) {
	{
		NimStringDesc* LOC5;
		if (!((arg) && (arg)->Sup.len == 0)) goto LA3;
		LOC5 = 0;
		LOC5 = addprefix_173124(switch_173300);
		localerror_165571(info, ((NU16) 45), LOC5);
	}
	LA3: ;
}

N_NIMCALL(NimStringDesc*, processpath_174049)(NimStringDesc* path, NIM_BOOL notrelativetoproj) {
	NimStringDesc* result;
	NimStringDesc* p;
	TY174057 LOC12;
	NimStringDesc* LOC13;
	NimStringDesc* LOC14;
	result = 0;
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC4;
		NIM_BOOL LOC5;
		LOC3 = 0;
		LOC4 = 0;
		LOC5 = 0;
		LOC5 = notrelativetoproj;
		if (LOC5) goto LA6;
		LOC5 = nosisAbsolute(path);
		LA6: ;
		LOC4 = LOC5;
		if (LOC4) goto LA7;
		LOC4 = contains_90244(path, 36);
		LA7: ;
		LOC3 = LOC4;
		if (LOC3) goto LA8;
		LOC3 = ((NU8)(path->data[0]) == (NU8)(46));
		LA8: ;
		if (!LOC3) goto LA9;
		p = path;
	}
	goto LA1;
	LA9: ;
	{
		p = HEX2F_108477(gprojectpath_137207, path);
	}
	LA1: ;
	memset((void*)LOC12, 0, sizeof(LOC12));
	LOC12[0] = copyString(((NimStringDesc*) &TMP1153));
	LOC12[1] = getprefixdir_137330();
	LOC12[2] = copyString(((NimStringDesc*) &TMP1113));
	LOC12[3] = copyString(libpath_137205);
	LOC12[4] = copyString(((NimStringDesc*) &TMP1156));
	LOC13 = 0;
	LOC13 = nosgetHomeDir();
	LOC12[5] = removetrailingdirsep_137410(LOC13);
	LOC12[6] = copyString(((NimStringDesc*) &TMP1159));
	LOC12[7] = copyString(gprojectname_137206);
	LOC12[8] = copyString(((NimStringDesc*) &TMP1160));
	LOC12[9] = copyString(gprojectpath_137207);
	LOC14 = 0;
	LOC14 = nsuFormatOpenArray(p, LOC12, 10);
	result = nosunixToNativePath(LOC14, ((NimStringDesc*) &TMP1161));
	return result;
}

N_NIMCALL(void, expectnoarg_173306)(NimStringDesc* switch_173308, NimStringDesc* arg, NU8 pass, tlineinfo163527 info) {
	{
		NimStringDesc* LOC5;
		if (!!(((arg) && (arg)->Sup.len == 0))) goto LA3;
		LOC5 = 0;
		LOC5 = addprefix_173124(switch_173308);
		localerror_165571(info, ((NU16) 46), LOC5);
	}
	LA3: ;
}

static N_INLINE(tcell41090*, usrtocell_44443)(void* usr) {
	tcell41090* result;
	result = 0;
	result = ((tcell41090*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(tcell41090))))));
	return result;
}

static N_INLINE(void, rtladdzct_46002)(tcell41090* c) {
	addzct_44418(&gch_43044.Zct, c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell41090* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_44443(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell41090* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_44443((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_46002(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tcell41090* c;
	c = usrtocell_44443(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_46002(c);
	}
	LA3: ;
}

N_NIMCALL(void, processcompile_173452)(NimStringDesc* filename) {
	NimStringDesc* found;
	NimStringDesc* trunc;
	NimStringDesc* LOC5;
	found = findfile_138306(filename);
	{
		if (!((found) && (found)->Sup.len == 0)) goto LA3;
		found = copyString(filename);
	}
	LA3: ;
	trunc = noschangeFileExt(found, ((NimStringDesc*) &TMP1161));
	addexternalfiletocompile_170407(found);
	LOC5 = 0;
	LOC5 = completecfilepath_169753(trunc, NIM_FALSE);
	addfiletolink_169779(LOC5);
}

N_NIMCALL(void, processonoffswitch_173214)(NU32 op, NimStringDesc* arg, NU8 pass, tlineinfo163527 info) {
	NU8 LOC1;
	LOC1 = 0;
	LOC1 = whichkeyword_171367(arg);
	switch (LOC1) {
	case ((NU8) 135):
	{
		goptions_137108 = (goptions_137108 | op);
	}
	break;
	case ((NU8) 136):
	{
		goptions_137108 = (goptions_137108 & ~ op);
	}
	break;
	default:
	{
		localerror_165571(info, ((NU16) 50), arg);
	}
	break;
	}
}

N_NIMCALL(void, invalidcmdlineoption_173130)(NU8 pass, NimStringDesc* switch_173133, tlineinfo163527 info) {
	{
		if (!eqStrings(switch_173133, ((NimStringDesc*) &TMP1306))) goto LA3;
		localerror_165571(info, ((NU16) 44), ((NimStringDesc*) &TMP1150));
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC6;
		LOC6 = 0;
		LOC6 = addprefix_173124(switch_173133);
		localerror_165571(info, ((NU16) 44), LOC6);
	}
	LA1: ;
}

N_NIMCALL(void, processspecificnote_173314)(NimStringDesc* arg, NU8 state, NU8 pass, tlineinfo163527 info) {
	NimStringDesc* id;
	NI i;
	NU16 n;
	NimStringDesc* LOC33;
	NU8 LOC34;
	id = copyString(((NimStringDesc*) &TMP1161));
	i = 0;
	n = ((NU16) 257);
	while (1) {
		NIM_BOOL LOC2;
		LOC2 = 0;
		LOC2 = (i < arg->Sup.len);
		if (!(LOC2)) goto LA3;
		LOC2 = !(((NU8)(arg->data[i]) == (NU8)(93)));
		LA3: ;
		if (!LOC2) goto LA1;
		id = addChar(id, arg->data[i]);
		i += 1;
	} LA1: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = (i < arg->Sup.len);
		if (!(LOC6)) goto LA7;
		LOC6 = ((NU8)(arg->data[i]) == (NU8)(93));
		LA7: ;
		if (!LOC6) goto LA8;
		i += 1;
	}
	goto LA4;
	LA8: ;
	{
		invalidcmdlineoption_173130(pass, arg, info);
	}
	LA4: ;
	{
		NIM_BOOL LOC13;
		LOC13 = 0;
		LOC13 = (i < arg->Sup.len);
		if (!(LOC13)) goto LA14;
		LOC13 = (((NU8)(arg->data[i])) == ((NU8)(58)) || ((NU8)(arg->data[i])) == ((NU8)(61)));
		LA14: ;
		if (!LOC13) goto LA15;
		i += 1;
	}
	goto LA11;
	LA15: ;
	{
		invalidcmdlineoption_173130(pass, arg, info);
	}
	LA11: ;
	{
		NI x;
		if (!(state == ((NU8) 108))) goto LA20;
		x = findstr_171334(TMP1307, 16, id);
		{
			if (!(0 <= x)) goto LA24;
			n = ((NU16) (((NU16) ((NI32)(x + 257)))));
		}
		goto LA22;
		LA24: ;
		{
			invalidcmdlineoption_173130(pass, arg, info);
		}
		LA22: ;
	}
	goto LA18;
	LA20: ;
	{
		NI x;
		x = findstr_171334(TMP1324, 27, id);
		{
			if (!(0 <= x)) goto LA30;
			n = ((NU16) (((NU16) ((NI32)(x + 230)))));
		}
		goto LA28;
		LA30: ;
		{
			invalidcmdlineoption_173130(pass, arg, info);
		}
		LA28: ;
	}
	LA18: ;
	LOC33 = 0;
	LOC33 = copyStr(arg, i);
	LOC34 = 0;
	LOC34 = whichkeyword_171367(LOC33);
	switch (LOC34) {
	case ((NU8) 135):
	{
		gnotes_164181 |=((NI64)(1)<<(((((NU16) (n))- 230))%(sizeof(NI64)*8)));
	}
	break;
	case ((NU8) 136):
	{
		gnotes_164181 &= ~((NI64)(1) << (((((NU16) (n))- 230)) % (sizeof(NI64)*8)));
	}
	break;
	default:
	{
		localerror_165571(info, ((NU16) 50), arg);
	}
	break;
	}
}

N_NIMCALL(void, processonoffswitchg_173256)(NU32 op, NimStringDesc* arg, NU8 pass, tlineinfo163527 info) {
	NU8 LOC1;
	LOC1 = 0;
	LOC1 = whichkeyword_171367(arg);
	switch (LOC1) {
	case ((NU8) 135):
	{
		gglobaloptions_137111 = (gglobaloptions_137111 | op);
	}
	break;
	case ((NU8) 136):
	{
		gglobaloptions_137111 = (gglobaloptions_137111 & ~ op);
	}
	break;
	default:
	{
		localerror_165571(info, ((NU16) 50), arg);
	}
	break;
	}
}

N_NIMCALL(void, writeversioninfo_173099)(NU8 pass) {
	{
		TY173034 LOC5;
		NimStringDesc* LOC6;
		if (!(pass == ((NU8) 0))) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = copyString(((NimStringDesc*) &TMP1012));
		LOC5[1] = copyString(os_142063[(hostos_142576)- 1].Field0);
		LOC5[2] = copyString(cpu_142468[(hostcpu_142574)- 1].Field0);
		LOC6 = 0;
		LOC6 = nsuFormatOpenArray(((NimStringDesc*) &TMP1011), LOC5, 3);
		msgwriteln_164937(LOC6);
		msgwriteln_164937(((NimStringDesc*) &TMP1362));
		exit(0);
	}
	LA3: ;
}

N_NIMCALL(void, writeadvancedusage_173052)(NU8 pass) {
	{
		NimStringDesc* LOC5;
		TY173034 LOC6;
		NimStringDesc* LOC7;
		if (!(pass == ((NU8) 0))) goto LA3;
		LOC5 = 0;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = copyString(((NimStringDesc*) &TMP1012));
		LOC6[1] = copyString(os_142063[(hostos_142576)- 1].Field0);
		LOC6[2] = copyString(cpu_142468[(hostcpu_142574)- 1].Field0);
		LOC7 = 0;
		LOC7 = nsuFormatOpenArray(((NimStringDesc*) &TMP1011), LOC6, 3);
		LOC5 = rawNewString(LOC7->Sup.len + 5757);
appendString(LOC5, LOC7);
appendString(LOC5, ((NimStringDesc*) &TMP1363));
		msgwriteln_164937(LOC5);
		exit(0);
	}
	LA3: ;
}

N_NIMCALL(void, helponerror_173038)(NU8 pass) {
	{
		NimStringDesc* LOC5;
		if (!(pass == ((NU8) 0))) goto LA3;
		LOC5 = 0;
		LOC5 = getcommandlinedesc_173029();
		msgwriteln_164937(LOC5);
		exit(0);
	}
	LA3: ;
}

N_NIMCALL(void, splitswitch_173137)(NimStringDesc* switch_173139, NimStringDesc** cmd, NimStringDesc** arg, NU8 pass, tlineinfo163527 info) {
	NI i;
	unsureAsgnRef((void**) &(*cmd), copyString(((NimStringDesc*) &TMP1161)));
	i = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (i < switch_173139->Sup.len);
		if (!(LOC3)) goto LA4;
		LOC3 = ((NU8)(switch_173139->data[i]) == (NU8)(45));
		LA4: ;
		if (!LOC3) goto LA5;
		i += 1;
	}
	LA5: ;
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = (i < switch_173139->Sup.len);
		if (!(LOC9)) goto LA10;
		LOC9 = ((NU8)(switch_173139->data[i]) == (NU8)(45));
		LA10: ;
		if (!LOC9) goto LA11;
		i += 1;
	}
	LA11: ;
	while (1) {
		if (!(i < switch_173139->Sup.len)) goto LA13;
		switch (((NU8)(switch_173139->data[i]))) {
		case 97 ... 122:
		case 65 ... 90:
		case 48 ... 57:
		case 95:
		case 46:
		{
			(*cmd) = addChar((*cmd), switch_173139->data[i]);
		}
		break;
		default:
		{
			goto LA13;
		}
		break;
		}
		i += 1;
	} LA13: ;
	{
		if (!(switch_173139->Sup.len <= i)) goto LA18;
		unsureAsgnRef((void**) &(*arg), copyString(((NimStringDesc*) &TMP1161)));
	}
	goto LA16;
	LA18: ;
	{
		if (!(((NU8)(switch_173139->data[i])) == ((NU8)(58)) || ((NU8)(switch_173139->data[i])) == ((NU8)(61)) || ((NU8)(switch_173139->data[i])) == ((NU8)(91)))) goto LA21;
		unsureAsgnRef((void**) &(*arg), copyStr(switch_173139, (NI32)(i + 1)));
	}
	goto LA16;
	LA21: ;
	{
		invalidcmdlineoption_173130(pass, switch_173139, info);
	}
	LA16: ;
}

static N_INLINE(tlineinfo163527, newlineinfo_164077)(NimStringDesc* filename, NI line, NI col) {
	tlineinfo163527 result;
	NI32 LOC1;
	memset((void*)&result, 0, sizeof(result));
	LOC1 = 0;
	LOC1 = fileinfoidx_163721(filename);
	result = newlineinfo_164069(LOC1, line, col);
	return result;
}

N_NIMCALL(void, track_174085)(NimStringDesc* arg, tlineinfo163527 info) {
	TY110805* a;
	NI line;
	NI column;
	a = nsuSplitChar(arg, 44);
	{
		if (!!((a->Sup.len == 3))) goto LA3;
		localerror_165571(info, ((NU16) 23), ((NimStringDesc*) &TMP1367));
	}
	LA3: ;
	line = 0;
	column = 0;
	{
		NI LOC7;
		LOC7 = 0;
		LOC7 = npuParseInt(a->data[1], &line, 0);
		if (!(LOC7 <= 0)) goto LA8;
		localerror_165571(info, ((NU16) 14), a->data[1]);
	}
	LA8: ;
	{
		NI LOC12;
		LOC12 = 0;
		LOC12 = npuParseInt(a->data[2], &column, 0);
		if (!(LOC12 <= 0)) goto LA13;
		localerror_165571(info, ((NU16) 14), a->data[2]);
	}
	LA13: ;
	opttrackpos_164871 = newlineinfo_164077(a->data[0], line, column);
	addcheckpoint_164874(opttrackpos_164871);
}

N_NIMCALL(void, trackdirty_174061)(NimStringDesc* arg, tlineinfo163527 info) {
	TY110805* a;
	NI line;
	NI column;
	a = nsuSplitChar(arg, 44);
	{
		if (!!((a->Sup.len == 4))) goto LA3;
		localerror_165571(info, ((NU16) 23), ((NimStringDesc*) &TMP1369));
	}
	LA3: ;
	line = 0;
	column = 0;
	{
		NI LOC7;
		LOC7 = 0;
		LOC7 = npuParseInt(a->data[2], &line, 0);
		if (!(LOC7 <= 0)) goto LA8;
		localerror_165571(info, ((NU16) 14), a->data[1]);
	}
	LA8: ;
	{
		NI LOC12;
		LOC12 = 0;
		LOC12 = npuParseInt(a->data[3], &column, 0);
		if (!(LOC12 <= 0)) goto LA13;
		localerror_165571(info, ((NU16) 14), a->data[2]);
	}
	LA13: ;
	gdirtybufferidx_137127 = fileinfoidx_163721(a->data[0]);
	gdirtyoriginalidx_137128 = fileinfoidx_163721(a->data[1]);
	opttrackpos_164871 = newlineinfo_164069(gdirtybufferidx_137127, line, column);
	addcheckpoint_164874(opttrackpos_164871);
}

N_NIMCALL(void, dynliboverride_174109)(NimStringDesc* switch_174111, NimStringDesc* arg, NU8 pass, tlineinfo163527 info) {
	{
		if (!((6 &(1<<((pass)&7)))!=0)) goto LA3;
		expectarg_173298(switch_174111, arg, pass, info);
		incldynliboverride_138369(arg);
	}
	LA3: ;
}

N_NIMCALL(void, processswitch_173016)(NimStringDesc* switch_173018, NimStringDesc* arg, NU8 pass, tlineinfo163527 info) {
	NU8 theos;
	NU8 cpu;
	NimStringDesc* key;
	NimStringDesc* val;
	NimStringDesc* LOC1;
	theos = 0;
	cpu = 0;
	key = 0;
	val = 0;
	LOC1 = 0;
	LOC1 = nsuNormalize(switch_173018);
	switch (hashString(LOC1) & 127) {
	case 1: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1028))) goto LA4;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1062))) goto LA31;
break;
	case 3: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1109))) goto LA71;
break;
	case 5: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1037))) goto LA10;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1085))) goto LA51;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1122))) goto LA84;
break;
	case 8: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1088))) goto LA53;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1107))) goto LA69;
break;
	case 14: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1046))) goto LA17;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1073))) goto LA41;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1123))) goto LA85;
break;
	case 16: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1031))) goto LA7;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1052))) goto LA22;
break;
	case 17: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1082))) goto LA49;
break;
	case 18: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1034))) goto LA9;
break;
	case 19: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1038))) goto LA11;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1061))) goto LA30;
break;
	case 22: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1072))) goto LA40;
break;
	case 24: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1048))) goto LA19;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1059))) goto LA28;
break;
	case 27: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1055))) goto LA24;
break;
	case 28: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1030))) goto LA6;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1126))) goto LA88;
break;
	case 30: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1043))) goto LA15;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1044))) goto LA16;
break;
	case 32: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1040))) goto LA12;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1053))) goto LA22;
break;
	case 34: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1075))) goto LA42;
break;
	case 37: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1087))) goto LA52;
break;
	case 39: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1104))) goto LA67;
break;
	case 41: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1070))) goto LA38;
break;
	case 42: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1112))) goto LA74;
break;
	case 43: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1119))) goto LA81;
break;
	case 45: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1051))) goto LA21;
break;
	case 47: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1124))) goto LA86;
break;
	case 50: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1094))) goto LA59;
break;
	case 51: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1056))) goto LA25;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1102))) goto LA66;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1118))) goto LA80;
break;
	case 52: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1095))) goto LA60;
break;
	case 53: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1025))) goto LA2;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1064))) goto LA32;
break;
	case 54: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1029))) goto LA5;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1036))) goto LA10;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1125))) goto LA87;
break;
	case 55: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1110))) goto LA72;
break;
	case 57: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1091))) goto LA56;
break;
	case 60: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1054))) goto LA23;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1083))) goto LA50;
break;
	case 62: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1079))) goto LA46;
break;
	case 66: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1074))) goto LA41;
break;
	case 69: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1081))) goto LA48;
break;
	case 71: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1096))) goto LA61;
break;
	case 72: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1066))) goto LA34;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1080))) goto LA47;
break;
	case 73: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1039))) goto LA11;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1057))) goto LA26;
break;
	case 74: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1115))) goto LA77;
break;
	case 76: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1027))) goto LA3;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1078))) goto LA45;
break;
	case 78: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1069))) goto LA37;
break;
	case 79: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1084))) goto LA50;
break;
	case 82: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1097))) goto LA62;
break;
	case 83: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1060))) goto LA29;
break;
	case 85: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1103))) goto LA66;
break;
	case 89: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1045))) goto LA16;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1108))) goto LA70;
break;
	case 90: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1065))) goto LA33;
break;
	case 91: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1033))) goto LA8;
break;
	case 93: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1047))) goto LA18;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1114))) goto LA76;
break;
	case 95: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1071))) goto LA39;
break;
	case 98: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1099))) goto LA63;
break;
	case 99: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1050))) goto LA20;
break;
	case 100: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1067))) goto LA35;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1077))) goto LA44;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1093))) goto LA58;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1101))) goto LA65;
break;
	case 101: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1063))) goto LA31;
break;
	case 104: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1058))) goto LA27;
break;
	case 105: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1098))) goto LA63;
break;
	case 106: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1106))) goto LA68;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1111))) goto LA73;
break;
	case 108: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1105))) goto LA68;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1113))) goto LA75;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1121))) goto LA83;
break;
	case 109: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1042))) goto LA14;
break;
	case 110: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1049))) goto LA19;
break;
	case 111: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1120))) goto LA82;
break;
	case 112: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1041))) goto LA13;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1100))) goto LA64;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1117))) goto LA79;
break;
	case 113: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1068))) goto LA36;
break;
	case 115: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1089))) goto LA54;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1116))) goto LA78;
break;
	case 117: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1035))) goto LA9;
break;
	case 118: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1076))) goto LA43;
break;
	case 119: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1092))) goto LA57;
break;
	case 120: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1086))) goto LA51;
break;
	case 121: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1026))) goto LA2;
break;
	case 127: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1032))) goto LA7;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1090))) goto LA55;
break;
	}
	goto LA89;
	LA2: ;
	{
		NimStringDesc* LOC92;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC92 = 0;
		LOC92 = processpath_174049(arg, NIM_FALSE);
		addpath_172007(LOC92, info);
	}
	goto LA90;
	LA3: ;
	{
		{
			NIM_BOOL LOC96;
			NimStringDesc* path;
			LOC96 = 0;
			LOC96 = ((6 &(1<<((pass)&7)))!=0);
			if (!(LOC96)) goto LA97;
			LOC96 = !(gnobabelpath_137129);
			LA97: ;
			if (!LOC96) goto LA98;
			expectarg_173298(switch_173018, arg, pass, info);
			path = processpath_174049(arg, NIM_TRUE);
			babelpath_172290(path, info);
		}
		LA98: ;
	}
	goto LA90;
	LA4: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gnobabelpath_137129 = NIM_TRUE;
	}
	goto LA90;
	LA5: ;
	{
		NimStringDesc* path;
		expectarg_173298(switch_173018, arg, pass, info);
		path = processpath_174049(arg, NIM_FALSE);
		excludestr_118803(&searchpaths_137115, path);
		excludestr_118803(&lazypaths_137116, path);
	}
	goto LA90;
	LA6: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		asgnRefNoCycle((void**) &nimcachedir_137211, processpath_174049(arg, NIM_FALSE));
	}
	goto LA90;
	LA7: ;
	{
		NimStringDesc* LOC104;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC104 = 0;
		LOC104 = outfile_137117; outfile_137117 = copyStringRC1(arg);
		if (LOC104) nimGCunrefNoCycle(LOC104);
	}
	goto LA90;
	LA8: ;
	{
		NimStringDesc* LOC106;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC106 = 0;
		LOC106 = docseesrcurl_137118; docseesrcurl_137118 = copyStringRC1(arg);
		if (LOC106) nimGCunrefNoCycle(LOC106);
	}
	goto LA90;
	LA9: ;
	{
		NimStringDesc* LOC108;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC108 = 0;
		LOC108 = optmainmodule_137210; optmainmodule_137210 = copyStringRC1(arg);
		if (LOC108) nimGCunrefNoCycle(LOC108);
	}
	goto LA90;
	LA10: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		definesymbol_168006(arg);
	}
	goto LA90;
	LA11: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		undefsymbol_168011(arg);
	}
	goto LA90;
	LA12: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA114;
			processcompile_173452(arg);
		}
		LA114: ;
	}
	goto LA90;
	LA13: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA119;
			addfiletolink_169779(arg);
		}
		LA119: ;
	}
	goto LA90;
	LA14: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 7))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA15: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 31))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA16: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 4))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA17: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 5))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA18: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 20))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA19: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 1))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA20: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gwholeproject_137122 = NIM_TRUE;
	}
	goto LA90;
	LA21: ;
	{
		NimStringDesc* LOC129;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC129 = 0;
		LOC129 = nsuNormalize(arg);
		if (eqStrings(LOC129, ((NimStringDesc*) &TMP1296))) goto LA130;
		if (eqStrings(LOC129, ((NimStringDesc*) &TMP1297))) goto LA131;
		if (eqStrings(LOC129, ((NimStringDesc*) &TMP1298))) goto LA132;
		if (eqStrings(LOC129, ((NimStringDesc*) &TMP1299))) goto LA133;
		if (eqStrings(LOC129, ((NimStringDesc*) &TMP1300))) goto LA134;
		if (eqStrings(LOC129, ((NimStringDesc*) &TMP1301))) goto LA135;
		goto LA136;
		LA130: ;
		{
			gselectedgc_137114 = ((NU8) 1);
			definesymbol_168006(((NimStringDesc*) &TMP1302));
		}
		goto LA137;
		LA131: ;
		{
			gselectedgc_137114 = ((NU8) 3);
		}
		goto LA137;
		LA132: ;
		{
			gselectedgc_137114 = ((NU8) 4);
		}
		goto LA137;
		LA133: ;
		{
			gselectedgc_137114 = ((NU8) 2);
			definesymbol_168006(((NimStringDesc*) &TMP1303));
		}
		goto LA137;
		LA134: ;
		{
			gselectedgc_137114 = ((NU8) 5);
			definesymbol_168006(((NimStringDesc*) &TMP1304));
		}
		goto LA137;
		LA135: ;
		{
			gselectedgc_137114 = ((NU8) 0);
			definesymbol_168006(((NimStringDesc*) &TMP1305));
		}
		goto LA137;
		LA136: ;
		{
			localerror_165571(info, ((NU16) 51), arg);
		}
		LA137: ;
	}
	goto LA90;
	LA22: ;
	{
		processonoffswitch_173214(2048, arg, pass, info);
	}
	goto LA90;
	LA23: ;
	{
		processspecificnote_173314(arg, ((NU8) 107), pass, info);
	}
	goto LA90;
	LA24: ;
	{
		processspecificnote_173314(arg, ((NU8) 108), pass, info);
	}
	goto LA90;
	LA25: ;
	{
		processonoffswitch_173214(4096, arg, pass, info);
	}
	goto LA90;
	LA26: ;
	{
		processonoffswitchg_173256(134217728, arg, pass, info);
	}
	goto LA90;
	LA27: ;
	{
		processonoffswitch_173214(32768, arg, pass, info);
	}
	goto LA90;
	LA28: ;
	{
		processonoffswitch_173214(65536, arg, pass, info);
	}
	goto LA90;
	LA29: ;
	{
		processonoffswitch_173214(131072, arg, pass, info);
		{
			if (!((goptions_137108 &(1<<((((NU8) 17))&31)))!=0)) goto LA155;
			definesymbol_168006(((NimStringDesc*) &TMP1351));
		}
		goto LA153;
		LA155: ;
		{
			undefsymbol_168011(((NimStringDesc*) &TMP1351));
		}
		LA153: ;
	}
	goto LA90;
	LA30: ;
	{
		processonoffswitch_173214(524288, arg, pass, info);
		{
			if (!((goptions_137108 &(1<<((((NU8) 19))&31)))!=0)) goto LA161;
			definesymbol_168006(((NimStringDesc*) &TMP1061));
		}
		goto LA159;
		LA161: ;
		{
			undefsymbol_168011(((NimStringDesc*) &TMP1061));
		}
		LA159: ;
	}
	goto LA90;
	LA31: ;
	{
		processonoffswitch_173214(1022, arg, pass, info);
	}
	goto LA90;
	LA32: ;
	{
		processonoffswitch_173214(384, arg, pass, info);
	}
	goto LA90;
	LA33: ;
	{
		processonoffswitch_173214(256, arg, pass, info);
	}
	goto LA90;
	LA34: ;
	{
		processonoffswitch_173214(128, arg, pass, info);
	}
	goto LA90;
	LA35: ;
	{
		processonoffswitch_173214(2, arg, pass, info);
	}
	goto LA90;
	LA36: ;
	{
		processonoffswitch_173214(4, arg, pass, info);
	}
	goto LA90;
	LA37: ;
	{
		processonoffswitch_173214(8, arg, pass, info);
	}
	goto LA90;
	LA38: ;
	{
		processonoffswitch_173214(16, arg, pass, info);
	}
	goto LA90;
	LA39: ;
	{
		processonoffswitch_173214(32, arg, pass, info);
	}
	goto LA90;
	LA40: ;
	{
		processonoffswitch_173214(1024, arg, pass, info);
	}
	goto LA90;
	LA41: ;
	{
		processonoffswitch_173214(512, arg, pass, info);
	}
	goto LA90;
	LA42: ;
	{
		processonoffswitchg_173256(4, arg, pass, info);
	}
	goto LA90;
	LA43: ;
	{
		processonoffswitchg_173256(2097152, arg, pass, info);
	}
	goto LA90;
	LA44: ;
	{
		processonoffswitchg_173256(536870912, arg, pass, info);
	}
	goto LA90;
	LA45: ;
	{
		processonoffswitchg_173256(268435456, arg, pass, info);
	}
	goto LA90;
	LA46: ;
	{
		processonoffswitch_173214(1048576, arg, pass, info);
	}
	goto LA90;
	LA47: ;
	{
		processonoffswitch_173214(2097152, arg, pass, info);
	}
	goto LA90;
	LA48: ;
	{
		NimStringDesc* LOC182;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC182 = 0;
		LOC182 = nsuNormalize(arg);
		if (eqStrings(LOC182, ((NimStringDesc*) &TMP1352))) goto LA183;
		if (eqStrings(LOC182, ((NimStringDesc*) &TMP1353))) goto LA184;
		if (eqStrings(LOC182, ((NimStringDesc*) &TMP1301))) goto LA185;
		goto LA186;
		LA183: ;
		{
			goptions_137108 |=((NI32)(1)<<((((NU8) 13))%(sizeof(NI32)*8)));
			goptions_137108 &= ~((NI32)(1) << ((((NU8) 14)) % (sizeof(NI32)*8)));
		}
		goto LA187;
		LA184: ;
		{
			goptions_137108 &= ~((NI32)(1) << ((((NU8) 13)) % (sizeof(NI32)*8)));
			goptions_137108 |=((NI32)(1)<<((((NU8) 14))%(sizeof(NI32)*8)));
		}
		goto LA187;
		LA185: ;
		{
			goptions_137108 &= ~((NI32)(1) << ((((NU8) 13)) % (sizeof(NI32)*8)));
			goptions_137108 &= ~((NI32)(1) << ((((NU8) 14)) % (sizeof(NI32)*8)));
		}
		goto LA187;
		LA186: ;
		{
			localerror_165571(info, ((NU16) 52), arg);
		}
		LA187: ;
	}
	goto LA90;
	LA49: ;
	{
		NimStringDesc* LOC193;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC193 = 0;
		LOC193 = nsuNormalize(arg);
		if (eqStrings(LOC193, ((NimStringDesc*) &TMP1354))) goto LA194;
		if (eqStrings(LOC193, ((NimStringDesc*) &TMP1355))) goto LA195;
		if (eqStrings(LOC193, ((NimStringDesc*) &TMP1113))) goto LA196;
		if (eqStrings(LOC193, ((NimStringDesc*) &TMP1356))) goto LA197;
		goto LA198;
		LA194: ;
		{
			gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 10))%(sizeof(NI32)*8)));
			definesymbol_168006(((NimStringDesc*) &TMP1357));
			definesymbol_168006(((NimStringDesc*) &TMP1358));
		}
		goto LA199;
		LA195: ;
		{
			gglobaloptions_137111 &= ~((NI32)(1) << ((((NU8) 10)) % (sizeof(NI32)*8)));
			definesymbol_168006(((NimStringDesc*) &TMP1357));
			definesymbol_168006(((NimStringDesc*) &TMP1359));
		}
		goto LA199;
		LA196: ;
		{
			gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 8))%(sizeof(NI32)*8)));
			gglobaloptions_137111 &= ~((NI32)(1) << ((((NU8) 10)) % (sizeof(NI32)*8)));
			definesymbol_168006(((NimStringDesc*) &TMP1360));
			definesymbol_168006(((NimStringDesc*) &TMP1361));
		}
		goto LA199;
		LA197: ;
		{
			gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 9))%(sizeof(NI32)*8)));
			gglobaloptions_137111 &= ~((NI32)(1) << ((((NU8) 10)) % (sizeof(NI32)*8)));
			definesymbol_168006(((NimStringDesc*) &TMP1360));
			definesymbol_168006(((NimStringDesc*) &TMP1356));
		}
		goto LA199;
		LA198: ;
		{
			localerror_165571(info, ((NU16) 53), arg);
		}
		LA199: ;
	}
	goto LA90;
	LA50: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA208;
			addcompileoption_169707(arg);
		}
		LA208: ;
	}
	goto LA90;
	LA51: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA213;
			addlinkoption_169700(arg);
		}
		LA213: ;
	}
	goto LA90;
	LA52: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			NimStringDesc* LOC220;
			NimStringDesc* LOC221;
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA218;
			LOC220 = 0;
			LOC220 = processpath_174049(arg, NIM_FALSE);
			cincludes_169448 = (TY110805*) incrSeq(&(cincludes_169448)->Sup, sizeof(NimStringDesc*));
			LOC221 = 0;
			LOC221 = cincludes_169448->data[cincludes_169448->Sup.len-1]; cincludes_169448->data[cincludes_169448->Sup.len-1] = copyStringRC1(LOC220);
			if (LOC221) nimGCunrefNoCycle(LOC221);
		}
		LA218: ;
	}
	goto LA90;
	LA53: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			NimStringDesc* LOC227;
			NimStringDesc* LOC228;
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA225;
			LOC227 = 0;
			LOC227 = processpath_174049(arg, NIM_FALSE);
			clibs_169470 = (TY110805*) incrSeq(&(clibs_169470)->Sup, sizeof(NimStringDesc*));
			LOC228 = 0;
			LOC228 = clibs_169470->data[clibs_169470->Sup.len-1]; clibs_169470->data[clibs_169470->Sup.len-1] = copyStringRC1(LOC227);
			if (LOC228) nimGCunrefNoCycle(LOC228);
		}
		LA225: ;
	}
	goto LA90;
	LA54: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			NimStringDesc* LOC234;
			NimStringDesc* LOC235;
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA232;
			LOC234 = 0;
			LOC234 = processpath_174049(arg, NIM_FALSE);
			clinkedlibs_169492 = (TY110805*) incrSeq(&(clinkedlibs_169492)->Sup, sizeof(NimStringDesc*));
			LOC235 = 0;
			LOC235 = clinkedlibs_169492->data[clinkedlibs_169492->Sup.len-1]; clinkedlibs_169492->data[clinkedlibs_169492->Sup.len-1] = copyStringRC1(LOC234);
			if (LOC235) nimGCunrefNoCycle(LOC235);
		}
		LA232: ;
	}
	goto LA90;
	LA55: ;
	{
		NimStringDesc* LOC237;
		LOC237 = 0;
		LOC237 = headerfile_137119; headerfile_137119 = copyStringRC1(arg);
		if (LOC237) nimGCunrefNoCycle(LOC237);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 30))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA56: ;
	{
		processonoffswitchg_173256(1073741824, arg, pass, info);
	}
	goto LA90;
	LA57: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			NimStringDesc* LOC244;
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA242;
			implicitimports_137257 = (TY110805*) incrSeq(&(implicitimports_137257)->Sup, sizeof(NimStringDesc*));
			LOC244 = 0;
			LOC244 = implicitimports_137257->data[implicitimports_137257->Sup.len-1]; implicitimports_137257->data[implicitimports_137257->Sup.len-1] = copyStringRC1(arg);
			if (LOC244) nimGCunrefNoCycle(LOC244);
		}
		LA242: ;
	}
	goto LA90;
	LA58: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			NimStringDesc* LOC250;
			if (!((6 &(1<<((pass)&7)))!=0)) goto LA248;
			implicitincludes_137279 = (TY110805*) incrSeq(&(implicitincludes_137279)->Sup, sizeof(NimStringDesc*));
			LOC250 = 0;
			LOC250 = implicitincludes_137279->data[implicitincludes_137279->Sup.len-1]; implicitincludes_137279->data[implicitincludes_137279->Sup.len-1] = copyStringRC1(arg);
			if (LOC250) nimGCunrefNoCycle(LOC250);
		}
		LA248: ;
	}
	goto LA90;
	LA59: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 3))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA60: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 12))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA61: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			if (!((5 &(1<<((pass)&7)))!=0)) goto LA256;
			theos = nametoos_142582(arg);
			{
				if (!(theos == ((NU8) 0))) goto LA260;
				localerror_165571(info, ((NU16) 54), arg);
			}
			goto LA258;
			LA260: ;
			{
				if (!!((theos == hostos_142576))) goto LA263;
				settarget_142599(theos, targetcpu_142573);
				initdefines_168072();
			}
			goto LA258;
			LA263: ;
			LA258: ;
		}
		LA256: ;
	}
	goto LA90;
	LA62: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		{
			if (!((5 &(1<<((pass)&7)))!=0)) goto LA268;
			cpu = nametocpu_142586(arg);
			{
				if (!(cpu == ((NU8) 0))) goto LA272;
				localerror_165571(info, ((NU16) 55), arg);
			}
			goto LA270;
			LA272: ;
			{
				if (!!((cpu == hostcpu_142574))) goto LA275;
				settarget_142599(targetos_142575, cpu);
				initdefines_168072();
			}
			goto LA270;
			LA275: ;
			LA270: ;
		}
		LA268: ;
	}
	goto LA90;
	LA63: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 13))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA64: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		gverbosity_137120 = nsuParseInt(arg);
	}
	goto LA90;
	LA65: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		gnumberofprocessors_137121 = nsuParseInt(arg);
	}
	goto LA90;
	LA66: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		writeversioninfo_173099(pass);
	}
	goto LA90;
	LA67: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		writeadvancedusage_173052(pass);
	}
	goto LA90;
	LA68: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		helponerror_173038(pass);
	}
	goto LA90;
	LA69: ;
	{
		processonoffswitchg_173256(16384, arg, pass, info);
	}
	goto LA90;
	LA70: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 16))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA71: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 17))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA72: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 18))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA73: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 19))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA74: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 11))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA75: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		asgnRefNoCycle((void**) &libpath_137205, processpath_174049(arg, NIM_TRUE));
	}
	goto LA90;
	LA76: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		splitswitch_173137(arg, &key, &val, pass, info);
		putenv_111443(key, val);
	}
	goto LA90;
	LA77: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		setcc_169632(arg);
	}
	goto LA90;
	LA78: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		track_174085(arg, info);
	}
	goto LA90;
	LA79: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		trackdirty_174061(arg, info);
	}
	goto LA90;
	LA80: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 23))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA81: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 25))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA82: ;
	{
		NimStringDesc* LOC297;
		expectarg_173298(switch_173018, arg, pass, info);
		LOC297 = 0;
		LOC297 = gevalexpr_137123; gevalexpr_137123 = copyStringRC1(arg);
		if (LOC297) nimGCunrefNoCycle(LOC297);
	}
	goto LA90;
	LA83: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 24))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA84: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 26))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA85: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		gglobaloptions_137111 |=((NI32)(1)<<((((NU8) 22))%(sizeof(NI32)*8)));
	}
	goto LA90;
	LA86: ;
	{
		expectnoarg_173306(switch_173018, arg, pass, info);
		glistfullpaths_137125 = NIM_TRUE;
	}
	goto LA90;
	LA87: ;
	{
		dynliboverride_174109(switch_173018, arg, pass, info);
	}
	goto LA90;
	LA88: ;
	{
		expectarg_173298(switch_173018, arg, pass, info);
		if (eqStrings(arg, ((NimStringDesc*) &TMP1373))) goto LA304;
		if (eqStrings(arg, ((NimStringDesc*) &TMP1301))) goto LA305;
		goto LA306;
		LA304: ;
		{
			firstchariscs_167025 = NIM_TRUE;
		}
		goto LA307;
		LA305: ;
		{
			firstchariscs_167025 = NIM_FALSE;
		}
		goto LA307;
		LA306: ;
		{
			NimStringDesc* LOC311;
			LOC311 = 0;
			LOC311 = rawNewString(arg->Sup.len + 40);
appendString(LOC311, ((NimStringDesc*) &TMP1374));
appendString(LOC311, arg);
			localerror_165571(info, ((NU16) 4), LOC311);
		}
		LA307: ;
	}
	goto LA90;
	LA89: ;
	{
		{
			NI LOC315;
			LOC315 = 0;
			LOC315 = nsuFindChar(switch_173018, 46, 0);
			if (!(0 <= LOC315)) goto LA316;
			setconfigvar_137317(switch_173018, arg);
		}
		goto LA313;
		LA316: ;
		{
			invalidcmdlineoption_173130(pass, switch_173018, info);
		}
		LA313: ;
	}
	LA90: ;
}

N_NIMCALL(NIM_BOOL, testcompileoption_173584)(NimStringDesc* switch_173586, tlineinfo163527 info) {
	NIM_BOOL result;
	NimStringDesc* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = nsuNormalize(switch_173586);
	switch (hashString(LOC1) & 63) {
	case 1: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1062))) goto LA14;
break;
	case 2: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1074))) goto LA24;
break;
	case 8: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1066))) goto LA17;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1107))) goto LA27;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1080))) goto LA33;
break;
	case 9: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1057))) goto LA9;
break;
	case 12: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1078))) goto LA30;
break;
	case 14: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1046))) goto LA4;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1069))) goto LA20;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1073))) goto LA24;
break;
	case 16: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1052))) goto LA7;
break;
	case 19: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1060))) goto LA12;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1061))) goto LA13;
break;
	case 22: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1072))) goto LA23;
break;
	case 24: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1048))) goto LA6;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1059))) goto LA11;
break;
	case 25: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1045))) goto LA3;
break;
	case 26: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1065))) goto LA16;
break;
	case 29: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1047))) goto LA5;
break;
	case 30: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1044))) goto LA3;
break;
	case 31: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1071))) goto LA22;
break;
	case 32: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1053))) goto LA7;
break;
	case 34: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1075))) goto LA25;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1099))) goto LA26;
break;
	case 36: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1067))) goto LA18;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1077))) goto LA31;
break;
	case 37: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1063))) goto LA14;
break;
	case 40: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1058))) goto LA10;
break;
	case 41: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1070))) goto LA21;
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1098))) goto LA26;
break;
	case 42: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1112))) goto LA28;
break;
	case 45: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1042))) goto LA2;
break;
	case 46: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1049))) goto LA6;
break;
	case 49: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1068))) goto LA19;
break;
	case 51: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1056))) goto LA8;
break;
	case 53: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1064))) goto LA15;
break;
	case 54: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1076))) goto LA29;
break;
	case 62: 
if (eqStrings(LOC1, ((NimStringDesc*) &TMP1079))) goto LA32;
break;
	}
	goto LA34;
	LA2: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 7))&31)))!=0);
	}
	goto LA35;
	LA3: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 4))&31)))!=0);
	}
	goto LA35;
	LA4: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 5))&31)))!=0);
	}
	goto LA35;
	LA5: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 20))&31)))!=0);
	}
	goto LA35;
	LA6: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 1))&31)))!=0);
	}
	goto LA35;
	LA7: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 11))&31)))!=0);
	}
	goto LA35;
	LA8: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 12))&31)))!=0);
	}
	goto LA35;
	LA9: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 27))&31)))!=0);
	}
	goto LA35;
	LA10: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 15))&31)))!=0);
	}
	goto LA35;
	LA11: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 16))&31)))!=0);
	}
	goto LA35;
	LA12: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 17))&31)))!=0);
	}
	goto LA35;
	LA13: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 19))&31)))!=0);
	}
	goto LA35;
	LA14: ;
	{
		result = ((goptions_137108 & 1022) == 1022);
	}
	goto LA35;
	LA15: ;
	{
		result = ((goptions_137108 & 384) == 384);
	}
	goto LA35;
	LA16: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 8))&31)))!=0);
	}
	goto LA35;
	LA17: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 7))&31)))!=0);
	}
	goto LA35;
	LA18: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 1))&31)))!=0);
	}
	goto LA35;
	LA19: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 2))&31)))!=0);
	}
	goto LA35;
	LA20: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 3))&31)))!=0);
	}
	goto LA35;
	LA21: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 4))&31)))!=0);
	}
	goto LA35;
	LA22: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 5))&31)))!=0);
	}
	goto LA35;
	LA23: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 10))&31)))!=0);
	}
	goto LA35;
	LA24: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 9))&31)))!=0);
	}
	goto LA35;
	LA25: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 2))&31)))!=0);
	}
	goto LA35;
	LA26: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 13))&31)))!=0);
	}
	goto LA35;
	LA27: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 14))&31)))!=0);
	}
	goto LA35;
	LA28: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 11))&31)))!=0);
	}
	goto LA35;
	LA29: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 21))&31)))!=0);
	}
	goto LA35;
	LA30: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 28))&31)))!=0);
	}
	goto LA35;
	LA31: ;
	{
		result = ((gglobaloptions_137111 &(1<<((((NU8) 29))&31)))!=0);
	}
	goto LA35;
	LA32: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 20))&31)))!=0);
	}
	goto LA35;
	LA33: ;
	{
		result = ((goptions_137108 &(1<<((((NU8) 21))&31)))!=0);
	}
	goto LA35;
	LA34: ;
	{
		invalidcmdlineoption_173130(((NU8) 0), switch_173586, info);
	}
	LA35: ;
	return result;
}

N_NIMCALL(NIM_BOOL, testcompileoptionarg_173459)(NimStringDesc* switch_173461, NimStringDesc* arg, tlineinfo163527 info) {
	NIM_BOOL result;
	NimStringDesc* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = nsuNormalize(switch_173461);
	if (eqStrings(LOC1, ((NimStringDesc*) &TMP1051))) goto LA2;
	if (eqStrings(LOC1, ((NimStringDesc*) &TMP1081))) goto LA3;
	goto LA4;
	LA2: ;
	{
		NimStringDesc* LOC7;
		LOC7 = 0;
		LOC7 = nsuNormalize(arg);
		if (eqStrings(LOC7, ((NimStringDesc*) &TMP1296))) goto LA8;
		if (eqStrings(LOC7, ((NimStringDesc*) &TMP1297))) goto LA9;
		if (eqStrings(LOC7, ((NimStringDesc*) &TMP1298))) goto LA10;
		if (eqStrings(LOC7, ((NimStringDesc*) &TMP1299))) goto LA11;
		if (eqStrings(LOC7, ((NimStringDesc*) &TMP1300))) goto LA12;
		if (eqStrings(LOC7, ((NimStringDesc*) &TMP1301))) goto LA13;
		goto LA14;
		LA8: ;
		{
			result = (gselectedgc_137114 == ((NU8) 1));
		}
		goto LA15;
		LA9: ;
		{
			result = (gselectedgc_137114 == ((NU8) 3));
		}
		goto LA15;
		LA10: ;
		{
			result = (gselectedgc_137114 == ((NU8) 4));
		}
		goto LA15;
		LA11: ;
		{
			result = (gselectedgc_137114 == ((NU8) 2));
		}
		goto LA15;
		LA12: ;
		{
			result = (gselectedgc_137114 == ((NU8) 5));
		}
		goto LA15;
		LA13: ;
		{
			result = (gselectedgc_137114 == ((NU8) 0));
		}
		goto LA15;
		LA14: ;
		{
			localerror_165571(info, ((NU16) 51), arg);
		}
		LA15: ;
	}
	goto LA5;
	LA3: ;
	{
		NimStringDesc* LOC24;
		LOC24 = 0;
		LOC24 = nsuNormalize(arg);
		if (eqStrings(LOC24, ((NimStringDesc*) &TMP1352))) goto LA25;
		if (eqStrings(LOC24, ((NimStringDesc*) &TMP1353))) goto LA26;
		if (eqStrings(LOC24, ((NimStringDesc*) &TMP1301))) goto LA27;
		goto LA28;
		LA25: ;
		{
			result = ((goptions_137108 &(1<<((((NU8) 13))&31)))!=0);
		}
		goto LA29;
		LA26: ;
		{
			result = ((goptions_137108 &(1<<((((NU8) 14))&31)))!=0);
		}
		goto LA29;
		LA27: ;
		{
			result = ((goptions_137108 & 24576) == 0);
		}
		goto LA29;
		LA28: ;
		{
			localerror_165571(info, ((NU16) 52), arg);
		}
		LA29: ;
	}
	goto LA5;
	LA4: ;
	{
		invalidcmdlineoption_173130(((NU8) 0), switch_173461, info);
	}
	LA5: ;
	return result;
}
N_NOINLINE(void, commandsInit)(void) {
}

N_NOINLINE(void, commandsDatInit)(void) {
}

