Информация об изменениях

Сообщение Re[2]: Страшная правда о lex и yacc от 20.07.2020 4:00

Изменено 20.07.2020 5:02 Эйнсток Файр

Re[2]: Страшная правда о lex и yacc
AG>объяснили, зачем.

У них в первом же предложении:

strings called tokens, separated by whitespace


но это не бросается в глаза.
Дальше они уводят дискуссию в сторону, призывая

the "Chomsky Hierarchy"

the need for backtracking

Всё как обычно. Просто эталонный образец информационной пропаганды для сокрытия заговора.

Они не дают способа формального описания разделения двух грамматик.
Что если нижная грамматика — это грамматика препроцессора? С директивами #include ?

Или ладно, include можно ещё обработать регулярными выражениями, если не считать его
ключевым словом, отделённым от # пробелами.
А вот уже́ с вложенными директивами ifdef endif так не получится, там
потребуется вторая контекстно-свободная грамматика.

И тогда получается, что есть два уровня парсинга, которые оба описываются КС-грамматиками. Это значит что аргумент про "chomsky hierarchy" — фуфло.

Аргумент про бэктрекинг вообще смешон. Потому что он может быть не нужен если использовать КС-парсеры без необходимости бэктрекинга.

Главная причина — именно в пробелах.
Re[2]: Страшная правда о lex и yacc
AG>объяснили, зачем.

У них в первом же предложении:

strings called tokens, separated by whitespace


но это не бросается в глаза.
Дальше они уводят дискуссию в сторону, призывая

the "Chomsky Hierarchy"

the need for backtracking

Всё как обычно. Просто эталонный образец информационной пропаганды для сокрытия заговора.

Они не дают способа формального описания разделения двух грамматик.
Что если нижная грамматика — это грамматика препроцессора? С директивами #include ?

Или ладно, include можно ещё обработать регулярными выражениями, если не считать его
ключевым словом, отделённым от # пробелами.
А вот уже́ с вложенными директивами ifdef endif так не получится, там
потребуется вторая контекстно-свободная грамматика.

И тогда получается, что есть два уровня парсинга, которые оба описываются КС-грамматиками. Это значит что аргумент про "chomsky hierarchy" — фуфло.

Аргумент про бэктрекинг вообще смешон. Потому что он может быть не нужен если использовать КС-парсеры без необходимости бэктрекинга.

Главная причина — именно в пробелах.

Но препроцессор и компилятор — не единственная пара КС-языков в одном исходнике.
Может быть например Embedded SQL — это третья КС-грамматика внутри.