Прошу прощения за мой основной вопрос, но я действительно борется здесь. Мне нужно сделать рекурсивный парсер. Я работаю на Python и использую PLY. Моя грамматика следующая:Рекурсивный спуск Parser с использованием Python и PLY
< список> → (< sequence>) |()
< последовательность> < listelement>, < последовательность> | < listelement>
< listelement> < лист> | НОМЕР
Будет ли это выглядеть примерно так? Я в отъезде? Конечная цель - прочитать список в структуре данных и затем распечатать его.
def p_list(p) 'list : "("sequence")" | "("")"' def p_sequence(p) 'sequence : list_el","sequence | list_el' def p_list_el(p) 'list_el : list | NUMBER'
Если бы кто-нибудь задавался вопросом, каким будет полное решение, я отправлю его в ближайшее время.
Нужно ли NUMBER определять или это специальное определение в PYR? – Patashu
Что такое PYR? Вы имеете в виду PLY? – georg
Я не могу найти этот предполагаемый PYR с Google. Ссылка на то, где вы его получили, будет полезна. Хотя на основе того, что я вижу, действительно похоже, что вы действительно имеете в виду PLY. –