Haskell語言學習筆記(57)Parsec(4)
阿新 • • 發佈:2017-12-08
left 失敗 right identity parse div 狀態 匹配 出錯信息
Parser 類型
data ParsecT s u m a
type Parsec s u = ParsecT s u Identity
type Parser = Parsec String ()
- data ParsecT s u m a
ParsecT 帶四個類型參數:數據流類型 s,用戶狀態類型 u,底層Monad類型 m,返回類型 a。
ParsecT 是一個Monad轉換器。 - type Parsec s u = ParsecT s u Identity
Parsec 類型是 ParsecT 類型的特化,底層Monad類型特化為 Identity。 - type Parser = Parsec String ()
parseTest 函數
parseTest :: (Stream s Identity t, Show a) => Parsec s () a -> s -> IO () parseTest p input = case parse p "" input of Left err -> do putStr "parse error at " print err Right x -> print x
- parseTest 函數調用 parse 函數對數據流進行解析。
- 如果匹配失敗,打印出錯信息。
- 如果匹配成功,輸出返回值。
Haskell語言學習筆記(57)Parsec(4)