Browse Source

Added the parser code to parse native libraries.

pull/1/head
triton 12 years ago
parent
commit
5b1e773a14
  1. 51
      src/Generator/Parser.cs

51
src/Generator/Parser.cs

@ -16,7 +16,8 @@ namespace Cxxi @@ -16,7 +16,8 @@ namespace Cxxi
public bool ParseHeaders(IEnumerable<string> headers)
{
bool hasErrors = false;
var hasErrors = false;
foreach (var header in headers)
{
var result = ParseHeader(header);
@ -48,12 +49,54 @@ namespace Cxxi @@ -48,12 +49,54 @@ namespace Cxxi
ToolSetToUse = options.ToolsetToUse
};
var result = ClangParser.Parse(parserOptions);
HeaderParsed(file, result);
var result = ClangParser.ParseHeader(parserOptions);
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;
}
public Action<string, ParserResult> HeaderParsed = delegate {};
public Action<string, ParserResult> OnHeaderParsed = delegate {};
public Action<string, ParserResult> OnLibraryParsed = delegate { };
}
}

Loading…
Cancel
Save