A parser generator.