我需要解析的程序应采用以下形式:
program : [declaration]+
;
这应该意味着:该程序包含一个或多个声明。 轮到它的声明当然也是以类似的方式定义的,等等......
目前,我在Bison解析器的 + 上收到错误消息。 如何使用bison以正确的方式定义一个或多个条件?
答案 0 :(得分:7)
一个或多个:
declarations
: declaration
| declarations declaration
;
零或更多:
declarations
: /* empty */
| declarations declaration
;
答案 1 :(得分:1)
显然,
Bison不支持+或*符号来表示这些内容。
我是如何解决的:
program : declarations
;
declarations : declaration declarations
| declaration
;