fix format bug for elsestme and stmt def in .g4
This commit is contained in:
@ -155,7 +155,7 @@ std::any ASTPrinter::visitStmt(SysYParser::StmtContext *ctx){
|
|||||||
cout << getIndent() << "}" << endl;
|
cout << getIndent() << "}" << endl;
|
||||||
}
|
}
|
||||||
if (ctx->stmt().size() > 1) {
|
if (ctx->stmt().size() > 1) {
|
||||||
cout << getIndent() << "else" << endl;
|
cout << getIndent() << "else";
|
||||||
if(ctx->stmt(1)->blockStmt())ctx->stmt(1)->accept(this);
|
if(ctx->stmt(1)->blockStmt())ctx->stmt(1)->accept(this);
|
||||||
else{
|
else{
|
||||||
cout << " {"<< endl;
|
cout << " {"<< endl;
|
||||||
|
|||||||
@ -137,6 +137,7 @@ blockStmt: LBRACE blockItem* RBRACE;
|
|||||||
blockItem: decl | stmt;
|
blockItem: decl | stmt;
|
||||||
|
|
||||||
stmt: lValue ASSIGN exp SEMICOLON
|
stmt: lValue ASSIGN exp SEMICOLON
|
||||||
|
| exp? SEMICOLON
|
||||||
| blockStmt
|
| blockStmt
|
||||||
| IF LPAREN cond RPAREN stmt (ELSE stmt)?
|
| IF LPAREN cond RPAREN stmt (ELSE stmt)?
|
||||||
| WHILE LPAREN cond RPAREN stmt
|
| WHILE LPAREN cond RPAREN stmt
|
||||||
|
|||||||
@ -6,7 +6,7 @@ using namespace std;
|
|||||||
|
|
||||||
namespace sysy {
|
namespace sysy {
|
||||||
|
|
||||||
any SysYIRGenerator::visitModule(SysYParser::ModuleContext *ctx) {
|
any SysYIRGenerator::visitCompUnit(SysYParser::CompUnitContext *ctx) {
|
||||||
// create the IR module
|
// create the IR module
|
||||||
auto pModule = new Module();
|
auto pModule = new Module();
|
||||||
assert(pModule);
|
assert(pModule);
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public:
|
|||||||
Module *get() const { return module.get(); }
|
Module *get() const { return module.get(); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::any visitModule(SysYParser::ModuleContext *ctx) override;
|
std::any visitCompUnit(SysYParser::CompUnitContext *ctx) override;
|
||||||
std::any visitFuncRParams(SysYParser::FuncRParamsContext *ctx) override;
|
std::any visitFuncRParams(SysYParser::FuncRParamsContext *ctx) override;
|
||||||
std::any visitNumber(SysYParser::NumberContext *ctx) override;
|
std::any visitNumber(SysYParser::NumberContext *ctx) override;
|
||||||
std::any visitString(SysYParser::StringContext *ctx) override;
|
std::any visitString(SysYParser::StringContext *ctx) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user