LINUX.ORG.RU

Вышла версия 1.5.0 модуля грамматического анализа pyparsing для языка Python

 , , ,


0

0

1 июня 2008 года вышла версия 1.5.0 модуля грамматического анализа pyparsing. Модуль предназначен для лексического и синтаксического анализа текстов, описываемых простыми грамматиками. На сайте разработчика выложены десятки примеров его применения, среди которых - примеры для языков SQL, CORBA IDL, языка химических формул и т.д.

Несмотря на то, что модуль не предусматривает отделения кода от данных (описание грамматики "вшивается" в код программы), он используется во многих проектах. Например, он нашел применение в svg2imagemap (SVG to HTML image map converter), Pybtex (BibTeX parser), PyMLNs (Markov Logic Networks), Tunnelhack (text adventure). Автор анализатора, Paul McGuire, использовал свой продукт для разбора программ на Verilog.

Модуль оформлен в виде одного .py-файла и распространяется на условиях свободной пользовательской лицензии MIT License. Включен в состав дистрибутива Debian GNU/Linux.

Как заявляет Paul McGuire, код модуля для Python 3.0 доступен, но еще до конца не отлажен. Основной веткой является Python 2.x.

Новости проекта: http://pyparsing.wikispaces.com/News
Страница загрузки: http://pyparsing.wikispaces.com/Downl...

В качестве альтернативы модулю pyparsing можно посмотреть анализатор Дэвида Бизли, PLY (Python Lex-Yacc), поддерживающий SLR и LALR(1)-грамматики.

>>> Домашняя страница

Скажите, а чем этот модуль такой особенный, что заслуживает новости? Чем он отличается от модуля, описанного в новости через одну ниже? Неужели по выпуску каждого нового расширения для питона мы будем пистаь новость?

Sectoid ★★★★★
()

ну всё!: теперь ждём C++-компиляторы на питоне .. ^_^

anonymous
()
Ответ на: комментарий от anonymous

Неделя грамотнасти на ЛОРе!

anonymous
()

COBRA IDL? WTF? Исправьте на CORBA IDL.

SKYRiDER ★★★
()

Может ну его в баню, этот jsp? Прикрутить к движку ЛОРа этот модуль грамматического анализа или тот, что указан в новости немного раньше...

FHunter
()

> ну всё!: теперь ждём C++-компиляторы на питоне .. ^_^
есть наоборот python транслирует в c++(shedskin)

а вообще, нахрена это сюда постить? кому интересно подписаны на rss pypi(я вот подписан:). а здесь это имхо оффтопик полный. к линукс кстати никакого прямого отношения не имеющий.
давайте ещё всё что выходит на cpan и на руби(gems?) сюда постить =/

pawnhearts ★★★★★
()
Ответ на: комментарий от pawnhearts

> а вообще, нахрена это сюда постить? кому интересно подписаны на rss pypi(я вот подписан:). а здесь это имхо оффтопик полный. к линукс кстати никакого прямого отношения не имеющий. давайте ещё всё что выходит на cpan и на руби(gems?) сюда постить =/

мож лор - тоже подписан на rss pypi ? ))))

anonymous
()

раз новость о новой версии чего-то, то неплохо бы и список изменений указывать

cobold ★★★★★
()
Ответ на: комментарий от pawnhearts

> а вообще, нахрена это сюда постить?

А по-моему вполне разумно. У кого то в памяти отложится, кого то заинтересует и т.д.

anonymous
()

Есть несколько вопрос: он может проверить правильность синтаксиса на Python? Например из php его вызвать можно?

sniper21 ★★★★★
()
Ответ на: комментарий от Sectoid


Sectoid:
> Скажите, а чем этот модуль такой особенный, что заслуживает новости?
> Чем он отличается от модуля, описанного в новости через одну ниже?

Этот модуль - для новичков, позволяет быстро, без ознакомления
с синтаксисом БНФ/РБНФ, набросать парсер.
По-сути дела, он представляет собой аналог regexp'ов.
Разбирать РБНФ (EBNF) умеет другой модуль Питона - SimpleParse.

Sectoid:
> Неужели по выпуску каждого нового расширения для питона мы будем пистаь новость?

Новости пишутся для того, чтобы обсудить тему, затронутую в них. Не так ли?
Если человек способен к аргументированному диалогу по теме - новость писать стоит.
К тому же, новости по теме грамматического анализа обращают внимание
студентов на тему, близкую к Data Mining'у, Artifical Intelligence, etc.
Чем больше сообщество грамотных программистов - тем лучше для нас
- программистов и пользователей.

pawnhearts:
> давайте ещё всё что выходит на cpan и на руби(gems?) сюда постить

Конкретная реализация мат.методов - программы - не так важна.
Важно то, что делают сами люди, какими задачами они занимаются, что получают в итоге.
Ведь не зря тов.Путин сказал нам недавно, что надо обращать внимание
и на социальную сферу.

cobold:
> раз новость о новой версии чего-то, то неплохо бы и список изменений указывать

Changelog:
- добавлен метод, локализующий ошибки синтаксиса;
- добавлен метод, облегчающий разбор текстов, форматируемых отступами;
- добавлена поддержка старого Python, версии 1.5.0;
- подчищен код для соответствия синтаксису Python 3.x;
- добавлено несколько операторов, реализуемых методами и классами модуля;
- исправлены мелкие недостатки, упоминавшихся в FAQ, а также - ряд ошибок;

sniper21:
> Есть несколько вопрос: он может проверить правильность синтаксиса на Python? Например из php его вызвать можно?

Я думаю, можно передать питоновскому скрипту (например,
cgi-приложению), данные по HTTP через POST, и получить ответ.
Или, к примеру, по TCP, открыв сокеты из скриптов.
Или запустить питоновский скрипт через exec/system/etc.,
если это возможно сделать из php'шного скрипта.

pacify ★★★★★
() автор топика

Ох уж эти простые грамматики ЛОРа...

zenkov ★★★
()
Ответ на: комментарий от dikiy

> И чем оно лучше bison?

Во-первых, сравнивать генератор парсеров и модуль для парсинга - некорректно.
Во-вторых, преимущества использования парсера зависят от контекста.
Bison и BNF Converter - генераторы парсеров на Си и Си/Си++/Java/Haskell
соответственно. Если у вас стоит задача написать онлайн-парсер некоторых
текстов, и на вашем хостинге есть транслятор целевого языка (того же
Haskell) - то, возможно, следует использовать BNF Converter. Я его не юзал. Если транслятора на хостинге нет, и генерить программу под
целевую платформу (либо выполнять там) нечем, проще заюзать
что-нибудь интерпретируемое типа Питона (он часто бывает на хостингах).
Мне, например, понравился SimpleParse, но пока пробую PLY.

pacify ★★★★★
() автор топика

>В качестве альтернативы модулю pyparsing можно посмотреть анализатор Дэвида Бизли

http://www.antlr.org/

ANTLR3 Code Generation Targets:

Java, C++, C#, C, D, Objective C, Python, Ruby, LISP, Perl6, Perl, PhP, Oberon (yes, Oberon), Ada95, ActionScript, Delphi.

r ★★★★★
()

замечательный модуль. помог разобрать на части несколько японских сайтов-аукционов.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.