LINUX.ORG.RU

Состоялся релиз 0.0.2 библиотеки PGPC для разработки парсеров на Python

 , ,


0

1

PGPC представляет собой библиотеку парсер комбинаторов для Python, вдохновленную Parsec.

Название библиотеки представляет собой акроним: Parser Generator based Parser Combinators. Отличительной идеей библиотеки является эмуляция do-нотации при помощи yield и декоратора @pgpc.parser.topology, что позволяет поддерживать плоскую структуру кода:

from pgpc.parser import topology, position, char, Parser
from pgpc.scanner import TextScanner, Position


@topology
def parse_text(text: str):
    start = yield position()

    parsed = []

    for letter in text:
        last_parsed_letter = yield char(letter)
        parsed.append(last_parsed_letter)

    end = yield position()

    return parsed, start, end

if __name__ == '__main__':
    text = "Hello, World!"
    test_parser: Parser[str] = parse_text(text)
    parsed, start_position, end_position = test_parser(TextScanner(text))

Релиз содержит основные абстракции библиотеки (Scanner, Parser), а так же декоратор parser.topology, который позвояет использовать yield для возвращения разобранного результата из входной строки.

>>> Подробности

anonymous

Проверено: hobbit ()
Последнее исправление: CYB3R (всего исправлений: 3)

Минорщина же. Тут о каждом пакете под питон писать всего лора не хватит

yoghurt ★★★★★
()

Странно все. Пост от анонима с содержанием уровня говна, код говна, идея говна О_о @hobbit что с тобой? О_о

Anoxemian ★★★★★
()

даже на мини новость не тянет…
шо это на главной делает?

qbbr ★★★★★
()
Последнее исправление: qbbr (всего исправлений: 1)
Ответ на: комментарий от Anoxemian

Че вы накинулись на автора то ? Ну осилил человек декораторы уже хорошо. Вот название зря он такое взял …

mx__ ★★★★★
()

релиз 0.0.2

2 капли ☕ anonymous’у :)

quickquest ★★★★★
()

Отличительной идеей библиотеки является эмуляция do-нотации при помощи yield и декоратора @pgpc.parser.topology

Поскольку вдохновителем идеи является Parsec, то можно предположить что имеется в виду do-нотация из haskell-а. Но на кой она в python-е нужна абсолютно не понятно.

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