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 函數對數據流進行解析。
- 若是匹配失敗,打印出錯信息。
- 若是匹配成功,輸出返回值。