summaryrefslogtreecommitdiff
path: root/python/generator.cpp
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2022-02-16 17:54:15 -0500
committerGlenn Smith <glenn@vector35.com>2022-05-11 17:04:32 -0400
commit09c85a868bad7e6e1b1b117eefc2c2aa9aaef4be (patch)
treee2b298049cc02f7b41f182a8f52a9e678c84dbeb /python/generator.cpp
parent545fef9216559d08f58f7e20082b36352203a8cf (diff)
Clang+TypeParser APIs
Diffstat (limited to 'python/generator.cpp')
-rw-r--r--python/generator.cpp12
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;