#ifndef PRETTY_PRINTER_HH #define PRETTY_PRINTER_HH #include "visitor.hh" #include class PrettyPrinter : public ast::Visitor{ std::ostream &_os; public: PrettyPrinter(std::ostream &os = std::cout) : _os(os) {}; virtual void visit (ast::BinRelLT <); virtual void visit (ast::BinRelLTE <e); virtual void visit (ast::BinRelGT >); virtual void visit (ast::BinRelGTE >e); virtual void visit (ast::BinRelEQ &eq); virtual void visit (ast::BinRelNEQ &neq); virtual void visit (ast::RExpr &rexpr); virtual void visit (ast::WhereExpr &where_expr); virtual void visit (ast::WhenExpr &when_expr); virtual void visit (ast::Range &range); virtual void visit (ast::Values &values); virtual void visit (ast::SimpleFun &simple_fun); virtual void visit (ast::IDExpr &id_expr); virtual void visit (ast::IntegerExpr &integer_expr); virtual void visit (ast::MatrixExpr &matrix_expr); virtual void visit (ast::FunCallExpr &fun_call_expr); virtual void visit (ast::BinOpExpr &binop_expr); virtual void visit (ast::NEGExpr &neg_expr); virtual void visit (ast::RelBExpr &bexpr); virtual void visit (ast::ANDBExpr &bexpr); virtual void visit (ast::ORBExpr &bexpr); virtual void visit (ast::NOTBExpr &bexpr); virtual void visit (ast::TrueExpr &bexpr); virtual void visit (ast::Update &update); virtual void visit (ast::ValDeclaration &val_decl); virtual void visit (ast::FunDeclaration &fun_decl); virtual void visit (ast::MatrixDeclaration &matrix_decl); virtual void visit (ast::DProg &dprog); }; #endif // PRETTY_PRINTER_HH