LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Вот мы имеем код. Он контексто-зависимый. Помогут ли нам какие-то контексто-свободные наработки? Нет. Они мусор.

констекстная свобода у грамматики это не код. это способ выбора правил разбора этой грамматики. про семантику речи тут нет вообще.

если для выбора правила в данной точке потока символов нужно знать некий контекст нефиксированной сложности, то это явно контекстная зависимость.

пример - ident1 ident2 (ident3, ident4, ident5,…) , в си++ это может быть и незавершенная декларация функции, и декларация переменной, как это интерпретировать понять можно только из семантики этих самых ident.

то есть для парсинга грамматики(синтаксического анализа и выяснения соответствия текста грамматическим правилам) надо вести списки декларированных обьектов, и искать что это за ident. То есть чтобы найти СИНТАКСИЧЕСКУЮ ошибку, надо заниматься уже семантикой. а это неправильно.

Исходная версия alysnix, :

Вот мы имеем код. Он контексто-зависимый. Помогут ли нам какие-то контексто-свободные наработки? Нет. Они мусор.

констекстная свобода у грамматики это не код. это способ выбора правил разбора это грамматики. про семантику речи тут нет вообще.

если для выбора правила в данной точке потока символов нужно знать некий контекст нефиксированной сложности, то это явно контекстная зависимость.

пример - ident1 ident2 (ident3, ident4, ident5,…) , в си++ это может быть и незавершенная декларация функции, и декларация переменной, как это интерпретировать понять можно только из семантики этих самых ident.

то есть для парсинга грамматики(синтаксического анализа и выяснения соответствия текста грамматическим правилам) надо вести списки декларированных обьектов, и искать что это за ident. То есть чтобы найти СИНТАКСИЧЕСКУЮ ошибку, надо заниматься уже семантикой. а это неправильно.