ANTLR 语法中的等于(不是标记)。这意味着什么?
下面的规则中 basename =
的构造是什么?
tabname:
(ID'.')? basename = ID
;
语法中仅出现一次basename
。
谢谢
What does the construct basename =
in the following rule?
tabname:
(ID'.')? basename = ID
;
There is this single occurrence of basename
in the grammar.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在该语法中使用 equals 创建一个名为
basename
的变量,然后可以在操作中引用该变量:Using equals in that syntax creates a variable called
basename
that can then be referenced in actions:它用于命名变量。
如果您想在解析器期间运行一些代码,这可能非常有用。
考虑 java 计算器示例:
这里我们说,当我们匹配具有 PLUS 或 STAR 标记后跟 2 个表达式的树时,我们将匹配表达式并将它们命名为
a
和b 分别。
在我们将使用我们在 java 语句中匹配的这些变量之后。该语句包含在
{
和}
括号内。这里我们使用java语句来实际进行计算。It is used to name variables.
This can be very useful if you want to run some code during the parser.
Consider the java calculator example:
Here we say when we match a tree that has a PLUS or STAR token followed by 2 expressions, we'll match the expressions and name them
a
andb
respectively.After we'll use those variables we matched in a java statement. This statement is contained inside the
{
and}
brackets. Here we use the java statements to actually do the calculation.