Project 4¶
Expression Attributes¶
我们说:每个 expression 具有两种属性:类型和值。
自然地,我们希望每个 ANTLR 中的 ExpressionContext 类型具有以上字段,那么如何实现?
感谢 Gemini 2.5 Pro:

在 Splc.g4 中 expression 中添加以下内容 returns [ExprAttr attr]:
expression returns [ExprAttr attr]
: Identifier # ExprID
| Number # ExprNumber
| Char # ExprChar
| LPAREN expression RPAREN # ExprParen
// ...
;
并添加一个类 ExprAttr,位于 impl.ExprAttr,在其中自由添加我们想包含的属性。
然后,在 Splc.g4 的开头添加以下内容,表示在生成的 SplcParser.java 文件的头部复制粘贴其中的文字。
随后,重新生成 ANTLR 即可。