По умолчанию Bison генерирует один набор имен файлов, но POSIX требует другого набора имен файлов. Флаг -y
заставляет Bison генерировать имена POSIX вместо своего собственного набора имен.
Для имени входного файла grammar.y
Bison обычно выдает grammar.tab.c
(и grammar.tab.h
, если вы запрашиваете заголовок). С флагом -y
Bison производит y.tab.c
и y.tab.h
.
Обратите внимание, что флаг -y
должен влиять только на имена выходных файлов. Это не должно влиять ни на то, что приемлемо в качестве грамматики, ни на число конфликтов.
Интересно, что на одной и той же грамматике результат немного отличается; в строках действий есть пустой оператор:
$ diff y.tab.c grammar.tab.c
558c558
< #line 559 "y.tab.c"
---
> #line 559 "grammar.tab.c"
2828c2828
< { stmt_type = STMT_NONE; }
---
> { stmt_type = STMT_NONE; ;}
2833c2833
< { stmt_type = STMT_LOAD; }
---
> { stmt_type = STMT_LOAD; ;}
...