По сути, разбор Packrat просто означает кеширование, совпадают ли подвыборки в текущей позиции в строке при их тестировании - это означает, что если текущая попытка вставить строку в выражение не удалась, тогда попытки установить другие возможные выражения может выиграть от известного прохода/отказа подвыражений в точках в строке, где они уже были протестированы.
Ответ 2
Pyparsing - это чистая библиотека Python, которая поддерживает разбор пакетов, поэтому вы можете видеть, как это происходит. Pyparsing использует метод memoizing для сохранения предыдущих попыток синтаксического анализа для определенного выражения грамматики в определенном месте во входном тексте. Если грамматика включает повторение того же выражения в этом месте, она пропускает дорожную логику синтаксического анализа и просто возвращает результаты или исключение из memoizing cache.
Здесь есть дополнительная информация на Страница часто задаваемых вопросов википики pyparsing, которая также включает ссылки на Bryan Ford оригинальная тезисы по разбору пакетов.