Форум сайта python.su
Мне нужно написать парсер формул.
Например для строки #(5=“sd”,5=“sddf”) нада вызвать функцию и передать ей аргументы (которые в скобках).
Что-то из стандартних библиотек подходит? (parser — Access Python parse trees (http://docs.python.org/library/parser.html) )?
Что скажете о Pysec??
Офлайн
Офлайн
По такому описанию синтаксиса и семантики как у вас, не получится парсера.
непонятно - сколько аргументов два или разное число
непонятно что передавать (5 или “sd” или то и другое, питон от того что в скобках сразу загнется)
Конкретно вашу строку проще всего запустить заменив # на имя функции и сказать exec (но см выше).
можно разобрать регулярными выражениями.
можно посмотреть pyparsing и т. п.
Офлайн
Хоть тема относительно древняя, оставлю это здесь: парсер PEG грамматики
Офлайн