peg

    1熱度

    1回答

    經過數小時試圖使其工作後,發現了令人頭疼的頭痛。 我正在使用PEG.js解析來獲取解析到數組中的輸入查詢。 現在即時通過這個語法來盡我所能。操作數和連接器是靜態的,並由應用程序生成。 start = start:(statement) statement = statement:block_statement* { return statement; } block_statement =

    0熱度

    1回答

    問題是,PEGs(解析表達式語法)do not allow left-recursive rules。 我已閱讀有關此主題的可用答案,但具體問題(如this one)或非常簡單(例如x = symbol:(x '.'))。 我創建了以下非常簡單的語法來說明問題 EXAMPLE = x+ x = symbol:(x y*/x y z) y = symbol:('.' x) z = symb

    0熱度

    1回答

    我通過Artima guide看着解析器組合,它說,我們需要追加失敗(MSG)給我們的語法規則,以便爲用戶 def value: Parser[Any] = obj | stringLit | num | "true" | "false" | failure("illegal start of value") 這打破了我的遞歸機制的理解錯誤報告有意義,在這些解析器中使用。一方面,Ar

    2熱度

    1回答

    我在想如何解析pegjs中的評論(比如la Haskell)。 目標: {- This is a comment and should parse. Comments start with {- and end with -}. If you've noticed, I still included {- and -} in the comment. Thi

    -1熱度

    1回答

    我最近對製作計算機語言很感興趣。 BNF & yacc讓我瘋狂。然後,我看到PEG,和我通過它graceful.I吸引想了解更多關於後援細節是: 1 how does PEG work (algorithm) 2 is there any tools about it on C/C++/Lua 非常thanks.◉-◉

    1熱度

    1回答

    我似乎無法找到PEG本身的解析表達式語法(PEG)。 如何解析解析表達式語法? 注意這個問題不是關於如何從PEG構建一個遞歸正確的解析器,而是解析一個PEG。

    0熱度

    1回答

    我正在嘗試學習與Treetop PEG語法分析器一起工作,但我從一開始就感到奇怪的錯誤。 我有文件的 node_extensions.rb parser.rb tranlan.treetop 和內容是以下這個文件結構(列表是上面列出文件的順序) node_extensions.rb # node_extensions.rb module TranLan end parser.rb

    1熱度

    1回答

    我一直在嘗試最近使用Treetop爲我的客戶之一創建CFG DSL語言的簡單解析器。我成功地實現了他所需的所有功能,但與Treetop一起工作竟然是相當痛苦的經歷。 問題是我無法從Treetop獲得任何可用的錯誤消息。我得到的唯一輸出是 parser.rb:22:in `parse': Parser error at offset: 0 (Exception) Error: #<TranLan

    0熱度

    1回答

    我在PEG.js上試圖創建一個能夠接受一個字符串並創建一個對象的解析器。 例如,以字符串「a & b」和創建: {type:"operator",value:operator, children:[a, b]} 然而,我已經達到,其中如果存在兩個或多個座返回結果可需要10秒以上的階段。 我一直在使用該測試的說法是: (All a (All a (All a b))) 語法不會返回正確的答案

    2熱度

    1回答

    作爲一個更大的解析器的一部分,我寫一個規則來匹配像下面這樣使用parboiled2字符串: 意大利RELE 我想用簡單的東西像下面這樣: CharPredicate.Printable 但由於字符串末尾有unicode字符,解析器失敗,出現org.parboiled2.ParseError。 有沒有一個簡單的選項,我不知道匹配可打印的Unicode字符?