diff --git a/src/antlr4/SysY.g4 b/src/antlr4/SysY.g4 deleted file mode 100644 index 263aeef..0000000 --- a/src/antlr4/SysY.g4 +++ /dev/null @@ -1,98 +0,0 @@ -// SysY 子集语法:支持形如 -// int main() { int a = 1; int b = 2; return a + b; } -// 的最小返回表达式编译。 - -// 后续需要自行添加 - -grammar SysY; - -/*===-------------------------------------------===*/ -/* Lexer rules */ -/*===-------------------------------------------===*/ - -INT: 'int'; -RETURN: 'return'; - -ASSIGN: '='; -ADD: '+'; - -LPAREN: '('; -RPAREN: ')'; -LBRACE: '{'; -RBRACE: '}'; -SEMICOLON: ';'; - -ID: [a-zA-Z_][a-zA-Z_0-9]*; -ILITERAL: [0-9]+; - -WS: [ \t\r\n] -> skip; -LINECOMMENT: '//' ~[\r\n]* -> skip; -BLOCKCOMMENT: '/*' .*? '*/' -> skip; - -/*===-------------------------------------------===*/ -/* Syntax rules */ -/*===-------------------------------------------===*/ - -compUnit - : funcDef EOF - ; - -decl - : btype varDef SEMICOLON - ; - -btype - : INT - ; - -varDef - : lValue (ASSIGN initValue)? - ; - -initValue - : exp - ; - -funcDef - : funcType ID LPAREN RPAREN blockStmt - ; - -funcType - : INT - ; - -blockStmt - : LBRACE blockItem* RBRACE - ; - -blockItem - : decl - | stmt - ; - -stmt - : returnStmt - ; - -returnStmt - : RETURN exp SEMICOLON - ; - -exp - : LPAREN exp RPAREN # parenExp - | var # varExp - | number # numberExp - | exp ADD exp # additiveExp - ; - -var - : ID - ; - -lValue - : ID - ; - -number - : ILITERAL - ;