野牛错误

Aar*_*kan 1 c c++ yacc bison

我的语法中有一个简单的规则,它查找空格的序列:

    ws: ws|' ';
Run Code Online (Sandbox Code Playgroud)

当野牛看到这个规则时,它会抱怨:

警告:由于冲突,规则在解析器中无用:ws:ws

为什么会这样?我有一个简单的语法规则,寻找一个正则表达式?

And*_*ner 8

你宣称的是'ws是ws还是ws是一个空间',而不是'ws是一个或多个空格'.

如果你想要后者,请尝试以下方法:

ws:   ' '
    | ' ' ws;
Run Code Online (Sandbox Code Playgroud)

另见http://www.gnu.org/software/bison/manual/bison.html#Recursion