diff --git a/src/Generator/Parser.cs b/src/Generator/Parser.cs index f014f4d4..a3cc07a9 100644 --- a/src/Generator/Parser.cs +++ b/src/Generator/Parser.cs @@ -1,22 +1,22 @@ -using System; -using System.Collections.Generic; - -namespace Cxxi -{ - public class Parser - { - public Library Library { get; private set; } - private readonly DriverOptions options; - - public Parser(DriverOptions options) - { - this.options = options; - Library = new Library(options.OutputNamespace, options.LibraryName); - } - - public bool ParseHeaders(IEnumerable headers) +using System; +using System.Collections.Generic; + +namespace Cxxi +{ + public class Parser + { + public Library Library { get; private set; } + private readonly DriverOptions options; + + public Parser(DriverOptions options) { - bool bHasErrors = false; + this.options = options; + Library = new Library(options.OutputNamespace, options.LibraryName); + } + + public bool ParseHeaders(IEnumerable headers) + { + bool hasErrors = false; foreach (var header in headers) { var result = ParseHeader(header); @@ -26,36 +26,39 @@ namespace Cxxi { foreach (var diag in result.Diagnostics) { - if (diag.Level == ParserDiagnosticLevel.Error || diag.Level == ParserDiagnosticLevel.Fatal) + if (diag.Level == ParserDiagnosticLevel.Error || + diag.Level == ParserDiagnosticLevel.Fatal) { - Console.WriteLine(String.Format("{0}({1},{2}): error: {3}", diag.FileName, diag.lineNumber, diag.columnNumber, diag.Message)); - bHasErrors = true; + Console.WriteLine(string.Format("{0}({1},{2}): error: {3}", + diag.FileName, diag.LineNumber, diag.ColumnNumber, + diag.Message)); + hasErrors = true; } } - } //if + } } - return !bHasErrors; - } - - public ParserResult ParseHeader(string file) - { - var parserOptions = new ParserOptions - { - Library = Library, - FileName = file, - Verbose = false, - IncludeDirs = options.IncludeDirs, - Defines = options.Defines, - ToolSetToUse = options.ToolsetToUse - }; - - var result = ClangParser.Parse(parserOptions); - HeaderParsed(file, result); - - return result; - } - - public Action HeaderParsed = delegate {}; - } -} + return !hasErrors; + } + + public ParserResult ParseHeader(string file) + { + var parserOptions = new ParserOptions + { + Library = Library, + FileName = file, + Verbose = false, + IncludeDirs = options.IncludeDirs, + Defines = options.Defines, + ToolSetToUse = options.ToolsetToUse + }; + + var result = ClangParser.Parse(parserOptions); + HeaderParsed(file, result); + + return result; + } + + public Action HeaderParsed = delegate {}; + } +} diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index e34ca8ef..5bcea862 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -1638,19 +1638,16 @@ ParserResult^ Parser::Parse(const std::string& File) auto PDiag = ParserDiagnostic(); PDiag.FileName = marshalString(FileName.str()); PDiag.Message = marshalString(Diag.Message.str()); - PDiag.lineNumber = 0; - PDiag.columnNumber = 0; + PDiag.LineNumber = 0; + PDiag.ColumnNumber = 0; - // - // Idea copied from CGDebugInfo::getLineNumber - // if( !Diag.Location.isInvalid() ) { clang::PresumedLoc PLoc = Source.getPresumedLoc(Diag.Location); if( PLoc.isValid() ) { - PDiag.lineNumber = PLoc.getLine(); - PDiag.columnNumber = PLoc.getColumn(); + PDiag.LineNumber = PLoc.getLine(); + PDiag.ColumnNumber = PLoc.getColumn(); } } diff --git a/src/Parser/Parser.h b/src/Parser/Parser.h index 478a74b8..37079758 100644 --- a/src/Parser/Parser.h +++ b/src/Parser/Parser.h @@ -55,7 +55,6 @@ public ref struct ParserOptions bool Verbose; }; - public enum struct ParserDiagnosticLevel { Ignored, @@ -65,14 +64,13 @@ public enum struct ParserDiagnosticLevel Fatal }; - public value struct ParserDiagnostic { System::String^ FileName; - int lineNumber; - int columnNumber; System::String^ Message; ParserDiagnosticLevel Level; + int LineNumber; + int ColumnNumber; }; public enum struct ParserResultKind