Вы можете попробовать ANTLR , он имеет хороший внешний интерфейс (ANTLRWorks) для визуализации, и для него имеется c99, доступный на том же сайте.
Вероятно, потребуется немного поработать над визуальными вещами так, как вы хотите, но все инструменты уже есть.