Анализ кода с синтаксическими ошибками

Методы синтаксического анализа хорошо описаны в литературе по CS. Но известные мне алгоритмы требуют, чтобы источник был синтаксически правильным. Если обнаруживается синтаксическая ошибка, синтаксический анализ немедленно прерывается.

Но IDE (например, Visual Studio) обычно могут предоставить значимое завершение кода и другие подсказки при вводе , что означает, что синтаксис часто не соответствует действительное состояние. Например, вы вводите открывающую скобку в вызове функции, и IDE предоставляет подсказки по параметрам для функции, даже если синтаксис недействителен до тех пор, пока не будет набрана закрывающая скобка.

Мне кажется, это должно полагаться на какое-то предположение или отказоустойчивый парсер. Кто-нибудь знает, какие методы или алгоритмы используются для этого?

10
задан skaffman 24 January 2011 в 13:09
поделиться