conflict

conflictの結果がbisonと違うので調べてみたら、
なんだかどちらとも言えるような気がしたので、
yaccでも調べてみた。

すると、linux(fedora core 3)に元から入っているyaccとbisonで
結果が違うことに気づいてしまった。

文法:

sequence: /* 空 */
                { printf ("empty sequence\n"); }
        | maybeword
        | sequence word
                { printf ("added word %s\n", $2); }
        ;

maybeword: /* 空 */
                { printf ("empty maybeword\n"); }
        | word
                { printf ("single word %s\n", $1); }
        ;

bison:

t.y: conflicts: 1 shift/reduce, 2 reduce/reduce

yacc:

yacc: 2 shift/reduce conflicts
yacc: 1 reduce/reduce conflict 

caperの出力はyaccと同じ。

extra解析ファイルをざっとみたところ、EOFの扱いが違うせいのようだ
(雰囲気だけで判断)。

まあ、このままで。

linuxyaccってbyacc?