Potresti usare un generatore di parser tipo yacc/bison