miso
Copyright(C) 2016-2025 David M. Johnson (@dmjio)
LicenseBSD3-style (see the file LICENSE)
MaintainerDavid M. Johnson <code@dmj.io>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Miso.Util.Parser

Description

 
Synopsis

Types

newtype Parser token a Source #

Constructors

Parser 

Fields

Instances

Instances details
Alternative (Parser token) Source # 
Instance details

Defined in Miso.Util.Parser

Methods

empty :: Parser token a #

(<|>) :: Parser token a -> Parser token a -> Parser token a #

some :: Parser token a -> Parser token [a] #

many :: Parser token a -> Parser token [a] #

Applicative (Parser token) Source # 
Instance details

Defined in Miso.Util.Parser

Methods

pure :: a -> Parser token a #

(<*>) :: Parser token (a -> b) -> Parser token a -> Parser token b #

liftA2 :: (a -> b -> c) -> Parser token a -> Parser token b -> Parser token c #

(*>) :: Parser token a -> Parser token b -> Parser token b #

(<*) :: Parser token a -> Parser token b -> Parser token a #

Functor (Parser token) Source # 
Instance details

Defined in Miso.Util.Parser

Methods

fmap :: (a -> b) -> Parser token a -> Parser token b #

(<$) :: a -> Parser token b -> Parser token a #

Monad (Parser token) Source # 
Instance details

Defined in Miso.Util.Parser

Methods

(>>=) :: Parser token a -> (a -> Parser token b) -> Parser token b #

(>>) :: Parser token a -> Parser token b -> Parser token b #

return :: a -> Parser token a #

data ParseError a token Source #

Constructors

UnexpectedParse [token] 
LexicalError LexerError 
Ambiguous [([token], a)] 
NoParses token 
EmptyStream 

Instances

Instances details
(Show a, Show token) => Show (ParseError a token) Source # 
Instance details

Defined in Miso.Util.Parser

Methods

showsPrec :: Int -> ParseError a token -> ShowS #

show :: ParseError a token -> String #

showList :: [ParseError a token] -> ShowS #

(Eq a, Eq token) => Eq (ParseError a token) Source # 
Instance details

Defined in Miso.Util.Parser

Methods

(==) :: ParseError a token -> ParseError a token -> Bool #

(/=) :: ParseError a token -> ParseError a token -> Bool #

Combinators

parse :: Parser token a -> [token] -> Either (ParseError a token) a Source #

satisfy :: (token -> Bool) -> Parser token token Source #

token_ :: Eq token => token -> Parser token token Source #