Форум сайта python.su
попробовал http://construct.wikispaces.com/ - в 4 раза медленнее регулярок.
Офлайн
shizaда головоломка для меня до сих пор и регулярно забываю что там откуда. Как поменять что-то надо так ступор и читаю официальные доки снова и отладку делаю с выводом всего что хватает оператор на экран. Напоминает ассемблер - одни условия и переходы.
mxTextTools - все никак не найду как подступиться - ужасные конуструкции, но видимо придется. %)
Из документации я нашел только официальную доку и еще мануал по прасингу от Гвидо. Есть еще что-нибудь?
Отредактировано (Авг. 8, 2008 16:30:54)
Офлайн
Гибче и удобнее регулярок? Слабо себе представляю.
На базе регулярок можно быстро написать парсер любой степени гибкости и удобства.
Но скорость - как получится.
Офлайн
asv13
есть обертка к mxTextTools
называется simpleparse
( http://simpleparse.sourceforge.net/ )
В нем все описывается в стнадарте EBNF. Он проще гораздо, но тоже незнакомый. И тоже нет доки на русском.
Офлайн
про simpleparse я помню, мне он показался даже сложнее :)
здесь http://nedbatchelder.com/text/python-parsers.html дано перечисление парсеров с краткой аннотацией и моему mxTextTools досталось - “An unusual table-based parser. There is no generation step, the parser is hand-coded using primitives provided by the package.”
пока буду смотреть в сторону PLY, pyparsing и ANTLR
Офлайн
pyparsing пробовал. В чистом виде тормознее регулярок раз в 5.
Эту страчнику видел… но парсеров там…. пробовать неперепробовать.
Как говорит ZAN - большую скорсоть дают детерменированные конечные автоматы, т.е. DFA.
Отредактировано (Авг. 8, 2008 17:54:32)
Офлайн
Разобрался с simpleparse (надстройка над mxTextTools).
Синтакиси даже проще, чем у регулярок.
Скорость примерно равна им.
asv13 Могу рекомендовать, если тебя скорость mxTextTools устраивает. Лично мне - маловато. =)
Отредактировано (Авг. 8, 2008 21:42:41)
Офлайн
А может просто железку помощнее и писать на том что нравится и удобно?:)
Офлайн
Если ничего не найдется, то придется так поступить.
Но все дело в том (см. самый верхний пост), что у меня на чистом питоне получался прасер по крайней мере в 40 раз быстрее регулярок. Но он сильно неуниверсальный - чтоб чего-нибудь поменять, надо много всего переписывать.
Поэтому, у меня пока есть надежда, что наверняка есть модуль на С например, с более удобным интерфейсом и сходной скоростью.
Офлайн
а если генератор кода написать? по решение в первом посте?
Офлайн