public ParserOptions BuildParseOptions(SourceFile file) { var options = new ParserOptions { FileName = file.Path, Abi = Options.Abi, ToolSetToUse = Options.ToolSetToUse, TargetTriple = Options.TargetTriple, NoStandardIncludes = Options.NoStandardIncludes, NoBuiltinIncludes = Options.NoBuiltinIncludes, MicrosoftMode = Options.MicrosoftMode, Verbose = Options.Verbose, LanguageVersion = Options.LanguageVersion }; // This eventually gets passed to Clang's MSCompatibilityVersion, which // is in turn used to derive the value of the built-in define _MSC_VER. // It used to receive a 4-digit based identifier but now expects a full // version MSVC digit, so check if we still have the old version and // convert to the right format. if (Options.ToolSetToUse.ToString(CultureInfo.InvariantCulture).Length == 4) { Options.ToolSetToUse *= 100000; } for (uint i = 0; i < Options.ArgumentsCount; ++i) { var arg = Options.getArguments(i); options.addArguments(arg); } for (uint i = 0; i < Options.IncludeDirsCount; ++i) { var include = Options.getIncludeDirs(i); options.addIncludeDirs(include); } for (uint i = 0; i < Options.SystemIncludeDirsCount; ++i) { var include = Options.getSystemIncludeDirs(i); options.addSystemIncludeDirs(include); } for (uint i = 0; i < Options.DefinesCount; ++i) { var define = Options.getDefines(i); options.addDefines(define); } for (uint i = 0; i < Options.UndefinesCount; ++i) { var define = Options.getUndefines(i); options.addUndefines(define); } for (uint i = 0; i < Options.LibraryDirsCount; ++i) { var lib = Options.getLibraryDirs(i); options.addLibraryDirs(lib); } return(options); }
public ParserOptions BuildParserOptions(string file = null) { var options = new ParserOptions { Abi = ParserOptions.Abi, ToolSetToUse = ParserOptions.ToolSetToUse, TargetTriple = ParserOptions.TargetTriple, NoStandardIncludes = ParserOptions.NoStandardIncludes, NoBuiltinIncludes = ParserOptions.NoBuiltinIncludes, MicrosoftMode = ParserOptions.MicrosoftMode, Verbose = ParserOptions.Verbose, LanguageVersion = ParserOptions.LanguageVersion }; // This eventually gets passed to Clang's MSCompatibilityVersion, which // is in turn used to derive the value of the built-in define _MSC_VER. // It used to receive a 4-digit based identifier but now expects a full // version MSVC digit, so check if we still have the old version and // convert to the right format. if (ParserOptions.ToolSetToUse.ToString(CultureInfo.InvariantCulture).Length == 4) { ParserOptions.ToolSetToUse *= 100000; } for (uint i = 0; i < ParserOptions.ArgumentsCount; ++i) { var arg = ParserOptions.GetArguments(i); options.AddArguments(arg); } for (uint i = 0; i < ParserOptions.IncludeDirsCount; ++i) { var include = ParserOptions.GetIncludeDirs(i); options.AddIncludeDirs(include); } for (uint i = 0; i < ParserOptions.SystemIncludeDirsCount; ++i) { var include = ParserOptions.GetSystemIncludeDirs(i); options.AddSystemIncludeDirs(include); } for (uint i = 0; i < ParserOptions.DefinesCount; ++i) { var define = ParserOptions.GetDefines(i); options.AddDefines(define); } for (uint i = 0; i < ParserOptions.UndefinesCount; ++i) { var define = ParserOptions.GetUndefines(i); options.AddUndefines(define); } for (uint i = 0; i < ParserOptions.LibraryDirsCount; ++i) { var lib = ParserOptions.GetLibraryDirs(i); options.AddLibraryDirs(lib); } foreach (var module in Options.Modules.Where( m => file == null || m.Headers.Contains(file))) { foreach (var include in module.IncludeDirs) { options.AddIncludeDirs(include); } foreach (var define in module.Defines) { options.AddDefines(define); } foreach (var undefine in module.Undefines) { options.AddUndefines(undefine); } foreach (var libraryDir in module.LibraryDirs) { options.AddLibraryDirs(libraryDir); } } return(options); }
public Driver(DriverOptions options) { Options = options; ParserOptions = new ParserOptions(); }
public void Dispose() { Generator.Dispose(); Context.TargetInfo?.Dispose(); ParserOptions.Dispose(); }
/// <summary> /// Get info about that target /// </summary> /// <param name="options"></param> /// <returns></returns> public ParserTargetInfo GetTargetInfo(ParserOptions options) { options.ASTContext = ASTContext; return(Parser.ClangParser.GetTargetInfo(options)); }
public Driver(DriverOptions options) { Options = options; Project = new Project(); ParserOptions = new ParserOptions(); }
private void SetupLinuxOptions(ParserOptions parserOptions) { parserOptions.SetupLinux(); parserOptions.AddDefines("_GLIBCXX_USE_CXX11_ABI=" + (options.Cpp11ABI ? "1" : "0")); }
/// <summary> /// Parses a C++ source file as a translation unit. /// </summary> public ParserResult ParseSourceFile(string file, ParserOptions options) { return(ParseSourceFiles(new [] { file }, options)); }