{- This module was generated from data in the Kate syntax
   highlighting file ocaml.xml, version 3, by Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com) -}

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

-- | Full name of language.
syntaxName :: String
syntaxName :: String
syntaxName = "Objective Caml"

-- | Filename extensions for this language.
syntaxExtensions :: String
syntaxExtensions :: String
syntaxExtensions = "*.ml;*.mli"

-- | Highlight source code using this syntax definition.
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)

-- | Parse an expression using appropriate local context.
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 = [("Objective Caml","Code")], 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 }
      ("Objective Caml","Code") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Nested Code 1") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Nested Code 2") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","String") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","qtest header") -> (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","qtest") ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","qtest param") -> (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","qtest") ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ()
-> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","qtest") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Comment") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","String in Comment") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Camlp4 Quotation") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Code") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Preformatted") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Verbatim") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc LaTeX") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Identifier") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Nested Ocamldoc") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Bold") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Italic") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Emphasised") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Heading") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc Link") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Ocamldoc References") -> () -> ParsecT String SyntaxState Identity ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
      ("Objective Caml","Unmatched Closing Brackets") -> () -> 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)

list_qtest_keywords :: Set String
list_qtest_keywords = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "in as forall"
list_Keywords :: Set String
list_Keywords = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "and as assert asr begin class closed constraint do done downto else end exception external false for fun function functor if in include inherit land lazy let lor lsl lsr lxor match method mod module mutable new object of open or parser private rec sig struct then to true try type val virtual when while with"
list_Revised_Syntax_Keywords :: Set String
list_Revised_Syntax_Keywords = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "declare value where"
list_Pervasive_Functions :: Set String
list_Pervasive_Functions = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "abs abs_float acos asin at_exit atan atan2 bool_of_string ceil char_of_int classify_float close_in close_in_noerr close_out close_out_noerr compare cos cosh decr do_at_exit epsilon_float exp float float_of_int float_of_string floor flush flush_all format_of_string frexp fst ignore in_channel_length incr infinity input input_binary_int input_byte input_char input_line input_value int_of_char int_of_float int_of_string ldexp lnot log log10 max max_float max_int min min_float min_int mod_float modf nan neg_infinity not open_in open_in_bin open_in_gen open_out open_out_bin open_out_gen out_channel_length output output_binary_int output_byte output_char output_string output_value pos_in pos_out pred prerr_char prerr_endline prerr_float prerr_int prerr_newline prerr_string print_char print_endline print_float print_int print_newline print_string read_float read_int read_line really_input ref seek_in seek_out set_binary_mode_in set_binary_mode_out sin sinh snd sqrt stderr stdin stdout string_of_bool string_of_float string_of_format string_of_int succ tan tanh truncate unsafe_really_input valid_float_lexem"
list_Flow_Control_Functions :: Set String
list_Flow_Control_Functions = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "exit failwith invalid_arg raise"
list_Pervasive_Types :: Set String
list_Pervasive_Types = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "array bool char exn format4 fpclass in_channel int int32 int64 lazy_t list nativeint open_flag option out_channel real ref string unit"
list_Pervasive_Variant_Tags :: Set String
list_Pervasive_Variant_Tags = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "FP_infinite FP_nan FP_normal FP_subnormal FP_zero None Open_append Open_append Open_binary Open_binary Open_creat Open_creat Open_excl Open_excl Open_nonblock Open_nonblock Open_rdonly Open_rdonly Open_text Open_text Open_trunc Open_trunc Open_wronly Open_wronly Some"
list_Pervasive_Exceptions :: Set String
list_Pervasive_Exceptions = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "Assert_failure Division_by_zero End_of_file Exit Failure Invalid_argument Match_failure Not_found Out_of_memory Stack_overflow Sys_blocked_io Sys_error Undefined_recursive_module"
list_Standard_Library_Modules :: Set String
list_Standard_Library_Modules = [String] -> Set String
forall a. Ord a => [a] -> Set a
Set.fromList ([String] -> Set String) -> [String] -> Set String
forall a b. (a -> b) -> a -> b
$ String -> [String]
words (String -> [String]) -> String -> [String]
forall a b. (a -> b) -> a -> b
$ "Arg Array ArrayLabels Buffer Callback Char Complex Digest Filename Format Gc Genlex Hashtbl Int32 Int64 Lazy Lexing List ListLabels Map Marshal MoreLabels Nativeint Oo Parsing Printexc Printf Queue Random Scanf Set Sort Stack StdLabels Stream String StringLabels Sys Weak"

