sindre-0.1: A programming language for simple GUIs

Sindre.KeyVal

Synopsis

Documentation

parseKV :: PermParser Parser a -> Text -> Either String aSource

Parse a key-value string wrapper constructed via the permutation parser combinators from Text.Parsec.Perm and the parsers value and values.

value :: Text -> Parser TextSource

value k is a parser for the single-valued key k.

values :: Text -> Parser [Text]Source

values k is a parser for the list-valued key k. At least a single value is required.

(<$?>) :: (a -> b) -> (a, p a) -> PermParser p b

The expression f <$?> (x,p) creates a fresh permutation parser consisting of parser p. The the final result of the permutation parser is the function f applied to the return value of p. The parser p is optional - if it can not be applied, the default value x will be used instead.

(<||>) :: PermParser p (a -> b) -> p a -> PermParser p b

The expression perm <||> p adds parser p to the permutation parser perm. The parser p is not allowed to accept empty input - use the optional combinator (<|?>) instead. Returns a new permutation parser that includes p.

(<$$>) :: (a -> b) -> p a -> PermParser p b

The expression f <$$> p creates a fresh permutation parser consisting of parser p. The the final result of the permutation parser is the function f applied to the return value of p. The parser p is not allowed to accept empty input - use the optional combinator (<$?>) instead.

If the function f takes more than one parameter, the type variable b is instantiated to a functional type which combines nicely with the adds parser p to the (<||>) combinator. This results in stylized code where a permutation parser starts with a combining function f followed by the parsers. The function f gets its parameters in the order in which the parsers are specified, but actual input can be in any order.

(<|?>) :: PermParser p (a -> b) -> (a, p a) -> PermParser p b

The expression perm <||> (x,p) adds parser p to the permutation parser perm. The parser p is optional - if it can not be applied, the default value x will be used instead. Returns a new permutation parser that includes the optional parser p.