/* Generated by Nim Compiler v2.2.10 */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tySequence__bdNIx7Bah2llfuqeoTJEWQ tySequence__bdNIx7Bah2llfuqeoTJEWQ;
typedef struct tySequence__bdNIx7Bah2llfuqeoTJEWQ_Content tySequence__bdNIx7Bah2llfuqeoTJEWQ_Content;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyTuple__kIcKc1aSJCixG4QCidyBAg tyTuple__kIcKc1aSJCixG4QCidyBAg;
typedef struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA tySequence__E0kio2ZnplNTuln9bsnljSA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content tySequence__E0kio2ZnplNTuln9bsnljSA_Content;
typedef struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA tySequence__hTEiKNj3evQAjIXUI21elA;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA_Content tySequence__hTEiKNj3evQAjIXUI21elA_Content;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q tySequence__xOJ2kx2lq9bBfIm3IXnde3Q;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg;
struct tySequence__bdNIx7Bah2llfuqeoTJEWQ {
  NI len; tySequence__bdNIx7Bah2llfuqeoTJEWQ_Content* p;
};
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
typedef NU8 tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw[13];
struct tyTuple__kIcKc1aSJCixG4QCidyBAg {
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ Field0;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw Field1;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw;
typedef NU8 tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA {
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw targetCPU;
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw hostCPU;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw targetOS;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw hostOS;
	NI intSize;
	NI floatSize;
	NI ptrSize;
	NimStringV2 tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw;
struct tySequence__E0kio2ZnplNTuln9bsnljSA {
  NI len; tySequence__E0kio2ZnplNTuln9bsnljSA_Content* p;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA {
  NI len; tySequence__hTEiKNj3evQAjIXUI21elA_Content* p;
};
struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA trackPos;
	NIM_BOOL trackPosAttached;
	tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw errorOutputs;
	tySequence__E0kio2ZnplNTuln9bsnljSA msgContext;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastError;
	tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A filenameToIndexTbl;
	tySequence__hTEiKNj3evQAjIXUI21elA fileInfos;
	NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ;
typedef NU8 tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw;
typedef NU8 tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
typedef NU32 tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
typedef NU8 tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA;
typedef NU8 tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw;
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q {
  NI len; tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content* p;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0, void* ClE_0);
void* ClE_0;
} tyProc__QQyR5yGA47tr5TwLxcC4Gw;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 output_p0, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 msg_p2, tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA severity_p3, void* ClE_0);
void* ClE_0;
} tyProc__DA9aR62IikoxFqfC5rIT9cuw;
struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA target;
	NI linesCompiled;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* macrosToExpand;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* arcToExpand;
	tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw m;
	tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ filenameOption;
	NimStringV2 unitSep;
	NI evalTemplateCounter;
	NI evalMacroCounter;
	NI8 exitcode;
	tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ cmd;
	NimStringV2 cmdInput;
	NIM_BOOL projectIsCmd;
	NIM_BOOL implicitCmd;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw exc;
	NIM_BOOL hintProcessingDots;
	NI verbosity;
	NI numberOfProcessors;
	NF lastCmdTime;
	tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA symbolFiles;
	NI spellSuggestMax;
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw cppDefines;
	NimStringV2 headerFile;
	NimStringV2 nimbasePattern;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA legacyFeatures;
	NimStringV2 arguments;
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng ideCmd;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw modifiedyNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw cmdlineNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw foreignPackageNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw notes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw warningAsErrors;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw mainPackageNotes;
	NI mainPackageId;
	NI errorCounter;
	NI hintCounter;
	NI warnCounter;
	NI errorMax;
	NI maxLoopIterationsVM;
	NI maxCallDepthVM;
	NIM_BOOL isVmTrace;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* configVars;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* symbols;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* packageCache;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ nimblePaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ searchPaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lazyPaths;
	NimStringV2 outFile;
	NimStringV2 outDir;
	NimStringV2 jsonBuildFile;
	NimStringV2 prefixDir;
	NimStringV2 libpath;
	NimStringV2 nimcacheDir;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* dllOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* moduleOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cfileSpecificOptions;
	NimStringV2 projectName;
	NimStringV2 projectPath;
	NimStringV2 projectFull;
	NIM_BOOL projectIsStdin;
	NimStringV2 stdinFile;
	tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw lastMsgWasDot;
	NI32 projectMainIdx;
	NI32 projectMainIdx2;
	NimStringV2 command;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ commandArgs;
	NimStringV2 commandLine;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ extraCmds;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitImports;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitIncludes;
	NimStringV2 docSeeSrcUrl;
	NimStringV2 docRoot;
	NimStringV2 docCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ configFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cIncludes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLinkedLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ externalToLink;
	NimStringV2 linkOptionsCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ compileOptionsCmd;
	NimStringV2 linkOptions;
	NimStringV2 compileOptions;
	NimStringV2 cCompilerPath;
	tySequence__xOJ2kx2lq9bBfIm3IXnde3Q toCompile;
	tyProc__QQyR5yGA47tr5TwLxcC4Gw suggestionResultHook;
	NI suggestVersion;
	NI suggestMaxResults;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastLineInfo;
	tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
	tyProc__DA9aR62IikoxFqfC5rIT9cuw structuredErrorHook;
	NimStringV2 cppCustomNamespace;
	NimStringV2 nimMainPrefix;
	tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* vmProfileData;
	NIM_BOOL expandProgress;
	NI expandLevels;
	NimStringV2 expandNodeResult;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA expandPosition;
	NimStringV2 currentConfigDir;
	NI clientProcessId;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typField;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind;
