parsec

    0熱度

    2回答

    我真的很難分析Haskell,但它最有意義。 我正在建立一個模板化程序主要是爲了學習解析更好;模板可以通過{{ value }}表示法插值。 這是我目前的解析器, data Template a = Template [Either String a] data Directive = Directive String templateFromFile :: FilePath -> IO (

    3熱度

    1回答

    我是Haskell的新手,我一直在嘗試使用Parsec編寫JSON解析器作爲練習。這大部分進展順利,我能夠用相對較少的代碼解析列表和對象,這些代碼也是可讀的(太棒了!)。然而,對於JSON我還需要解析原語等 整數(可能是簽名) 浮標(可能使用科學記數法,如「3.4E-8」) 字符串與例如逃脫報價 我希望能找到準備使用Parsec一部分的解析器。我得到的最接近的是Parsec.Tokens模塊(定義

    0熱度

    1回答

    我有一門課程,需要我編寫一個新的函數parse :: String - > Stm。 Parsec已經有一個解析函數,所以我應該導入合格的parsec,以便解析返回我的包裝函數。 包裝函數需要將輸入字符串解析爲Parsec的解析函數,並從返回的monad中解壓縮結果。這是我的包裝函數的代碼。 如何確保在調用解析時返回包裝函數。 parseString :: String -> Stm parse

    2熱度

    1回答

    以下解析器爲任何輸入輸入無限循環。 data Ast = Number Int | Identifier String | Operation Ast BinOp Ast deriving (Show, Eq) data BinOp = Plus | Minus deriving (Show, Eq, Enum) number = Numb

    0熱度

    1回答

    我想使用parsec來讀取C/C++/java源文件並對整個文件進行一系列轉換。第一階段刪除字符串,第二階段刪除註釋。 (這是因爲你可能會得到一個字符串中的/ *)。 因此,每個階段都將字符串轉換爲Either String Error,並且我想將它們綁定在一起以形成一個整個文件。這似乎是一個相當普遍的要求。 import Text.ParserCombinators.Parsec comme

    0熱度

    1回答

    我在解析簡單的字符串的情況下,面臨着 parsec奇怪的行爲 琴絃的例子是: 1 C1 1.1650 2.7470 -0.1840 ca 1 MOL 0.408200 2 N1 -0.0550 2.1750 -0.0380 nb 1 MOL -0.665000 3 C2 -0.2180 0.8450 0.1920 ca 1 MOL 0.45

    1熱度

    1回答

    我有一個包含許多下列數據格式的文件: Dan Clark’s Profile Photo Member Name Dan Clark 2nd degree connection 2nd Member Occupation Founder and Headmaster at Some Company, LLC Nina blalba’s Profile Photo Member Name

    1熱度

    3回答

    這是我的一項任務。解析器的GetList假設的工作下一個方式 GHCi> parseTest getList "1;234;56" ["1","234","56"] GHCi> parseTest getList "1;234;56;" parse error at (line 1, column 10): unexpected end of input expecting digit

    1熱度

    3回答

    我需要一個像p1 << p2一個組合子,但p2應該運行只有如果p1成功和消耗一些輸入。 如果p1成功沒有消費輸入,p2不應該運行。 如果p1失敗,那麼p2也被忽略? 總的結果是r1的成績

    3熱度

    1回答

    我使用Attoparsec據說這是在默認情況下原路返回。但是,下面的一行: parseOnly (string "foo" *> many1 anyChar <* string "bar") "fooxxxbar" 失敗: Left "not enough input" 爲什麼會這樣呢?如果many1 anyChar決定只解析三個字符(xxx),它應該是成功的。它應該考慮在某個時候這樣做,