{- This module was generated from data in the Kate syntax
   highlighting file rest.xml, version 2, by  -}

module Text.Highlighting.Kate.Syntax.Rest
          (highlight, parseExpression, syntaxName, syntaxExtensions)
where
import Text.Highlighting.Kate.Types
import Text.Highlighting.Kate.Common
import qualified Text.Highlighting.Kate.Syntax.Alert
import Text.ParserCombinators.Parsec hiding (State)
import Control.Monad.State
import Data.Char (isSpace)

-- | Full name of language.
syntaxName :: String
syntaxName :: [Char]
syntaxName = [Char]
"reStructuredText"

-- | Filename extensions for this language.
syntaxExtensions :: String
syntaxExtensions :: [Char]
syntaxExtensions = [Char]
"*.rst"

-- | Highlight source code using this syntax definition.
highlight :: String -> [SourceLine]
highlight :: [Char] -> [SourceLine]
highlight [Char]
input = State SyntaxState [SourceLine] -> SyntaxState -> [SourceLine]
forall s a. State s a -> s -> a
evalState (([Char] -> StateT SyntaxState Identity SourceLine)
-> [[Char]] -> State SyntaxState [SourceLine]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM [Char] -> StateT SyntaxState Identity SourceLine
parseSourceLine ([[Char]] -> State SyntaxState [SourceLine])
-> [[Char]] -> State SyntaxState [SourceLine]
forall a b. (a -> b) -> a -> b
$ [Char] -> [[Char]]
lines [Char]
input) SyntaxState
startingState

parseSourceLine :: String -> State SyntaxState SourceLine
parseSourceLine :: [Char] -> StateT SyntaxState Identity SourceLine
parseSourceLine = KateParser Token
-> [Char] -> StateT SyntaxState Identity SourceLine
mkParseSourceLine (Maybe ([Char], [Char]) -> KateParser Token
parseExpression Maybe ([Char], [Char])
forall a. Maybe a
Nothing)

-- | Parse an expression using appropriate local context.
parseExpression :: Maybe (String,String)
                -> KateParser Token
parseExpression :: Maybe ([Char], [Char]) -> KateParser Token
parseExpression Maybe ([Char], [Char])
mbcontext = do
  ([Char]
lang,[Char]
cont) <- ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char])
    -> ParsecT [Char] SyntaxState Identity ([Char], [Char]))
-> Maybe ([Char], [Char])
-> ParsecT [Char] SyntaxState Identity ([Char], [Char])
forall b a. b -> (a -> b) -> Maybe a -> b
maybe ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ([Char], [Char])
-> ParsecT [Char] SyntaxState Identity ([Char], [Char])
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ([Char], [Char])
mbcontext
  Token
result <- ([Char], [Char]) -> KateParser Token
parseRules ([Char]
lang,[Char]
cont)
  ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall s (m :: * -> *) t u a.
Stream s m t =>
ParsecT s u m a -> ParsecT s u m ()
optional (ParsecT [Char] SyntaxState Identity ()
 -> ParsecT [Char] SyntaxState Identity ())
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ do ParsecT [Char] SyntaxState Identity ()
forall s (m :: * -> *) t u.
(Stream s m t, Show t) =>
ParsecT s u m ()
eof
                (SyntaxState -> SyntaxState)
-> ParsecT [Char] SyntaxState Identity ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState)
 -> ParsecT [Char] SyntaxState Identity ())
-> (SyntaxState -> SyntaxState)
-> ParsecT [Char] SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ \SyntaxState
st -> SyntaxState
st{ synStPrevChar :: Char
synStPrevChar = Char
'\n' }
                ParsecT [Char] SyntaxState Identity ()
pEndLine
  Token -> KateParser Token
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return Token
result

