Может ли нисходящий синтаксический анализатор обнаружить неграмотность входной строки?

Я читал, что это возможно сделать,

Это потребует возврата?

Какой будет эскиз от восстановления от ошибок разбора.

1 ответ

Решение

Способ, которым анализатор сверху вниз может обнаружить неграмотность, т.е. недействительность входной строки, например:

если у вас нет нетерминала A на вершине вашего стека, например, и следующий токен во входной строке - символ b,

затем перейдите к таблице анализа и перейдите к строке для A и столбцу для b, и если есть пустая ячейка, то входная строка недопустима.

Методом восстановления будет вход в режим паники, при котором вы пропускаете токены во входной строке, пока не найдете один в наборе синхронизации, а затем вытолкните A из стека и продолжите.

несколько способов выбора набора синхронизации, например, можно следовать (A)

Другие вопросы по тегам