Может ли нисходящий синтаксический анализатор обнаружить неграмотность входной строки?
Я читал, что это возможно сделать,
Это потребует возврата?
Какой будет эскиз от восстановления от ошибок разбора.
1 ответ
Решение
Способ, которым анализатор сверху вниз может обнаружить неграмотность, т.е. недействительность входной строки, например:
если у вас нет нетерминала A на вершине вашего стека, например, и следующий токен во входной строке - символ b,
затем перейдите к таблице анализа и перейдите к строке для A и столбцу для b, и если есть пустая ячейка, то входная строка недопустима.
Методом восстановления будет вход в режим паники, при котором вы пропускаете токены во входной строке, пока не найдете один в наборе синхронизации, а затем вытолкните A из стека и продолжите.
несколько способов выбора набора синхронизации, например, можно следовать (A)