Memoize<T>(Parser<T>) ➜ Parser<T>
Transforms a parser into a packrat parser. The resulting parser does not necessarily support left recursion.
DirectLeftRecursion<T>(Parser<T>) ➜ Parser<T>
Transforms a parser into a packrat parser, supporting direct left recursion only. The implementation is based on this paper.
LeftRecursion<T>(Parser<T>) ➜ Parser<T>
Transforms a parser into a packrat parser, supporting direct or indirect left recursion. The implementation is based on this paper.