Safe Haskell | Safe-Inferred |
---|
Text.ParserCombinators.HuttonMeijer
Description
Copyright : Graham Hutton (University of Nottingham), Erik Meijer (University of Utrecht)
Maintainer : Malcolm Wallace Malcolm.Wallace@cs.york.ac.uk Stability : Stable Portability : All
A LIBRARY OF MONADIC PARSER COMBINATORS
29th July 1996
Graham Hutton Erik Meijer University of Nottingham University of Utrecht
This Haskell script defines a library of parser combinators, and is taken from sections 1-6 of our article Monadic Parser Combinators. Some changes to the library have been made in the move from Gofer to Haskell:
- Do notation is used in place of monad comprehension notation;
- The parser datatype is defined using newtype, to avoid the overhead of tagging and untagging parsers with the P constructor.
- newtype Parser a = P ([Token] -> [(a, [Token])])
- item :: Parser Token
- first :: Parser a -> Parser a
- papply :: Parser a -> [Token] -> [(a, [Token])]
- (+++) :: Parser a -> Parser a -> Parser a
- sat :: (Token -> Bool) -> Parser Token
- many :: Parser a -> Parser [a]
- many1 :: Parser a -> Parser [a]
- sepby :: Parser a -> Parser b -> Parser [a]
- sepby1 :: Parser a -> Parser b -> Parser [a]
- chainl :: Parser a -> Parser (a -> a -> a) -> a -> Parser a
- chainl1 :: Parser a -> Parser (a -> a -> a) -> Parser a
- chainr :: Parser a -> Parser (a -> a -> a) -> a -> Parser a
- chainr1 :: Parser a -> Parser (a -> a -> a) -> Parser a
- ops :: [(Parser a, b)] -> Parser b
- bracket :: Parser a -> Parser b -> Parser c -> Parser b
- char :: Char -> Parser Char
- digit :: Parser Char
- lower :: Parser Char
- upper :: Parser Char
- letter :: Parser Char
- alphanum :: Parser Char
- string :: String -> Parser String
- ident :: Parser String
- nat :: Parser Int
- int :: Parser Int
- spaces :: Parser ()
- comment :: Parser ()
- junk :: Parser ()
- skip :: Parser a -> Parser a
- token :: Parser a -> Parser a
- natural :: Parser Int
- integer :: Parser Int
- symbol :: String -> Parser String
- identifier :: [String] -> Parser String
Documentation
identifier :: [String] -> Parser String