#pragma once #include "Expression.h" #include #include class ASTPrinter : public Visitor { std::string visitBinaryExpr(BinaryExpr* expression) override; std::string visitGroupingExpr(GroupingExpr* expression) override; std::string visitLiteralExpr(LiteralExpr* expression) override; std::string visitUnaryExpr(UnaryExpr* expression) override; public: int test = 10; std::string print(Expr* expr); private: std::string parenthesize(std::string name, std::vector > > exprs); };