Стоит отметить, что стандартные комбинаторы парсера Scala не являются ни LL, ни комбинаторами Packrat LALR. Комбинаторы Parser - это форма рекурсивного спуска с бесконечным возвратом. Вы можете думать о них как «LL (*)». Класс языков, поддерживаемых этой техникой, является в точности классом однозначных контекстно-свободных языков или тем же классом, что и LALR (1) и Packrat. Однако класс грамматика немного отличается, при этом наиболее заметным недостатком является отсутствие поддержки левой рекурсии.
Packrat комбинаторы do поддерживают левую рекурсию, но они по-прежнему не поддерживают многие другие, более тонкие функции LALR. Эта слабость обычно проистекает из упорядоченного оператора выбора, который может привести к дьявольски хитрым ошибкам грамматики, а также препятствует определенным хорошим грамматическим формулировкам. Наиболее часто встречающийся пример этих ошибок возникает, когда вы случайно заказываете неоднозначные варианты выбора как самые короткие, что приводит к жадному совпадению, которое препятствует попыткам правильной ветвления. У LALR нет этой проблемы, поскольку он просто пробует все возможные ветки одновременно, откладывая точку принятия решения до конца производства.