更改g4文件,优化IR生成流程

This commit is contained in:
rain2133
2025-06-21 13:44:51 +08:00
parent 30f89bba23
commit c1583e447d
2 changed files with 85 additions and 86 deletions

View File

@@ -101,7 +101,10 @@ BLOCKCOMMENT: '/*' .*? '*/' -> skip;
// CompUnit: (CompUnit)? (decl |funcDef);
compUnit: (decl |funcDef)+;
compUnit: (globalDecl |funcDef)+;
globalDecl: constDecl # globalConstDecl
| varDecl # globalVarDecl;
decl: constDecl | varDecl;
@@ -111,16 +114,16 @@ bType: INT | FLOAT;
constDef: Ident (LBRACK constExp RBRACK)* ASSIGN constInitVal;
constInitVal: constExp
| LBRACE (constInitVal (COMMA constInitVal)*)? RBRACE;
constInitVal: constExp # constScalarInitValue
| LBRACE (constInitVal (COMMA constInitVal)*)? RBRACE # constArrayInitValue;
varDecl: bType varDef (COMMA varDef)* SEMICOLON;
varDef: Ident (LBRACK constExp RBRACK)*
| Ident (LBRACK constExp RBRACK)* ASSIGN initVal;
initVal: exp
| LBRACE (initVal (COMMA initVal)*)? RBRACE;
initVal: exp # scalarInitValue
| LBRACE (initVal (COMMA initVal)*)? RBRACE # arrayInitValue;
funcType: VOID | INT | FLOAT;