|
|
@ -16,7 +16,8 @@ namespace Cxxi |
|
|
|
|
|
|
|
|
|
|
|
public bool ParseHeaders(IEnumerable<string> headers) |
|
|
|
public bool ParseHeaders(IEnumerable<string> headers) |
|
|
|
{ |
|
|
|
{ |
|
|
|
bool hasErrors = false; |
|
|
|
var hasErrors = false; |
|
|
|
|
|
|
|
|
|
|
|
foreach (var header in headers) |
|
|
|
foreach (var header in headers) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var result = ParseHeader(header); |
|
|
|
var result = ParseHeader(header); |
|
|
@ -48,12 +49,54 @@ namespace Cxxi |
|
|
|
ToolSetToUse = options.ToolsetToUse |
|
|
|
ToolSetToUse = options.ToolsetToUse |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var result = ClangParser.Parse(parserOptions); |
|
|
|
var result = ClangParser.ParseHeader(parserOptions); |
|
|
|
HeaderParsed(file, result); |
|
|
|
OnHeaderParsed(file, result); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool ParseLibraries(IEnumerable<string> libraries) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var hasErrors = false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var lib in libraries) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var result = ParseLibrary(lib); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// If we have some error, report to end-user.
|
|
|
|
|
|
|
|
if (!options.IgnoreErrors) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
foreach (var diag in result.Diagnostics) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (diag.Level == ParserDiagnosticLevel.Error || |
|
|
|
|
|
|
|
diag.Level == ParserDiagnosticLevel.Fatal) |
|
|
|
|
|
|
|
hasErrors = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return !hasErrors; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ParserResult ParseLibrary(string file) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var parserOptions = new ParserOptions |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Library = Library, |
|
|
|
|
|
|
|
FileName = file, |
|
|
|
|
|
|
|
Verbose = false, |
|
|
|
|
|
|
|
LibraryDirs = options.LibraryDirs, |
|
|
|
|
|
|
|
ToolSetToUse = options.ToolsetToUse |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var result = ClangParser.ParseLibrary(parserOptions); |
|
|
|
|
|
|
|
OnLibraryParsed(file, result); |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public Action<string, ParserResult> HeaderParsed = delegate {}; |
|
|
|
public Action<string, ParserResult> OnHeaderParsed = delegate {}; |
|
|
|
|
|
|
|
public Action<string, ParserResult> OnLibraryParsed = delegate { }; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|