Что в действительности означает наличие нескольких записей в таблице разбора LL (1)? - PullRequest
0 голосов
/ 02 мая 2018

Для грамматики:

S->aABb
A->a/epsilon
B->b/epsilon 

Эта грамматика не LL(1), но эта грамматика однозначна, поэтому даже после нескольких записей в таблице эта грамматика является однозначной. Итак, каково интуитивное значение наличия нескольких записей в таблице, когда грамматика однозначна.

Когда парсер посещает столбец M[B, b], он имеет 2 варианта B->b и B-> epsilon. Эта природа не является недетерминированной, но эта грамматика недвусмысленна в реальности, поэтому как разрешить этот конфликт, в котором, хотя у нас есть несколько записей в таблице синтаксического анализа, грамматика однозначна.

1 Ответ

0 голосов
/ 02 мая 2018

Это означает, что грамматика не является LL (1), и вам нужно будет либо использовать другой алгоритм синтаксического анализа, либо переписать грамматику, чтобы она была LL (1), если это возможно (что в данном случае означало бы переключение b и B в правиле S.

...