コード例 #1
0
ファイル: TokenFilterTests.cs プロジェクト: thecocce/dgrok
 public void SetUp()
 {
     _fileLoader = new MemoryFileLoader();
     _defines = CompilerDefines.CreateEmpty();
     _defines.DefineSymbol("TRUE");
     _defines.UndefineSymbol("FALSE");
     _defines.DefineDirectiveAsTrue("IF True");
     _defines.DefineDirectiveAsFalse("IF False");
 }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: CompilerDefines.cs プロジェクト: DvdKhl/dgrok
        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);
        }