pandoc-1.8.1.1: Conversion between markup formatsSource 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 a 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 t ParserState a -> ParserState -> [t] -> a
testStringWith :: Show a => GenParser Char ParserState a -> String -> IO ()
data ParserState = ParserState {
stateParseRaw :: Bool
stateParserContext :: ParserContext
stateQuoteContext :: QuoteContext
stateKeys :: KeyTable
stateCitations :: [String]
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
stateApplyMacros :: Bool
stateMacros :: [Macro]
}
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
data Key
toKey :: [Inline] -> Key
fromKey :: Key -> [Inline]
lookupKeySrc :: KeyTable -> Key -> Maybe Target
smartPunctuation :: GenParser Char ParserState Inline -> GenParser Char ParserState Inline
macro :: GenParser Char ParserState Block
applyMacros' :: String -> GenParser Char ParserState String
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 a 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 t ParserState aparser
-> ParserStateinitial state
-> [t]input
-> 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?
stateKeys :: KeyTableList of reference keys
stateCitations :: [String]List of available citations
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
stateApplyMacros :: BoolApply LaTeX macros?
stateMacros :: [Macro]List of macros defined so far
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
data Key Source
show/hide Instances
toKey :: [Inline] -> KeySource
fromKey :: Key -> [Inline]Source
lookupKeySrcSource
:: KeyTableKey table
-> KeyKey
-> Maybe Target
Look up key in key table and return target object.
smartPunctuation :: GenParser Char ParserState Inline -> GenParser Char ParserState InlineSource
macro :: GenParser Char ParserState BlockSource
Parse a newcommand or renewcommand macro definition.
applyMacros' :: String -> GenParser Char ParserState StringSource
Apply current macros to string.
Produced by Haddock version 2.6.1