]> gitweb.ps.run Git - toc/blob - src/MyListener.h
Initial commit
[toc] / src / MyListener.h
1 #include "TocBaseListener.h"\r
2 \r
3 #include <iostream>\r
4 \r
5 using namespace std;\r
6 \r
7 class MyListener : public TocBaseListener {\r
8   void enterVarDecl(TocParser::VarDeclContext * ctx) {\r
9     cout\r
10       << ctx->var()->type()->getText()\r
11       << " "\r
12       << ctx->var()->varName()->getText();\r
13 \r
14     if (ctx->var()->expr() != nullptr) {\r
15       cout << " = ";\r
16     }\r
17   }\r
18   void exitVarDecl(TocParser::VarDeclContext * ctx) {\r
19     cout << ";" << endl;\r
20   }\r
21 \r
22   void enterFuncDecl(TocParser::FuncDeclContext * ctx) {\r
23     cout\r
24       << ctx->type()->getText()\r
25       << " "\r
26       << ctx->funcName()->getText()\r
27       << "(";\r
28 \r
29     if (ctx->parameter()->firstParameter() != nullptr) {\r
30       cout\r
31         << ctx->parameter()->firstParameter()->var()->type()->getText()\r
32         << " "\r
33         << ctx->parameter()->firstParameter()->var()->varName()->getText();\r
34     }\r
35 \r
36     for (auto * p : ctx->parameter()->additionalParameter()) {\r
37       cout\r
38         << ", "\r
39         << p->var()->type()->getText()\r
40         << " "\r
41         << p->var()->varName()->getText();\r
42     }\r
43 \r
44     cout\r
45       << ")";\r
46   }\r
47 \r
48   void enterBody(TocParser::BodyContext * ctx) {\r
49     cout\r
50       << "{" << endl;\r
51   }\r
52   void exitBody(TocParser::BodyContext * ctx) {\r
53     cout\r
54       << "}" << endl;\r
55   }\r
56 \r
57   void enterIfCond(TocParser::IfCondContext * ctx) {\r
58     cout\r
59       << "if (";\r
60     enterExpr(ctx->expr());\r
61     cout\r
62       << ")";\r
63   }\r
64 };