История изменений
Исправление alysnix, (текущая версия) :
Вот мы имеем код. Он контексто-зависимый. Помогут ли нам какие-то контексто-свободные наработки? Нет. Они мусор.
констекстная свобода у грамматики это не код. это способ выбора правил разбора этой грамматики. про семантику речи тут нет вообще.
если для выбора правила в данной точке потока символов нужно знать некий контекст нефиксированной сложности, то это явно контекстная зависимость.
пример - ident1 ident2 (ident3, ident4, ident5,…) , в си++ это может быть и незавершенная декларация функции, и декларация переменной, как это интерпретировать понять можно только из семантики этих самых ident.
то есть для парсинга грамматики(синтаксического анализа и выяснения соответствия текста грамматическим правилам) надо вести списки декларированных обьектов, и искать что это за ident. То есть чтобы найти СИНТАКСИЧЕСКУЮ ошибку, надо заниматься уже семантикой. а это неправильно.
Исходная версия alysnix, :
Вот мы имеем код. Он контексто-зависимый. Помогут ли нам какие-то контексто-свободные наработки? Нет. Они мусор.
констекстная свобода у грамматики это не код. это способ выбора правил разбора это грамматики. про семантику речи тут нет вообще.
если для выбора правила в данной точке потока символов нужно знать некий контекст нефиксированной сложности, то это явно контекстная зависимость.
пример - ident1 ident2 (ident3, ident4, ident5,…) , в си++ это может быть и незавершенная декларация функции, и декларация переменной, как это интерпретировать понять можно только из семантики этих самых ident.
то есть для парсинга грамматики(синтаксического анализа и выяснения соответствия текста грамматическим правилам) надо вести списки декларированных обьектов, и искать что это за ident. То есть чтобы найти СИНТАКСИЧЕСКУЮ ошибку, надо заниматься уже семантикой. а это неправильно.