regex_'5c'28'5c'2a'5c'24'28T'7cQ'7cR'7c'3d'29 :: Regex
regex_'5c'28'5c'2a'5c'24'28T'7cQ'7cR'7c'3d'29 = Bool -> String -> Regex
compileRegex Bool
True "\\(\\*\\$(T|Q|R|=)"
regex_'23'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'2e'2a'24 :: Regex
regex_'23'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'2e'2a'24 = Bool -> String -> Regex
compileRegex Bool
True "#`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*.*$"
regex_'27'28'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29'7c'5b'5e'27'5d'29'27 :: Regex
regex_'27'28'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29'7c'5b'5e'27'5d'29'27 = Bool -> String -> Regex
compileRegex Bool
True "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'"
regex_'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c :: Regex
regex_'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c = Bool -> String -> Regex
compileRegex Bool
True "<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<"
regex_'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337'5f'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a :: Regex
regex_'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337'5f'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a = Bool -> String -> Regex
compileRegex Bool
True "[a-z\\300-\\326\\330-\\337_][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
regex_'60'3f'5bA'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a :: Regex
regex_'60'3f'5bA'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a = Bool -> String -> Regex
compileRegex Bool
True "`?[A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b :: Regex
regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b = Bool -> String -> Regex
compileRegex Bool
True "-?0[xX][0-9A-Fa-f_]+"
regex_'2d'3f0'5boO'5d'5b0'2d7'5f'5d'2b :: Regex
regex_'2d'3f0'5boO'5d'5b0'2d7'5f'5d'2b = Bool -> String -> Regex
compileRegex Bool
True "-?0[oO][0-7_]+"
regex_'2d'3f0'5bbB'5d'5b01'5f'5d'2b :: Regex
regex_'2d'3f0'5bbB'5d'5b01'5f'5d'2b = Bool -> String -> Regex
compileRegex Bool
True "-?0[bB][01_]+"
regex_'2d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5c'2e'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5beE'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'29'3f'7c'5beE'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'29 :: Regex
regex_'2d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5c'2e'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5beE'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'29'3f'7c'5beE'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'29 = Bool -> String -> Regex
compileRegex Bool
True "-?[0-9][0-9_]*(\\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?|[eE][-+]?[0-9][0-9_]*)"
regex_'2d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a :: Regex
regex_'2d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a = Bool -> String -> Regex
compileRegex Bool
True "-?[0-9][0-9_]*"
regex_'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29 :: Regex
regex_'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29 = Bool -> String -> Regex
compileRegex Bool
True "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})"
regex_'5c'5c'24 :: Regex
regex_'5c'5c'24 = Bool -> String -> Regex
compileRegex Bool
True "\\\\$"
regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 :: Regex
regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 = Bool -> String -> Regex
compileRegex Bool
True "\\\\(\\\\|>>|<<)"
regex_'5c'5c'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c :: Regex
regex_'5c'5c'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c = Bool -> String -> Regex
compileRegex Bool
True "\\\\<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<"
regex_'5c'5c'2e :: Regex
regex_'5c'5c'2e = Bool -> String -> Regex
compileRegex Bool
True "\\\\."
regex_'5b'7b'5dv'28'5cs'7c'24'29 :: Regex
regex_'5b'7b'5dv'28'5cs'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "[{]v(\\s|$)"
regex_'5b'7b'5db'28'5cs'7c'24'29 :: Regex
regex_'5b'7b'5db'28'5cs'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "[{]b(\\s|$)"
regex_'5b'7b'5di'28'5cs'7c'24'29 :: Regex
regex_'5b'7b'5di'28'5cs'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "[{]i(\\s|$)"
regex_'5b'7b'5de'28'5cs'7c'24'29 :: Regex
regex_'5b'7b'5de'28'5cs'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "[{]e(\\s|$)"
regex_'5b'7b'5d'5b0'2d9'5d'2b'28'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'3f'5cs :: Regex
regex_'5b'7b'5d'5b0'2d9'5d'2b'28'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'3f'5cs = Bool -> String -> Regex
compileRegex Bool
True "[{][0-9]+(:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)?\\s"
regex_'5b'7b'5d'5b'7b'5d'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'5b'7d'5d :: Regex
regex_'5b'7b'5d'5b'7b'5d'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'5b'7d'5d = Bool -> String -> Regex
compileRegex Bool
True "[{][{]:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*[}]"
regex_'5b'7b'5d'21'28'5ba'2dz'5d'2b'3a'29'3f :: Regex
regex_'5b'7b'5d'21'28'5ba'2dz'5d'2b'3a'29'3f = Bool -> String -> Regex
compileRegex Bool
True "[{]!([a-z]+:)?"
regex_'5b'7b'5d'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5cs'7c'24'29 :: Regex
regex_'5b'7b'5d'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5cs'7c'24'29 = Bool -> String -> Regex
compileRegex Bool
True "[{]`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\s|$)"
regex_'40see'5cs'2a'28'3c'5b'5e'3e'5d'2a'3e'7c'22'5b'5e'22'5d'2a'22'7c'27'5b'5e'27'5d'2a'27'29 :: Regex
regex_'40see'5cs'2a'28'3c'5b'5e'3e'5d'2a'3e'7c'22'5b'5e'22'5d'2a'22'7c'27'5b'5e'27'5d'2a'27'29 = Bool -> String -> Regex
compileRegex Bool
True "@see\\s*(<[^>]*>|\"[^\"]*\"|'[^']*')"
regex_'40'28param'7craise'29'5cs'2a :: Regex
regex_'40'28param'7craise'29'5cs'2a = Bool -> String -> Regex
compileRegex Bool
True "@(param|raise)\\s*"
regex_'40'28author'7cdeprecated'7creturn'7csince'7cversion'29 :: Regex
regex_'40'28author'7cdeprecated'7creturn'7csince'7cversion'29 = Bool -> String -> Regex
compileRegex Bool
True "@(author|deprecated|return|since|version)"
regex_'40'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a :: Regex
regex_'40'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a = Bool -> String -> Regex
compileRegex Bool
True "@`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
regex_'5b__'5d'2a'2d'5cs :: Regex
regex_'5b__'5d'2a'2d'5cs = Bool -> String -> Regex
compileRegex Bool
True "[  ]*-\\s"
regex_'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5c'2e'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'2a :: Regex
regex_'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5c'2e'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'2a = Bool -> String -> Regex
compileRegex Bool
True "`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\.`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)*"

