module Text.Highlighting.Kate.Syntax.Markdown
(highlight, parseExpression, syntaxName, syntaxExtensions)
where
import Text.Highlighting.Kate.Types
import Text.Highlighting.Kate.Common
import Text.ParserCombinators.Parsec hiding (State)
import Control.Monad.State
import Data.Char (isSpace)
syntaxName :: String
syntaxName :: String
syntaxName = "Markdown"
syntaxExtensions :: String
syntaxExtensions :: String
syntaxExtensions = "*.md;*.mmd;*.markdown"
highlight :: String -> [SourceLine]
highlight :: String -> [SourceLine]
highlight input :: String
input = State SyntaxState [SourceLine] -> SyntaxState -> [SourceLine]
forall s a. State s a -> s -> a
evalState ((String -> StateT SyntaxState Identity SourceLine)
-> [String] -> State SyntaxState [SourceLine]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM String -> StateT SyntaxState Identity SourceLine
parseSourceLine ([String] -> State SyntaxState [SourceLine])
-> [String] -> State SyntaxState [SourceLine]
forall a b. (a -> b) -> a -> b
$ String -> [String]
lines String
input) SyntaxState
startingState
parseSourceLine :: String -> State SyntaxState SourceLine
parseSourceLine :: String -> StateT SyntaxState Identity SourceLine
parseSourceLine = KateParser Token
-> String -> StateT SyntaxState Identity SourceLine
mkParseSourceLine (Maybe (String, String) -> KateParser Token
parseExpression Maybe (String, String)
forall a. Maybe a
Nothing)
parseExpression :: Maybe (String,String)
-> KateParser Token
parseExpression :: Maybe (String, String) -> KateParser Token
parseExpression mbcontext :: Maybe (String, String)
mbcontext = do
(lang :: String
lang,cont :: String
cont) <- KateParser (String, String)
-> ((String, String) -> KateParser (String, String))
-> Maybe (String, String)
-> KateParser (String, String)
forall b a. b -> (a -> b) -> Maybe a -> b
maybe KateParser (String, String)
currentContext (String, String) -> KateParser (String, String)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe (String, String)
mbcontext
Token
result <- (String, String) -> KateParser Token
parseRules (String
lang,String
cont)
ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ()
forall s (m :: * -> *) t u a.
Stream s m t =>
ParsecT s u m a -> ParsecT s u m ()
optional (ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ())
-> ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ do ParsecT String SyntaxState Identity ()
forall s (m :: * -> *) t u.
(Stream s m t, Show t) =>
ParsecT s u m ()
eof
(SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ())
-> (SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ \st :: SyntaxState
st -> SyntaxState
st{ synStPrevChar :: Char
synStPrevChar = '\n' }
ParsecT String SyntaxState Identity ()
pEndLine
Token -> KateParser Token
forall (m :: * -> *) a. Monad m => a -> m a
return Token
result
startingState :: SyntaxState
startingState = SyntaxState :: ContextStack
-> Int
-> Char
-> Bool
-> Bool
-> Bool
-> Bool
-> [String]
-> SyntaxState
SyntaxState {synStContexts :: ContextStack
synStContexts = [("Markdown","Normal Text")], synStLineNumber :: Int
synStLineNumber = 0, synStPrevChar :: Char
synStPrevChar = '\n', synStPrevNonspace :: Bool
synStPrevNonspace = Bool
False, synStContinuation :: Bool
synStContinuation = Bool
False, synStCaseSensitive :: Bool
synStCaseSensitive = Bool
True, synStKeywordCaseSensitive :: Bool
synStKeywordCaseSensitive = Bool
True, synStCaptures :: [String]
synStCaptures = []}
pEndLine :: ParsecT String SyntaxState Identity ()
pEndLine = do
(SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ())
-> (SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ \st :: SyntaxState
st -> SyntaxState
st{ synStPrevNonspace :: Bool
synStPrevNonspace = Bool
False }
(String, String)
context <- KateParser (String, String)
currentContext
ContextStack
contexts <- SyntaxState -> ContextStack
synStContexts (SyntaxState -> ContextStack)
-> ParsecT String SyntaxState Identity SyntaxState
-> ParsecT String SyntaxState Identity ContextStack
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
`fmap` ParsecT String SyntaxState Identity SyntaxState
forall (m :: * -> *) s u. Monad m => ParsecT s u m u
getState
SyntaxState
st <- ParsecT String SyntaxState Identity SyntaxState
forall (m :: * -> *) s u. Monad m => ParsecT s u m u
getState
if ContextStack -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length ContextStack
contexts Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 2
then case (String, String)
context of
_ | SyntaxState -> Bool
synStContinuation SyntaxState
st -> (SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ())
-> (SyntaxState -> SyntaxState)
-> ParsecT String SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ \st :: SyntaxState
st -> SyntaxState
st{ synStContinuation :: Bool
synStContinuation = Bool
False }
("Markdown","Normal Text") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
("Markdown","blockquote") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
("Markdown","bullet") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
("Markdown","numlist") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
("Markdown","comment") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
("Markdown","inc") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
_ -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
else () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
withAttribute :: a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute attr :: a
attr txt :: String
txt = do
Bool -> ParsecT s SyntaxState m () -> ParsecT s SyntaxState m ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (String -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
txt) (ParsecT s SyntaxState m () -> ParsecT s SyntaxState m ())
-> ParsecT s SyntaxState m () -> ParsecT s SyntaxState m ()
forall a b. (a -> b) -> a -> b
$ String -> ParsecT s SyntaxState m ()
forall (m :: * -> *) a. MonadFail m => String -> m a
fail "Parser matched no text"
(SyntaxState -> SyntaxState) -> ParsecT s SyntaxState m ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState) -> ParsecT s SyntaxState m ())
-> (SyntaxState -> SyntaxState) -> ParsecT s SyntaxState m ()
forall a b. (a -> b) -> a -> b
$ \st :: SyntaxState
st -> SyntaxState
st { synStPrevChar :: Char
synStPrevChar = String -> Char
forall a. [a] -> a
last String
txt
, synStPrevNonspace :: Bool
synStPrevNonspace = SyntaxState -> Bool
synStPrevNonspace SyntaxState
st Bool -> Bool -> Bool
|| Bool -> Bool
not ((Char -> Bool) -> String -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all Char -> Bool
isSpace String
txt) }
(a, String) -> ParsecT s SyntaxState m (a, String)
forall (m :: * -> *) a. Monad m => a -> m a
return (a
attr, String
txt)
regex_'23'5cs'2e'2a'5b'23'5d'3f'24 :: Regex
regex_'23'5cs'2e'2a'5b'23'5d'3f'24 = Bool -> String -> Regex
compileRegex Bool
True "#\\s.*[#]?$"
regex_'23'23'5cs'2e'2a'5b'23'5d'3f'24 :: Regex
regex_'23'23'5cs'2e'2a'5b'23'5d'3f'24 = Bool -> String -> Regex
compileRegex Bool
True "##\\s.*[#]?$"
regex_'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 :: Regex
regex_'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 = Bool -> String -> Regex
compileRegex Bool
True "###\\s.*[#]?$"
regex_'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 :: Regex
regex_'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 = Bool -> String -> Regex
compileRegex Bool
True "####\\s.*[#]?$"
regex_'23'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 :: Regex
regex_'23'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 = Bool -> String -> Regex
compileRegex Bool
True "#####\\s.*[#]?$"
regex_'23'23'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 :: Regex
regex_'23'23'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 = Bool -> String -> Regex
compileRegex Bool
True "######\\s.*[#]?$"
regex_'5cs'2a'28'5b'5c'2a'5c'2d'5f'5d'5cs'3f'29'7b3'2c'7d'5cs'2a :: Regex
regex_'5cs'2a'28'5b'5c'2a'5c'2d'5f'5d'5cs'3f'29'7b3'2c'7d'5cs'2a = Bool -> String -> Regex
compileRegex Bool
True "\\s*([\\*\\-_]\\s?){3,}\\s*"
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b2'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b2'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 :: Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b2'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b2'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)"
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b1'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b1'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 :: Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b1'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b1'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)"
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b3'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b3'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 :: Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b3'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b3'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "(\\s|^)[\\*_]{3}[^\\*_]+[\\*_]{3}(\\s|\\.|,|;|:|\\-|\\?|$)"
regex_'28'5b'5cs'5d'7b4'2c'7d'7c'5ct'2b'29'2e'2a'24 :: Regex
regex_'28'5b'5cs'5d'7b4'2c'7d'7c'5ct'2b'29'2e'2a'24 = Bool -> String -> Regex
compileRegex Bool
True "([\\s]{4,}|\\t+).*$"
regex_'5b'5c'2a'5c'2b'5c'2d'5d'5cs :: Regex
regex_'5b'5c'2a'5c'2b'5c'2d'5d'5cs = Bool -> String -> Regex
compileRegex Bool
True "[\\*\\+\\-]\\s"
regex_'5b'5cd'5d'2b'5c'2e'5cs :: Regex
regex_'5b'5cd'5d'2b'5c'2e'5cs = Bool -> String -> Regex
compileRegex Bool
True "[\\d]+\\.\\s"
regex_'28Title'7cAuthor'7cDate'7cCopyright'7cRevision'7cCSS'7cLaTeX'5c_XSLT'7cCategories'7cTags'7cBaseName'7cExcerpt'29'3a'28'2e'2a'29'2b'24 :: Regex
regex_'28Title'7cAuthor'7cDate'7cCopyright'7cRevision'7cCSS'7cLaTeX'5c_XSLT'7cCategories'7cTags'7cBaseName'7cExcerpt'29'3a'28'2e'2a'29'2b'24 = Bool -> String -> Regex
compileRegex Bool
True "(Title|Author|Date|Copyright|Revision|CSS|LaTeX\\ XSLT|Categories|Tags|BaseName|Excerpt):(.*)+$"
regex_'2d'2d'3e :: Regex
regex_'2d'2d'3e = Bool -> String -> Regex
compileRegex Bool
True "-->"
regex_'60'5b'5e'60'5d'2b'60 :: Regex
regex_'60'5b'5e'60'5d'2b'60 = Bool -> String -> Regex
compileRegex Bool
True "`[^`]+`"
regex_'3c'21'2d'2d :: Regex
regex_'3c'21'2d'2d = Bool -> String -> Regex
compileRegex Bool
True "<!--"
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5cs'2a'5c'5b'5b'5e'5c'5d'5d'2a'5c'5d'5cs'2a'28'5cs'2b'5c'22'5b'5e'5c'22'5d'2a'5c'22'29'7b0'2c1'7d :: Regex
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5cs'2a'5c'5b'5b'5e'5c'5d'5d'2a'5c'5d'5cs'2a'28'5cs'2b'5c'22'5b'5e'5c'22'5d'2a'5c'22'29'7b0'2c1'7d = Bool -> String -> Regex
compileRegex Bool
True "\\[[^\\]\\^]+\\]\\s*\\[[^\\]]*\\]\\s*(\\s+\\\"[^\\\"]*\\\"){0,1}"
regex_'5c'5b'5c'5e'5b'5e'5c'5d'5d'2b'5c'5d :: Regex
regex_'5c'5b'5c'5e'5b'5e'5c'5d'5d'2b'5c'5d = Bool -> String -> Regex
compileRegex Bool
True "\\[\\^[^\\]]+\\]"
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5cs'2a'5c'28'5b'5e'5c'28'5d'2a'5c'29 :: Regex
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5cs'2a'5c'28'5b'5e'5c'28'5d'2a'5c'29 = Bool -> String -> Regex
compileRegex Bool
True "\\[[^\\]\\^]+\\]\\s*\\([^\\(]*\\)"
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'3a'5cs'2b'5b'5e'5cs'5d'2b'28'5cs'2b'5c'22'5b'5e'5c'22'5d'2a'5c'22'29'7b0'2c1'7d :: Regex
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'3a'5cs'2b'5b'5e'5cs'5d'2b'28'5cs'2b'5c'22'5b'5e'5c'22'5d'2a'5c'22'29'7b0'2c1'7d = Bool -> String -> Regex
compileRegex Bool
True "\\[[^\\]\\^]+\\]\\:\\s+[^\\s]+(\\s+\\\"[^\\\"]*\\\"){0,1}"
regex_'5c'21'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'28'5b'5e'5c'28'5d'2a'5c'29 :: Regex
regex_'5c'21'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'28'5b'5e'5c'28'5d'2a'5c'29 = Bool -> String -> Regex
compileRegex Bool
True "\\!\\[[^\\]\\^]+\\]\\([^\\(]*\\)"
regex_'5c'21'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'5b'5b'5e'5c'5b'5d'2a'5c'5d :: Regex
regex_'5c'21'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'5b'5b'5e'5c'5b'5d'2a'5c'5d = Bool -> String -> Regex
compileRegex Bool
True "\\!\\[[^\\]\\^]+\\]\\[[^\\[]*\\]"
regex_'3c'28https'3f'7cftp'29'3a'5b'5e'5c'22'3e'5cs'5d'2b'3e :: Regex
regex_'3c'28https'3f'7cftp'29'3a'5b'5e'5c'22'3e'5cs'5d'2b'3e = Bool -> String -> Regex
compileRegex Bool
True "<(https?|ftp):[^\\\">\\s]+>"
regex_'3c'28'3f'3amailto'3a'29'3f'28'5b'2d'2e'5cw'5d'2b'5c'40'5b'2da'2dz0'2d9'5d'2b'28'5c'2e'5b'2da'2dz0'2d9'5d'2b'29'2a'5c'2e'5ba'2dz'5d'2b'29'3e :: Regex
regex_'3c'28'3f'3amailto'3a'29'3f'28'5b'2d'2e'5cw'5d'2b'5c'40'5b'2da'2dz0'2d9'5d'2b'28'5c'2e'5b'2da'2dz0'2d9'5d'2b'29'2a'5c'2e'5ba'2dz'5d'2b'29'3e = Bool -> String -> Regex
compileRegex Bool
True "<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>"
regex_'5b'7e'5d'7b2'7d'5b'5e'7e'5d'2e'2a'5b'5e'7e'5d'5b'7e'5d'7b2'7d :: Regex
regex_'5b'7e'5d'7b2'7d'5b'5e'7e'5d'2e'2a'5b'5e'7e'5d'5b'7e'5d'7b2'7d = Bool -> String -> Regex
compileRegex Bool
True "[~]{2}[^~].*[^~][~]{2}"
regex___'24 :: Regex
regex___'24 = Bool -> String -> Regex
compileRegex Bool
True " $"
parseRules :: (String, String) -> KateParser Token
parseRules ("Markdown","Normal Text") =
(((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Bool -> Char -> ParsecT String SyntaxState Identity String
pDetectChar Bool
False '>' ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok) KateParser Token
-> ParsecT String SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Markdown","blockquote"))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'23'5cs'2e'2a'5b'23'5d'3f'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FunctionTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'23'23'5cs'2e'2a'5b'23'5d'3f'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FunctionTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FunctionTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FunctionTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'23'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FunctionTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'23'23'23'23'23'23'5cs'2e'2a'5b'23'5d'3f'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FunctionTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5cs'2a'28'5b'5c'2a'5c'2d'5f'5d'5cs'3f'29'7b3'2c'7d'5cs'2a ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b2'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b2'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b1'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b1'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b3'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b3'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5b'5cs'5d'7b4'2c'7d'7c'5ct'2b'29'2e'2a'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
BaseNTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5b'5c'2a'5c'2b'5c'2d'5d'5cs ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok) KateParser Token
-> ParsecT String SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Markdown","bullet"))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5b'5cd'5d'2b'5c'2e'5cs ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok) KateParser Token
-> ParsecT String SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Markdown","numlist"))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28Title'7cAuthor'7cDate'7cCopyright'7cRevision'7cCSS'7cLaTeX'5c_XSLT'7cCategories'7cTags'7cBaseName'7cExcerpt'29'3a'28'2e'2a'29'2b'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
CommentTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(((String, String) -> KateParser Token
parseRules ("Markdown","inc")))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(KateParser (String, String)
currentContext KateParser (String, String)
-> ((String, String) -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \x :: (String, String)
x -> Bool -> ParsecT String SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard ((String, String)
x (String, String) -> (String, String) -> Bool
forall a. Eq a => a -> a -> Bool
== ("Markdown","Normal Text")) ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT String SyntaxState Identity String
pDefault ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
parseRules ("Markdown","blockquote") =
(((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b2'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b2'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
DataTypeTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b1'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b1'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
DataTypeTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(((String, String) -> KateParser Token
parseRules ("Markdown","inc")))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(KateParser (String, String)
currentContext KateParser (String, String)
-> ((String, String) -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \x :: (String, String)
x -> Bool -> ParsecT String SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard ((String, String)
x (String, String) -> (String, String) -> Bool
forall a. Eq a => a -> a -> Bool
== ("Markdown","blockquote")) ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT String SyntaxState Identity String
pDefault ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
DataTypeTok))
parseRules ("Markdown","bullet") =
(((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b2'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b2'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FloatTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b1'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b1'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FloatTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(((String, String) -> KateParser Token
parseRules ("Markdown","inc")))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(KateParser (String, String)
currentContext KateParser (String, String)
-> ((String, String) -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \x :: (String, String)
x -> Bool -> ParsecT String SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard ((String, String)
x (String, String) -> (String, String) -> Bool
forall a. Eq a => a -> a -> Bool
== ("Markdown","bullet")) ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT String SyntaxState Identity String
pDefault ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FloatTok))
parseRules ("Markdown","numlist") =
(((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b2'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b2'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FloatTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'28'5cs'7c'5e'29'5b'5c'2a'5f'5d'7b1'7d'5b'5e'5cs'5d'7b1'7d'5b'5e'5c'2a'5f'5d'2b'5b'5c'2a'5f'5d'7b1'7d'28'5cs'7c'5c'2e'7c'2c'7c'3b'7c'3a'7c'5c'2d'7c'5c'3f'7c'24'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FloatTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(((String, String) -> KateParser Token
parseRules ("Markdown","inc")))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(KateParser (String, String)
currentContext KateParser (String, String)
-> ((String, String) -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \x :: (String, String)
x -> Bool -> ParsecT String SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard ((String, String)
x (String, String) -> (String, String) -> Bool
forall a. Eq a => a -> a -> Bool
== ("Markdown","numlist")) ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT String SyntaxState Identity String
pDefault ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
FloatTok))
parseRules ("Markdown","comment") =
(((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'2d'2d'3e ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
CommentTok) KateParser Token
-> ParsecT String SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (ParsecT String SyntaxState Identity ()
popContext))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(KateParser (String, String)
currentContext KateParser (String, String)
-> ((String, String) -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \x :: (String, String)
x -> Bool -> ParsecT String SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard ((String, String)
x (String, String) -> (String, String) -> Bool
forall a. Eq a => a -> a -> Bool
== ("Markdown","comment")) ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT String SyntaxState Identity String
pDefault ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
CommentTok))
parseRules ("Markdown","inc") =
(((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'60'5b'5e'60'5d'2b'60 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
BaseNTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'3c'21'2d'2d ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok) KateParser Token
-> ParsecT String SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Markdown","comment"))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5cs'2a'5c'5b'5b'5e'5c'5d'5d'2a'5c'5d'5cs'2a'28'5cs'2b'5c'22'5b'5e'5c'22'5d'2a'5c'22'29'7b0'2c1'7d ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
OtherTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5c'5b'5c'5e'5b'5e'5c'5d'5d'2b'5c'5d ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
OtherTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5cs'2a'5c'28'5b'5e'5c'28'5d'2a'5c'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
OtherTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'3a'5cs'2b'5b'5e'5cs'5d'2b'28'5cs'2b'5c'22'5b'5e'5c'22'5d'2a'5c'22'29'7b0'2c1'7d ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
OtherTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5c'21'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'28'5b'5e'5c'28'5d'2a'5c'29 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
AlertTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5c'21'5c'5b'5b'5e'5c'5d'5c'5e'5d'2b'5c'5d'5c'5b'5b'5e'5c'5b'5d'2a'5c'5d ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
AlertTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'3c'28https'3f'7cftp'29'3a'5b'5e'5c'22'3e'5cs'5d'2b'3e ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
OtherTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'3c'28'3f'3amailto'3a'29'3f'28'5b'2d'2e'5cw'5d'2b'5c'40'5b'2da'2dz0'2d9'5d'2b'28'5c'2e'5b'2da'2dz0'2d9'5d'2b'29'2a'5c'2e'5ba'2dz'5d'2b'29'3e ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
OtherTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex_'5b'7e'5d'7b2'7d'5b'5e'7e'5d'2e'2a'5b'5e'7e'5d'5b'7e'5d'7b2'7d ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
((Regex -> ParsecT String SyntaxState Identity String
pRegExpr Regex
regex___'24 ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|>
(KateParser (String, String)
currentContext KateParser (String, String)
-> ((String, String) -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \x :: (String, String)
x -> Bool -> ParsecT String SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard ((String, String)
x (String, String) -> (String, String) -> Bool
forall a. Eq a => a -> a -> Bool
== ("Markdown","inc")) ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity String
-> ParsecT String SyntaxState Identity String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT String SyntaxState Identity String
pDefault ParsecT String SyntaxState Identity String
-> (String -> KateParser Token) -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> String -> KateParser Token
forall (m :: * -> *) a s.
Monad m =>
a -> String -> ParsecT s SyntaxState m (a, String)
withAttribute TokenType
NormalTok))
parseRules x :: (String, String)
x = (String, String) -> KateParser Token
parseRules ("Markdown","Normal Text") KateParser Token -> KateParser Token -> KateParser Token
forall s u (m :: * -> *) a.
ParsecT s u m a -> ParsecT s u m a -> ParsecT s u m a
<|> String -> KateParser Token
forall (m :: * -> *) a. MonadFail m => String -> m a
fail ("Unknown context" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (String, String) -> String
forall a. Show a => a -> String
show (String, String)
x)