我需要将以下内容从EBNF转换为javacc,我尝试了各种方法,但是我收到了一个错误。
EBNF:code :: == [\ x20 - \ x7E]
如何转换?
提前致谢
答案 0 :(得分:1)
JavaCC支持字符范围。例如。 [" "-"~"]
它还支持Java中的Unicode转义,例如["\u0020"-"\u007E"]
。
这些范围可用于令牌管理器的规范。请注意,Question 3.3 of the FAQ中列出的三个规则适用。所以,如果你有
TOKEN: {
<LETTER : ["a"-"z","A"-"Z"] >
|
<PRINTABLE : [" "-"~"] >
}
然后在解析器中你需要
void Printable() {
<LETTER> | <PRINTABLE>
}