1

是否可以选择性地使 javacc 贪婪地匹配某些令牌?

我正在尝试像这样定义一个实体:

<CURLED:     "{" (<CHAR>)+ "}">

我想要的是序列:

a. {HELLO}
b. {HELLO} {WORLD}
c. {HELLO} {OUR} {WORLD}

被正确解析,javacc 将单独使用大括号中的标记。

默认情况下,javacc 尝试使最长的匹配成为可能,这样案例 b 和 c 最终被解析为:

b. HELLO} {WORLD
c. HELLO} {OUR} {WORLD

我错过了一些明显的东西吗?

4

1 回答 1

0

好的,我通过不允许在 CURLED 令牌定义中出现“{”字符来解决问题。这个排除是用 ~["{"] 完成的。

于 2013-01-31T14:41:18.223 回答