LALR (2) еще болтается - PullRequest
       60

LALR (2) еще болтается

6 голосов
/ 02 декабря 2009

Может ли LALR (2) справиться с зависшим случаем естественным образом (без каких-либо специальных правил, как в случае с LALR (1))?

Спасибо

Ответы [ 2 ]

5 голосов
/ 02 декабря 2009

Нет, проблема висящей остальной ситуации - двусмысленность, поэтому никакое упущение не поможет.

3 голосов
/ 14 июля 2012

Это неоднозначно, однако, это не проблема, потому что хорошо продуманный генератор парсера LALR разрешит неоднозначность, выбрав сдвиг вместо сокращения. Это то, что вы хотите - «еще», которое будет сопоставлено с предыдущим «если». Итак, вывод таков: проблем нет. Вам просто нужно понять выбор по умолчанию, который генератор парсера делает для всех неоднозначностей уменьшения смещения. Это значение по умолчанию может быть переопределено с помощью правил устранения неоднозначности или что-то вроде оператора "% prec" в "yacc".
Но это более сложная тема.

...