Проблема в том, что statement
имеет только рекурсивные правила.Это делает невозможным использование statement
в деривации, потому что любая деривация, начинающаяся с statement
, никогда не заканчивается.
Поскольку statement
не может использоваться для анализа любой конечной строки, Bison удаляет ее и все ее правила изграмматика, а также любые правила, которые используют statement
.После удаления этих правил expr
и Params
больше не упоминаются в грамматике, поэтому они также помечаются как бесполезные.
Вы, вероятно, намеревались statement
иметь другие нерекурсивные альтернативы, такие каккак expr
.