parseRules :: (String, String) -> KateParser Token
parseRules ("Objective Caml","Code") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False '[' KateParser 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 ("Objective Caml","Nested Code 1"))
   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 -> KateParser String
pDetectChar Bool
False '{' KateParser 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 ("Objective Caml","Nested Code 2"))
   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 -> String -> KateParser String
pString Bool
False "(**)" KateParser 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
<|>
   ((Bool -> String -> KateParser String
pString Bool
False "(**" KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","Ocamldoc"))
   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 String
pRegExpr Regex
regex_'5c'28'5c'2a'5c'24'28T'7cQ'7cR'7c'3d'29 KateParser 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 ("Objective Caml","qtest header"))
   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 String
pDetect2Chars Bool
False '(' '*' KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","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 String SyntaxState Identity ()
pFirstNonSpace ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser String
pRegExpr Regex
regex_'23'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'2e'2a'24 KateParser 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
<|>
   ((Bool -> Char -> KateParser String
pDetectChar Bool
False '"' KateParser 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
StringTok) 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 ("Objective Caml","String"))
   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 String
pRegExpr Regex
regex_'27'28'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29'7c'5b'5e'27'5d'29'27 KateParser 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
CharTok))
   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 String
pDetect2Chars Bool
False '<' '<' KateParser 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
StringTok) 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 ("Objective Caml","Camlp4 Quotation"))
   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 String
