Я компилирую очень старую программу (wu-ftpd 2.6.1 около 2000), и она не работает в этом коде:
cmd_list: /* empty */
| cmd_list cmd
= {
fromname = (char *) NULL;
restart_point = 0;
}
| cmd_list rcmd
;
Бизон говорит, что проблема в неожиданном '=', что имеет смысл, поскольку любая другая программа Yacc, которую я видел (правда, не очень много), не использует там знак '='. Я заменил шаблон =\t{
на \t{
и сборки программного обеспечения (со многими предупреждениями, конечно), но мне интересно, как он создавался в прошлом. Изменился ли синтаксис Yacc?