| Portability | portable |
|---|---|
| Stability | alpha |
| Maintainer | John MacFarlane <jgm@berkeley.edu> |
| Safe Haskell | None |
Text.Pandoc.Parsing
Description
A utility library with parsers used in pandoc readers.
- (>>~) :: Monad m => m a -> m b -> m a
- anyLine :: Parser [Char] st [Char]
- many1Till :: Parser [tok] st a -> Parser [tok] st end -> Parser [tok] st [a]
- notFollowedBy' :: Show b => Parser [a] st b -> Parser [a] st ()
- oneOfStrings :: [String] -> Parser [Char] st String
- oneOfStringsCI :: [String] -> Parser [Char] st String
- spaceChar :: Parser [Char] st Char
- nonspaceChar :: Parser [Char] st Char
- skipSpaces :: Parser [Char] st ()
- blankline :: Parser [Char] st Char
- blanklines :: Parser [Char] st [Char]
- enclosed :: Parser [Char] st t -> Parser [Char] st end -> Parser [Char] st a -> Parser [Char] st [a]
- stringAnyCase :: [Char] -> Parser [Char] st String
- parseFromString :: Parser [tok] st a -> [tok] -> Parser [tok] st a
- lineClump :: Parser [Char] st String
- charsInBalanced :: Char -> Char -> Parser [Char] st Char -> Parser [Char] st String
- romanNumeral :: Bool -> Parser [Char] st Int
- emailAddress :: Parser [Char] st (String, String)
- uri :: Parser [Char] st (String, String)
- withHorizDisplacement :: Parser [Char] st a -> Parser [Char] st (a, Int)
- withRaw :: Parser [Char] st a -> Parser [Char] st (a, [Char])
- escaped :: Parser [Char] st Char -> Parser [Char] st Char
- characterReference :: Parser [Char] st Char
- updateLastStrPos :: Parser [Char] ParserState ()
- anyOrderedListMarker :: Parser [Char] ParserState ListAttributes
- orderedListMarker :: ListNumberStyle -> ListNumberDelim -> Parser [Char] ParserState Int
- charRef :: Parser [Char] st Inline
- lineBlockLines :: Parser [Char] st [String]
- tableWith :: Parser [Char] ParserState ([[Block]], [Alignment], [Int]) -> ([Int] -> Parser [Char] ParserState [[Block]]) -> Parser [Char] ParserState sep -> Parser [Char] ParserState end -> Parser [Char] ParserState Block
- widthsFromIndices :: Int -> [Int] -> [Double]
- gridTableWith :: Parser [Char] ParserState [Block] -> Bool -> Parser [Char] ParserState Block
- readWith :: Parser [t] ParserState a -> ParserState -> [t] -> a
- testStringWith :: Show a => Parser [Char] ParserState a -> String -> IO ()
- getOption :: (ReaderOptions -> a) -> Parser s ParserState a
- guardEnabled :: Extension -> Parser s ParserState ()
- guardDisabled :: Extension -> Parser s ParserState ()
- data ParserState = ParserState {
- stateOptions :: ReaderOptions
- stateParserContext :: ParserContext
- stateQuoteContext :: QuoteContext
- stateAllowLinks :: Bool
- stateMaxNestingLevel :: Int
- stateLastStrPos :: Maybe SourcePos
- stateKeys :: KeyTable
- stateSubstitutions :: SubstTable
- stateNotes :: NoteTable
- stateNotes' :: NoteTable'
- stateTitle :: [Inline]
- stateAuthors :: [[Inline]]
- stateDate :: [Inline]
- stateHeaderTable :: [HeaderType]
- stateHeaders :: [[Inline]]
- stateIdentifiers :: [String]
- stateNextExample :: Int
- stateExamples :: Map String Int
- stateHasChapters :: Bool
- stateMacros :: [Macro]
- stateRstDefaultRole :: String
- stateWarnings :: [String]
- defaultParserState :: ParserState
- data HeaderType
- data ParserContext
- data QuoteContext
- type NoteTable = [(String, String)]
- type NoteTable' = [(String, F Blocks)]
- type KeyTable = Map Key Target
- type SubstTable = Map Key Inlines
- newtype Key = Key String
- toKey :: String -> Key
- smartPunctuation :: Parser [Char] ParserState Inline -> Parser [Char] ParserState Inline
- withQuoteContext :: QuoteContext -> Parser [tok] ParserState a -> Parser [tok] ParserState a
- singleQuoteStart :: Parser [Char] ParserState ()
- singleQuoteEnd :: Parser [Char] st ()
- doubleQuoteStart :: Parser [Char] ParserState ()
- doubleQuoteEnd :: Parser [Char] st ()
- ellipses :: Parser [Char] st Inline
- apostrophe :: Parser [Char] ParserState Inline
- dash :: Parser [Char] ParserState Inline
- nested :: Parser s ParserState a -> Parser s ParserState a
- macro :: Parser [Char] ParserState Blocks
- applyMacros' :: String -> Parser [Char] ParserState String
- type Parser t s = Parsec t s
- newtype F a = F {
- unF :: Reader ParserState a
- runF :: F a -> ParserState -> a
- askF :: F ParserState
- asksF :: (ParserState -> a) -> F a
- runParser :: Stream s Identity t => Parsec s u a -> u -> SourceName -> s -> Either ParseError a
- parse :: Stream s Identity t => Parsec s () a -> SourceName -> s -> Either ParseError a
- anyToken :: (Stream s m t, Show t) => ParsecT s u m t
- getInput :: Monad m => ParsecT s u m s
- setInput :: Monad m => s -> ParsecT s u m ()
- unexpected :: Stream s m t => String -> ParsecT s u m a
- char :: Stream s m Char => Char -> ParsecT s u m Char
- letter :: Stream s m Char => ParsecT s u m Char
- digit :: Stream s m Char => ParsecT s u m Char
- alphaNum :: Stream s m Char => ParsecT s u m Char
- skipMany :: ParsecT s u m a -> ParsecT s u m ()
- skipMany1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
- spaces :: Stream s m Char => ParsecT s u m ()
- space :: Stream s m Char => ParsecT s u m Char
- anyChar :: Stream s m Char => ParsecT s u m Char
- satisfy :: Stream s m Char => (Char -> Bool) -> ParsecT s u m Char
- newline :: Stream s m Char => ParsecT s u m Char
- string :: Stream s m Char => String -> ParsecT s u m String
- count :: Stream s m t => Int -> ParsecT s u m a -> ParsecT s u m [a]
- eof :: (Stream s m t, Show t) => ParsecT s u m ()
- noneOf :: Stream s m Char => [Char] -> ParsecT s u m Char
- oneOf :: Stream s m Char => [Char] -> ParsecT s u m Char
- lookAhead :: Stream s m t => ParsecT s u m a -> ParsecT s u m a
- notFollowedBy :: (Stream s m t, Show a) => ParsecT s u m a -> ParsecT s u m ()
- many :: ParsecT s u m a -> ParsecT s u m [a]
- many1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m [a]
- manyTill :: Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
- (<|>) :: ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
- (<?>) :: ParsecT s u m a -> String -> ParsecT s u m a
- choice :: Stream s m t => [ParsecT s u m a] -> ParsecT s u m a
- try :: ParsecT s u m a -> ParsecT s u m a
- sepBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
- sepBy1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
- sepEndBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
- sepEndBy1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
- endBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
- endBy1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
- option :: Stream s m t => a -> ParsecT s u m a -> ParsecT s u m a
- optional :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
- optionMaybe :: Stream s m t => ParsecT s u m a -> ParsecT s u m (Maybe a)
- getState :: Monad m => ParsecT s u m u
- setState :: Monad m => u -> ParsecT s u m ()
- updateState :: Monad m => (u -> u) -> ParsecT s u m ()
- data SourcePos
- getPosition :: Monad m => ParsecT s u m SourcePos
- setPosition :: Monad m => SourcePos -> ParsecT s u m ()
- sourceColumn :: SourcePos -> Column
- sourceLine :: SourcePos -> Line
- newPos :: SourceName -> Line -> Column -> SourcePos
- token :: Stream s Identity t => (t -> String) -> (t -> SourcePos) -> (t -> Maybe a) -> Parsec s u a
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.)
many1Till :: Parser [tok] st a -> Parser [tok] st end -> Parser [tok] st [a]Source
Like manyTill, but reads at least one item.
notFollowedBy' :: Show b => Parser [a] st b -> Parser [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] -> Parser [Char] st StringSource
Parses one of a list of strings. If the list contains two strings one of which is a prefix of the other, the longer string will be matched if possible.
oneOfStringsCI :: [String] -> Parser [Char] st StringSource
Parses one of a list of strings (tried in order), case insensitive.
nonspaceChar :: Parser [Char] st CharSource
Parses a nonspace, nonnewline character.
skipSpaces :: Parser [Char] st ()Source
Skips zero or more spaces or tabs.
blanklines :: Parser [Char] st [Char]Source
Parses one or more blank lines and returns a string of newlines.
Arguments
| :: Parser [Char] st t | start parser |
| -> Parser [Char] st end | end parser |
| -> Parser [Char] st a | content parser (to be used repeatedly) |
| -> Parser [Char] st [a] |
Parses material enclosed between start and end parsers.
parseFromString :: Parser [tok] st a -> [tok] -> Parser [tok] st aSource
Parse contents of str using parser and return result.
charsInBalanced :: Char -> Char -> Parser [Char] st Char -> Parser [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 '(' ')' anyChar will parse (hello (there))
and return hello (there).
Parses a roman numeral (uppercase or lowercase), returns number.
emailAddress :: Parser [Char] st (String, String)Source
Parses an email address; returns original and corresponding escaped mailto: URI.
uri :: Parser [Char] st (String, String)Source
Parses a URI. Returns pair of original and URI-escaped version.
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.
withRaw :: Parser [Char] st a -> Parser [Char] st (a, [Char])Source
Applies a parser and returns the raw string that was parsed, along with the value produced by the parser.
Parses backslash, then applies character parser.
characterReference :: Parser [Char] st CharSource
Parse character entity.
updateLastStrPos :: Parser [Char] ParserState ()Source
anyOrderedListMarker :: Parser [Char] ParserState ListAttributesSource
Parses an ordered list marker and returns list attributes.
orderedListMarker :: ListNumberStyle -> ListNumberDelim -> Parser [Char] ParserState IntSource
Parses an ordered list marker with a given style and delimiter, returns number.
lineBlockLines :: Parser [Char] st [String]Source
Parses an RST-style line block and returns a list of strings.
tableWith :: Parser [Char] ParserState ([[Block]], [Alignment], [Int]) -> ([Int] -> Parser [Char] ParserState [[Block]]) -> Parser [Char] ParserState sep -> Parser [Char] ParserState end -> Parser [Char] ParserState BlockSource
Parse a table using headerParser, rowParser,
lineParser, and footerParser.
widthsFromIndices :: Int -> [Int] -> [Double]Source
Arguments
| :: Parser [Char] ParserState [Block] | Block list parser |
| -> Bool | Headerless table |
| -> Parser [Char] ParserState Block |
Arguments
| :: Parser [t] ParserState a | parser |
| -> ParserState | initial state |
| -> [t] | input |
| -> a |
Parse a string with a given parser and state.
testStringWith :: Show a => Parser [Char] ParserState a -> String -> IO ()Source
Parse a string with parser (for testing).
getOption :: (ReaderOptions -> a) -> Parser s ParserState aSource
guardEnabled :: Extension -> Parser s ParserState ()Source
Succeed only if the extension is enabled.
guardDisabled :: Extension -> Parser s ParserState ()Source
Succeed only if the extension is disabled.
data ParserState Source
Parsing options.
Constructors
| ParserState | |
Fields
| |
Instances
data HeaderType Source
Constructors
| SingleHeader Char | Single line of characters underneath |
| DoubleHeader Char | Lines of characters above and below |
Instances
data ParserContext Source
Constructors
| ListItemState | Used when running parser on list item contents |
| NullState | Default state |
Instances
data QuoteContext Source
Constructors
| InSingleQuote | Used when parsing inside single quotes |
| InDoubleQuote | Used when parsing inside double quotes |
| NoQuote | Used when not parsing inside quotes |
Instances
type NoteTable' = [(String, F Blocks)]Source
type SubstTable = Map Key InlinesSource
withQuoteContext :: QuoteContext -> Parser [tok] ParserState a -> Parser [tok] ParserState aSource
singleQuoteStart :: Parser [Char] ParserState ()Source
singleQuoteEnd :: Parser [Char] st ()Source
doubleQuoteStart :: Parser [Char] ParserState ()Source
doubleQuoteEnd :: Parser [Char] st ()Source
nested :: Parser s ParserState a -> Parser s ParserState aSource
applyMacros' :: String -> Parser [Char] ParserState StringSource
Apply current macros to string.
Constructors
| F | |
Fields
| |
runF :: F a -> ParserState -> aSource
asksF :: (ParserState -> a) -> F aSource
Re-exports from Text.Pandoc.Parsec
unexpected :: Stream s m t => String -> ParsecT s u m a
skipMany :: ParsecT s u m a -> ParsecT s u m ()
skipMany1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
lookAhead :: Stream s m t => ParsecT s u m a -> ParsecT s u m a
notFollowedBy :: (Stream s m t, Show a) => ParsecT s u m a -> ParsecT s u m ()
many :: ParsecT s u m a -> ParsecT s u m [a]
many1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m [a]
manyTill :: Stream s m t => ParsecT s u m a -> ParsecT s u m end -> ParsecT s u m [a]
(<|>) :: ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
choice :: Stream s m t => [ParsecT s u m a] -> ParsecT s u m a
try :: ParsecT s u m a -> ParsecT s u m a
sepBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
sepBy1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
sepEndBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
sepEndBy1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
endBy :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
endBy1 :: Stream s m t => ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
option :: Stream s m t => a -> ParsecT s u m a -> ParsecT s u m a
optional :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
optionMaybe :: Stream s m t => ParsecT s u m a -> ParsecT s u m (Maybe a)
updateState :: Monad m => (u -> u) -> ParsecT s u m ()
getPosition :: Monad m => ParsecT s u m SourcePos
setPosition :: Monad m => SourcePos -> ParsecT s u m ()
sourceColumn :: SourcePos -> Column
sourceLine :: SourcePos -> Line