pRegExpr Regex
regex_'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c KateParser 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
StringTok) 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 ("Objective Caml","Camlp4 Quotation"))
   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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Keywords KateParser 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
KeywordTok))
   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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Revised_Syntax_Keywords KateParser 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
<|>
   ((String -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Flow_Control_Functions KateParser 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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Pervasive_Functions KateParser 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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Pervasive_Types KateParser 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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Pervasive_Exceptions KateParser 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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Pervasive_Variant_Tags KateParser 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 -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_Standard_Library_Modules KateParser 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 -> KateParser String
pRegExpr Regex
regex_'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337'5f'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a KateParser 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 -> KateParser String
pRegExpr Regex
regex_'60'3f'5bA'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a KateParser 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 -> KateParser String
pRegExpr Regex
regex_'2d'3f0'5bxX'5d'5b0'2d9A'2dFa'2df'5f'5d'2b KateParser 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 -> KateParser String
pRegExpr Regex
regex_'2d'3f0'5boO'5d'5b0'2d7'5f'5d'2b KateParser 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 -> KateParser String
pRegExpr Regex
regex_'2d'3f0'5bbB'5d'5b01'5f'5d'2b KateParser 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 -> KateParser String
pRegExpr Regex
regex_'2d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5c'2e'5b0'2d9'5d'5b0'2d9'5f'5d'2a'28'5beE'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'29'3f'7c'5beE'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a'29 KateParser 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 -> KateParser String
pRegExpr Regex
regex_'2d'3f'5b0'2d9'5d'5b0'2d9'5f'5d'2a KateParser 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
DecValTok))
   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 ("Objective Caml","Unmatched Closing Brackets")))
   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
== ("Objective Caml","Code")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Nested Code 1") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False ']' KateParser 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
>>~ (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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","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
<|>
   (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
== ("Objective Caml","Nested Code 1")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Nested Code 2") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False '}' KateParser 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
>>~ (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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","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
<|>
   (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
== ("Objective Caml","Nested Code 2")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","String") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False '"' KateParser 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
StringTok) 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
<|>
   ((Regex -> KateParser String
pRegExpr Regex
regex_'28'5c'5c'5bntbr'27'22'5c'5c'5d'7c'5c'5c'5b0'2d9'5d'7b3'7d'7c'5c'5cx'5b0'2d9A'2dFa'2df'5d'7b2'7d'29 KateParser 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
CharTok))
   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 String
pRegExpr Regex
regex_'5c'5c'24 KateParser 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
CharTok))
   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
== ("Objective Caml","String")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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
StringTok))

parseRules ("Objective Caml","qtest header") =
  (((String -> Set String -> KateParser String
pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" Set String
list_qtest_keywords KateParser 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
KeywordTok))
   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 -> KateParser String
pDetectChar Bool
False '&' KateParser 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 ("Objective Caml","qtest param"))
   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 String
pRegExpr Regex
regex_'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337'5f'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a KateParser 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
== ("Objective Caml","qtest header")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","qtest param") =
  (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
== ("Objective Caml","qtest param")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","qtest") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
>>~ (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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","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
<|>
   (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
== ("Objective Caml","qtest")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Comment") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '(' '*' KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","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
<|>
   ((Bool -> Char -> KateParser String
pDetectChar Bool
False '"' KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","String in 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
<|>
   (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
== ("Objective Caml","Comment")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","String in Comment") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False '"' KateParser 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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","String")))
   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
== ("Objective Caml","String in Comment")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Camlp4 Quotation") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '>' '>' KateParser 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
StringTok) 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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '<' '<' KateParser 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
StringTok) 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 ("Objective Caml","Camlp4 Quotation"))
   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 String
pRegExpr Regex
regex_'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c KateParser 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
StringTok) 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 ("Objective Caml","Camlp4 Quotation"))
   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 String
pRegExpr Regex
regex_'5c'5c'28'5c'5c'7c'3e'3e'7c'3c'3c'29 KateParser 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
CharTok))
   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 String
pRegExpr Regex
regex_'5c'5c'3c'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'3c KateParser 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
CharTok))
   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
== ("Objective Caml","Camlp4 Quotation")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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
StringTok))

parseRules ("Objective Caml","Ocamldoc") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
<|>
   ((Regex -> KateParser String
pRegExpr Regex
regex_'5c'5c'2e KateParser 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
CharTok))
   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 -> String -> KateParser String
pString Bool
False "(**)" KateParser 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
<|>
   ((Bool -> String -> KateParser String
pString Bool
False "(**" KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","Ocamldoc"))
   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 String
pDetect2Chars Bool
False '(' '*' KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","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
<|>
   ((Bool -> Char -> KateParser String
pDetectChar Bool
False '"' KateParser 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
>>~ (String, String) -> ParsecT String SyntaxState Identity ()
pushContext ("Objective Caml","String in 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
<|>
   ((Bool -> Char -> KateParser String
pDetectChar Bool
False '[' KateParser 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
-> 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 ("Objective Caml","Ocamldoc 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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '{' '[' KateParser 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
-> 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 ("Objective Caml","Ocamldoc Preformatted"))
   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 String
pDetect2Chars Bool
False '{' '%' KateParser 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
-> 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 ("Objective Caml","Ocamldoc LaTeX"))
   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 String
pDetect2Chars Bool
False '{' '^' KateParser 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
-> 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 ("Objective Caml","Nested Ocamldoc"))
   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 String
pRegExpr Regex
regex_'5b'7b'5dv'28'5cs'7c'24'29 KateParser 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
-> 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 ("Objective Caml","Ocamldoc Verbatim"))
   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 String
pRegExpr Regex
regex_'5b'7b'5db'28'5cs'7c'24'29 KateParser 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
-> 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 ("Objective Caml","Ocamldoc Bold"))
   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 String
pRegExpr Regex
regex_'5b'7b'5di'28'5cs'7c'24'29 KateParser 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
-> 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 ("Objective Caml","Ocamldoc Italic"))
   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 String
pRegExpr Regex
regex_'5b'7b'5de'28'5cs'7c'24'29 KateParser 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
-> 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 ("Objective Caml","Ocamldoc Emphasised"))
   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 String
pRegExpr Regex
regex_'5b'7b'5d'5b0'2d9'5d'2b'28'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'3f'5cs KateParser 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
-> 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 ("Objective Caml","Ocamldoc Heading"))
   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 String
pRegExpr Regex
regex_'5b'7b'5d'5b'7b'5d'3a'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'5b'7d'5d KateParser 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
-> 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 ("Objective Caml","Ocamldoc Link"))
   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 String
pRegExpr Regex
regex_'5b'7b'5d'21'28'5ba'2dz'5d'2b'3a'29'3f KateParser 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
-> 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 ("Objective Caml","Ocamldoc References"))
   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 String
pRegExpr Regex
regex_'5b'7b'5d'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5cs'7c'24'29 KateParser 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
-> 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 ("Objective Caml","Nested Ocamldoc"))
   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 String
pRegExpr Regex
regex_'40see'5cs'2a'28'3c'5b'5e'3e'5d'2a'3e'7c'22'5b'5e'22'5d'2a'22'7c'27'5b'5e'27'5d'2a'27'29 KateParser 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 -> KateParser String
pRegExpr Regex
regex_'40'28param'7craise'29'5cs'2a KateParser 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
-> 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 ("Objective Caml","Ocamldoc Identifier"))
   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 String
