Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
- type Parser a = (Visit1, Visit2, Visit3 a)
- parse :: Parser a -> [Token] -> [a]
- parseString :: Parser a -> [Char] -> [a]
- char :: Char -> Parser Char
- token :: Token -> Parser Token
- data Token
- epsilon :: Parser ()
- satisfy :: Ord a => a -> Parser a
- many :: Ord a => Parser a -> Parser [a]
- some :: Ord a => Parser a -> Parser [a]
- optional :: Ord a => Parser a -> Parser (Maybe a)
- (<::=>) :: String -> Parser a -> Parser a
- (<:=>) :: String -> Parser a -> Parser a
- (<$>) :: (Ord b, Ord a) => (a -> b) -> Parser a -> Parser b
- (<$) :: (Ord a, Ord b) => a -> Parser b -> Parser a
- (<*>) :: (Ord a, Ord b) => Parser a -> Parser b -> Parser (a, b)
- (*>) :: (Ord a, Ord b) => Parser a -> Parser b -> Parser b
- (<*) :: (Ord a, Ord b) => Parser a -> Parser b -> Parser a
- (<|>) :: Ord a => Parser a -> Parser a -> Parser a
Documentation
parseString :: Parser a -> [Char] -> [a] Source
Parse a given string of characters
many :: Ord a => Parser a -> Parser [a] Source
Apply the given parser many times, 0 or more times (Kleene closure)
some :: Ord a => Parser a -> Parser [a] Source
Apply the given parser some times, 1 or more times (positive closure)
(<::=>) :: String -> Parser a -> Parser a infixl 3 Source
use ::= to enforce using parse context (to handle left-recursion)
(<:=>) :: String -> Parser a -> Parser a infixl 3 Source
useful for non-recursive definitions (only internally)
(<$>) :: (Ord b, Ord a) => (a -> b) -> Parser a -> Parser b infixl 5 Source
Application of a semantic action.
(<$) :: (Ord a, Ord b) => a -> Parser b -> Parser a infixl 5 Source
Ignore all results and just return the given value
(<*>) :: (Ord a, Ord b) => Parser a -> Parser b -> Parser (a, b) infixl 6 Source
Sequence two parsers, the results of the two parsers are tupled.
(*>) :: (Ord a, Ord b) => Parser a -> Parser b -> Parser b infixl 6 Source
Sequencing, ignoring the result to the left