Вы уверены, что хотите написать анализатор на C?
Если бы вы использовали современный язык (например, C #, Java, Python), то я бы поддержал предложение Спгеннарда ANTLR для синтаксического анализатора.
Если требуется написать анализатор на C, то вы застряли в lex и yacc (flex и bison) или, возможно, в парсере ручной работы.
Похоже, Uno приближается к тому, что вы хотите сделать. Он использует lex / yacc и включает файлы грамматики. Однако часть анализа написана на C ++.
Может быть, вы можете получить больше идей о том, как и что из инструментов, перечисленных в SpinRoot . В Википедии также есть хорошая информация.