Кажется, что Bison использует парсер LALR (1) . Парсеры LALR более надежны, чем парсеры LL, но также и более сложны. Исходя из этого, я подозреваю, что LALR (1), вероятно, является самым слабым алгоритмом синтаксического анализа, который может анализировать код C.
Если вы действительно не настроены на использование собственного распознавателя. ANTLR , вероятно, будет лучшим выбором для этого. ANTLR использует алгоритм LL * (который фактически является LALR).