pyparsing

    1热度

    1回答

    我想创建一个解析器,它将某些数学转换为C.这归结为必须找到表单的嵌套表达式...^x,并用pow替换(..., x)(这里x是一个数字)。 一些假设: ^只会出现在地方表明幂 的“X”将永远是一个实数为代表用C 之前的指数^,在.. 。将是某种变量,数字或者括号中的分组表达式。变量将是一个带有(可能)下划线的字母数字字符串。 我可以澄清更多的假设,如果我错过了什么(只是问)。 我的代码如下所示,以

    4热度

    2回答

    我无法将这个EBNF表达式翻译成Pyparsing,任何想法? token:: [A-Z] P:: !|token;P|(P^P)|(P*P) 问题是当使用递归时,解释器失败。 这样的表达应该是有效的: (ASD;!^FFF;!) A;B;C;! (((A;!^B;!)^C;D;!)*E;!)

    2热度

    1回答

    在我正在处理的应用程序中,我们有一个DSL将一些字符组合在一起,它们可以分组或不分组。括号决定组。例如,良好的输入: 123 12(34) 1(234) 坏输入: 12(34 基本上我想要的任何不匹配的括号不解析,就好象这应该是我在做什么,目的有语法错误。我做了这个MVCE展示我和我的pyparsing代码遇到的问题: import pyparsing as pp def Synt

    1热度

    1回答

    我需要将嵌套的二进制布尔表达式解析到XML树中。例如采取表达式 expression2 = "((Param1 = 1 AND Param2 = 1) \ OR (Param3 = 1 AND Param4 = 1)) \ AND \ (((Param5 = 0 AND Param6 = 1) \ OR(Param7 = 0 AND Para

    3热度

    1回答

    我正在开发一个翻译器,用于将PC上的简单脚本翻译成某些字节码以在微控制器上执行它(字节码)。 我使用lex和re2c开发了C++中的翻译器,但是我正在考虑切换到pyparsing。 为了将我的脚本语句翻译成字节码中的少量操作,我需要获取该语句的抽象语法树。 I.E.这个脚本: X = 1 - 2; 应转换为这个二进制数: register1 <- 1 register2 <- 2 regi

    1热度

    1回答

    我想使用PyParsing将文本和输出解析为XML(asXML())。但XML输出中的标签与setResultsName不一致。 请参见下面的代码段: p1 = (Literal('a').setResultsName('tag_a')).setResultsName('tag_out') print(p1.parseString('a').asXML()) # Output: # <tag

    1热度

    1回答

    我想解析Windows资源与pyparsing文件,因为菜单可以有很深的嵌套结构。 用正则表达式解析这样的结构是非常困难的。 一切工作正常,但今天我发现我的代码只能找到一个实例。 为了让我清楚,这里是* rc文件的内容(E:\工具\水库\ my​​.rc,以节省空间,只显示了容易出错的部分): #include "../include/resource.h" IDR_MENU_OPTION M

    3热度

    1回答

    我有一个字符串组成的单词列表,我试图用pyparsing解析。 该列表总是有至少三个项目。从这我想pyparsing生成三个组,其中第一个包含所有单词到最后两个项目,最后两个组应该是最后两个项目。例如: "one two three four" 应该解释为类似的东西: ["one two"], "three", "four" 我可以用正则表达式做到这一点: import pyparsing

    1热度

    2回答

    我有一个文件,在线条pythonStyleComments,例如: def foo(): # declare # Simple function a = 0 # TODO: add random return a 所以,后来我想补充.IGNORE(pythonStyleComments)到pyparsing,但要处理任何元(如去做: )。我知道所有的元语词,所以我

    1热度

    1回答

    我正在使用pyparsing,并试图使用方法Skipto来实现文本中几个可能的文字的第一次出现。 想象与此类似: OneOrMore(SkipTo(...longer expression...) | SkipTo(...another long expression...)) 我不能融合两个SkipTo的,因为它们位于不同的类,它不适合到当前系统中融合这些类。 如果我现在有类似这样的文字: