peg

    1熱度

    1回答

    我想解析一些Verilog的碎片 - 我主要感興趣的是提取模塊定義和實例。 用Verilog模塊的定義如下: module foo (...) endmodule; 和模塊中的兩個不同的可能方式之一實例: foo fooinst (...); foo #(...list of params...) fooinst (....); 在這一點上我只是在尋找有興趣定義或實例化模塊的名稱; 'f

    0熱度

    3回答

    我提出的bbcode解析器用PEG(柑橘實施紅寶石),我被困在解析這個[b]sometext[anothertext[/b] 有代碼 grammar BBCodeParser rule document (open_tag | close_tag | new_line | text)* end rule open_tag ("[" tag_name

    9熱度

    1回答

    我的問題與PEG for Python style indentation基本相同,但我想要了解更多有關this answer的方向。 答案成功地生成了一行字符串數組,這些字符串行之間的每行輸入爲'INDENT'和'DEDENT'。看起來他非常習慣使用PEG.js進行標記,但沒有真正的解析發生。 那麼如何擴展他的例子來做一些實際的解析? 舉個例子,我怎樣才能改變這種語法: start = obj

    4熱度

    1回答

    我有隻有兩個規則樹頂語法: grammar RCFAE rule num [0-9]+ <Num> end rule identifier [a-zA-Z] [a-zA-Z]* <ID> end end 我試圖解析簡單的字符串(「A」和「5」)。如果我把這個規則放在第一位,那麼「5」被認爲是Num,如果我把這個規則放在第二位,

    1熱度

    1回答

    的Treetop website給出瞭如下的解釋,我不明白 省略號 空字符串在任何位置相匹配,並且不消耗輸入。當您希望將單個符號作爲序列的一部分進行處理時,例如在使用共享代碼處理替代規則時,這非常有用。 規則ALTS (FOO酒吧/巴茲 '') { Def值 elements.map {| E | e.text_value} 端 } 端 當可用於治療符號作爲序列的一部分?任何人都可以提供一個有意義

    3熱度

    1回答

    的similar question和author's website給我的解決方案是這樣的: Identifier "identifier" = !ReservedWord [A-Za-z_]+ ReservedWord = "test" /"abc" 該溶液無法解析的識別符這樣的「test_var」。 在此示例中,語法!ReservedWord將排除以「test」或

    5熱度

    1回答

    我的一個Lua應用程序的一部分是一個搜索欄,我試圖讓它理解布爾表達式。我使用LPEG,但目前的語法給出了一個奇怪的結果: > re, yajl = require're', require'yajl' > querypattern = re.compile[=[ QUERY <- (EXPR/TERM)? S? !. -> {} EXPR <- S? TERM ((S O

    20熱度

    1回答

    我想忽略空格和新線與我的語法所以它們在PEG.js輸出失蹤。另外,括號內的文字應該返回到新的數組中。 語法 start = 'a'? sep+ ('cat'/'dog') sep* '(' sep* stmt_list sep* ')' stmt_list = exp: [a-zA-Z]+ { return new Array(exp.join('')) } sep

    0熱度

    1回答

    誰能告訴我怎麼寫語法上Treetop同時支持: system u AAA1 car=5, motor=4 和 system u car=5, motor=4

    5熱度

    3回答

    我正在嘗試爲C/AL programming language創建某種lint工具。所以基本上我需要對源代碼進行語法和詞法分析。我打算從頭開始編寫解析器,但後來發現有很多工具可以自動生成這些解析器。 我需要性能,因爲在一塊中檢查20兆字節的代碼是正常情況,我需要該工具可以通過自定義規則進行擴展。所以我決定使用JavaScript。我可以使用Jison和PEG.js。 哪個給了我更多的解析表現?也許