feat(antlr): 添加最小 SysY.g4 以避免空文法错误
This commit is contained in:
@@ -1,3 +1,35 @@
|
|||||||
// SysY 语法定义(lexer + parser rules)的占位文件。
|
grammar SysY;
|
||||||
// 注意:ANTLR 生成的 C++ 源码/头文件不进入仓库,统一放在构建目录(例如 build/generated/antlr4/)。
|
|
||||||
|
// 说明:
|
||||||
|
// - 这是一个“最小可用”的 SysY.g4,用于避免空文件导致的 ANTLR 解析报错。
|
||||||
|
// - 后续请按 SysY 语言规范逐步补全 lexer/parser 规则。
|
||||||
|
// - 本工程约定:ANTLR 生成的 C++ 源码/头文件不进入仓库,统一生成到构建目录(例如 build/generated/antlr4/)。
|
||||||
|
|
||||||
|
compilationUnit
|
||||||
|
: (statement)* EOF
|
||||||
|
;
|
||||||
|
|
||||||
|
statement
|
||||||
|
: 'return' expression? ';'
|
||||||
|
| ';'
|
||||||
|
;
|
||||||
|
|
||||||
|
expression
|
||||||
|
: IntegerLiteral
|
||||||
|
| Identifier
|
||||||
|
;
|
||||||
|
|
||||||
|
// -------- lexer --------
|
||||||
|
|
||||||
|
IntegerLiteral
|
||||||
|
: [0-9]+
|
||||||
|
;
|
||||||
|
|
||||||
|
Identifier
|
||||||
|
: [a-zA-Z_] [a-zA-Z0-9_]*
|
||||||
|
;
|
||||||
|
|
||||||
|
Whitespace
|
||||||
|
: [ \t\r\n]+ -> skip
|
||||||
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user