LL(*) faster than LL(1)?  No jumps  When I began to work on
EasyExtend in 2006 I grabbed a Python parser from the web,
written by Jonathan Riehl ( it doesn’t seem to be available
anymore ). It was a pure Python parser following closely the
example of CPython’s pgen. The implementation was very dense and
the generated parser probably as fast as a Python parser could
be. It was restricted to LL(1) though which was a severe
limitation when I stepped deeper into the framework.  In mid
2007 I created a parse tree checker. The problem was that a
parse tree could be the return value of a transformation of
another parse tree: T : P -> P. How do we know that P is still
compliant with a given syntax? This can be easily be solved by
chasing NFAs of the target grammar, both horizontally i.e.
within an NFA as well as vertically: calling checkers
recursively for each parse tree node which belong to a non-
terminal. This checker generator was only a tiny step apart from
a parser generator which I started to work on in summer