我的教授给了我们一个关于 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
    ;