【发布时间】:2014-04-18 16:44:20
【问题描述】:
我需要将以下内容从 EBNF 转换为 javacc,我尝试了各种方法,但出现错误。
EBNF:代码 ::== [\x20 - \x7E]
这将如何转换?
提前致谢
【问题讨论】:
我需要将以下内容从 EBNF 转换为 javacc,我尝试了各种方法,但出现错误。
EBNF:代码 ::== [\x20 - \x7E]
这将如何转换?
提前致谢
【问题讨论】:
JavaCC 支持字符范围。例如。 [" "-"~"] 它还支持 Java 中的 Unicode 转义,例如 ["\u0020"-"\u007E"]。
这些范围可以在令牌管理器的规范中使用。请注意,Question 3.3 of the FAQ 中列出的三个规则适用。所以如果你有
TOKEN: {
<LETTER : ["a"-"z","A"-"Z"] >
|
<PRINTABLE : [" "-"~"] >
}
然后在你想要的解析器中
void Printable() {
<LETTER> | <PRINTABLE>
}
【讨论】:
< PRINTABLE : [" "-"~"] > 与 < PRINTABLE : ["\u0020"-"\u007E"] > 相同。