úÎ5=2«'      !"#$%&-Combinators that work with any sequence type.G(c) Daan Leijen 1999-2001, Bryan O'Sullivan 2007-2014, PaweB Nowak 2014MIT PaweB Nowak <pawel834@gmail.com> experimentalNoneOne or zero occurences of f.Like , but specialized for ().!Parser one or zero occurences of f, but prints nothing.manyTill p endn applies action p zero or more times until action end succeeds, and returns the list of values returned by p.Zero or more occurences of v separated by s.One or more occurences of v separated by s.yTries to apply the actions in the list in order, until one of them succeeds. Returns the value of the succeeding action.Combine two alternatives.Abstract syntax description.(c) PaweB NowakMIT PaweB Nowak <pawel834@gmail.com> experimentalNone1368 :An abstract syntax description based on semi-isomorphisms.MThis class can be implemented by both parsers and printers (and maybe more?).ŽThe usual use is to write a polymorphic syntax description and instantiate it both as a parser and a printer. An example is available in the 'syntax-example' package.#Methods of this class try to mimic Data.Attoparsec.Text interface. Any character. A specific character. #Any character except the given one. %Any character satisfying a predicate. \Transforms a character using a SemiIso and filters out values not satisfying the predicate.A specific string.A string of length n.2Maximal string which elements satisfy a predicate.<Maximal non-empty string which elements satisfy a predicate.9Maximal string which elements do not satisfy a predicate.CMaximal non-empty string which elements do not satisfy a predicate.=An isomorphism between a sequence and a list of its elements.       Char specific combinators.(c) PaweB NowakMIT PaweB Nowak <pawel834@gmail.com> experimentalNone&6=K6An useful synonym for SyntaxChars with Text sequences.*Syntax constrainted to sequences of chars.›Note: methods of this class do not have default implementations (for now), because their code is quite ugly and already written in most parser libraries.An unsigned decimal number.An unsigned hexadecimal number.A signed real number.A scientific number."A number with an optional leading ' or ( sign character.6Accepts zero or more spaces. Generates a single space.1Accepts zero or more spaces. Generates no output.5Accepts one or more spaces. Generates a single space..Accepts a single newline. Generates a newline. A decimal digit.!An octal digit." A hex digit. !" !" !"  !" Indentation.(c) PaweB NowakMIT PaweB Nowak <pawel834@gmail.com> experimentalNone246#)Adds indentation to a syntax description.$runIndent m tab runs the # transformer using tab% once for each level of indentation.%Inserts a new line and correct indentation, but does not require any formatting when parsing (it just skips all white space).&7Increases the indentation level of its argument by one. #)*$%&+,-./01#$%&#$%& #)*$%&+,-./012      !"#$%&'()*+,-.,-/(012345678syntax-0.3.0.0Data.Syntax.Combinator Data.SyntaxData.Syntax.CharData.Syntax.Indentoptionaloptopt_manyTillsepBysepBy1choiceeitherOfSyntaxanyCharcharnotCharsatisfy satisfyWithstringtake takeWhile takeWhile1takeTill takeTill1packed SyntaxText SyntaxChardecimal hexadecimal realFloat scientificsignedspacesspaces_spaces1 endOfLinedigitDecdigitOctdigitHexIndent runIndent breakLineindentedbaseGHC.Num+-unIndent$fSyntaxCharIndentseq$fSyntaxIndentseq$fSemiIsoFixIndent$fSemiIsoMonadIndent$fSemiIsoAlternativeIndent$fSemiIsoApplyIndent$fSemiIsoFunctorIndent