【发布时间】:2021-11-26 13:36:36
【问题描述】:
我最近开始学习 javacc 解析器。我被要求编写一个解析器,其中一个令牌将数字从 1 到多个,另一个令牌将数字从 2 到多个 因此,我想出了这样的事情:
TOKEN : {
<NUM1: <NUM> (<NUM>)* > //for one or more
<NUM2: (<NUM>)+> //for two or more
<NUM :(["0"-"9"])+>
// and in the function
void calc():
{}
{
(
(<NUM1>)+
(<NUM2>)+
)* <EOF>
}
但是,即使我传递了一个没有数字的文本值,它也会成功传递。我在这做错了什么?
【问题讨论】: