shiza
Авг. 8, 2008 14:09:00
попробовал
http://construct.wikispaces.com/ - в 4 раза медленнее регулярок.
asv13
Авг. 8, 2008 16:15:34
shiza
mxTextTools - все никак не найду как подступиться - ужасные конуструкции, но видимо придется. %)
Из документации я нашел только официальную доку и еще мануал по прасингу от Гвидо. Есть еще что-нибудь?
да головоломка для меня до сих пор и регулярно забываю что там откуда. Как поменять что-то надо так ступор и читаю официальные доки снова и отладку делаю с выводом всего что хватает оператор на экран. Напоминает ассемблер - одни условия и переходы.
Есть к это либе еще якобы облегчающая процесс либа-надстройка которая пишется с регулярками, но я её не пробовал.
Действительно тоже хочу найти гибкий и удобный парсер текста.
Ferroman
Авг. 8, 2008 16:32:29
Гибче и удобнее регулярок? Слабо себе представляю.
На базе регулярок можно быстро написать парсер любой степени гибкости и удобства.
Но скорость - как получится.
shiza
Авг. 8, 2008 17:12:31
asv13есть обертка к mxTextTools
называется simpleparse
(
http://simpleparse.sourceforge.net/ )
В нем все описывается в стнадарте EBNF. Он проще гораздо, но тоже незнакомый. И тоже нет доки на русском.
asv13
Авг. 8, 2008 17:36:29
про 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
shiza
Авг. 8, 2008 17:50:04
pyparsing пробовал. В чистом виде тормознее регулярок раз в 5.
Эту страчнику видел… но парсеров там…. пробовать неперепробовать.
Как говорит ZAN - большую скорсоть дают детерменированные конечные автоматы, т.е. DFA.
shiza
Авг. 8, 2008 21:40:04
Разобрался с simpleparse (надстройка над mxTextTools).
Синтакиси даже проще, чем у регулярок.
Скорость примерно равна им.
asv13 Могу рекомендовать, если тебя скорость mxTextTools устраивает. Лично мне - маловато. =)
Александр Кошелев
Авг. 8, 2008 22:39:21
А может просто железку помощнее и писать на том что нравится и удобно?:)
shiza
Авг. 8, 2008 22:50:15
Если ничего не найдется, то придется так поступить.
Но все дело в том (см. самый верхний пост), что у меня на чистом питоне получался прасер по крайней мере в 40 раз быстрее регулярок. Но он сильно неуниверсальный - чтоб чего-нибудь поменять, надо много всего переписывать.
Поэтому, у меня пока есть надежда, что наверняка есть модуль на С например, с более удобным интерфейсом и сходной скоростью.
izekia
Авг. 8, 2008 23:12:45
а если генератор кода написать? по решение в первом посте?