diff options
| author | Glenn Smith <glenn@vector35.com> | 2022-02-16 17:54:15 -0500 |
|---|---|---|
| committer | Glenn Smith <glenn@vector35.com> | 2022-05-11 17:04:32 -0400 |
| commit | 09c85a868bad7e6e1b1b117eefc2c2aa9aaef4be (patch) | |
| tree | e2b298049cc02f7b41f182a8f52a9e678c84dbeb /python/generator.cpp | |
| parent | 545fef9216559d08f58f7e20082b36352203a8cf (diff) | |
Clang+TypeParser APIs
Diffstat (limited to 'python/generator.cpp')
| -rw-r--r-- | python/generator.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/python/generator.cpp b/python/generator.cpp index 99d2d455..cc4b5102 100644 --- a/python/generator.cpp +++ b/python/generator.cpp @@ -239,7 +239,19 @@ int main(int argc, char* argv[]) map<QualifiedName, Ref<Type>> types, vars, funcs; string errors; auto arch = new CoreArchitecture(BNGetNativeTypeParserArchitecture()); + + string oldParser; + if (Settings::Instance()->Contains("analysis.types.parserNamer")) + oldParser = Settings::Instance()->Get<string>("analysis.types.parserNamer"); + Settings::Instance()->Set("analysis.types.parserName", "CoreTypeParser"); + bool ok = arch->GetStandalonePlatform()->ParseTypesFromSourceFile(argv[1], types, vars, funcs, errors); + + if (!oldParser.empty()) + Settings::Instance()->Set("analysis.types.parserName", oldParser); + else + Settings::Instance()->Reset("analysis.types.parserName"); + fprintf(stderr, "Errors: %s\n", errors.c_str()); if (!ok) return 1; |
