Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Text.BBCode.Parser
Synopsis
- type Parser a = ParsecT Void Text (Reader [El]) a
- runParserEnv :: ParsecT e s (Reader r) a -> r -> s -> Either (ParseErrorBundle s e) a
- runParserMaybeEnv :: ParsecT e s (Reader r) a -> r -> s -> Maybe a
- parseTestEnv :: Show a => Parser a -> Text -> IO ()
- parsers :: Map El [Parser BBCode]
- bbcode :: Parser BBCode
- bbcode1 :: Parser BBCode
- hr :: Parser BBCode
- br :: Parser BBCode
- clear :: Parser BBCode
- bold :: Parser BBCode
- italic :: Parser BBCode
- underline :: Parser BBCode
- strikethrough :: Parser BBCode
- indent :: Parser BBCode
- nfo :: Parser BBCode
- oneline :: Parser BBCode
- everythingInElement :: El -> Parser BBCode
- code :: Parser BBCode
- preformatted :: Parser BBCode
- box :: Parser BBCode
- boxAlign :: Parser BBCode
- image :: Parser BBCode
- imageAlign :: Parser BBCode
- quote :: Parser BBCode
- quoteNamed :: Parser BBCode
- spoiler :: Parser BBCode
- spoilerNamed :: Parser BBCode
- listElement :: Parser BBCode
- list :: Parser BBCode
- listFlavor :: Parser BBCode
- colorName :: Parser BBCode
- colorHex :: Parser BBCode
- url :: Parser BBCode
- size :: Parser BBCode
- align :: Parser BBCode
- font :: Parser BBCode
- plaintext :: Parser BBCode
Documentation
type Parser a = ParsecT Void Text (Reader [El]) a Source #
Parser with reader transformer inside.
Reader environment contains current context for element.
It is used for oneline
because "[oneline][oneline][/oneline][/oneline]"
should
produce error. Same with nfo
Also used by plaintext
to end parsing on closing element of current environment.
>>>
parseTestEnv bbcode "[i]Bread[/b][/i]"
ElSimple Italic (ElText "Bread[/b]")
Notice it parsed "[/b]"
. plaintext
finishes parsing only on closing element that matches last parsed opening
runParserEnv :: ParsecT e s (Reader r) a -> r -> s -> Either (ParseErrorBundle s e) a Source #
runParserMaybeEnv :: ParsecT e s (Reader r) a -> r -> s -> Maybe a Source #
parseMaybe
specialized for Parser
bbcode :: Parser BBCode Source #
Parse zero or more BBCode elements
Doesn't necessarily return value wrapped in ElDocument
, it returns
(
if it parses no elements, or just element if parses
just one element. Otherwise it is mempty
:: BBCode)ElDocument