summaryrefslogtreecommitdiff
path: root/highlevelil.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-10-13 19:35:01 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-10-21 13:52:39 -0400
commit5d4fc5f1fb7a0c368d2a048a5d750564c970c9c9 (patch)
treecd740b4af25fe5184935fd67067025733f17b099 /highlevelil.cpp
parentcae26921cf2b2e564f66e58b77a3963fe36f6d2d (diff)
Add derived strings and string recognizer API
Diffstat (limited to 'highlevelil.cpp')
-rw-r--r--highlevelil.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/highlevelil.cpp b/highlevelil.cpp
index 84d74eb3..5f1323eb 100644
--- a/highlevelil.cpp
+++ b/highlevelil.cpp
@@ -645,6 +645,28 @@ set<SSAVariable> HighLevelILFunction::GetSSAVariables()
}
+void HighLevelILFunction::SetDerivedStringReferenceForExpr(size_t expr, const DerivedString& str)
+{
+ BNDerivedString strObj = str.ToAPIObject(false);
+ BNSetHighLevelILDerivedStringReferenceForExpr(m_object, expr, &strObj);
+}
+
+
+void HighLevelILFunction::RemoveDerivedStringReferenceForExpr(size_t expr)
+{
+ BNRemoveHighLevelILDerivedStringReferenceForExpr(m_object, expr);
+}
+
+
+optional<DerivedString> HighLevelILFunction::GetDerivedStringReferenceForExpr(size_t expr)
+{
+ BNDerivedString str;
+ if (!BNGetHighLevelILDerivedStringReferenceForExpr(m_object, expr, &str))
+ return std::nullopt;
+ return DerivedString::FromAPIObject(&str, true);
+}
+
+
HighLevelILTokenEmitter::CurrentExprGuard::CurrentExprGuard(HighLevelILTokenEmitter& parent, const BNTokenEmitterExpr& expr):
m_parent(&parent)
{