#pragma once #include #include "IR.h" namespace sysy { class SysYPrinter { private: Module *pModule; public: explicit SysYPrinter(Module *pModule) : pModule(pModule) {} public: void printIR(); void printGlobalVariable(); void printFunction(Function *function); void printInst(Instruction *pInst); void printType(Type *type); void printValue(Value *value); public: static std::string getOperandName(Value *operand); std::string getTypeString(Type *type); std::string getValueName(Value *value); }; } // namespace sysy