union{
	struct {
	NI64 intVal;
} _kind_1;
	struct {
	NF floatVal;
} _kind_2;
	struct {
	NimStringV2 strVal;
} _kind_3;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
} _kind_4;
	struct {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident;
} _kind_5;
	struct {
	tySequence__9ahcSjIErJohSBBFLwuF56Q sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw;
typedef NU16 tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw;
typedef NU8 tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA;
struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* next;
	NI h;
};
struct tySequence__bdNIx7Bah2llfuqeoTJEWQ_Content { NI cap; tyTuple__kIcKc1aSJCixG4QCidyBAg data[SEQ_DECL_SIZE]; };
struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NimStringV2 Field1;
};
struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content { NI cap; tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw {
	NimStringV2 fullPath;
	NimStringV2 projPath;
	NimStringV2 shortName;
	NimStringV2 quotedName;
	NimStringV2 quotedFullName;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lines;
	NimStringV2 dirtyFile;
	NimStringV2 hash;
	NIM_BOOL dirty;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA_Content { NI cap; tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ;
struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg {
	NimStringV2 nimname;
	NimStringV2 cname;
	NimStringV2 obj;
	tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ flags;
	NimStringV2 customArgs;
};
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content { NI cap; tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, pushBackendOption__pushpoppragmas_u186)(tySequence__bdNIx7Bah2llfuqeoTJEWQ* optionsStack_p0, tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options_p1, tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw notes_p2);
N_LIB_PRIVATE N_NIMCALL(void, add__pushpoppragmas_u190)(tySequence__bdNIx7Bah2llfuqeoTJEWQ* x_p0, tyTuple__kIcKc1aSJCixG4QCidyBAg y_p1);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, processNote__pushpoppragmas_u10)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw, whichKeyword__idents_u360)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* id_p0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA, findStr__commands_u346)(NimStringV2 s_p2, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA default_p3);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA, findStr__commands_u377)(NimStringV2 s_p2, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA default_p3);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw, whichPragma__trees_u218)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ, pragmaToOptions__pragmas_u839)(tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw w_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3252)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
static N_INLINE(tyTuple__kIcKc1aSJCixG4QCidyBAg*, X5BX5D___pushpoppragmas_u234)(tyTuple__kIcKc1aSJCixG4QCidyBAg* s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__cgendata_u1285)(tySequence__bdNIx7Bah2llfuqeoTJEWQ* s_p0, NI newlen_p1);
extern NIM_BOOL nimInErrorMode__system_u4179;
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
N_LIB_PRIVATE N_NIMCALL(void, pushBackendOption__pushpoppragmas_u186)(tySequence__bdNIx7Bah2llfuqeoTJEWQ* optionsStack_p0, tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options_p1, tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw notes_p2) {
	tyTuple__kIcKc1aSJCixG4QCidyBAg T1_;
	T1_.Field0 = options_p1;
	nimCopyMem((void*)T1_.Field1, (NIM_CONST void*)notes_p2, 13);
	add__pushpoppragmas_u190((&(*optionsStack_p0)), T1_);
}
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0)._kind_6.sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4179);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processNote__pushpoppragmas_u10)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw nk_1;
	tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nk_1 = ((tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw)20);
	T1_ = (tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)0;
	T1_ = whichKeyword__idents_u360((*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)0)])._kind_5.ident);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	switch (T1_) {
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)125):
	{
		tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA xX60gensym2__1;
		xX60gensym2__1 = findStr__commands_u346((*(*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)1)])._kind_5.ident).s, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nk_1 = (xX60gensym2__1);
		{
			if (!!(((*(*n_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal == IL64(0)))) goto LA5_;
			(*config_p0).notes[(NU)((nk_1 - 20))>>3] |=(1U<<((nk_1 - 20)&7U));
		}
		goto LA3_;
LA5_: ;
		{
			(*config_p0).notes[(NU)((nk_1 - 20))>>3] &= ~(1U<<((nk_1 - 20)&7U));
		}
LA3_: ;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)124):
	{
		tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA xX60gensym13__1;
		xX60gensym13__1 = findStr__commands_u377((*(*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)1)])._kind_5.ident).s, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nk_1 = (xX60gensym13__1);
		{
			if (!!(((*(*n_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal == IL64(0)))) goto LA11_;
			(*config_p0).notes[(NU)((nk_1 - 20))>>3] |=(1U<<((nk_1 - 20)&7U));
		}
		goto LA9_;
LA11_: ;
		{
			(*config_p0).notes[(NU)((nk_1 - 20))>>3] &= ~(1U<<((nk_1 - 20)&7U));
		}
LA9_: ;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)126):
	{
		tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA xX60gensym24__1;
		xX60gensym24__1 = findStr__commands_u377((*(*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)1)])._kind_5.ident).s, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nk_1 = (xX60gensym24__1);
		{
			if (!!(((*(*n_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal == IL64(0)))) goto LA17_;
			(*config_p0).warningAsErrors[(NU)((nk_1 - 20))>>3] |=(1U<<((nk_1 - 20)&7U));
		}
		goto LA15_;
LA17_: ;
		{
			(*config_p0).warningAsErrors[(NU)((nk_1 - 20))>>3] &= ~(1U<<((nk_1 - 20)&7U));
		}
LA15_: ;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)127):
	{
		tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA xX60gensym35__1;
		xX60gensym35__1 = findStr__commands_u346((*(*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)1)])._kind_5.ident).s, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nk_1 = (xX60gensym35__1);
		{
			if (!!(((*(*n_p1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal == IL64(0)))) goto LA23_;
			(*config_p0).warningAsErrors[(NU)((nk_1 - 20))>>3] |=(1U<<((nk_1 - 20)&7U));
		}
		goto LA21_;
LA23_: ;
		{
			(*config_p0).warningAsErrors[(NU)((nk_1 - 20))>>3] &= ~(1U<<((nk_1 - 20)&7U));
		}
LA21_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
static N_INLINE(tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ, pragmaToOptions__pragmas_u839)(tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw w_p0) {
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ result;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T1_;
	switch (w_p0) {
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)156):
	{
		result = 3518;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)80):
	{
		result = 2;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)202):
	{
		result = 4;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)157):
	{
		result = 8;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)158):
	{
		result = 16;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)159):
	{
		result = 32;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)161):
	{
		result = 384;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)162):
	{
		result = 128;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)163):
	{
		result = 256;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)165):
	{
		result = 512;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)164):
	{
		result = 1024;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)168):
	{
		result = 2048;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)172):
	{
		result = 8192;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)173):
	{
		result = 16384;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)133):
	{
		result = 4096;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)134):
	{
		result = 131072;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)135):
	{
		result = 524288;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)142):
	{
		result = 1;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)78):
	{
		result = 18874368;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)79):
	{
		result = 16777216;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)243):
	{
		result = 1048576;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)220):
	{
		result = 4194304;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)169):
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)170):
	{
		result = 8388608;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)171):
	{
		result = 33554432;
	}
	break;
	case ((tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw)233):
	{
		result = 268435456;
	}
	break;
	default:
	{
		result = 0;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processPushBackendOption__pushpoppragmas_u288)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tySequence__bdNIx7Bah2llfuqeoTJEWQ* optionsStack_p1, tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ* options_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p3, NI start_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	pushBackendOption__pushpoppragmas_u186(optionsStack_p1, (*options_p2), (*config_p0).notes);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190(n_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		i_2 = start_p4;
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
				if (!(i_2 < colontmp_)) goto LA3;
				it_1 = NIM_NIL;
				i_1 = i_2;
				eqcopy___ast_u3255(&it_1, (*n_p3)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T6_;
					NI T8_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*it_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)34) || (*it_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*it_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__ast_u3190(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T6_ = (T8_ == ((NI)2));
LA7_: ;
					if (!T6_) goto LA9_;
					{
						NIM_BOOL T13_;
						NIM_BOOL T14_;
						NIM_BOOL T15_;
						NI T17_;
						T13_ = (NIM_BOOL)0;
						T14_ = (NIM_BOOL)0;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*(*it_1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42));
						if (!(T15_)) goto LA16_;
						T17_ = (NI)0;
						T17_ = len__ast_u3190((*it_1)._kind_6.sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T15_ = (T17_ == ((NI)2));
LA16_: ;
						T14_ = T15_;
						if (!(T14_)) goto LA18_;
						T14_ = ((*(*(*it_1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2));
LA18_: ;
						T13_ = T14_;
						if (!(T13_)) goto LA19_;
						T13_ = ((*(*(*it_1)._kind_6.sons.p->data[((NI)0)])._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2));
LA19_: ;
						if (!T13_) goto LA20_;
						processNote__pushpoppragmas_u10(config_p0, it_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					goto LA11_;
LA20_: ;
					{
						tyEnum_TSpecialWord__WgU27rkTe9cqh7pWJYbt9c9bw sw_1;
						tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ opts_1;
						if (!((*(*it_1)._kind_6.sons.p->data[((NI)1)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)6))) goto LA23_;
						sw_1 = whichPragma__trees_u218((*it_1)._kind_6.sons.p->data[((NI)0)]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						opts_1 = pragmaToOptions__pragmas_u839(sw_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ T27_;
							T27_ = 0;
							if (!!((opts_1 == T27_))) goto LA28_;
							{
								if (!!(((*(*it_1)._kind_6.sons.p->data[((NI)1)])._kind_1.intVal == IL64(0)))) goto LA32_;
								(*options_p2) = ((*options_p2) | opts_1);
							}
							goto LA30_;
LA32_: ;
							{
								(*options_p2) = ((*options_p2) & ~ opts_1);
							}
LA30_: ;
						}
LA28_: ;
					}
					goto LA11_;
LA23_: ;
LA11_: ;
				}
LA9_: ;
				i_2 += ((NI)1);
				eqdestroy___ast_u3252(it_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
static N_INLINE(tyTuple__kIcKc1aSJCixG4QCidyBAg*, X5BX5D___pushpoppragmas_u234)(tyTuple__kIcKc1aSJCixG4QCidyBAg* s_p0, NI s_p0Len_0, NI i_p1) {
	tyTuple__kIcKc1aSJCixG4QCidyBAg* result;
	result = (&s_p0[(NI)(s_p0Len_0 - i_p1)]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, popBackendOption__pushpoppragmas_u230)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tySequence__bdNIx7Bah2llfuqeoTJEWQ* optionsStack_p1, tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ* options_p2) {
	tyTuple__kIcKc1aSJCixG4QCidyBAg entry_1;
	tyTuple__kIcKc1aSJCixG4QCidyBAg* T1_;
	NI T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (tyTuple__kIcKc1aSJCixG4QCidyBAg*)0;
	T1_ = X5BX5D___pushpoppragmas_u234(((*optionsStack_p1).p) ? ((*optionsStack_p1).p->data) : NIM_NIL, (*optionsStack_p1).len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	entry_1 = (*T1_);
	(*options_p2) = entry_1.Field0;
	nimCopyMem((void*)(*config_p0).notes, (NIM_CONST void*)entry_1.Field1, 13);
	T2_ = (*optionsStack_p1).len;
	setLen__cgendata_u1285((&(*optionsStack_p1)), ((NI)(T2_ - ((NI)1))));
	}BeforeRet_: ;
}
