我的教授给了我们一个关于 ANTLR 的作业,
但我发现给定的语法文件不适用于当前的 ANTLR 版本。
实际上,它是包含在 ANTLR v2 中的示例代码,我能找到的文档很少,并且已停止被任何 IDE 工具(如 Eclipse 或 ANTLRWorks)支持。
正因为如此,我花了很长时间才发现语法文件来自古代。
我需要修改给定的语法文件以找到立即被 else 分支包围但无法理解语法的某些部分的 whlie 循环。
有人请教我这个例子中的“=>”是什么意思?
program
: ( declaration )* EOF
;
declaration
: (variable) => variable
| function
;
declarator
: id:ID
| STAR id2:ID
;
variable
: type declarator SEMI
;
function
: type id:ID LPAREN
(formalParameter (COMMA formalParameter)*)?
RPAREN
block
;
statement
: (declaration) => declaration
| expr SEMI
| if_statement
| while_statement
| block
;