Parsec.Combinator:between

ほぼ、まんま

module Main where

import Text.ParserCombinators.Parsec

braces = between (char '{') (char '}')

run :: Show a => Parser a -> String -> IO ()
run p input
        = case (parse p "" input) of
            Left err -> do{ putStr "parse error at "
                          ; print err
                          }
            Right x  -> print x

で、

*Main> run (braces letter) "{a}"
'a'
*Main> run (braces letter) "{ }"
parse error at (line 1, column 2):
unexpected " "
expecting letter
*Main> run (braces (many1 letter)) "{a}"
"a"
*Main> run (braces (many1 letter)) "{abc}"
"abc"