diff --git a/src/antlr4/SysY.g4 b/src/antlr4/SysY.g4 index ec0eef2..c22ab5f 100644 --- a/src/antlr4/SysY.g4 +++ b/src/antlr4/SysY.g4 @@ -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 + ;