uu-parsinglib

    1熱度

    1回答

    我正在嘗試使用uu_parsinglib創建Monadic分析器。我原本以爲它涵蓋了,但我發現在測試 一些意想不到的效果砍下例如我的解析器的是: pType :: Parser ASTType pType = addLength 0 $ do (Amb n_list) <- pName let r_list = filter attributeFilter n_list

    5熱度

    3回答

    讓我們來看看代碼片段: pSegmentBegin p i = pIndentExact i *> ((:) <$> p i <*> ((pEOL *> pSegment p i) <|> pure [])) ,如果我在我的解析器更改此代碼: pSegmentBegin p i = do pIndentExact i ((:) <$> p i <*> ((pEOL *> p

    3熱度

    1回答

    在Haskell中剖析解析器組合器庫中編寫的解析器的標準方法是什麼? 我目前使用的是uu-parsinglib,但我會非常感興趣的是瞭解其他分析器組合器庫(如Parsec)的分析方法。 現在我寫了我的解析器,它很慢,吃了很多內存(對於600行輸入文本,需要大約5秒鐘才能解析超過1Gb的RAM,我想研究如何改進它)

    2熱度

    3回答

    此問題與Parsec和uu-parsinglib都有關。當我們編寫解析器組合器時,它們處理來自編譯器的字符流。是否有可能解析一個字符並將其放回(或返回另一個字符)到輸入流? 我想例如解析輸入「測試+ 5」,解析t,e,s,t和識別test圖案,把例如v字符回到字符流之後,因此而continuating解析過程我們與v + 5 匹配我現在不想在任何特定情況下使用此功能 - 我想深入瞭解可能性。

    0熱度

    1回答

    我試圖用uu-parsinglib來操作[Word8]而不是[Char]。 (我想使用uu-parsinglib進行錯誤報告。) 我需要一個解析器,它可以取得序列中的下一個Word8,不管它是什麼。 一旦我有了,我可以構建更復雜的解析器。 但我無法弄清楚如何編寫它。 我已經能夠獲得最接近的是: {-# LANGUAGE FlexibleContexts #-} module Main wher

    4熱度

    2回答

    作爲真實語言解析器的簡化子問題,我正在嘗試實現解析器以查看與標準命令式語言類似的虛構語言表達式(如Python,JavaScript等)。其語法的特點如下構建體: 整數 標識符([a-zA-Z]+) 與+和*和括號算術表達式 與 .(例如 foo.bar.buz) 元組 結構的接入(例如(1, foo, bar.buz))(爲了消除歧義,一元組被寫爲(x,)) 功能的應用程序(例如foo(1, b

    3熱度

    1回答

    我需要一個類型爲Parser()的值,它將在空(長度爲0)輸入時成功(並返回()),並在所有其他情況下失敗。 pSatisfy (const False)不完全符合要求。 pEnd甚至不適用於此目的。 pExact 0 pAscii可能是確切的「按定義」解決方案。似乎仍然沒有工作: ghci> runParser "<input>" (pSymbol "aaa" <|> pSymbol "bbb"