Articles of pyparsing

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?

PyParsing: ¿Qué hace Combine ()?

Cuál es la diferencia entre: foo = TOKEN1 + TOKEN2 y foo = Combine(TOKEN1 + TOKEN2) Gracias. ACTUALIZACIÓN : Según mi experimentación, parece que Combine() es para terminales, donde se intenta construir una expresión para que coincida, mientras que plain + es para no terminales. Pero no estoy seguro.

ejemplo de reproducción

Es mi primer bash de usar pyparsing y me gustaría preguntar cómo filtrar esta línea de muestra: survey = ”’GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812”’ para obtener una salida como: 1,52.125133215643,21.031048525561,116.898812 En general, tengo problemas para entender la lógica de progtwigción, por lo que se agradecerá cualquier ayuda con este ejemplo. Gracias

Perspectivas de PyParsing y expresiones codiciosas

Estoy escribiendo un analizador para un lenguaje de consulta usando PyParsing, y me he quedado atascado en (lo que creo que es) un problema con lookaheads. Un tipo de cláusula en la consulta tiene la intención de dividir las cadenas en 3 partes (nombre de campo, operador, valor), de modo que el nombre de campo […]

Acceda a los elementos analizados utilizando Pyparsing

Tengo un montón de frases que necesito analizar y convertir al código de búsqueda de expresiones regulares correspondiente. Ejemplos de mis oraciones – LINE_CONTAINS phrase one BEFORE {phrase2 AND phrase3} AND LINE_STARTSWITH Therefore we -Esto significa en la línea, phrase one viene en algún lugar antes de phrase2 y phrase3 . Además, la línea debe […]

Contexto en las acciones de pyparsing parse además de globales.

Me gustaría poder analizar dos (o cualquier número) de expresiones, cada una con su propio conjunto de definiciones de variables u otro contexto. No parece haber una manera obvia de asociar un contexto con una invocación particular de pyparsing.ParseExpression.parseString() . La forma más natural parece ser usar un método de instancia de alguna clase como […]