rule1 : GO (count=DECIMAL)? ;
rule2 : name '=' expression
我不明白' ='之间的区别登录rule1和rule2
答案 0 :(得分:1)
赋值是一个变量赋值。 ANTLR4将为您生成一个名为count
的成员变量,在匹配时获取DECIMAL
标记(因为它是可选的,count
可能为空/ null)。
您可以在侦听器代码中使用count
来直接获取该值,但您也可以使用DECIMAL
代替。因此,它对语法中的动作代码或谓词最有用。您可以使用例如这些变量来引用这些变量$count
:
rule1: GO (count = DECIMAL)? { $count.toString().toInteger() < 4}?;
仅当GO
后跟一个小于4的值时才匹配。
旁注:toInteger()
这里只是伪代码。使用目标的string-to-int转换API。