Re: [СП] Кто помнит?

mocart88

Вниманию ВМК-community
Народ, подскажите, плс. А то никак не могу вспомнить, а материалов под рукой нету.
Нужно привести некоторую грамматику к правостороннему виду, пригодному для анализа методом рекурсивного спуска.
Какие замены делаются в случаях:
а) имеющихся справа терминалов
A -> AA | Ba
б) правосторонней рекурсии
C -> 0C| .. | 9C | 0 | ..| 9 (генерится непустое число

bleyman

правостороннему виду

То есть терминалы читаются справа налево?
Короче.
Пункт б) и так уже вполне пригоден для разбора рекурсивным спуском ИМХО, с какой стороны его ни разбирай. Разве что если ты хочешь идти именно справа налево, то надо его вот так записать:
C -> C0| .. | C9 | 0 | ..| 9
Пункт а)
A -> ABa | Ba
или
A -> BaA| Ba
после чего расковырять B - если ты собираешься спускаться слева.
А вообще фигня это всё. Рекурсивный спуск надо прогать прогой =)

olegusmaximus

и так уже вполне пригоден для разбора рекурсивным спуском ИМХО

а разве для метода рс все альтернативы не должны начинаться
с разных терминалов?

bleyman

А фиг его знает. Я ж говорю - фигня все это, рекурсивный спуск надо прогать =) Потому что попытки чего-нить сделать на уровне грамматики а не конечного аффтомата / проги ИМХО приводят к чудовищным и невменяемым результатам. хз.

mocart88

2 FJ
Секундочку.
Речь шла о правосторонней грамматике, т.е. нетерминалы расположены справа.
И ведь считываться всё будет слева направо - как при рекурсии их получится располагать слева? Так что при проганьи случай левой рекурсии всё будет сложно.
Так что нетерминалы пусть идут справа.
Оставить комментарий
Имя или ник:
Комментарий: