cpphsSource codeContentsIndex
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.
Synopsis
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
newtype Parser aSource
The parser monad
Constructors
P ([Token] -> [(a, [Token])])
show/hide Instances
Functor Parser
Monad Parser
MonadPlus Parser
item :: Parser TokenSource
first :: Parser a -> Parser aSource
papply :: Parser a -> [Token] -> [(a, [Token])]Source
(+++) :: Parser a -> Parser a -> Parser aSource
sat :: (Token -> Bool) -> Parser TokenSource
many :: Parser a -> Parser [a]Source
many1 :: Parser a -> Parser [a]Source
sepby :: Parser a -> Parser b -> Parser [a]Source
sepby1 :: Parser a -> Parser b -> Parser [a]Source
chainl :: Parser a -> Parser (a -> a -> a) -> a -> Parser aSource
chainl1 :: Parser a -> Parser (a -> a -> a) -> Parser aSource
chainr :: Parser a -> Parser (a -> a -> a) -> a -> Parser aSource
chainr1 :: Parser a -> Parser (a -> a -> a) -> Parser aSource
ops :: [(Parser a, b)] -> Parser bSource
bracket :: Parser a -> Parser b -> Parser c -> Parser bSource
char :: Char -> Parser CharSource
digit :: Parser CharSource
lower :: Parser CharSource
upper :: Parser CharSource
letter :: Parser CharSource
alphanum :: Parser CharSource
string :: String -> Parser StringSource
ident :: Parser StringSource
nat :: Parser IntSource
int :: Parser IntSource
spaces :: Parser ()Source
comment :: Parser ()Source
junk :: Parser ()Source
skip :: Parser a -> Parser aSource
token :: Parser a -> Parser aSource
natural :: Parser IntSource
integer :: Parser IntSource
symbol :: String -> Parser StringSource
identifier :: [String] -> Parser StringSource
Produced by Haddock version 0.8