更改g4文件,优化IR生成流程
This commit is contained in:
13
src/SysY.g4
13
src/SysY.g4
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user