Parsec 連接と選択

char 'a' は一文字にマッチするパーサだ。

Hugs> :l Text.ParserCombinators.Parsec
Text.ParserCombinators.Parsec> parseTest (char 'a') "abc"
'a'

しかし "ab" のような文字の並びにマッチするようなパーサを作りたい場合がある。そのような連接にマッチするパーサを作るときは、do 記法を使う。

Text.ParserCombinators.Parsec> parseTest sequence "abc" where sequence = do {char 'a'; char 'b'}
'b'

また、'a' か 'b' のどちらかにマッチするような選択のパーサを作るには <|> 演算子を使う。

Text.ParserCombinators.Parsec> parseTest choice "bac" where choice = char 'a' <|> char 'b'
'b'

このように、do 記法や <|> 演算子を使うことで記号の組み合わせにマッチするパーサを定義できる。
[PR]
by tnomura9 | 2009-09-28 23:57 | Haskell | Comments(0)
<< Parsec try Parsec - run >>