#include #include #include "LLVMVisitor/LLVMVisitor.h" void freeNodes(Value* v) { if (dynamic_cast(v) != nullptr) { for (Value* val : static_cast(v)->get_args()) freeNodes(val); } else if (dynamic_cast(v) != nullptr) { for (Value* val : static_cast(v)->get_value()) freeNodes(val); } delete v; } int main() { LLVMVisitor visitor("testout.ll"); std::deque nodes = { new Funcall("defvar", { new Name("myvar"), new Float(4.956) }) }; for (Value* n : nodes) { n->Visit(visitor); } // visitor.insertMain(); for (Value* n : nodes) freeNodes(n); }