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

program   : [declaration]+
          ;




这应该表示:该程序包含一个或多个声明。
当然,声明本身也以类似的方式定义,依此类推...

目前,我在Bison解析器上看到+的错误。
我如何用野牛正确地定义一个或多个条件?

最佳答案

一个或多个:

declarations
    : declaration
    | declarations declaration
    ;


零个或多个:

declarations
    : /* empty */
    | declarations declaration
    ;

09-28 05:05