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

Bison one or more occurrences in grammar file

我需要解析的程序应该是这样的形式:

program   : [declaration]+
          ;

意思应该是:程序由一个或多个声明组成。 轮到它的声明当然是用类似的方式定义的,依此类推...

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

显然,

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

我是怎么解决的:

program     : declarations
        ;

declarations    : declaration declarations
        | declaration
        ;

一个或多个:

declarations
    : declaration
    | declarations declaration
    ;

零个或多个:

declarations
    : /* empty */
    | declarations declaration
    ;