1 Star 1 Fork 0

yuncliu/toyc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
DumpVisitor.h 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
yuncliu 提交于 2016-03-13 23:31 . add CodeGen for IfStmt
#ifndef _DUMP_VISITOR_H_
#define _DUMP_VISITOR_H_
#include <map>
#include <vector>
#include "Visitor.h"
#define LIGHT_GREEN "\x1B[0;1;32m"
#define COLOR_BLUE "\x1B[34m"
#define COLOR_RESET "\033[0m"
class DumpVisitor;
class Stmt;
typedef bool (DumpVisitor::*VISIT_FUNC)(std::shared_ptr<Stmt> s);
class DumpVisitor:public Visitor {
protected:
std::map<std::string, VISIT_FUNC> functions;
std::vector<std::string> prefix;
bool is_last;
public:
DumpVisitor();
virtual ~DumpVisitor();
VISIT_FUNC getFunction(std::string name);
virtual bool Visit(std::shared_ptr<Stmt> s);
void print_prefix();
bool VisitCompoundStmt(std::shared_ptr<Stmt> stmt);
bool VisitFunc(std::shared_ptr<Stmt> stmt);
bool VisitFuncProtoType(std::shared_ptr<Stmt> stmt);
bool VisitIdExpr(std::shared_ptr<Stmt> stmt);
bool VisitTypeExpr(std::shared_ptr<Stmt> stmt);
bool VisitFuncParameter(std::shared_ptr<Stmt> stmt);
bool VisitVarExpr(std::shared_ptr<Stmt> stmt);
bool VisitBinaryExpr(std::shared_ptr<Stmt> stmt);
bool VisitReturnStmt(std::shared_ptr<Stmt> stmt);
bool VisitIntExpr(std::shared_ptr<Stmt> stmt);
bool VisitFuncCallExpr(std::shared_ptr<Stmt> stmt);
bool VisitIfStmt(std::shared_ptr<Stmt> stmt);
};
#endif // _VISITOR_H_
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/yuncliu/toyc.git
git@gitee.com:yuncliu/toyc.git
yuncliu
toyc
toyc
c

搜索帮助