задаешь грамматику на входе, на выходе парсер, но такой чтобы на ошибчном синтаксисе не просто падал а выдавал частичный результат
это нужно для тулинга внутри текстового редактора/IDE чтобы когда редактируешь текст то все равно работал бы автокомплит, например
Это то, обо что когда-то споткнулись любители прикручивать clang для code model в C++ IDE. clang в то время на невалидном коде просто ломался и соответственно ничего из тулинга не работало. Об этом даже где-то была статья, но лень искать.