startingState :: SyntaxState
startingState = SyntaxState {synStContexts :: ContextStack
synStContexts = [([Char]
"reStructuredText",[Char]
"Normal")], synStLineNumber :: Int
synStLineNumber = Int
0, synStPrevChar :: Char
synStPrevChar = Char
'\n', synStPrevNonspace :: Bool
synStPrevNonspace = Bool
False, synStContinuation :: Bool
synStContinuation = Bool
False, synStCaseSensitive :: Bool
synStCaseSensitive = Bool
True, synStKeywordCaseSensitive :: Bool
synStKeywordCaseSensitive = Bool
True, synStCaptures :: [[Char]]
synStCaptures = []}

pEndLine :: ParsecT [Char] SyntaxState Identity ()
pEndLine = do
  (SyntaxState -> SyntaxState)
-> ParsecT [Char] SyntaxState Identity ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState)
 -> ParsecT [Char] SyntaxState Identity ())
-> (SyntaxState -> SyntaxState)
-> ParsecT [Char] SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ \SyntaxState
st -> SyntaxState
st{ synStPrevNonspace :: Bool
synStPrevNonspace = Bool
False }
  ([Char], [Char])
context <- ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext
  ContextStack
contexts <- SyntaxState -> ContextStack
synStContexts (SyntaxState -> ContextStack)
-> ParsecT [Char] SyntaxState Identity SyntaxState
-> ParsecT [Char] SyntaxState Identity ContextStack
forall a b.
(a -> b)
-> ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
`fmap` ParsecT [Char] SyntaxState Identity SyntaxState
forall (m :: * -> *) s u. Monad m => ParsecT s u m u
getState
  SyntaxState
st <- ParsecT [Char] SyntaxState Identity SyntaxState
forall (m :: * -> *) s u. Monad m => ParsecT s u m u
getState
  if ContextStack -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length ContextStack
contexts Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
2
    then case ([Char], [Char])
context of
      ([Char], [Char])
_ | SyntaxState -> Bool
synStContinuation SyntaxState
st -> (SyntaxState -> SyntaxState)
-> ParsecT [Char] SyntaxState Identity ()
forall (m :: * -> *) u s. Monad m => (u -> u) -> ParsecT s u m ()
updateState ((SyntaxState -> SyntaxState)
 -> ParsecT [Char] SyntaxState Identity ())
-> (SyntaxState -> SyntaxState)
-> ParsecT [Char] SyntaxState Identity ()
forall a b. (a -> b) -> a -> b
$ \SyntaxState
st -> SyntaxState
st{ synStContinuation :: Bool
synStContinuation = Bool
False }
      ([Char]
"reStructuredText",[Char]
"Normal") -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ([Char]
"reStructuredText",[Char]
"InlineMarkup") -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ([Char]
"reStructuredText",[Char]
"Field") -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ([Char]
"reStructuredText",[Char]
"InterpretedText") -> (ParsecT [Char] SyntaxState Identity ()
popContext) ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT [Char] SyntaxState Identity ()
pEndLine
      ([Char]
"reStructuredText",[Char]
"Role") -> (ParsecT [Char] SyntaxState Identity ()
popContext) ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT [Char] SyntaxState Identity ()
pEndLine
      ([Char]
"reStructuredText",[Char]
"TrailingRole") -> (ParsecT [Char] SyntaxState Identity ()
popContext) ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT [Char] SyntaxState Identity ()
pEndLine
      ([Char]
"reStructuredText",[Char]
"Comment") -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ([Char]
"reStructuredText",[Char]
"CodeBlock") -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ([Char]
"reStructuredText",[Char]
"Code") -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ([Char], [Char])
_ -> () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
    else () -> ParsecT [Char] SyntaxState Identity ()
forall a. a -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

withAttribute :: a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute a
attr [Char]
txt = do
  Bool -> ParsecT s SyntaxState m () -> ParsecT s SyntaxState m ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when ([Char] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null [Char]
txt) (ParsecT s SyntaxState m () -> ParsecT s SyntaxState m ())
-> ParsecT s SyntaxState m () -> ParsecT s SyntaxState m ()
forall a b. (a -> b) -> a -> b
$ [Char] -> ParsecT s SyntaxState m ()
forall a. [Char] -> ParsecT s SyntaxState m a
forall (m :: * -> *) a. MonadFail m => [Char] -> m a
fail [Char]
"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
$ \SyntaxState
st -> SyntaxState
st { synStPrevChar :: Char
synStPrevChar = [Char] -> Char
forall a. HasCallStack => [a] -> a
last [Char]
txt
                          , synStPrevNonspace :: Bool
synStPrevNonspace = SyntaxState -> Bool
synStPrevNonspace SyntaxState
st Bool -> Bool -> Bool
|| Bool -> Bool
not ((Char -> Bool) -> [Char] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
all Char -> Bool
isSpace [Char]
txt) }
  (a, [Char]) -> ParsecT s SyntaxState m (a, [Char])
