我想使用javaCC生成解析器。
但是我有一个问题。 (+)是1个或多个重复 (*)表示0次或多次重复
但是如何选择0或1个重复?
例如,我想要这个字符串:
"Monday thursday wednesday"
"Monday thursday"
也可以工作
"Monday wednesday"
也可以工作
"wednesday"
也可以工作。
所以我必须列出一周中的某天,重复1或0。
| < MONDAY: "MONDAY" >
| < THURSDAY: "THURSDAY" >
| < WEDNESDAY: "WEDNESDAY" >
我尝试过:
void period() :
{
}
{
(< MONDAY>){0,1} (< THURSDAY>){0,1} (< WEDNESDAY>){0,1}
}
但这不起作用...
有人可以帮助我理解我的问题吗? 非常感谢