feat(antlr): 添加最小 SysY.g4 以避免空文法错误
This commit is contained in:
@@ -1,3 +1,35 @@
|
||||
// SysY 语法定义(lexer + parser rules)的占位文件。
|
||||
// 注意:ANTLR 生成的 C++ 源码/头文件不进入仓库,统一放在构建目录(例如 build/generated/antlr4/)。
|
||||
grammar SysY;
|
||||
|
||||
// 说明:
|
||||
// - 这是一个“最小可用”的 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