Haskell語言學習筆記(57)Parsec(4)

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 ()
    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 函數對數據流進行解析。
  • 若是匹配失敗,打印出錯信息。
  • 若是匹配成功,輸出返回值。
相關文章
相關標籤/搜索