@@ -62,6 +62,7 @@ module Text.Pandoc.Parsing ( (>>~),
62 getOption,
62 getOption,
63 guardEnabled,
63 guardEnabled,
64 guardDisabled,
64 guardDisabled,
65 ParserState (..),
66 ParserState (..),
66 defaultParserState,
67 defaultParserState,
67 HeaderType (..),
68 HeaderType (..),
@@ -725,6 +726,7 @@ data ParserState = ParserState
725 stateExamples :: M.Map String Int, -- ^ Map from example labels to numbers
726 stateExamples :: M.Map String Int, -- ^ Map from example labels to numbers
726 stateHasChapters :: Bool, -- ^ True if \chapter encountered
727 stateHasChapters :: Bool, -- ^ True if \chapter encountered
727 stateMacros :: [Macro], -- ^ List of macros defined so far
728 stateMacros :: [Macro], -- ^ List of macros defined so far
729+ stateWarnings :: [(SourcePos, String)], -- ^ List of warnings
728 stateRstDefaultRole :: String -- ^ Current rST default interpreted text role
730 stateRstDefaultRole :: String -- ^ Current rST default interpreted text role
@@ -751,11 +753,17 @@ defaultParserState =
751 stateExamples = M.empty,
753 stateExamples = M.empty,
752 stateHasChapters = False,
754 stateHasChapters = False,
753 stateMacros = [],
755 stateMacros = [],
754 stateRstDefaultRole = "title-reference"}
757 stateRstDefaultRole = "title-reference"}
756getOption :: (ReaderOptions -> a) -> Parser s ParserState a
759getOption :: (ReaderOptions -> a) -> Parser s ParserState a
757getOption f = (f . stateOptions) `fmap` getState
760getOption f = (f . stateOptions) `fmap` getState
762+warning :: String -> Parser s ParserState ()
765+ modifyState $ \st -> st{ stateWarnings = stateWarnings st ++ [(pos,msg)] }
759-- | Succeed only if the extension is enabled.
767-- | Succeed only if the extension is enabled.
760guardEnabled :: Extension -> Parser s ParserState ()
768guardEnabled :: Extension -> Parser s ParserState ()
761guardEnabled ext = getOption readerExtensions >>= guard . Set.member ext
769guardEnabled ext = getOption readerExtensions >>= guard . Set.member ext