From d31604dd81e806dcb9e66200b86043beaee92a42 Mon Sep 17 00:00:00 2001 From: Ajay Brahmakshatriya Date: Wed, 10 Dec 2025 11:05:34 -0500 Subject: [PATCH 1/2] Added support for all nodes required for DBD --- include/blocks/block_replacer.h | 8 +- include/blocks/block_visitor.h | 8 ++ include/blocks/c_code_generator.h | 110 +++++++++++----------- include/blocks/expr.h | 41 +++++++++ include/blocks/stmt.h | 125 ++++++++++++++++++++++++- include/blocks/var.h | 34 ++++++- include/builder/dyn_var.h | 17 +++- samples/outputs.var_names/sample38 | 2 +- samples/outputs.var_names/sample42 | 6 +- samples/outputs.var_names/sample57 | 2 +- samples/outputs.var_names/sample60 | 2 +- samples/outputs.var_names/sample68 | 6 ++ samples/outputs/sample38 | 2 +- samples/outputs/sample42 | 6 +- samples/outputs/sample57 | 2 +- samples/outputs/sample60 | 2 +- samples/outputs/sample68 | 6 ++ samples/sample68.cpp | 28 ++++++ src/blocks/block_replacer.cpp | 71 ++++++++++----- src/blocks/block_visitor.cpp | 21 +++++ src/blocks/c_code_generator.cpp | 142 +++++++++++++++++++++++++++-- src/blocks/expr.cpp | 6 ++ src/blocks/rce.cpp | 20 ++-- src/blocks/stmt.cpp | 15 +++ src/blocks/var.cpp | 7 ++ 25 files changed, 581 insertions(+), 108 deletions(-) create mode 100644 samples/outputs.var_names/sample68 create mode 100644 samples/outputs/sample68 create mode 100644 samples/sample68.cpp diff --git a/include/blocks/block_replacer.h b/include/blocks/block_replacer.h index 51a2799..98844b7 100644 --- a/include/blocks/block_replacer.h +++ b/include/blocks/block_replacer.h @@ -13,8 +13,8 @@ class block_replacer : public block_visitor { std::shared_ptr to_replace; std::shared_ptr replace_with; - template - typename T::Ptr rewrite(typename T::Ptr ptr) { + template + typename std::shared_ptr rewrite(std::shared_ptr ptr) { auto tmp = node; node = nullptr; ptr->accept(this); @@ -64,6 +64,8 @@ class block_replacer : public block_visitor { virtual void visit(std::shared_ptr) override; virtual void visit(std::shared_ptr) override; virtual void visit(std::shared_ptr) override; + virtual void visit(std::shared_ptr) override; + virtual void visit(std::shared_ptr) override; virtual void visit(std::shared_ptr