Yo cuando hice la asignatura de compiladores, usabamos FLEX y BISON para crear la gramática y el interprete.
Si buscas sobre ellos por internet puedes encontrar bastantes ejemplos. Aqui te paso una introducción a su uso para que mires si cumple con tus necesidades:
http://webdiis.unizar.es/asignaturas...Flex_Bison.pdf