【发布时间】:2022-01-13 23:22:08
【问题描述】:
我是 bison(和 flex,我用它作为 bison 的伴侣)和一般编码的新手。我正在尝试创建一个解析器规则,该规则允许来自文件的输入,该文件允许文件可能具有的任意数量的变量。
我目前的情况是:
body:
BEGIN optional_statement optional_statement optional_statement END ';' ;
optional_statement:
statement |
;
显然,这将是一个有限的解决方案,显然我也考虑过使用循环,但我一直使用的野牛手册说“循环超出了本手册的范围”。我试过四处寻找其他野牛特定的解决方案,但无济于事。如果有人能够为我指明正确的方向来格式化此循环或其他解决方案,我将不胜感激。
这是我想要的输入类型的想法,可以有一个或十个声明:
a: boolean is true
b: integer is 21
c: integer is 7
d: integer is 18
【问题讨论】:
-
你说的是this section of the FAQ吗?那是关于如何使用循环结构(如
for循环)实现一种语言,而不是关于如何为事物列表编写语法。手册中到处都有列表。输入中的语句列表。表达式列表,可能用于函数调用(参见recursive rules。)可能还有其他。