我似乎无法解决以下规则中包含的歧义:
InitializerList_a →,[Initializer][InitializerList_a]
它在我的解析器中引起了移位/减少冲突(我正在使用 Bison)。以下是它的关闭:
InitializerList_a → ε
Initializer → [Constant]
Initializer → {[InitializerList][Initializer_a]
Initializer_a → }
Initializer_a → ,}
InitializerList → [Initializer][InitializerList_a]
任何帮助,将不胜感激。如果需要,我可以发布野牛输出文件。
这是以更易读的方式编写的相同语法:
L → IT
T → ,IT | ε
I → [Constant] | {LA
A → } | ,}
where [Constant] is a terminal