StringParser
Parsing string input
Data types
type alias Parser a =
String -> Maybe (Result a)
Parser
type alias Result a =
{ backlog : String, values : Array a }
Parse result
Basic parsers
string :
String -> String -> Maybe (Result String)
Parse a fixed string
fail :
String -> Maybe (Result a)
Always fail
succeed :
Array a -> String -> Maybe (Result a)
Always succeed and produce a fixed list of values
Combinators
skip :
Parser a -> String -> Maybe (Result a)
Apply a parser and discard the result
optional :
Parser a -> String -> Maybe (Result a)
Apply a parser if possible
zeroOrMore :
Parser a -> String -> Maybe (Result a)
Apply a parser as often as possible
oneOrMore :
Parser a -> String -> Maybe (Result a)
Apply a parser as often as possible, but at least once
accumulate :
Parser a -> Result a -> Result a
Accumulate parsed values from a parse backlog in a result structure
oneOf :
Array (Parser a) -> String -> Maybe (Result a)
Apply the first successful parser from a list of parsers
sequence :
Array (Parser a) -> String -> Maybe (Result a)
Apply several parsers in succession
Transformations
map :
(Array a -> Array b)
-> Parser a
-> String
-> Maybe (Result b)
Transform the parsed values
andThen :
(Result a -> Maybe ( Result b))
-> Parser a
-> String
-> Maybe (Result b)
Transform the result of a parser
Execution
run :
Parser a -> String -> Maybe a
Apply a parser and produce a final result