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

good-penguin.png

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 для возвращения разобранного результата из входной строки.

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

©  Linux.org.ru