pandoc-1.6.0.1: Conversion between markup formatsContentsIndex
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 a
Like >>, but returns the operation on the left. (Suggested by Tillmann Rendel on Haskell-cafe list.)
anyLine :: GenParser Char st [Char]
Parse any line of text
many1Till :: GenParser tok st a -> GenParser tok st end -> GenParser tok st [a]
Like manyTill, but reads at least one item.
notFollowedBy' :: Show b => GenParser a st b -> GenParser a st ()
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 String
Parses one of a list of strings (tried in order).
spaceChar :: CharParser st Char
Parses a space or tab.
skipSpaces :: GenParser Char st ()
Skips zero or more spaces or tabs.
blankline :: GenParser Char st Char
Skips zero or more spaces or tabs, then reads a newline.
blanklines :: GenParser Char st [Char]
Parses one or more blank lines and returns a string of newlines.
enclosed
::
=> GenParser Char st tend parser
-> GenParser Char st endcontent parser (to be used repeatedly)
-> GenParser Char st a
-> GenParser Char st [a]
Parses material enclosed between start and end parsers.
stringAnyCase :: [Char] -> CharParser st String
Parse string, case insensitive.
parseFromString :: GenParser tok st a -> [tok] -> GenParser tok st a
Parse contents of str using parser and return result.
lineClump :: GenParser Char st String
Parse raw line block up to and including blank lines.
charsInBalanced :: Char -> Char -> GenParser Char st String
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 String
Like charsInBalanced, but allow blank lines in the content.
romanNumeral
::
=> Bool
-> GenParser Char st Int
Parses a roman numeral (uppercase or lowercase), returns number.
emailAddress :: GenParser Char st (String, String)
Parses an email address; returns original and corresponding escaped mailto: URI.
uri :: GenParser Char st (String, String)
Parses a URI. Returns pair of original and URI-escaped version.
withHorizDisplacement
::
=> GenParser Char st a(result, displacement)
-> GenParser Char st (a, Int)
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 Block
Parses a character and returns Null (so that the parser can move on if it gets stuck).
failIfStrict :: GenParser Char ParserState ()
Fail if reader is in strict markdown syntax mode.
failUnlessLHS :: GenParser tok ParserState ()
Fail unless we're in literate haskell mode.
escaped
::
=> GenParser Char st Char
-> GenParser Char st Inline
Parses backslash, then applies character parser.
anyOrderedListMarker :: GenParser Char ParserState ListAttributes
Parses an ordered list marker and returns list attributes.
orderedListMarker :: ListNumberStyle -> ListNumberDelim -> GenParser Char ParserState Int
Parses an ordered list marker with a given style and delimiter, returns number.
charRef :: GenParser Char st Inline
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 Block
Parse a table using headerParser, rowParser, lineParser, and footerParser.
gridTableWith
:: GenParser Char ParserState BlockBlock parser
-> GenParser Char ParserState [Inline]Caption parser
-> BoolHeaderless table
-> GenParser Char ParserState Block
readWith
::
=> GenParser Char ParserState ainitial state
-> ParserStateinput string
-> String
-> a
Parse a string with a given parser and state.
testStringWith :: Show a => GenParser Char ParserState a -> String -> IO ()
Parse a string with parser (for testing).
data ParserState
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 :: ParserState
data HeaderType
Constructors
SingleHeader CharSingle line of characters underneath
DoubleHeader CharLines of characters above and below
show/hide Instances
data ParserContext
Constructors
ListItemStateUsed when running parser on list item contents
NullStateDefault state
show/hide Instances
data QuoteContext
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)]
type KeyTable = Map Key Target
newtype Key
Constructors
Key [Inline]
show/hide Instances
lookupKeySrc
:: KeyTableKey table
-> KeyKey
-> Maybe Target
Look up key in key table and return target object.
refsMatch :: [Inline] -> [Inline] -> Bool
Returns True if keys match (case insensitive).
Produced by Haddock version 2.6.0