@@ -55,7 +55,7 @@ import Text.Pandoc.ImageSize (numUnit, showFl)
55import Text.Pandoc.Error
55import Text.Pandoc.Error
56import Control.Monad.Except (throwError, catchError)
56import Control.Monad.Except (throwError, catchError)
57import Text.Pandoc.Class (PandocMonad, PandocPure, lookupEnv, readFileLazy,
57import Text.Pandoc.Class (PandocMonad, PandocPure, lookupEnv, readFileLazy,
58− warning)
58+ warning, warningWithPos)
60-- | Parse LaTeX from string and return 'Pandoc' document.
60-- | Parse LaTeX from string and return 'Pandoc' document.
61readLaTeX :: PandocMonad m
61readLaTeX :: PandocMonad m
@@ -236,9 +236,10 @@ inline = (mempty <$ comment)
236 <|> mathInline (char '$' *> mathChars <* char '$')
236 <|> mathInline (char '$' *> mathChars <* char '$')
237 <|> (guardEnabled Ext_literate_haskell *> char '|' *> doLHSverb)
237 <|> (guardEnabled Ext_literate_haskell *> char '|' *> doLHSverb)
238 <|> (str . (:[]) <$> tildeEscape)
238 <|> (str . (:[]) <$> tildeEscape)
239− <|> (str . (:[]) <$> oneOf "[]")
239+ <|> (do res <- oneOf "#&~^'`\"[]"
240− <|> (str . (:[]) <$> oneOf "#&~^'`\"[]") -- TODO print warning?
240+ pos <- getPosition
241− -- <|> (str <$> count 1 (satisfy (\c -> c /= '\\' && c /='\n' && c /='}' && c /='{'))) -- eat random leftover characters
241+ warningWithPos (Just pos) ("Parsing unescaped '" ++ [res] ++ "'")
243inlines :: PandocMonad m => LP m Inlines
244inlines :: PandocMonad m => LP m Inlines
244inlines = mconcat <$> many (notFollowedBy (char '}') *> inline)
245inlines = mconcat <$> many (notFollowedBy (char '}') *> inline)