Added stateWarnings to ParserState, added warning function.
This will be used to provide warnings for things like duplicate footnote refs and link refs.
This commit is contained in:
parent
f232034ab0
commit
5419b504ce
1 changed files with 8 additions and 0 deletions
|
@ -62,6 +62,7 @@ module Text.Pandoc.Parsing ( (>>~),
|
|||
getOption,
|
||||
guardEnabled,
|
||||
guardDisabled,
|
||||
warning,
|
||||
ParserState (..),
|
||||
defaultParserState,
|
||||
HeaderType (..),
|
||||
|
@ -725,6 +726,7 @@ data ParserState = ParserState
|
|||
stateExamples :: M.Map String Int, -- ^ Map from example labels to numbers
|
||||
stateHasChapters :: Bool, -- ^ True if \chapter encountered
|
||||
stateMacros :: [Macro], -- ^ List of macros defined so far
|
||||
stateWarnings :: [(SourcePos, String)], -- ^ List of warnings
|
||||
stateRstDefaultRole :: String -- ^ Current rST default interpreted text role
|
||||
}
|
||||
|
||||
|
@ -751,11 +753,17 @@ defaultParserState =
|
|||
stateExamples = M.empty,
|
||||
stateHasChapters = False,
|
||||
stateMacros = [],
|
||||
stateWarnings = [],
|
||||
stateRstDefaultRole = "title-reference"}
|
||||
|
||||
getOption :: (ReaderOptions -> a) -> Parser s ParserState a
|
||||
getOption f = (f . stateOptions) `fmap` getState
|
||||
|
||||
warning :: String -> Parser s ParserState ()
|
||||
warning msg = do
|
||||
pos <- getPosition
|
||||
modifyState $ \st -> st{ stateWarnings = stateWarnings st ++ [(pos,msg)] }
|
||||
|
||||
-- | Succeed only if the extension is enabled.
|
||||
guardEnabled :: Extension -> Parser s ParserState ()
|
||||
guardEnabled ext = getOption readerExtensions >>= guard . Set.member ext
|
||||
|
|
Loading…
Add table
Reference in a new issue