forall a. a -> ParsecT s SyntaxState m a
forall (m :: * -> *) a. Monad m => a -> m a
return (a
attr, [Char]
txt)


regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])\\*\\*[^\\s].*\\*\\*(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])\\*[^\\s].*\\*(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'5cs'2a'5c'2e'5c'2e_'5c'5b'28'5cd'2b'7c'23'7c'5c'2a'7c'23'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'29'5c'5d'5cs :: Regex
regex_'5cs'2a'5c'2e'5c'2e_'5c'5b'28'5cd'2b'7c'23'7c'5c'2a'7c'23'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'29'5c'5d'5cs = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"\\s*\\.\\. \\[(\\d+|#|\\*|#[\\w_\\.:\\+\\-]+)\\]\\s"
regex_'5cs'2a'5c'2e'5c'2e_'5c'5b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'5c'5d'5cs :: Regex
regex_'5cs'2a'5c'2e'5c'2e_'5c'5b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'5c'5d'5cs = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"\\s*\\.\\. \\[[\\w_\\.:\\+\\-]+\\]\\s"
regex_'5cs'2a'28'5c'2e'5c'2e_'28'5f'5f'3a'7c'5f'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d_'5d'2b'3a'28'5cs'7c'24'29'29'7c'5f'5f_'29 :: Regex
regex_'5cs'2a'28'5c'2e'5c'2e_'28'5f'5f'3a'7c'5f'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d_'5d'2b'3a'28'5cs'7c'24'29'29'7c'5f'5f_'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"\\s*(\\.\\. (__:|_[\\w_\\.:\\+\\- ]+:(\\s|$))|__ )"
regex_'5cs'2a'5c'2e'5c'2e_code'2dblock'3a'3a :: Regex
regex_'5cs'2a'5c'2e'5c'2e_code'2dblock'3a'3a = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"\\s*\\.\\. code-block::"
regex_'5cs'2a'5c'2e'5c'2e_'5b'5cw'2d'5f'5c'2e'5d'2b'3a'3a'28'5cs'7c'24'29 :: Regex
regex_'5cs'2a'5c'2e'5c'2e_'5b'5cw'2d'5f'5c'2e'5d'2b'3a'3a'28'5cs'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"\\s*\\.\\. [\\w-_\\.]+::(\\s|$)"
regex_'3a'3a'24 :: Regex
regex_'3a'3a'24 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"::$"
regex_'5cs'2a'5c'2e'5c'2e_'5c'7c'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d_'5d'2b'5c'7c'5cs'2b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'3a'3a'5cs :: Regex
regex_'5cs'2a'5c'2e'5c'2e_'5c'7c'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d_'5d'2b'5c'7c'5cs'2b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'3a'3a'5cs = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"\\s*\\.\\. \\|[\\w_\\.:\\+\\- ]+\\|\\s+[\\w_\\.:\\+\\-]+::\\s"
regex_'3a'28'3f'3d'28'5b'5e'3a'5d'2a'5c'5c'3a'29'2a'5b'5e'3a'5d'2a'3a'28'5cs'7c'24'29'29 :: Regex
regex_'3a'28'3f'3d'28'5b'5e'3a'5d'2a'5c'5c'3a'29'2a'5b'5e'3a'5d'2a'3a'28'5cs'7c'24'29'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
":(?=([^:]*\\\\:)*[^:]*:(\\s|$))"
regex_'28'5cs'2a'29'5c'2e'5c'2e'5cs'28'3f'21'5b'5cw'2d'5f'5c'2e'5d'2b'3a'3a'28'5cs'7c'24'29'29 :: Regex
regex_'28'5cs'2a'29'5c'2e'5c'2e'5cs'28'3f'21'5b'5cw'2d'5f'5c'2e'5d'2b'3a'3a'28'5cs'7c'24'29'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(\\s*)\\.\\.\\s(?![\\w-_\\.]+::(\\s|$))"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'60'5b'5e'5cs'5d'2e'2a'60'60'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'60'5b'5e'5cs'5d'2e'2a'60'60'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])``[^\\s].*``(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'7c'5b'5e'5cs'5d'2e'2a'5c'7c'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'7c'5b'5e'5cs'5d'2e'2a'5c'7c'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])\\|[^\\s].*\\|(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5f'60'5b'5e'5cs'5d'2e'2a'60'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5f'60'5b'5e'5cs'5d'2e'2a'60'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])_`[^\\s].*`(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'5b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'5c'5d'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'5b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'5c'5d'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])\\[[\\w_\\.:\\+\\-]+\\]_(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'5b'5e'5cs'5d'2e'2a'60'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'5b'5e'5cs'5d'2e'2a'60'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])`[^\\s].*`_(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5cw'2b'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5cw'2b'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])\\w+_(?=[-\\s\8217\8221\187\8208\8209\8210\8211\8212 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'5b'5e'5cs'5d'2e'2a'60'28'3f'3d'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a'29 :: Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'5b'5e'5cs'5d'2e'2a'60'28'3f'3d'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(^|[-\\s'\"\\(\\[{</:\8216\8220\8217\171\161\191\8208\8209\8210\8211\8212 ])`[^\\s].*`(?=:[\\w-_\\.\\+]+:)"
regex_'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a'28'3f'3d'60'29 :: Regex
regex_'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a'28'3f'3d'60'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
":[\\w-_\\.\\+]+:(?=`)"
regex_'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a :: Regex
regex_'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
":[\\w-_\\.\\+]+:"
regex_'28'2e'7c'24'29 :: Regex
regex_'28'2e'7c'24'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(.|$)"
regex_'28'5cs'2b'29'28'3f'3d'5cS'29 :: Regex
regex_'28'5cs'2b'29'28'3f'3d'5cS'29 = Bool -> [Char] -> Regex
compileRegex Bool
True [Char]
"(\\s+)(?=\\S)"

parseRules :: ([Char], [Char]) -> KateParser Token
parseRules ([Char]
"reStructuredText",[Char]
"Normal") =
  (((Regex -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((([Char], [Char]) -> KateParser Token
parseRules ([Char]
"reStructuredText",[Char]
"InlineMarkup")))
   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 [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'5cs'2a'5c'2e'5c'2e_'5c'5b'28'5cd'2b'7c'23'7c'5c'2a'7c'23'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'29'5c'5d'5cs KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'5cs'2a'5c'2e'5c'2e_'5c'5b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'5c'5d'5cs KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'5cs'2a'28'5c'2e'5c'2e_'28'5f'5f'3a'7c'5f'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d_'5d'2b'3a'28'5cs'7c'24'29'29'7c'5f'5f_'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'5cs'2a'5c'2e'5c'2e_code'2dblock'3a'3a KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DataTypeTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"CodeBlock"))
   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 [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'5cs'2a'5c'2e'5c'2e_'5b'5cw'2d'5f'5c'2e'5d'2b'3a'3a'28'5cs'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'3a'3a'24 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DataTypeTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"CodeBlock"))
   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 [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'5cs'2a'5c'2e'5c'2e_'5c'7c'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d_'5d'2b'5c'7c'5cs'2b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'3a'3a'5cs KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((ParsecT [Char] SyntaxState Identity ()
pFirstNonSpace ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'3a'28'3f'3d'28'5b'5e'3a'5d'2a'5c'5c'3a'29'2a'5b'5e'3a'5d'2a'3a'28'5cs'7c'24'29'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
FunctionTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"Field"))
   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 [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'28'5cs'2a'29'5c'2e'5c'2e'5cs'28'3f'21'5b'5cw'2d'5f'5c'2e'5d'2b'3a'3a'28'5cs'7c'24'29'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
CommentTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"Normal")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
NormalTok))

parseRules ([Char]
"reStructuredText",[Char]
"InlineMarkup") =
  (((Regex -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'60'5b'5e'5cs'5d'2e'2a'60'60'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'7c'5b'5e'5cs'5d'2e'2a'5c'7c'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5f'60'5b'5e'5cs'5d'2e'2a'60'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'5b'5b'5cw'5f'5c'2e'3a'5c'2b'5c'2d'5d'2b'5c'5d'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'5b'5e'5cs'5d'2e'2a'60'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5cw'2b'5f'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'60'5b'5e'5cs'5d'2e'2a'60'28'3f'3d'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DecValTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"TrailingRole"))
   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 -> KateParser [Char]
pRegExpr Regex
regex_'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a'28'3f'3d'60'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
KeywordTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"Role"))
   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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"InlineMarkup")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
