【发布时间】:2015-05-27 23:04:00
【问题描述】:
我需要解析的程序应该是这样的:
program : [declaration]+
;
这应该意味着:程序由一个或多个声明组成。 轮到声明当然以类似的方式定义,依此类推...
目前,我在 Bison 解析器的 + 上遇到错误。 如何使用 bison 以正确的方式定义 一个或多个 条件?
【问题讨论】:
标签: parsing compiler-construction bison
我需要解析的程序应该是这样的:
program : [declaration]+
;
这应该意味着:程序由一个或多个声明组成。 轮到声明当然以类似的方式定义,依此类推...
目前,我在 Bison 解析器的 + 上遇到错误。 如何使用 bison 以正确的方式定义 一个或多个 条件?
【问题讨论】:
标签: parsing compiler-construction bison
显然,
Bison 不支持用 + 或 * 符号来表示这些东西。
我是如何解决的:
program : declarations
;
declarations : declaration declarations
| declaration
;
【讨论】:
/* empty */。
一个或多个:
declarations
: declaration
| declarations declaration
;
零个或多个:
declarations
: /* empty */
| declarations declaration
;
【讨论】: