-#include "TocBaseListener.h"\r
-\r
-#include <iostream>\r
-\r
-using namespace std;\r
-\r
-class MyListener : public TocBaseListener {\r
- void enterVarDecl(TocParser::VarDeclContext * ctx) {\r
- cout\r
- << ctx->var()->type()->getText()\r
- << " "\r
- << ctx->var()->varName()->getText();\r
-\r
- if (ctx->var()->expr() != nullptr) {\r
- cout << " = ";\r
- }\r
- }\r
- void exitVarDecl(TocParser::VarDeclContext * ctx) {\r
- cout << ";" << endl;\r
- }\r
-\r
- void enterFuncDecl(TocParser::FuncDeclContext * ctx) {\r
- cout\r
- << ctx->type()->getText()\r
- << " "\r
- << ctx->funcName()->getText()\r
- << "(";\r
-\r
- if (ctx->parameter()->firstParameter() != nullptr) {\r
- cout\r
- << ctx->parameter()->firstParameter()->var()->type()->getText()\r
- << " "\r
- << ctx->parameter()->firstParameter()->var()->varName()->getText();\r
- }\r
-\r
- for (auto * p : ctx->parameter()->additionalParameter()) {\r
- cout\r
- << ", "\r
- << p->var()->type()->getText()\r
- << " "\r
- << p->var()->varName()->getText();\r
- }\r
-\r
- cout\r
- << ")";\r
- }\r
-\r
- void enterBody(TocParser::BodyContext * ctx) {\r
- cout\r
- << "{" << endl;\r
- }\r
- void exitBody(TocParser::BodyContext * ctx) {\r
- cout\r
- << "}" << endl;\r
- }\r
-\r
- void enterIfCond(TocParser::IfCondContext * ctx) {\r
- cout\r
- << "if (";\r
- enterExpr(ctx->expr());\r
- cout\r
- << ")";\r
- }\r
-};
\ No newline at end of file