pandocSource codeContentsIndex
Text.Pandoc.Parsing
Portabilityportable
Stabilityalpha
MaintainerJohn MacFarlane <jgm@berkeley.edu>
Description
A utility library with parsers used in pandoc readers.
Synopsis
(>>~) :: Monad m => m a -> m b -> m a
anyLine :: GenParser Char st [Char]
many1Till :: GenParser tok st a -> GenParser tok st end -> GenParser tok st [a]
notFollowedBy' :: Show b => GenParser a st b -> GenParser a st ()
oneOfStrings :: [String] -> GenParser Char st String
spaceChar :: CharParser st Char
skipSpaces :: GenParser Char st ()
blankline :: GenParser Char st Char
blanklines :: GenParser Char st [Char]
enclosed :: GenParser Char st t -> GenParser Char st end -> GenParser Char st a -> GenParser Char st [a]
stringAnyCase :: [Char] -> CharParser st String
parseFromString :: GenParser tok st a -> [tok] -> GenParser tok st a
lineClump :: GenParser Char st String
charsInBalanced :: Char -> Char -> GenParser Char st String
charsInBalanced' :: Char -> Char -> GenParser Char st String
romanNumeral :: Bool -> GenParser Char st Int
emailAddress :: GenParser Char st (String, String)
uri :: GenParser Char st (String, String)
withHorizDisplacement :: GenParser Char st a -> GenParser Char st (a, Int)
nullBlock :: GenParser Char st Block
failIfStrict :: GenParser Char ParserState ()
failUnlessLHS :: GenParser tok ParserState ()
escaped :: GenParser Char st Char -> GenParser Char st Inline
anyOrderedListMarker :: GenParser Char ParserState ListAttributes
orderedListMarker :: ListNumberStyle -> ListNumberDelim -> GenParser Char ParserState Int
charRef :: GenParser Char st Inline
tableWith :: GenParser Char ParserState ([[Block]], [Alignment], [Int]) -> ([Int] -> GenParser Char ParserState [[Block]]) -> GenParser Char ParserState sep -> GenParser Char ParserState end -> GenParser Char ParserState [Inline] -> GenParser Char ParserState Block
gridTableWith :: GenParser Char ParserState Block -> GenParser Char ParserState [Inline] -> Bool -> GenParser Char ParserState Block
readWith :: GenParser Char ParserState a -> ParserState -> String -> a
testStringWith :: Show a => GenParser Char ParserState a -> String -> IO ()
data ParserState = ParserState {
stateParseRaw :: Bool
stateParserContext :: ParserContext
stateQuoteContext :: QuoteContext
stateSanitizeHTML :: Bool
stateKeys :: KeyTable
stateNotes :: NoteTable
stateTabStop :: Int
stateStandalone :: Bool
stateTitle :: [Inline]
stateAuthors :: [[Inline]]
stateDate :: [Inline]
stateStrict :: Bool
stateSmart :: Bool
stateLiterateHaskell :: Bool
stateColumns :: Int
stateHeaderTable :: [HeaderType]
stateIndentedCodeClasses :: [String]
stateNextExample :: Int
stateExamples :: Map String Int
stateHasChapters :: Bool
}
defaultParserState :: ParserState
data HeaderType
= SingleHeader Char
| DoubleHeader Char
data ParserContext
= ListItemState
| NullState
data QuoteContext
= InSingleQuote
| InDoubleQuote
| NoQuote
type NoteTable = [(String, String)]
type KeyTable = Map Key Target
newtype Key = Key [Inline]
lookupKeySrc :: KeyTable -> Key -> Maybe Target
refsMatch :: [Inline] -> [Inline] -> Bool
Documentation
(>>~) :: Monad m => m a -> m b -> m aSource
Like >>, but returns the operation on the left. (Suggested by Tillmann Rendel on Haskell-cafe list.)
anyLine :: GenParser Char st [Char]Source
Parse any line of text
many1Till :: GenParser tok st a -> GenParser tok st end -> GenParser tok st [a]Source
Like manyTill, but reads at least one item.
notFollowedBy' :: Show b => GenParser a st b -> GenParser a st ()Source
A more general form of notFollowedBy. This one allows any type of parser to be specified, and succeeds only if that parser fails. It does not consume any input.
oneOfStrings :: [String] -> GenParser Char st StringSource
Parses one of a list of strings (tried in order).
spaceChar :: CharParser st CharSource
Parses a space or tab.
skipSpaces :: GenParser Char st ()Source
Skips zero or more spaces or tabs.
blankline :: GenParser Char st CharSource
Skips zero or more spaces or tabs, then reads a newline.
blanklines :: GenParser Char st [Char]Source
Parses one or more blank lines and returns a string of newlines.
enclosedSource
::
=> GenParser Char st tstart parser
-> GenParser Char st endend parser
-> GenParser Char st acontent parser (to be used repeatedly)
-> GenParser Char st [a]
Parses material enclosed between start and end parsers.
stringAnyCase :: [Char] -> CharParser st StringSource
Parse string, case insensitive.
parseFromString :: GenParser tok st a -> [tok] -> GenParser tok st aSource
Parse contents of str using parser and return result.
lineClump :: GenParser Char st StringSource
Parse raw line block up to and including blank lines.
charsInBalanced :: Char -> Char -> GenParser Char st StringSource
Parse a string of characters between an open character and a close character, including text between balanced pairs of open and close, which must be different. For example, charsInBalanced '(' ')' will parse (hello (there)) and return hello (there). Stop if a blank line is encountered.
charsInBalanced' :: Char -> Char -> GenParser Char st StringSource
Like charsInBalanced, but allow blank lines in the content.
romanNumeralSource
::
=> BoolUppercase if true
-> GenParser Char st Int
Parses a roman numeral (uppercase or lowercase), returns number.
emailAddress :: GenParser Char st (String, String)Source
Parses an email address; returns original and corresponding escaped mailto: URI.
uri :: GenParser Char st (String, String)Source
Parses a URI. Returns pair of original and URI-escaped version.
withHorizDisplacementSource
::
=> GenParser Char st aParser to apply
-> GenParser Char st (a, Int)(result, displacement)
Applies a parser, returns tuple of its results and its horizontal displacement (the difference between the source column at the end and the source column at the beginning). Vertical displacement (source row) is ignored.
nullBlock :: GenParser Char st BlockSource
Parses a character and returns Null (so that the parser can move on if it gets stuck).
failIfStrict :: GenParser Char ParserState ()Source
Fail if reader is in strict markdown syntax mode.
failUnlessLHS :: GenParser tok ParserState ()Source
Fail unless we're in literate haskell mode.
escapedSource
::
=> GenParser Char st CharParser for character to escape
-> GenParser Char st Inline
Parses backslash, then applies character parser.
anyOrderedListMarker :: GenParser Char ParserState ListAttributesSource
Parses an ordered list marker and returns list attributes.
orderedListMarker :: ListNumberStyle -> ListNumberDelim -> GenParser Char ParserState IntSource
Parses an ordered list marker with a given style and delimiter, returns number.
charRef :: GenParser Char st InlineSource
Parses a character reference and returns a Str element.
tableWith :: GenParser Char ParserState ([[Block]], [Alignment], [Int]) -> ([Int] -> GenParser Char ParserState [[Block]]) -> GenParser Char ParserState sep -> GenParser Char ParserState end -> GenParser Char ParserState [Inline] -> GenParser Char ParserState BlockSource
Parse a table using headerParser, rowParser, lineParser, and footerParser.
gridTableWithSource
:: GenParser Char ParserState BlockBlock parser
-> GenParser Char ParserState [Inline]Caption parser
-> BoolHeaderless table
-> GenParser Char ParserState Block
readWithSource
::
=> GenParser Char ParserState aparser
-> ParserStateinitial state
-> Stringinput string
-> a
Parse a string with a given parser and state.
testStringWith :: Show a => GenParser Char ParserState a -> String -> IO ()Source
Parse a string with parser (for testing).
data ParserState Source
Parsing options.
Constructors
ParserState
stateParseRaw :: BoolParse raw HTML and LaTeX?
stateParserContext :: ParserContextInside list?
stateQuoteContext :: QuoteContextInside quoted environment?
stateSanitizeHTML :: BoolSanitize HTML?
stateKeys :: KeyTableList of reference keys
stateNotes :: NoteTableList of notes
stateTabStop :: IntTab stop
stateStandalone :: BoolParse bibliographic info?
stateTitle :: [Inline]Title of document
stateAuthors :: [[Inline]]Authors of document
stateDate :: [Inline]Date of document
stateStrict :: BoolUse strict markdown syntax?
stateSmart :: BoolUse smart typography?
stateLiterateHaskell :: BoolTreat input as literate haskell
stateColumns :: IntNumber of columns in terminal
stateHeaderTable :: [HeaderType]Ordered list of header types used
stateIndentedCodeClasses :: [String]Classes to use for indented code blocks
stateNextExample :: IntNumber of next example
stateExamples :: Map String IntMap from example labels to numbers
stateHasChapters :: BoolTrue if chapter encountered
show/hide Instances
defaultParserState :: ParserStateSource
data HeaderType Source
Constructors
SingleHeader CharSingle line of characters underneath
DoubleHeader CharLines of characters above and below
show/hide Instances
data ParserContext Source
Constructors
ListItemStateUsed when running parser on list item contents
NullStateDefault state
show/hide Instances
data QuoteContext Source
Constructors
InSingleQuoteUsed when parsing inside single quotes
InDoubleQuoteUsed when parsing inside double quotes
NoQuoteUsed when not parsing inside quotes
show/hide Instances
type NoteTable = [(String, String)]Source
type KeyTable = Map Key TargetSource
newtype Key Source
Constructors
Key [Inline]
show/hide Instances
lookupKeySrcSource
:: KeyTableKey table
-> KeyKey
-> Maybe Target
Look up key in key table and return target object.
refsMatch :: [Inline] -> [Inline] -> BoolSource
Returns True if keys match (case insensitive).
Produced by Haddock version 2.4.2