Articles of pyparsing

¿Necesita ayuda para hacer el analizador recursivo utilizando pyparsing

Estoy probando el python pyparsing para analizar. Me quedé atascado mientras hacía el analizador recursivo. Dejame explicarte el problema Quiero hacer el producto cartesiano de los elementos. La syntax es cross({elements },{element}) Lo puse de manera mas especifica cross({a},{c1}) or cross({a,b},{c1}) or cross({a,b,c,d},{c1}) or Entonces, la forma general es que el primer grupo tendrá n […]

¿Cómo recuperar la lista de valores del objeto de resultado en PyParsing?

Tengo un ejemplo simple donde me gustaría analizar 2 líneas de datos. In [1] from pyparsing import Word, nums, OneOrMore, Optional, Suppress, alphanums, LineEnd, LineStart Float = Word(nums + ‘.’ + ‘-‘) Name = Word(alphanums) Line = OneOrMore(Float)(‘data’) + Suppress(Optional(‘;’)) + Optional(‘%’) + Optional(Name)(‘name’) Lines = OneOrMore(Line + LineEnd()) string = ”’ 1 10 0 […]

pyparsing nestedExpr y paréntesis nesteds

Estoy trabajando en una “syntax de consulta” muy simple que pueden utilizar personas con habilidades técnicas razonables (es decir, no progtwigdores en sí, pero capaces de abordar el tema) Un ejemplo típico de lo que ingresarían en un formulario es: address like street AND vote = True AND ( ( age>=25 AND gender = M […]

Analizar un texto similar a TCL

Tengo un texto de configuración que se ve así: text=””” key1 value1 key2 { value1 value2 } key3 subkey1 { key1 1 key2 2 key3 { value1 } } BLOBKEY name { dont { # comment parse { me } } } key3 subkey2 { key1 value1 } “”” Los valores son cadenas simples o […]

pyparsing y saltos de línea

Acabo de comenzar con el uso de pyparsing y tengo problemas con los saltos de línea. Mi gramática es: from pyparsing import * newline = LineEnd () #Literal (‘\n’).leaveWhitespace () minus = Literal (‘-‘) plus = Literal (‘+’) lparen = Literal (‘(‘) rparen = Literal (‘)’) ident = Word (alphas) integer = Word (nums) arith […]

Pyparsing: obtener la ubicación del token en el nombre de los resultados

Estoy trabajando en un progtwig que analiza una línea de comandos con pyparsing. Utiliza la biblioteca readline para proporcionar la edición y finalización del comando. En el contexto de la aplicación, una línea de comando válida es una ruta (opcional), seguida de un nombre de comando (opcional) y algunos parámetros (también opcionales). Para ofrecer la […]

“Deparsing” una lista utilizando pyparsing

¿Es posible dar a pyparsing una lista analizada y hacer que devuelva la cadena original?

Lista de diccionarios y pyparsing.

Estoy usando pyparsing para construir diccionarios que se agregan a una lista. Cuando hago esto, los diccionarios se envuelven en una lista adicional y también hay un dictado vacío adjunto. No tengo ni idea de cómo solucionar este problema. Lo que quiero es [{},{},{}] . Estoy recibiendo [([{}],{})] ¿Por qué el código de getDict me […]

Pyparsing problemas de coincidencia de espacios en blanco

Intenté usar pyparsing para analizar robotframework, que es un DSL basado en texto. El sytnax es como seguir (lo siento, pero creo que es un poco difícil para mí describirlo en BNF). una sola línea en robotframework puede verse como: Library\tSSHClient with name\tnode \ t es una pestaña, y en robotframework, se transfiere de forma […]

cambiar la cadena durante la propagación

En mi código de pyparsing tengo las siguientes expresiones: exp1 = Literal(“foo”) + Suppress(Literal(“=”)) + Word(alphanums+’_-‘) exp2 = Literal(“foo”) + Suppress(Literal(“!=”)) + Word(alphanums+’_-‘) exp = Optional(exp1) & Optional(exp2) Quiero cambiar foo en exp2 a bar, para poder distinguir entre = y! = En los datos analizados. es posible?