NormalTok))

parseRules ([Char]
"reStructuredText",[Char]
"Field") =
  (((Bool -> Char -> KateParser [Char]
pDetectChar Bool
False Char
':' KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
FunctionTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (ParsecT [Char] 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
<|>
   ((Bool -> Char -> Char -> KateParser [Char]
pDetect2Chars Bool
False Char
'\\' Char
':' KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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 -> KateParser [Char]
pRegExpr Regex
regex_'28'5e'7c'5b'2d'5cs'27'22'5c'28'5c'5b'7b'3c'2f'3a'2018'201c'2019'ab'a1'bf'2010'2011'2012'2013'2014_'5d'29'5c'2a'5b'5e'5cs'5d'2e'2a'5c'2a'28'3f'3d'5b'2d'5cs'2019'201d'bb'2010'2011'2012'2013'2014_'27'22'5c'29'5c'5d'7d'3e'2f'3a'5c'2e'2c'3b'21'5c'3f'5c'5c'5d'7c'24'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((([Char], [Char]) -> KateParser Token
parseRules ([Char]
"reStructuredText",[Char]
"InlineMarkup")))
   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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"Field")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
FunctionTok))

parseRules ([Char]
"reStructuredText",[Char]
"InterpretedText") =
  (((Bool -> Char -> KateParser [Char]
pDetectChar Bool
False Char
'`' KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DecValTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (ParsecT [Char] 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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"InterpretedText")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DecValTok))

parseRules ([Char]
"reStructuredText",[Char]
"Role") =
  (((Bool -> Char -> KateParser [Char]
pDetectChar Bool
False Char
'`' KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DecValTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (ParsecT [Char] 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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"Role")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
KeywordTok))

parseRules ([Char]
"reStructuredText",[Char]
"TrailingRole") =
  (((Regex -> KateParser [Char]
pRegExpr Regex
regex_'3a'5b'5cw'2d'5f'5c'2e'5c'2b'5d'2b'3a KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
KeywordTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ (ParsecT [Char] 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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"TrailingRole")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
KeywordTok))

parseRules ([Char]
"reStructuredText",[Char]
"Comment") =
  (((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> [Char] -> KateParser [Char]
pRegExprDynamic [Char]
"%1   " KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char] -> KateParser [Char]
forall s (m :: * -> *) t u a.
Stream s m t =>
ParsecT s u m a -> ParsecT s u m a
lookAhead (Regex -> KateParser [Char]
pRegExpr Regex
regex_'28'2e'7c'24'29) KateParser [Char]
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> (ParsecT [Char] SyntaxState Identity ()
popContext) ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> ParsecT [Char] SyntaxState Identity ([Char], [Char])
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= ([Char], [Char]) -> KateParser Token
parseRules))
   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
<|>
   ((Maybe ([Char], [Char]) -> KateParser Token
Text.Highlighting.Kate.Syntax.Alert.parseExpression (([Char], [Char]) -> Maybe ([Char], [Char])
forall a. a -> Maybe a
Just ([Char]
"Alerts",[Char]
"")) KateParser Token -> (Token -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= ((TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
CommentTok) ([Char] -> KateParser Token)
-> (Token -> [Char]) -> Token -> KateParser Token
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Token -> [Char]
forall a b. (a, b) -> b
snd)))
   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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"Comment")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
CommentTok))

parseRules ([Char]
"reStructuredText",[Char]
"CodeBlock") =
  (((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser [Char]
pRegExpr Regex
regex_'28'5cs'2b'29'28'3f'3d'5cS'29 KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DataTypeTok) KateParser Token
-> ParsecT [Char] SyntaxState Identity () -> KateParser Token
forall (m :: * -> *) a b. Monad m => m a -> m b -> m a
>>~ ([Char], [Char]) -> ParsecT [Char] SyntaxState Identity ()
pushContext ([Char]
"reStructuredText",[Char]
"Code"))
   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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"CodeBlock")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DataTypeTok))

parseRules ([Char]
"reStructuredText",[Char]
"Code") =
  (((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> [Char] -> KateParser [Char]
pRegExprDynamic [Char]
"%1" KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
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
<|>
   ((Int -> ParsecT [Char] SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn Int
0 ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char] -> KateParser [Char]
forall s (m :: * -> *) t u a.
Stream s m t =>
ParsecT s u m a -> ParsecT s u m a
lookAhead (Regex -> KateParser [Char]
pRegExpr Regex
regex_'28'2e'7c'24'29) KateParser [Char]
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> (ParsecT [Char] SyntaxState Identity ()
popContext ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ()
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT [Char] SyntaxState Identity ()
popContext) ParsecT [Char] SyntaxState Identity ()
-> ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> ParsecT [Char] SyntaxState Identity ([Char], [Char])
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= ([Char], [Char]) -> KateParser Token
parseRules))
   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
<|>
   (ParsecT [Char] SyntaxState Identity ([Char], [Char])
currentContext ParsecT [Char] SyntaxState Identity ([Char], [Char])
-> (([Char], [Char]) -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \([Char], [Char])
x -> Bool -> ParsecT [Char] SyntaxState Identity ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (([Char], [Char])
x ([Char], [Char]) -> ([Char], [Char]) -> Bool
forall a. Eq a => a -> a -> Bool
== ([Char]
"reStructuredText",[Char]
"Code")) ParsecT [Char] SyntaxState Identity ()
-> KateParser [Char] -> KateParser [Char]
forall a b.
ParsecT [Char] SyntaxState Identity a
-> ParsecT [Char] SyntaxState Identity b
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser [Char]
pDefault KateParser [Char]
-> ([Char] -> KateParser Token) -> KateParser Token
forall a b.
ParsecT [Char] SyntaxState Identity a
-> (a -> ParsecT [Char] SyntaxState Identity b)
-> ParsecT [Char] SyntaxState Identity b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= TokenType -> [Char] -> KateParser Token
forall {m :: * -> *} {a} {s}.
Monad m =>
a -> [Char] -> ParsecT s SyntaxState m (a, [Char])
withAttribute TokenType
DataTypeTok))

parseRules ([Char]
"Alerts", [Char]
_) = Maybe ([Char], [Char]) -> KateParser Token
Text.Highlighting.Kate.Syntax.Alert.parseExpression Maybe ([Char], [Char])
forall a. Maybe a
Nothing

parseRules ([Char], [Char])
x = ([Char], [Char]) -> KateParser Token
parseRules ([Char]
"reStructuredText",[Char]
"Normal") 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
<|> [Char] -> KateParser Token
forall a. [Char] -> ParsecT [Char] SyntaxState Identity a
forall (m :: * -> *) a. MonadFail m => [Char] -> m a
fail ([Char]
"Unknown context" [Char] -> [Char] -> [Char]
forall a. [a] -> [a] -> [a]
++ ([Char], [Char]) -> [Char]
forall a. Show a => a -> [Char]
show ([Char], [Char])
x)