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的,因爲它們位於不同的類,它不適合到當前系統中融合這些類。 如果我現在有類似這樣的文字: