Bison在语法文件中出现一次或多次

时间:2015-03-24 15:01:11

标签: parsing compiler-construction bison

我需要解析的程序应采用以下形式:

program   : [declaration]+
          ;

这应该意味着:该程序包含一个或多个声明。 轮到它的声明当然也是以类似的方式定义的,等等......

目前,我在Bison解析器的 + 上收到错误消息。 如何使用bison以正确的方式定义一个或多个条件?

2 个答案:

答案 0 :(得分:7)

一个或多个:

declarations
    : declaration
    | declarations declaration
    ;

零或更多:

declarations
    : /* empty */
    | declarations declaration
    ;

答案 1 :(得分:1)

显然,

Bison不支持+或*符号来表示这些内容。

我是如何解决的:

program     : declarations
        ;

declarations    : declaration declarations
        | declaration
        ;