pRegExpr Regex
regex_'40'28author'7cdeprecated'7creturn'7csince'7cversion'29 KateParser 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 -> KateParser String
pRegExpr Regex
regex_'40'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a KateParser 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
<|>
   ((Int -> ParsecT String SyntaxState Identity ()
forall tok st. Int -> GenParser tok st ()
pColumn 0 ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Regex -> KateParser String
pRegExpr Regex
regex_'5b__'5d'2a'2d'5cs KateParser 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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","Unmatched Closing Brackets")))
   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
== ("Objective Caml","Ocamldoc")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Code") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False ']' KateParser 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
-> 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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","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
<|>
   (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
== ("Objective Caml","Ocamldoc Code")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Preformatted") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False ']' '}' KateParser 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
-> 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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","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
<|>
   (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
== ("Objective Caml","Ocamldoc Preformatted")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Verbatim") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False 'v' '}' KateParser 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
-> 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
== ("Objective Caml","Ocamldoc Verbatim")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc LaTeX") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '%' '}' KateParser 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
-> 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
<|>
   ((Maybe (String, String) -> KateParser Token
Text.Highlighting.Kate.Syntax.Latex.parseExpression ((String, String) -> Maybe (String, String)
forall a. a -> Maybe a
Just ("LaTeX","")) KateParser Token -> (Token -> 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) (String -> KateParser Token)
-> (Token -> String) -> Token -> KateParser Token
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Token -> String
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
<|>
   (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
== ("Objective Caml","Ocamldoc LaTeX")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Identifier") =
  (((Regex -> KateParser String
pRegExpr Regex
regex_'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5c'2e'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'2a KateParser 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
>>~ (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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
ErrorTok) 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
pDetectSpaces KateParser 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
ErrorTok))
   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
== ("Objective Caml","Ocamldoc Identifier")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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
ErrorTok))

parseRules ("Objective Caml","Nested Ocamldoc") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False '}' KateParser 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
-> 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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
ErrorTok) 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
<|>
   (((String, String) -> KateParser Token
parseRules ("Objective Caml","Ocamldoc")))
   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
== ("Objective Caml","Nested Ocamldoc")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Bold") =
  ((((String, String) -> KateParser Token
parseRules ("Objective Caml","Nested Ocamldoc")))
   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
== ("Objective Caml","Ocamldoc Bold")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Italic") =
  ((((String, String) -> KateParser Token
parseRules ("Objective Caml","Nested Ocamldoc")))
   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
== ("Objective Caml","Ocamldoc Italic")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Emphasised") =
  ((((String, String) -> KateParser Token
parseRules ("Objective Caml","Nested Ocamldoc")))
   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
== ("Objective Caml","Ocamldoc Emphasised")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Heading") =
  ((((String, String) -> KateParser Token
parseRules ("Objective Caml","Nested Ocamldoc")))
   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
== ("Objective Caml","Ocamldoc Heading")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc Link") =
  ((((String, String) -> KateParser Token
parseRules ("Objective Caml","Nested Ocamldoc")))
   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
== ("Objective Caml","Ocamldoc Link")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("Objective Caml","Ocamldoc References") =
  (((Bool -> Char -> KateParser String
pDetectChar Bool
False '}' KateParser 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
-> 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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
ErrorTok) 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
<|>
   ((Regex -> KateParser String
pRegExpr Regex
regex_'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'28'5c'2e'60'3f'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c377'5d'5ba'2dz'5c300'2d'5c326'5c330'2d'5c337A'2dZ'5c340'2d'5c366'5c370'2d'5c3770'2d9'5f'27'5d'2a'29'2a KateParser 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
<|>
   ((KateParser String
pDetectSpaces KateParser 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
<|>
   (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
== ("Objective Caml","Ocamldoc References")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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
ErrorTok))

parseRules ("Objective Caml","Unmatched Closing Brackets") =
  (((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False '*' ')' KateParser 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
ErrorTok) 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
<|>
   ((Bool -> Char -> Char -> KateParser String
pDetect2Chars Bool
False 'v' '}' KateParser 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
ErrorTok))
   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 String
pDetect2Chars Bool
False ']' '}' KateParser 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
ErrorTok))
   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 String
pDetect2Chars Bool
False '%' '}' KateParser 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
ErrorTok))
   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 -> KateParser String
pDetectChar Bool
False ']' KateParser 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
ErrorTok))
   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 -> KateParser String
pDetectChar Bool
False '}' KateParser 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
ErrorTok))
   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
== ("Objective Caml","Unmatched Closing Brackets")) ParsecT String SyntaxState Identity ()
-> KateParser String -> KateParser String
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> KateParser String
pDefault KateParser 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 ("LaTeX", _) = Maybe (String, String) -> KateParser Token
Text.Highlighting.Kate.Syntax.Latex.parseExpression Maybe (String, String)
forall a. Maybe a
Nothing

parseRules x :: (String, String)
x = (String, String) -> KateParser Token
parseRules ("Objective Caml","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
<|> 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)