|
5
|
| Grundlefleck anujkk · 技术社区 · 16 年前 |
|
|
1
4
我不认识Javacc,但我是一名编译工程师。
这个
这可能是
更重要的是,尽管如此,你使用的词法分析和作文的方式是不可能奏效的。考虑这个数字:
这可以被解析为
在lexer中,您几乎不应该尝试处理这样的对。相反,您应该处理普通数字(
(例如,您将如何处理
另外,请注意,lexer中的单个数字整数将不匹配为
|
|
|
2
0
我没有使用javacc,但数字对可能不明确。 我认为问题归结于这样一个事实:同样精确的东西可以与float_对和integer_对同时匹配,因为float可以与integer匹配。 但这只是一个从未见过javacc语法的猜测:) |
|
|
3
0
这可能意味着每一个
也许你可以指定
|
|
|
4
0
由于巴里·凯利的回答,我想到的解决方案是:
我完全忘了包括用于分隔两个令牌的空间,我还使用了“”符号,它停止了令牌的匹配,并且只在其他令牌的定义中使用。以上由javacc编译,没有警告或错误。 然而,正如巴里所指出的,有理由不这么做。 |