Разбор кода и построение синтаксических деревьев с PLY. Основы

17882c79e4443998a0e1020819cc3d3b.pngЧто такое PLY? PLY — это аббревиатура из первых букв выражения: Python Lex-Yacc. Фактически, это порт утилит lex и yacc на python в красивой обертке. Работать с ply очень просто и порог входа для начала использования практически нулевой. Написан он на чистом питоне и представляет из себя LALR (1) парсер, но кому это интересно? Я по натуре практик (как и большинсво из вас) поэтому пошли в бой! Что будем делать? На сайте есть пример написания очередного калькулятора, поэтому повторяться не будем. А сделаем что-то навроде парсера очень очень узкого подмножества PHP:) Наша задача в конце статьи построить синтаксическое дерево для такого примера:

© Habrahabr.ru