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