public void SetUp() { _fileLoader = new MemoryFileLoader(); _defines = CompilerDefines.CreateEmpty(); _defines.DefineSymbol("TRUE"); _defines.UndefineSymbol("FALSE"); _defines.DefineDirectiveAsTrue("IF True"); _defines.DefineDirectiveAsFalse("IF False"); }
public CompilerDefines CreateCompilerDefines() { CompilerDefines result = CompilerDefines.CreateStandard(); for (char option = 'A'; option <= 'Z'; ++option) { result.DefineDirective("IFOPT " + option + "-", _compilerOptions.IsOptionOff(option)); result.DefineDirective("IFOPT " + option + "+", _compilerOptions.IsOptionOn(option)); } foreach (string define in CustomDefines.Split(';')) { result.DefineSymbol(define); } result.DefineSymbol(DelphiVersionDefine); foreach (string condition in FalseIfConditions.Split(';')) { result.DefineDirectiveAsFalse(condition); } foreach (string condition in TrueIfConditions.Split(';')) { result.DefineDirectiveAsTrue(condition); } return(result); }
public static CompilerDefines CreateStandard() { CompilerDefines defines = CreateEmpty(); // These lists come from the following sources: // - Actual IFDEFs in the Delphi RTL source // - http://www.blong.com/Tips/KylixTips.htm#Conditionals defines.DefineSymbol("CONDITIONALEXPRESSIONS"); defines.DefineSymbol("ZEROBASEDSTRINGS"); defines.DefineSymbol("CPU386"); defines.DefineSymbol("MSWINDOWS"); defines.DefineSymbol("WIN32"); defines.DefineDirectiveAsTrue("IF not GenericSafeArrays"); defines.DefineDirectiveAsTrue("IF not GenericVariants"); // Delphi 1 for Win16 defines.UndefineSymbol("WINDOWS"); // C++Builder defines.UndefineSymbol("BCB"); // Kylix defines.UndefineSymbol("DECLARE_GPL"); defines.UndefineSymbol("ELF"); defines.UndefineSymbol("LINUX"); defines.UndefineSymbol("LINUX32"); defines.UndefineSymbol("PC_MAPPED_EXCEPTIONS"); defines.UndefineSymbol(" PC_MAPPED_EXCEPTIONS"); defines.UndefineSymbol("PIC"); defines.UndefineSymbol("POSIX"); defines.UndefineSymbol("POSIX32"); // Delphi for .NET defines.UndefineSymbol("CIL"); defines.UndefineSymbol("CLR"); defines.UndefineSymbol("MANAGEDCODE"); // Miscellaneous defines.UndefineSymbol("DEBUG"); defines.UndefineSymbol("DEBUG_FUNCTIONS"); defines.UndefineSymbol("DEBUG_MREWS"); defines.UndefineSymbol("GLOBALALLOC"); defines.UndefineSymbol("MEMORY_DIAG"); defines.UndefineSymbol("PUREPASCAL"); defines.UndefineSymbol("TRIAL_EDITION"); defines.UndefineSymbol("USEPASCALCODE"); defines.DefineDirectiveAsFalse("IF Defined(PIC) Or Defined(PUREPASCAL)"); defines.DefineDirectiveAsFalse("IF GenericOperations"); defines.DefineDirectiveAsFalse("IF GenericVariants"); defines.DefineDirectiveAsFalse("IFOPT R-"); // Version tags. Not surprisingly, you should DefineSymbol() only one. defines.UndefineSymbol("VER80"); // Delphi 1 defines.UndefineSymbol("VER90"); // Delphi 2 defines.UndefineSymbol("VER93"); // C++Builder 1 defines.UndefineSymbol("VER100"); // Delphi 3 defines.UndefineSymbol("VER110"); // C++Builder 3 defines.UndefineSymbol("VER120"); // Delphi 4 defines.UndefineSymbol("VER125"); // C++Builder 4 defines.UndefineSymbol("VER130"); // Delphi/C++Builder 5 defines.UndefineSymbol("VER140"); // Delphi/C++Builder 6, Kylix 1, 2, & 3 defines.UndefineSymbol("VER150"); // Delphi 7 defines.UndefineSymbol("VER160"); // Delphi 8 for .NET defines.UndefineSymbol("VER170"); // Delphi 2005 defines.UndefineSymbol("VER180"); // Delphi 2006 // Need: VERxxx value for Delphi 2007 for Win32 // Need: VERxxx value for CodeGear RAD Studio 2007 return(defines); }