Форум сайта python.su
Доброго времени суток. Пишу очередной ненужный ЯП (чисто академический интерес) с помощью PLY и столкнулся с проблемой на этапе работы парсера. Правила, вроде как, записаны правильно, но парсер воспринимает только первое выражение, а остальные считает за ошибку.
Код парсера тут
Он нормально воспринимает такой код:
a = 1 + 2
a = 1 + 2 b = 3 + 4
Отредактировано asdf404 (Сен. 21, 2013 17:18:58)
Офлайн
Эту проблему почти решил. Оказывается, я забыл вернуть токен NEWLINE в определении.
Теперь беда в другом, парсер спотыкается на объявлении функции вида
int main() do a = 1 end
def p_block(self, p): """ block : DO block_body END """ def p_block_body(self, p): """ block_body : statements """ def p_function_definition(self, p): """ function_definition : NAME NAME arguments_definition block """
Офлайн