我希望能够使用flex/bison解析非空、一个或多个元素、逗号分隔(可选用括号包围)的列表。以下是一些可解析的列表示例:
1 1,2 (1,2) (3) 3,4,5 (3,4,5,6)
我使用以下规则来解析列表(最终结果是解析元素“顶级列表”),但在解析时似乎无法得到期望的结果(输入有效列表时会出现语法错误)。请问如何设置才能得到正确的结果?
1 1,2 (1,2) (3) 3,4,5 (3,4,5,6)
我使用以下规则来解析列表(最终结果是解析元素“顶级列表”),但在解析时似乎无法得到期望的结果(输入有效列表时会出现语法错误)。请问如何设置才能得到正确的结果?
cList : ELEMENT
{
...
}
| cList COMMA ELEMENT
{
...
}
;
topLevelList : LPAREN cList RPAREN
{
...
}
| cList
{
...
}
;