草庐IT

RIGHTBRACE

全部标签

c++ - Bison :轮类减少冲突

我相信我无法理解轮类减少冲突的工作原理。我知道Bison可以向前看,所以我不明白为什么我会遇到这个问题。在我的语言中,列表被定义为[]之间的一组数字或列表。例如[][1][12][1[2]3]都是有效列表。这是导致问题的定义value:num|stringValue|list;list:LEFTBRACERIGHTBRACE|LEFTBRACElistRIGHTBRACE|numlist|RIGHTBRACE;冲突是从数开始的,不知道是按列表规则移位,还是按值规则归约。我很困惑,因为它不能检查列表是否跟在数字后面吗?任何关于我应该如何进行的建议都将不胜感激。