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