ANTLRv4 字符串匹配

ANTLRv4 String matching

今天早上我一直在用 ANTLRv4 做一些事情,我需要从用户那里获取某个字符串,在语法中定义为:

OP : 'a' | 'b' | 'c';

{} Java 中的不同定义之后,我需要将 OP 与另一个字符串进行比较。目前,这不起作用:

if ($string.text == "a") {
    //Do Something
}

其中 string 是我附加到 OP 的特定实例的名称。如何将 string 的文本值与另一个字符串 ("a") 进行比较?

您可能需要做:

$string.text.equals("a")

“==”运算符将比较 Java 中的引用。要比较字符串的值,您必须使用 equals() 方法。

试试这个:

if ($string.text.equals("a")) {
    //Do Something
}

阅读此内容以了解有关运算符的更多信息:What's the difference between ".equals" and "=="?