Add PratEvaluator which uses a Pratt parser.
Use recursion instead of iteration in PrattEvaluator, just because.
Use an Enumerator to generate an EndToken properly instead of doing
the rescue hack.