@@ -191,12 +191,6 @@ inlineCommand = do
191word :: PandocMonad m => LP m Inlines
191word :: PandocMonad m => LP m Inlines
192word = str . untoken <$> satisfyTok isWordTok
192word = str . untoken <$> satisfyTok isWordTok
194−regularSymbol :: PandocMonad m => LP m Inlines
195−regularSymbol = str . untoken <$> satisfyTok isRegularSymbol
196− where isRegularSymbol (Tok _ Symbol t) = not $ T.any isSpecial t
197− isRegularSymbol _ = False
198− isSpecial c = c `Set.member` specialChars
200inlineGroup :: PandocMonad m => LP m Inlines
194inlineGroup :: PandocMonad m => LP m Inlines
201inlineGroup = do
195inlineGroup = do
202 ils <- grouped inline
196 ils <- grouped inline
@@ -961,31 +955,48 @@ lookupListDefault d = (fromMaybe d .) . lookupList
961 where lookupList l m = msum $ map (`M.lookup` m) l
955 where lookupList l m = msum $ map (`M.lookup` m) l
963inline :: PandocMonad m => LP m Inlines
957inline :: PandocMonad m => LP m Inlines
959+ Tok pos toktype t <- lookAhead anyTok
960+ let symbolAsString = str . untoken <$> anySymbol
961+ let unescapedSymbolAsString =
962+ do s <- untoken <$> anySymbol
963+ report $ ParsingUnescaped s pos
964−inline = (mempty <$ comment)
966+ Comment -> mempty <$ comment
965− <|> (space <$ whitespace)
967+ Spaces -> space <$ whitespace
966− <|> (softbreak <$ endline)
968+ Newline -> softbreak <$ endline
967− <|> word
969+ Word -> word
968− <|> macroDef (rawInline "latex")
970+ Esc1 -> str . T.singleton <$> primEscape
969− <|> inlineCommand'
971+ Esc2 -> str . T.singleton <$> primEscape
970− <|> inlineEnvironment
972+ Symbol ->
971− <|> inlineGroup
973+ case t of
972− <|> (symbol '-' *>
974+ "-" -> symbol '-' *>
973− option (str "-") (symbol '-' *>
975+ option (str "-") (symbol '-' *>
974− option (str "–") (str "—" <$ symbol '-')))
976+ option (str "–") (str "—" <$ symbol '-'))
975− <|> doubleQuote
977+ "'" -> symbol '\'' *>
977− <|> (str "”" <$ try (symbol '\'' >> symbol '\''))
978+ option (str "’") (str "”" <$ symbol '\'')
978− <|> (str "’" <$ symbol '\'')
979− <|> (str "\160" <$ symbol '~')
979+ "~" -> str "\160" <$ symbol '~'
980+ "`" -> doubleQuote <|> singleQuote <|> symbolAsString
981+ "\"" -> doubleQuote <|> singleQuote <|> symbolAsString
982+ "“" -> doubleQuote <|> symbolAsString
983+ "‘" -> singleQuote <|> symbolAsString
980− <|> dollarsMath
984+ "$" -> dollarsMath <|> unescapedSymbolAsString
981− <|> (guardEnabled Ext_literate_haskell *> symbol '|' *> doLHSverb)
985+ "|" -> (guardEnabled Ext_literate_haskell *>
982− <|> (str . T.singleton <$> primEscape)
986+ symbol '|' *> doLHSverb) <|> symbolAsString
983− <|> regularSymbol
987+ "{" -> inlineGroup
984− <|> (do res <- symbolIn "#^'`\"[]&"
988+ "#" -> unescapedSymbolAsString
985− pos <- getPosition
989+ "&" -> unescapedSymbolAsString
986− let s = untoken res
990+ "_" -> unescapedSymbolAsString
987− report $ ParsingUnescaped s pos
991+ "^" -> unescapedSymbolAsString
988− return $ str s)
992+ "\\" -> mzero
995+ CtrlSeq _ -> macroDef (rawInline "latex")
997+ <|> inlineEnvironment
990inlines :: PandocMonad m => LP m Inlines
1001inlines :: PandocMonad m => LP m Inlines
991inlines = mconcat <$> many inline
1002inlines = mconcat <$> many inline