pyparsing- все статьи тега
Как проверить динамически определенные элементы грамматики в PyParsing
Я реализую синтаксический анализатор для довольно сложной грамматики, используя PyParsing. (Что, если я могу добавить, действительно приятно использовать!) Грамматика несколько "динамична" в том, что позволяет определять (различные) алфавиты, которые, в свою очередь, определяют элементы, разрешенные в других определениях. В качестве примера: alphabet: a b c lists: s1 = a b s2 = b c x Здесь alphabet предназначено для определения того, какие элементы допускаются в определениях lists. Наприме ...
Результаты на Python/когда pyparsing при использовании в качестве поплавка
Я нашел следующий пример из другого вопроса: здесь Он имеет некоторый pyparsing код, как это: from pyparsing import * survey = '''GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812''' number = Word(nums+'.').setParseAction(lambda t: float(t[0])) separator = Suppress(',') latitude = Suppress('LA') + number longitude = Suppress('LN') + number elevation = Suppress('EL') + number line = (Suppress('GPS,PN1,') + latitude + separator + longitude + separator ...
Как получить результаты от pyparsing Forward object?
Предположим, что у нас есть следующая строка string = """ object obj1{ attr1 value1; object obj2 { attr2 value2; } } object obj3{ attr3 value3; attr4 value4; } """ Существует вложенный объект, и мы используем Forward для его анализа. from pyparsing import * word = Word(alphanums) attribute = word.setResultsName("name") value = word.setResultsName("value") object_grammar = Forward() attributes = attribute + value + Suppress(";") + LineEnd().suppress() obje ...
Не жадный разбор списка с помощью pyparsing
У меня есть строка, состоящая из списка слов, которые я пытаюсь разобрать с помощью pyparsing. Список всегда содержит минимум три пункта. Из этого я хочу, чтобы pyparsing генерировал три группы, первая из которых содержит все слова до последних двух элементов, а последние две группы должны быть последними двумя элементами. Например: "one two three four" Следует разобрать на что-то похожее: ["one two"], "three", "four" Я могу сделать это с регулярным выражением: import pyparsing as pp ...