packages feed

skylighting-core 0.10.5.2 → 0.11

raw patch · 39 files changed

+5777/−1440 lines, 39 files

Files

changelog.md view
@@ -1,5 +1,25 @@ # Revision history for skylighting and skylighting-core +## 0.11++  * Skylighting.Regex: Support regex subroutines (#118).  For example,+    `(?1)` is replaced by the regex in the first capturing group.  So far+    we only support this simple, absolute form, not the relative+    form `(?-1)` supported by some engines (but not used, I think, in+    KDE's syntax highlighters).  This change involves an API change:+    Regex in Skylighting.Regex has a new Subroutine constructor,+    and the Recurse constructor has been removed.  Instead of Recurse we use+    Subroutine 0, which unifies the code.++  * Skylighting.Regex: handle e.g. `[\1]` and `[\123]` (without+    initial 0) as octal escapes (#118).  These occur in the zsh.xml+    syntax definition.++  * Pull xml definitions for bash, cmake, python, zsh from upstream.++  * README: Add a note about pulling syntax definitions from upstream (#138).+    Update build instructions for recent cabal versions (#131).+ ## 0.10.5.2    * Added swift grammar definition (Igor Ranieri).
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name:                skylighting-core-version:             0.10.5.2+version:             0.11 synopsis:            syntax highlighting library description:         Skylighting is a syntax highlighting library.                      It derives its tokenizers from XML syntax
src/Regex/KDE/Compile.hs view
@@ -56,7 +56,7 @@      lift . pSuffix  pParenthesized :: Bool -> RParser Regex-pParenthesized caseSensitive = (do+pParenthesized caseSensitive = do   _ <- lift (satisfy (== 40))   -- pcrepattern says: A group that starts with (?| resets the capturing   -- parentheses numbers in each alternative.@@ -74,8 +74,7 @@                   then put currentCaptureNumber                   else return ()) >> pAltPart caseSensitive) <|> pure mempty))   _ <- lift (satisfy (== 41))-  return $ modifier contents)-  <|> Recurse <$ (lift (string "(?R)" <|> string "(?0)"))+  return $ modifier contents  pGroupModifiers :: Parser (Regex -> Regex) pGroupModifiers =@@ -83,6 +82,12 @@    <|>      do dir <- option Forward $ Backward <$ char '<'         (AssertPositive dir <$ char '=') <|> (AssertNegative dir <$ char '!')+   <|>+     do n <- satisfy (\d -> d >= 48 && d <= 57)+        return (\_ -> Subroutine (fromIntegral n - 48))+   <|>+     do _ <- satisfy (== 82) -- R+        return  (\_ -> Subroutine 0)  pSuffix :: Regex -> Parser Regex pSuffix re = option re $ do@@ -186,6 +191,16 @@     '0' -> do -- \0ooo matches octal ooo       ds <- A.take 3       case readMay ("'\\o" ++ U.toString ds ++ "'") of+        Just x  -> return x+        Nothing -> fail "invalid octal character escape"+    _ | c >= '1' && c <= '7' -> do+      -- \123 matches octal 123, \1 matches octal 1+      let octalDigitScanner s w+            | s < 3, w >= 48 && w <= 55+                        = Just (s + 1) -- digits 0-7+            | otherwise = Nothing+      ds <- A.scan (1 :: Int) octalDigitScanner+      case readMay ("'\\o" ++ [c] ++ U.toString ds ++ "'") of         Just x  -> return x         Nothing -> fail "invalid octal character escape"     'z' -> do -- \zhhhh matches unicode hex char hhhh
src/Regex/KDE/Match.hs view
@@ -48,30 +48,30 @@               then Set.take sizeLimit ms               else ms --- first argument is the "top-level" regex, needed for Recurse.-exec :: Regex -> Direction -> Regex -> Set Match -> Set Match+-- first argument is a map of capturing groups, needed for Subroutine.+exec :: M.IntMap Regex -> Direction -> Regex -> Set Match -> Set Match exec _ _ MatchNull = id-exec top dir (Lazy re) = -- note: the action is below under Concat-  exec top dir (MatchConcat (Lazy re) MatchNull)-exec top dir (Possessive re) =+exec cgs dir (Lazy re) = -- note: the action is below under Concat+  exec cgs dir (MatchConcat (Lazy re) MatchNull)+exec cgs dir (Possessive re) =   foldr-    (\elt s -> case Set.lookupMin (exec top dir re (Set.singleton elt)) of+    (\elt s -> case Set.lookupMin (exec cgs dir re (Set.singleton elt)) of                  Nothing -> s                  Just m  -> Set.insert m s)     mempty-exec top dir (MatchDynamic n) = -- if this hasn't been replaced, match literal-  exec top dir (MatchChar (== '%') <>+exec cgs dir (MatchDynamic n) = -- if this hasn't been replaced, match literal+  exec cgs dir (MatchChar (== '%') <>             mconcat (map (\c -> MatchChar (== c)) (show n))) exec _ _ AssertEnd = Set.filter (\m -> matchOffset m == B.length (matchBytes m)) exec _ _ AssertBeginning = Set.filter (\m -> matchOffset m == 0)-exec top _ (AssertPositive dir regex) =+exec cgs _ (AssertPositive dir regex) =   Set.unions . Set.map     (\m -> Set.map (\m' -> -- we keep captures but not matches                             m'{ matchBytes = matchBytes m,                                matchOffset = matchOffset m })-           $ exec top dir regex (Set.singleton m))-exec top _ (AssertNegative dir regex) =-  Set.filter (\m -> null (exec top dir regex (Set.singleton m)))+           $ exec cgs dir regex (Set.singleton m))+exec cgs _ (AssertNegative dir regex) =+  Set.filter (\m -> null (exec cgs dir regex (Set.singleton m))) exec _ _ AssertWordBoundary = Set.filter atWordBoundary exec _ Forward MatchAnyChar = mapMatching $ \m ->   case U.decode (B.drop (matchOffset m) (matchBytes m)) of@@ -92,12 +92,12 @@       case U.decode (B.drop off (matchBytes m)) of         Just (c,_) | f c -> m{ matchOffset = off }         _                -> m{ matchOffset = -1 }-exec top dir (MatchConcat (MatchConcat r1 r2) r3) =-  exec top dir (MatchConcat r1 (MatchConcat r2 r3))-exec top Forward (MatchConcat (Lazy r1) r2) =+exec cgs dir (MatchConcat (MatchConcat r1 r2) r3) =+  exec cgs dir (MatchConcat r1 (MatchConcat r2 r3))+exec cgs Forward (MatchConcat (Lazy r1) r2) =   Set.foldl Set.union mempty . Set.map     (\m ->-      let ms1 = exec top Forward r1 (Set.singleton m)+      let ms1 = exec cgs Forward r1 (Set.singleton m)        in if Set.null ms1              then ms1              else go ms1)@@ -105,30 +105,30 @@   go ms = case Set.lookupMax ms of   -- find shortest match             Nothing -> Set.empty             Just m' ->-              let s' = exec top Forward r2 (Set.singleton m')+              let s' = exec cgs Forward r2 (Set.singleton m')                in if Set.null s'                      then go (Set.delete m' ms)                      else s'-exec top Forward (MatchConcat r1 r2) = -- TODO longest match first+exec cgs Forward (MatchConcat r1 r2) = -- TODO longest match first   \ms ->-    let ms1 = exec top Forward r1 ms+    let ms1 = exec cgs Forward r1 ms      in if Set.null ms1            then ms1-           else exec top Forward r2 (prune ms1)-exec top Backward (MatchConcat r1 r2) =-  exec top Backward r1 . exec top Backward r2-exec top dir (MatchAlt r1 r2) = \ms -> exec top dir r1 ms <> exec top dir r2 ms-exec top dir (MatchSome re) = go+           else exec cgs Forward r2 (prune ms1)+exec cgs Backward (MatchConcat r1 r2) =+  exec cgs Backward r1 . exec cgs Backward r2+exec cgs dir (MatchAlt r1 r2) = \ms -> exec cgs dir r1 ms <> exec cgs dir r2 ms+exec cgs dir (MatchSome re) = go  where-  go ms = case exec top dir re ms of+  go ms = case exec cgs dir re ms of             ms' | Set.null ms' -> Set.empty                 | ms' == ms    -> ms                 | otherwise    -> let ms'' = prune ms'                                    in ms'' <> go ms''-exec top dir (MatchCapture i re) =+exec cgs dir (MatchCapture i re) =   Set.foldr Set.union Set.empty .    Set.map (\m ->-     Set.map (captureDifference m) (exec top dir re (Set.singleton m)))+     Set.map (captureDifference m) (exec cgs dir re (Set.singleton m)))  where     captureDifference m m' =       let len = matchOffset m' - matchOffset m@@ -149,9 +149,10 @@                         -> m{ matchOffset = matchOffset m - B.length capture }                      _  -> m{ matchOffset = -1 }        Nothing -> m{ matchOffset = -1 }-exec top dir Recurse = \ms -> if Set.null ms-                                 then ms-                                 else exec top dir top ms+exec cgs dir (Subroutine i) =+  case M.lookup i cgs of+    Nothing -> id  -- ignore references to nonexistent groups+    Just re' -> exec cgs dir re'  atWordBoundary :: Match -> Bool atWordBoundary m =@@ -190,8 +191,24 @@            -> ByteString            -> Maybe (ByteString, M.IntMap (Int, Int)) matchRegex re bs =-  toResult <$> Set.lookupMin-               (exec re Forward re (Set.singleton (Match bs 0 M.empty)))+  let capturingGroups = extractCapturingGroups re+  in  toResult <$> Set.lookupMin+               (exec capturingGroups Forward re+                  (Set.singleton (Match bs 0 M.empty)))  where    toResult m = (B.take (matchOffset m) (matchBytes m), (matchCaptures m)) +extractCapturingGroups :: Regex -> M.IntMap Regex+extractCapturingGroups regex = M.singleton 0 regex <>+  case regex of+    MatchSome re -> extractCapturingGroups re+    MatchAlt re1 re2 ->+      extractCapturingGroups re1 <> extractCapturingGroups re2+    MatchConcat re1 re2 ->+      extractCapturingGroups re1 <> extractCapturingGroups re2+    MatchCapture i re -> M.singleton i re+    AssertPositive _ re -> extractCapturingGroups re+    AssertNegative _ re -> extractCapturingGroups re+    Possessive re -> extractCapturingGroups re+    Lazy re -> extractCapturingGroups re+    _ -> mempty
src/Regex/KDE/Regex.hs view
@@ -30,7 +30,7 @@   AssertNegative !Direction !Regex |   Possessive !Regex |   Lazy !Regex |-  Recurse |+  Subroutine !Int |   MatchNull  instance Show Regex where@@ -53,7 +53,7 @@                   show dir <> " " <> show re <> ")"   show (Possessive re) = "(Possessive " <> show re <> ")"   show (Lazy re) = "(Lazy " <> show re <> ")"-  show Recurse = "Recurse"+  show (Subroutine i) = "(Subroutine " <> show i <> ")"   show MatchNull = "MatchNull"  instance Semigroup Regex where
src/Skylighting/Format/HTML.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE CPP #-}+{-# LANGUAGE NoOverloadedStrings #-} module Skylighting.Format.HTML (       formatHtmlInline     , formatHtmlBlock
test/expected/abc.julia.native view
@@ -3,31 +3,38 @@   , ( OperatorTok , "," )   , ( NormalTok , " list)" )   ]-, [ ( NormalTok , "  isempty(str) " )+, [ ( NormalTok , "  " )+  , ( FunctionTok , "isempty" )+  , ( NormalTok , "(str) " )   , ( OperatorTok , "&&" )   , ( NormalTok , " " )-  , ( KeywordTok , "return" )+  , ( ControlFlowTok , "return" )   , ( NormalTok , " " )-  , ( ExtensionTok , "true" )+  , ( ConstantTok , "true" )   ] , [ ( NormalTok , "  " )-  , ( KeywordTok , "for" )+  , ( ControlFlowTok , "for" )   , ( NormalTok , " i " )   , ( OperatorTok , "=" )   , ( NormalTok , " " )   , ( FloatTok , "1" )   , ( OperatorTok , ":" )-  , ( NormalTok , "length(list)" )+  , ( FunctionTok , "length" )+  , ( NormalTok , "(list)" )   ] , [ ( NormalTok , "    str[" )-  , ( KeywordTok , "end" )+  , ( ControlFlowTok , "end" )   , ( NormalTok , "] " )   , ( KeywordTok , "in" )   , ( NormalTok , " list[i] " )   , ( OperatorTok , "&&" )   , ( NormalTok , " " )   ]-, [ ( NormalTok , "    any([abc(str[" )+, [ ( NormalTok , "    " )+  , ( FunctionTok , "any" )+  , ( NormalTok , "([" )+  , ( FunctionTok , "abc" )+  , ( NormalTok , "(str[" )   , ( FloatTok , "1" )   , ( OperatorTok , ":" )   , ( KeywordTok , "end" )@@ -35,19 +42,21 @@   , ( FloatTok , "1" )   , ( NormalTok , "]" )   , ( OperatorTok , "," )-  , ( NormalTok , " deleteat" )-  , ( OperatorTok , "!" )-  , ( NormalTok , "(copy(list)" )+  , ( NormalTok , " " )+  , ( FunctionTok , "deleteat!" )+  , ( NormalTok , "(" )+  , ( FunctionTok , "copy" )+  , ( NormalTok , "(list)" )   , ( OperatorTok , "," )   , ( NormalTok , " i))]) " )   , ( OperatorTok , "&&" )   ] , [ ( NormalTok , "    " )-  , ( KeywordTok , "return" )+  , ( ControlFlowTok , "return" )   , ( NormalTok , " " )-  , ( ExtensionTok , "true" )+  , ( ConstantTok , "true" )   ] , [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]-, [ ( NormalTok , "  " ) , ( ExtensionTok , "false" ) ]+, [ ( NormalTok , "  " ) , ( ConstantTok , "false" ) ] , [ ( KeywordTok , "end" ) ] ]
test/expected/archive.rhtml.native view
@@ -32,7 +32,9 @@   ] , [ ( NormalTok , "  " )   , ( KeywordTok , "<p><label" )-  , ( OtherTok , " for=" )+  , ( NormalTok , " " )+  , ( ErrorTok , "for" )+  , ( OtherTok , "=" )   , ( StringTok , "\"start_date\"" )   , ( KeywordTok , ">" )   , ( NormalTok , "From" )@@ -55,7 +57,9 @@   ] , [ ( NormalTok , "  " )   , ( KeywordTok , "<label" )-  , ( OtherTok , " for=" )+  , ( NormalTok , " " )+  , ( ErrorTok , "for" )+  , ( OtherTok , "=" )   , ( StringTok , "\"end_date\"" )   , ( KeywordTok , ">" )   , ( NormalTok , "To" )@@ -85,7 +89,9 @@   ] , [ ( NormalTok , "  " )   , ( KeywordTok , "<p><label" )-  , ( OtherTok , " for=" )+  , ( NormalTok , " " )+  , ( ErrorTok , "for" )+  , ( OtherTok , "=" )   , ( StringTok , "\"event_series\"" )   , ( KeywordTok , ">" )   , ( NormalTok , "Series" )
test/test-skylighting.hs view
@@ -103,10 +103,10 @@                 testCase ("regex " <>                            (Text.unpack $ TE.decodeUtf8 regex) <> " in "                            <> sFilename syn)-             $ assertBool "regex does not compile"-               $ case compileRegex True regex of-                         Right _ -> True-                         Left _  -> False) $ getRegexesFromSyntax syn))+             $ case compileRegex True regex of+                 Right _ -> assertBool "regex does not compile" True+                 Left e -> assertFailure ("regex does not compile: " <> show e))+                         $ getRegexesFromSyntax syn))         syntaxes     , testGroup "Regex module" $ map regexTest regexTests     , testGroup "Regression tests" $@@ -318,6 +318,12 @@   , ("(?|(abc)|(def))", "def", Just ("def", [(1,"def")]))   , ("(?:(abc)|(def))", "def", Just ("def", [(2,"def")]))   , ("d(?=(bc)|(ef))", "def", Just ("d", [(2,"ef")]))+  , ("([bcd])([efg])(?2)(?1)", "befd", Just ("befd", [(1,"b"),(2,"e")]))+  , ("([abc](?1)*)", "abcd", Just ("abc", [(1,"abc")]))+  , ("(x(?1)*)", "xxxxy", Just ("xxxx", [(1,"xxxx")]))+  , ("a|\\((?0)\\)", "(((a)))", Just ("(((a)))", []))+  , ("([abc](x(?1))*)", "axbxcc", Just ("axbxc", [(1,"axbxc"),(2,"xc")]))+    -- note: pcre gives insetad (2, "xbxc") -- I don't understand why   ]  
xml/agda.xml view
@@ -3,7 +3,7 @@   <!ENTITY charsdelim "_;.&#34;(){}@">   <!ENTITY wordsep "(?=[&charsdelim;]|\s|$)"> ]>-<language name="Agda" version="8" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">+<language name="Agda" version="9" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">   <highlighting>     <list name="reserved keywords">       <item>abstract</item>@@ -23,6 +23,7 @@       <item>infixl</item>       <item>infixr</item>       <item>instance</item>+      <item>interleaved</item>       <item>let</item>       <item>macro</item>       <item>module</item>@@ -36,13 +37,12 @@       <item>private</item>       <item>public</item>       <item>quote</item>-      <item>quoteGoal</item>       <item>quoteTerm</item>       <item>record</item>       <item>renaming</item>       <item>rewrite</item>-      <item>tactic</item>       <item>syntax</item>+      <item>tactic</item>       <item>to</item>       <item>unquote</item>       <item>unquoteDecl</item>
xml/bash.xml view
@@ -5,7 +5,7 @@         <!ENTITY funcname "([^&_fragpathseps;}=#$]|[+!@](?!\())([^&_fragpathseps;}=$]*+([+!@](?!\())?+)*+">         <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">         <!ENTITY eos      "(?=$|[ &tab;])">                 <!-- eol or space following -->-        <!ENTITY eoexpr   "(?=$|[ &tab;&lt;>|&amp;;])">+        <!ENTITY eoexpr   "(?=$|[ &tab;&lt;>|&amp;;)])">          <!ENTITY substseps  "${'&quot;`\\">         <!ENTITY symbolseps "&lt;>|&amp;;()"> <!-- see man bash -->@@ -18,6 +18,13 @@         <!ENTITY opt        "(?:[^&_fragpathseps;=/]*+&_fragpathnosep;)*+">         <!ENTITY pathpart   "(?:~|\.\.?|&fragpath;)(?:/&path;|(?=[*?]|[+!@]\(|&fragpath;(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=[&wordseps;]|$)"> +        <!ENTITY _fragpathseps_alt  "*?+!@&substseps;}">+        <!ENTITY _fragpathnosep_alt "(?:[+!@](?!\()|\\.)?+">+        <!ENTITY path_alt       "(?:[^&_fragpathseps_alt;]*+&_fragpathnosep_alt;)*+">+        <!ENTITY fragpath_alt   "(?:[^&_fragpathseps_alt;/]*+&_fragpathnosep_alt;)*+">+        <!ENTITY opt_alt        "(?:[^&_fragpathseps_alt;=/]*+&_fragpathnosep_alt;)*+">+        <!ENTITY pathpart_alt   "(?:~|\.\.?|&fragpath_alt;)(?:/&path_alt;|(?=[*?]|[+!@]\(|&fragpath_alt;(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=\}|$)">+         <!ENTITY _braceexpansion_spe     " &tab;&lt;>|&amp;;{}\\`'&quot;$">         <!ENTITY _brace_noexpansion       "\{[^&_braceexpansion_spe;,]*+\}">         <!ENTITY _braceexpansion_var     "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">@@ -28,9 +35,11 @@         <!ENTITY braceexpansion "{&_braceexpansion;">          <!ENTITY heredocq "(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">++        <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])"> ]> -<language name="Bash" version="27" kateversion="5.79" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">+<language name="Bash" version="30" kateversion="5.79" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">  <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)     Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)@@ -40,6 +49,7 @@    <highlighting>     <list name="keywords">+      <item>break</item>       <item>case</item>       <item>continue</item>       <item>do</item>@@ -66,7 +76,6 @@       <item>alias</item>       <item>bg</item>       <item>bind</item>-      <item>break</item>       <item>builtin</item>       <item>cd</item>       <item>caller</item>@@ -458,7 +467,7 @@         <DetectSpaces attribute="Normal Text" context="#stay"/>         <DetectChar attribute="Comment" context="Comment" char="#"/>         <!-- start expression in double parentheses -->-        <Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression"/>+        <Detect2Chars context="ExprDblParenOrSubShell" char="(" char1="(" lookAhead="1"/>         <!-- start a subshell -->         <DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell"/>         <!-- start expression in single/double brackets -->@@ -554,8 +563,8 @@       </context>       <context attribute="Command" lineEndContext="#pop#pop" name="DispatchSubstVariables">         <Detect2Chars attribute="Parameter Expansion" context="#pop!VarBraceStart" char="$" char1="{"/>-        <StringDetect attribute="Parameter Expansion" context="#pop!ExprDblParenSubst" String="$((" beginRegion="expression"/>-        <Detect2Chars attribute="Parameter Expansion" context="#pop!SubstCommand" char="$" char1="("/>+        <StringDetect context="#pop!ExprDblParenSubstOrSubstCommand" String="$((" lookAhead="1"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop!SubstCommand" char="$" char1="(" beginRegion="subshell"/>       </context>       <context attribute="Command" lineEndContext="#pop#pop" name="DispatchStringVariables">         <Detect2Chars attribute="String SingleQ" context="#pop!StringEsc" char="$" char1="'"/>@@ -695,27 +704,30 @@       </context>       <context attribute="Path" lineEndContext="#stay" name="ExtGlobAndPop">         <DetectChar attribute="Glob" context="#pop!PathThenPop" char=")"/>-        <IncludeRules context="IncExtGlob"/>-      </context>-      <context attribute="Path" lineEndContext="#stay" name="RecursiveExtGlob">-        <DetectChar attribute="Glob" context="#pop" char=")"/>+        <IncludeRules context="FindWord"/>         <IncludeRules context="IncExtGlob"/>       </context>-      <context attribute="Path" lineEndContext="#stay" name="IncExtGlob">+      <context attribute="Path" lineEndContext="#stay" name="FindExtGlob">         <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="?" char1="("/>         <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="*" char1="("/>         <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="+" char1="("/>         <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="@" char1="("/>         <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="!" char1="("/>         <AnyChar attribute="Glob" context="#stay" String="|?*"/>+      </context>+      <context attribute="Path" lineEndContext="#stay" name="RecursiveExtGlob">+        <DetectChar attribute="Glob" context="#pop" char=")"/>         <IncludeRules context="FindWord"/>+        <IncludeRules context="IncExtGlob"/>+      </context>+      <context attribute="Path" lineEndContext="#stay" name="IncExtGlob">+        <IncludeRules context="FindExtGlob"/>         <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>       </context>       <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPop">         <AnyChar context="#pop#pop" String="&wordseps;`" lookAhead="1"/>         <IncludeRules context="FindWord"/>-        <IncludeRules context="FindExtGlobAndPop"/>-        <AnyChar attribute="Glob" context="#stay" String="?*"/>+        <IncludeRules context="FindExtGlob"/>         <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>         <RegExpr attribute="Path" context="#stay" String="&path;"/>       </context>@@ -724,6 +736,47 @@         <DetectChar attribute="Path" context="#pop" char="{"/>       </context> +      <!-- FindPathThenPopInAlternateValue consumes path in ${xx:here}-->+      <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPopInAlternateValue">+        <IncludeRules context="FindExtGlobAndPopInAlternateValue"/>+        <AnyChar attribute="Glob" context="PathThenPopInAlternateValue" String="?*"/>+        <RegExpr attribute="Path" context="PathThenPopInAlternateValue" String="&pathpart_alt;"/>+      </context>+      <context attribute="Path" lineEndContext="#stay" name="FindExtGlobAndPopInAlternateValue">+        <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="?" char1="("/>+        <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="*" char1="("/>+        <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="+" char1="("/>+        <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="@" char1="("/>+        <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="!" char1="("/>+      </context>+      <context attribute="Path" lineEndContext="#stay" name="FindExtGlobInAlternateValue">+        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="?" char1="("/>+        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="*" char1="("/>+        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="+" char1="("/>+        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="@" char1="("/>+        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="!" char1="("/>+        <AnyChar attribute="Glob" context="#stay" String="|?*"/>+      </context>+      <context attribute="Path" lineEndContext="#stay" name="RecursiveExtGlobInAlternateValue">+        <DetectChar attribute="Glob" context="#pop" char=")"/>+        <DetectChar context="#pop" char="}" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindExtGlobInAlternateValue"/>+      </context>+      <context attribute="Path" lineEndContext="#stay" name="ExtGlobAndPopInAlternateValue">+        <DetectChar attribute="Glob" context="#pop!PathThenPopInAlternateValue" char=")"/>+        <DetectChar attribute="Error" context="#pop#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindExtGlobInAlternateValue"/>+      </context>+      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPopInAlternateValue">+        <DetectChar attribute="Parameter Expansion" context="#pop#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindExtGlobAndPopInAlternateValue"/>+        <AnyChar attribute="Glob" context="#stay" String="?*"/>+        <RegExpr attribute="Path" context="#stay" String="&path_alt;"/>+      </context>+       <context attribute="Pattern" lineEndContext="#stay" name="FindPattern">         <Detect2Chars attribute="Glob" context="ExtPattern" char="?" char1="("/>         <Detect2Chars attribute="Glob" context="ExtPattern" char="*" char1="("/>@@ -1038,7 +1091,7 @@        <!-- SubstCommand is called after a $( is encountered -->       <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand" fallthroughContext="Command">-        <DetectChar attribute="Parameter Expansion" context="#pop" char=")"/>+        <DetectChar attribute="Parameter Expansion" context="#pop" char=")" endRegion="subshell"/>         <IncludeRules context="Start"/>       </context> @@ -1084,7 +1137,7 @@         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="," char1=","/>         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarSub" char=":"/>         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarSubst" char="/"/>-        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" String="%#"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" String="-+=?#%"/>         <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" String="^,"/>         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarTransformation" char="@"/>       </context>@@ -1109,7 +1162,7 @@       <context attribute="Normal Text" lineEndContext="#stay" name="AlternateValue">         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>         <IncludeRules context="FindWord"/>-        <IncludeRules context="FindPattern"/>+        <IncludeRules context="FindPathThenPopInAlternateValue"/>       </context>        <!-- called as soon as ${xxx^ are ${xxx, are encoutered -->@@ -1125,7 +1178,7 @@       </context>       <context attribute="Pattern" lineEndContext="#stay" name="VarSubstPat">         <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="/"/>-        <IncludeRules context="AlternateValue"/>+        <IncludeRules context="AlternatePatternValue"/>       </context>        <!-- called as soon as ${xxx@ is encoutered -->@@ -1164,19 +1217,26 @@  <!-- ====== These are the contexts that can be branched to ======= --> +      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenOrSubShell">+        <RegExpr attribute="Keyword" context="#pop!SubShell" String="\((?=&arithmetic_as_subshell;)|" beginRegion="subshell"/>+        <Detect2Chars attribute="Keyword" context="#pop!ExprDblParen" char="(" char1="(" beginRegion="expression"/>+      </context>       <!-- ExprDblParen consumes an expression started in command mode till )) -->       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">         <DetectSpaces attribute="Normal Text" context="#stay"/>         <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression"/>         <IncludeRules context="FindExprDblParen"/>+        <!-- ((cmd+              ) # jump to SubShell context -->+        <DetectChar attribute="Keyword" context="#pop!SubShell" char=")" endRegion="expression" beginRegion="subshell"/>       </context>       <context attribute="Normal Text" lineEndContext="#stay" name="FindExprDblParen">         <Detect2Chars attribute="Control" context="#stay" char="&amp;" char1="&amp;"/>         <Detect2Chars attribute="Control" context="#stay" char="|" char1="|"/>         <AnyChar attribute="Operator" context="#stay" String="+-!~*/%&lt;>=&amp;^|?:"/>+        <AnyChar context="Number" String="0123456789" lookAhead="1"/>         <DetectChar attribute="Control" context="#stay" char=","/>         <DetectChar attribute="Normal Text" context="ExprSubDblParen" char="("/>-        <AnyChar context="Number" String="0123456789" lookAhead="1"/>         <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>         <IncludeRules context="FindWord"/>         <DetectChar attribute="Error" context="#stay" char="#"/>@@ -1184,8 +1244,9 @@         <DetectIdentifier attribute="Variable" context="#stay"/>       </context>       <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubDblParen">+        <DetectSpaces attribute="Normal Text" context="#stay"/>         <DetectChar attribute="Normal Text" context="#pop" char=")"/>-        <IncludeRules context="ExprDblParen"/>+        <IncludeRules context="FindExprDblParen"/>       </context>       <context attribute="Normal Text" lineEndContext="#pop" name="MaybeArithmeticBrace">         <IncludeRules context="DispatchBraceExpansion"/>@@ -1216,11 +1277,18 @@         <AnyChar attribute="Error" context="#stay" String="8901234567"/>       </context> +      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubstOrSubstCommand">+        <RegExpr attribute="Parameter Expansion" context="#pop!SubstCommand" String="\$\((?=&arithmetic_as_subshell;)|" beginRegion="subshell"/>+        <StringDetect attribute="Parameter Expansion" context="#pop!ExprDblParenSubst" String="$((" beginRegion="expression"/>+      </context>       <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">         <DetectSpaces attribute="Normal Text" context="#stay"/>         <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression"/>         <IncludeRules context="FindExprDblParen"/>+        <!-- $((cmd+              ) # jump to SubstCommand context -->+        <DetectChar attribute="Parameter Expansion" context="#pop!SubstCommand" char=")" endRegion="expression" beginRegion="subshell"/>       </context>        <!-- ExprBracket consumes an expression till ] -->@@ -1305,7 +1373,7 @@       </context>        <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValue">-        <Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression"/>+        <Detect2Chars context="ExprDblBracketDblParentOrSubValue" char="(" char1="(" lookAhead="1"/>         <DetectChar context="ExprDblBracketSubValue" char="(" lookAhead="1"/>         <DetectChar attribute="Operator" context="#pop#pop" char=")"/>         <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>@@ -1320,6 +1388,18 @@       <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketSubValue" fallthroughContext="#pop">         <DetectChar attribute="Operator" context="ExprDblBracketNot" char="("/>         <Detect2Chars context="#pop#pop" char="]" char1="]" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketDblParentOrSubValue">+        <RegExpr context="#pop!ExprDblBracketSubValue" String="\((?=&arithmetic_as_subshell;)|" lookAhead="1"/>+        <Detect2Chars attribute="Keyword" context="#pop!ExprDblBracketExprDblParen" char="(" char1="(" beginRegion="expression"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketExprDblParen">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression"/>+        <IncludeRules context="FindExprDblParen"/>+        <!-- ((cmd+              ) # jump to ExprDblBracketValue context -->+        <DetectChar attribute="Operator" context="ExprDblBracketValue" char=")" endRegion="expression" beginRegion="subshell"/>       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="ExprDblBracketValue">
xml/bibtex.xml view
@@ -6,7 +6,7 @@ 	  <!ENTITY latexCmd	  	"\\([a-zA-Z@]+|[^ ])"> 	  <!ENTITY refKeyFormat  	"[a-zA-Z0-9_@\\-\\:]+"> <!--taken from kile 2.0.3--> 	  ]>-<language name="BibTeX" version="4" kateversion="5.0" extensions="*.bib" section="Markup" mimetype="text/x-bib" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL">+<language name="BibTeX" version="5" kateversion="5.0" extensions="*.bib" section="Markup" mimetype="text/x-bib" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL">   <highlighting>     <list name="kw_entry">       <item>@article</item> @@ -76,7 +76,7 @@       <context name="CurlyBracket" attribute="Normal Text" lineEndContext="#stay"> 	      <DetectChar char="{" context="CurlyBracket"/> 	      <RegExpr String="&latexCmd;" attribute="LatexCommand" context="#stay"/>-	      <RegExpr String="}$" context="#pop#pop"/>+	      <LineContinue char="}" context="#pop#pop"/> 	      <DetectChar char="}" context="#pop"/>       </context> 
xml/cmake.xml view
@@ -22,7 +22,7 @@  <language     name="CMake"-    version="31"+    version="33"     kateversion="5.0"     section="Other"     extensions="CMakeLists.txt;*.cmake;*.cmake.in"@@ -39,6 +39,7 @@         <item>cmake_language</item>         <item>cmake_minimum_required</item>         <item>cmake_parse_arguments</item>+        <item>cmake_path</item>         <item>cmake_policy</item>         <item>configure_file</item>         <item>continue</item>@@ -196,6 +197,47 @@     <list name="cmake_parse_arguments_nargs">       <item>PARSE_ARGV</item>     </list>+    <list name="cmake_path_nargs">+      <item>ABSOLUTE_PATH</item>+      <item>APPEND</item>+      <item>APPEND_STRING</item>+      <item>BASE_DIRECTORY</item>+      <item>CONVERT</item>+      <item>EXTENSION</item>+      <item>FILENAME</item>+      <item>GET</item>+      <item>HASH</item>+      <item>HAS_EXTENSION</item>+      <item>HAS_FILENAME</item>+      <item>HAS_PARENT_PATH</item>+      <item>HAS_RELATIVE_PART</item>+      <item>HAS_ROOT_DIRECTORY</item>+      <item>HAS_ROOT_NAME</item>+      <item>HAS_ROOT_PATH</item>+      <item>HAS_STEM</item>+      <item>IS_ABSOLUTE</item>+      <item>IS_PREFIX</item>+      <item>IS_RELATIVE</item>+      <item>LAST_ONLY</item>+      <item>NATIVE_PATH</item>+      <item>NORMALIZE</item>+      <item>NORMAL_PATH</item>+      <item>OUTPUT_VARIABLE</item>+      <item>PARENT_PATH</item>+      <item>RELATIVE_PART</item>+      <item>RELATIVE_PATH</item>+      <item>REMOVE_EXTENSION</item>+      <item>REMOVE_FILENAME</item>+      <item>REPLACE_EXTENSION</item>+      <item>REPLACE_FILENAME</item>+      <item>ROOT_DIRECTORY</item>+      <item>ROOT_NAME</item>+      <item>ROOT_PATH</item>+      <item>SET</item>+      <item>STEM</item>+      <item>TO_CMAKE_PATH_LIST</item>+      <item>TO_NATIVE_PATH_LIST</item>+    </list>     <list name="cmake_policy_nargs">       <item>GET</item>       <item>POP</item>@@ -211,8 +253,10 @@       <item>@ONLY</item>       <item>COPYONLY</item>       <item>ESCAPE_QUOTES</item>+      <item>FILE_PERMISSIONS</item>       <item>NEWLINE_STYLE</item>       <item>NO_SOURCE_PERMISSIONS</item>+      <item>USE_SOURCE_PERMISSIONS</item>     </list>     <list name="configure_file_sargs">       <item>CRLF</item>@@ -291,6 +335,7 @@       <item>ARCHIVE_CREATE</item>       <item>ARCHIVE_EXTRACT</item>       <item>BASE_DIRECTORY</item>+      <item>BUNDLE_EXECUTABLE</item>       <item>CHMOD</item>       <item>CHMOD_RECURSE</item>       <item>COMPRESSION</item>@@ -300,13 +345,17 @@       <item>CONFIGURE_DEPENDS</item>       <item>CONTENT</item>       <item>COPY</item>+      <item>COPY_FILE</item>       <item>DESTINATION</item>+      <item>DIRECTORIES</item>       <item>DIRECTORY</item>       <item>DIRECTORY_PERMISSIONS</item>       <item>DOWNLOAD</item>       <item>ENCODING</item>       <item>ESCAPE_QUOTES</item>       <item>EXCLUDE</item>+      <item>EXECUTABLES</item>+      <item>EXPAND_TILDE</item>       <item>EXPECTED_HASH</item>       <item>EXPECTED_MD5</item>       <item>FILES</item>@@ -327,6 +376,7 @@       <item>INSTALL</item>       <item>LENGTH_MAXIMUM</item>       <item>LENGTH_MINIMUM</item>+      <item>LIBRARIES</item>       <item>LIMIT</item>       <item>LIMIT_COUNT</item>       <item>LIMIT_INPUT</item>@@ -337,17 +387,26 @@       <item>LOG</item>       <item>MAKE_DIRECTORY</item>       <item>MD5</item>+      <item>MODULES</item>       <item>MTIME</item>       <item>NETRC</item>       <item>NETRC_FILE</item>       <item>NEWLINE_CONSUME</item>       <item>NEWLINE_STYLE</item>       <item>NO_HEX_CONVERSION</item>+      <item>NO_REPLACE</item>       <item>NO_SOURCE_PERMISSIONS</item>       <item>OFFSET</item>+      <item>ONLY_IF_DIFFERENT</item>       <item>OUTPUT</item>       <item>PATTERN</item>       <item>PERMISSIONS</item>+      <item>POST_EXCLUDE_FILES</item>+      <item>POST_EXCLUDE_REGEXES</item>+      <item>POST_INCLUDE_FILES</item>+      <item>POST_INCLUDE_REGEXES</item>+      <item>PRE_EXCLUDE_REGEXES</item>+      <item>PRE_INCLUDE_REGEXES</item>       <item>READ</item>       <item>READ_SYMLINK</item>       <item>REAL_PATH</item>@@ -358,6 +417,8 @@       <item>REMOVE</item>       <item>REMOVE_RECURSE</item>       <item>RENAME</item>+      <item>RESOLVED_DEPENDENCIES_VAR</item>+      <item>RESULT</item>       <item>RESULT_VARIABLE</item>       <item>SHA1</item>       <item>SHA224</item>@@ -381,6 +442,7 @@       <item>TOUCH_NOCREATE</item>       <item>TO_CMAKE_PATH</item>       <item>TO_NATIVE_PATH</item>+      <item>UNRESOLVED_DEPENDENCIES_VAR</item>       <item>UPLOAD</item>       <item>USERPWD</item>       <item>USE_SOURCE_PERMISSIONS</item>@@ -433,6 +495,7 @@       <item>DOC</item>       <item>HINTS</item>       <item>NAMES</item>+      <item>NO_CACHE</item>       <item>NO_CMAKE_ENVIRONMENT_PATH</item>       <item>NO_CMAKE_FIND_ROOT_PATH</item>       <item>NO_CMAKE_PATH</item>@@ -451,6 +514,7 @@       <item>HINTS</item>       <item>NAMES</item>       <item>NAMES_PER_DIR</item>+      <item>NO_CACHE</item>       <item>NO_CMAKE_ENVIRONMENT_PATH</item>       <item>NO_CMAKE_FIND_ROOT_PATH</item>       <item>NO_CMAKE_PATH</item>@@ -495,6 +559,7 @@       <item>DOC</item>       <item>HINTS</item>       <item>NAMES</item>+      <item>NO_CACHE</item>       <item>NO_CMAKE_ENVIRONMENT_PATH</item>       <item>NO_CMAKE_FIND_ROOT_PATH</item>       <item>NO_CMAKE_PATH</item>@@ -513,6 +578,7 @@       <item>HINTS</item>       <item>NAMES</item>       <item>NAMES_PER_DIR</item>+      <item>NO_CACHE</item>       <item>NO_CMAKE_ENVIRONMENT_PATH</item>       <item>NO_CMAKE_FIND_ROOT_PATH</item>       <item>NO_CMAKE_PATH</item>@@ -883,6 +949,7 @@     </list>     <list name="build_command_nargs">       <item>CONFIGURATION</item>+      <item>PARALLEL_LEVEL</item>       <item>TARGET</item>     </list>     <list name="create_test_sourcelist_nargs">@@ -914,6 +981,7 @@       <item>CUDA</item>       <item>CXX</item>       <item>Fortran</item>+      <item>HIP</item>       <item>ISPC</item>       <item>Java</item>       <item>OBJC</item>@@ -951,6 +1019,7 @@       <item>COMPONENT</item>       <item>CONFIGURATIONS</item>       <item>DESTINATION</item>+      <item>DIRECTORIES</item>       <item>DIRECTORY</item>       <item>DIRECTORY_PERMISSIONS</item>       <item>EXCLUDE</item>@@ -963,6 +1032,7 @@       <item>FILES_MATCHING</item>       <item>FILE_PERMISSIONS</item>       <item>FRAMEWORK</item>+      <item>IMPORTED_RUNTIME_ARTIFACTS</item>       <item>INCLUDES</item>       <item>LIBRARY</item>       <item>MESSAGE_NEVER</item>@@ -974,6 +1044,12 @@       <item>OPTIONAL</item>       <item>PATTERN</item>       <item>PERMISSIONS</item>+      <item>POST_EXCLUDE_FILES</item>+      <item>POST_EXCLUDE_REGEXES</item>+      <item>POST_INCLUDE_FILES</item>+      <item>POST_INCLUDE_REGEXES</item>+      <item>PRE_EXCLUDE_REGEXES</item>+      <item>PRE_INCLUDE_REGEXES</item>       <item>PRIVATE_HEADER</item>       <item>PROGRAMS</item>       <item>PUBLIC_HEADER</item>@@ -981,8 +1057,11 @@       <item>RENAME</item>       <item>RESOURCE</item>       <item>RUNTIME</item>+      <item>RUNTIME_DEPENDENCIES</item>+      <item>RUNTIME_DEPENDENCY_SET</item>       <item>SCRIPT</item>       <item>TARGETS</item>+      <item>TYPE</item>       <item>USE_SOURCE_PERMISSIONS</item>     </list>     <list name="install_sargs">@@ -1028,6 +1107,7 @@       <item>CUDA</item>       <item>CXX</item>       <item>Fortran</item>+      <item>HIP</item>       <item>ISPC</item>       <item>Java</item>       <item>NONE</item>@@ -1068,6 +1148,8 @@       <item>c_restrict</item>       <item>c_static_assert</item>       <item>c_std_11</item>+      <item>c_std_17</item>+      <item>c_std_23</item>       <item>c_std_90</item>       <item>c_std_99</item>       <item>c_variadic_macros</item>@@ -1076,6 +1158,7 @@       <item>cuda_std_14</item>       <item>cuda_std_17</item>       <item>cuda_std_20</item>+      <item>cuda_std_23</item>       <item>cxx_aggregate_default_initializers</item>       <item>cxx_alias_templates</item>       <item>cxx_alignas</item>@@ -1126,6 +1209,7 @@       <item>cxx_std_14</item>       <item>cxx_std_17</item>       <item>cxx_std_20</item>+      <item>cxx_std_23</item>       <item>cxx_std_98</item>       <item>cxx_strong_enums</item>       <item>cxx_template_template_parameters</item>@@ -1146,6 +1230,7 @@       <item>PUBLIC</item>     </list>     <list name="target_include_directories_nargs">+      <item>AFTER</item>       <item>BEFORE</item>       <item>INTERFACE</item>       <item>PRIVATE</item>@@ -1201,6 +1286,7 @@       <item>OUTPUT_VARIABLE</item>       <item>RUN_OUTPUT_VARIABLE</item>       <item>RUN_RESULT_VAR</item>+      <item>WORKING_DIRECTORY</item>     </list>     <list name="ctest_build_nargs">       <item>APPEND</item>@@ -1342,6 +1428,7 @@       <item>CMAKE_ANDROID_NDK_DEPRECATED_HEADERS</item>       <item>CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG</item>       <item>CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION</item>+      <item>CMAKE_ANDROID_NDK_VERSION</item>       <item>CMAKE_ANDROID_PROCESS_MAX</item>       <item>CMAKE_ANDROID_PROGUARD</item>       <item>CMAKE_ANDROID_PROGUARD_CONFIG_PATH</item>@@ -1497,6 +1584,9 @@       <item>CMAKE_GENERATOR_NO_COMPILER_ENV</item>       <item>CMAKE_GENERATOR_PLATFORM</item>       <item>CMAKE_GENERATOR_TOOLSET</item>+      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND</item>+      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM</item>+      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL</item>       <item>CMAKE_GLOBAL_AUTOGEN_TARGET</item>       <item>CMAKE_GLOBAL_AUTOGEN_TARGET_NAME</item>       <item>CMAKE_GLOBAL_AUTORCC_TARGET</item>@@ -1576,6 +1666,10 @@       <item>CMAKE_ISPC_HEADER_DIRECTORY</item>       <item>CMAKE_ISPC_HEADER_SUFFIX</item>       <item>CMAKE_ISPC_INSTRUCTION_SETS</item>+      <item>CMAKE_JAR_CLASSES_PREFIX</item>+      <item>CMAKE_JAVA_COMPILE_FLAGS</item>+      <item>CMAKE_JAVA_INCLUDE_PATH</item>+      <item>CMAKE_JNI_TARGET</item>       <item>CMAKE_JOB_POOLS</item>       <item>CMAKE_JOB_POOL_COMPILE</item>       <item>CMAKE_JOB_POOL_LINK</item>@@ -1787,6 +1881,7 @@       <item>CPACK_COMPONENTS_GROUPING</item>       <item>CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY</item>       <item>CPACK_CREATE_DESKTOP_LINKS</item>+      <item>CPACK_CUSTOM_INSTALL_VARIABLES</item>       <item>CPACK_CYGWIN_BUILD_SCRIPT</item>       <item>CPACK_CYGWIN_PATCH_FILE</item>       <item>CPACK_CYGWIN_PATCH_NUMBER</item>@@ -1818,6 +1913,7 @@       <item>CPACK_DEBIAN_PACKAGE_REPLACES</item>       <item>CPACK_DEBIAN_PACKAGE_SECTION</item>       <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS</item>+      <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS</item>       <item>CPACK_DEBIAN_PACKAGE_SOURCE</item>       <item>CPACK_DEBIAN_PACKAGE_SUGGESTS</item>       <item>CPACK_DEBIAN_PACKAGE_VERSION</item>@@ -1826,6 +1922,7 @@       <item>CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK</item>       <item>CPACK_DMG_DS_STORE</item>       <item>CPACK_DMG_DS_STORE_SETUP_SCRIPT</item>+      <item>CPACK_DMG_FILESYSTEM</item>       <item>CPACK_DMG_FORMAT</item>       <item>CPACK_DMG_SLA_DIR</item>       <item>CPACK_DMG_SLA_LANGUAGES</item>@@ -1865,6 +1962,7 @@       <item>CPACK_IFW_PACKAGE_WINDOW_ICON</item>       <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT</item>       <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH</item>+      <item>CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST</item>       <item>CPACK_IFW_PACKAGE_WIZARD_STYLE</item>       <item>CPACK_IFW_PRODUCT_URL</item>       <item>CPACK_IFW_REPOGEN_EXECUTABLE</item>@@ -1880,12 +1978,15 @@       <item>CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>       <item>CPACK_INSTALL_SCRIPTS</item>       <item>CPACK_MONOLITHIC_INSTALL</item>+      <item>CPACK_NSIS_BRANDING_TEXT</item>+      <item>CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION</item>       <item>CPACK_NSIS_COMPRESSOR</item>       <item>CPACK_NSIS_CONTACT</item>       <item>CPACK_NSIS_CREATE_ICONS_EXTRA</item>       <item>CPACK_NSIS_DELETE_ICONS_EXTRA</item>       <item>CPACK_NSIS_DISPLAY_NAME</item>       <item>CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL</item>+      <item>CPACK_NSIS_EXECUTABLE</item>       <item>CPACK_NSIS_EXECUTABLES_DIRECTORY</item>       <item>CPACK_NSIS_EXTRA_INSTALL_COMMANDS</item>       <item>CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS</item>@@ -1918,8 +2019,12 @@       <item>CPACK_NUGET_PACKAGE_DESCRIPTION</item>       <item>CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY</item>       <item>CPACK_NUGET_PACKAGE_HOMEPAGE_URL</item>+      <item>CPACK_NUGET_PACKAGE_ICON</item>       <item>CPACK_NUGET_PACKAGE_ICONURL</item>+      <item>CPACK_NUGET_PACKAGE_LANGUAGE</item>       <item>CPACK_NUGET_PACKAGE_LICENSEURL</item>+      <item>CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION</item>+      <item>CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME</item>       <item>CPACK_NUGET_PACKAGE_NAME</item>       <item>CPACK_NUGET_PACKAGE_OWNERS</item>       <item>CPACK_NUGET_PACKAGE_RELEASE_NOTES</item>@@ -2037,6 +2142,7 @@       <item>CPACK_SOURCE_STRIP_FILES</item>       <item>CPACK_STRIP_FILES</item>       <item>CPACK_SYSTEM_NAME</item>+      <item>CPACK_THREADS</item>       <item>CPACK_TOPLEVEL_TAG</item>       <item>CPACK_VERBATIM_VARIABLES</item>       <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>@@ -2196,6 +2302,7 @@       <item>PROJECT_BINARY_DIR</item>       <item>PROJECT_DESCRIPTION</item>       <item>PROJECT_HOMEPAGE_URL</item>+      <item>PROJECT_IS_TOP_LEVEL</item>       <item>PROJECT_NAME</item>       <item>PROJECT_SOURCE_DIR</item>       <item>PROJECT_VERSION</item>@@ -2206,8 +2313,10 @@       <item>QTIFWDIR</item>       <item>SWIG_OUTFILE_DIR</item>       <item>SWIG_SOURCE_FILE_EXTENSIONS</item>+      <item>SWIG_USE_SWIG_DEPENDENCIES</item>       <item>THREADS_PREFER_PTHREAD_FLAG</item>       <item>UNIX</item>+      <item>UseSWIG_MODULE_VERSION</item>       <item>WIN32</item>       <item>WINCE</item>       <item>WINDOWS_PHONE</item>@@ -2220,8 +2329,10 @@       <item>CMAKE_HOME_DIRECTORY</item>       <item>CMAKE_INTERNAL_PLATFORM_ABI</item>       <item>CMAKE_NOT_USING_CONFIG_FLAGS</item>+      <item>CMAKE_OBJDUMP</item>       <item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>       <item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>+      <item>CMAKE_SYSTEM_ARCH</item>       <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>       <item>CPACK_INSTALL_PREFIX</item>       <item>CPACK_INSTALL_SCRIPT</item>@@ -2248,12 +2359,14 @@       <item>CMAKE_NO_VERBOSE</item>       <item>CMAKE_OSX_ARCHITECTURES</item>       <item>CMAKE_PREFIX_PATH</item>+      <item>CMAKE_TOOLCHAIN_FILE</item>       <item>CSFLAGS</item>       <item>CTEST_INTERACTIVE_DEBUG_MODE</item>       <item>CTEST_OUTPUT_ON_FAILURE</item>       <item>CTEST_PARALLEL_LEVEL</item>       <item>CTEST_PROGRESS_OUTPUT</item>       <item>CTEST_USE_LAUNCHERS_DEFAULT</item>+      <item>CUDAARCHS</item>       <item>CUDACXX</item>       <item>CUDAFLAGS</item>       <item>CUDAHOSTCXX</item>@@ -2326,6 +2439,7 @@       <item>DEFINITIONS</item>       <item>EXCLUDE_FROM_ALL</item>       <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>+      <item>IMPORTED_TARGETS</item>       <item>INCLUDE_DIRECTORIES</item>       <item>INCLUDE_REGULAR_EXPRESSION</item>       <item>INTERPROCEDURAL_OPTIMIZATION</item>@@ -2429,6 +2543,7 @@       <item>ENABLE_EXPORTS</item>       <item>EXCLUDE_FROM_ALL</item>       <item>EXCLUDE_FROM_DEFAULT_BUILD</item>+      <item>EXPORT_COMPILE_COMMANDS</item>       <item>EXPORT_NAME</item>       <item>EXPORT_PROPERTIES</item>       <item>EchoString</item>@@ -2554,6 +2669,7 @@       <item>UNITY_BUILD_CODE_AFTER_INCLUDE</item>       <item>UNITY_BUILD_CODE_BEFORE_INCLUDE</item>       <item>UNITY_BUILD_MODE</item>+      <item>UNITY_BUILD_UNIQUE_ID</item>       <item>VERSION</item>       <item>VISIBILITY_INLINES_HIDDEN</item>       <item>VS_CONFIGURATION_TYPE</item>@@ -2782,6 +2898,7 @@       <item>TARGET_BUNDLE_DIR</item>       <item>TARGET_BUNDLE_CONTENT_DIR</item>       <item>TARGET_PROPERTY</item>+      <item>TARGET_RUNTIME_DLLS</item>       <item>INSTALL_PREFIX</item>       <item>TARGET_NAME</item>       <item>LINK_ONLY</item>@@ -2790,6 +2907,8 @@       <item>MAKE_C_IDENTIFIER</item>       <item>TARGET_OBJECTS</item>       <item>SHELL_PATH</item>+      <item>OUTPUT_CONFIG</item>+      <item>COMMAND_CONFIG</item>     </list>      <contexts>@@ -2801,6 +2920,7 @@         <WordDetect String="cmake_language" insensitive="true" attribute="Command" context="cmake_language_ctx" />         <WordDetect String="cmake_minimum_required" insensitive="true" attribute="Command" context="cmake_minimum_required_ctx" />         <WordDetect String="cmake_parse_arguments" insensitive="true" attribute="Command" context="cmake_parse_arguments_ctx" />+        <WordDetect String="cmake_path" insensitive="true" attribute="Command" context="cmake_path_ctx" />         <WordDetect String="cmake_policy" insensitive="true" attribute="Command" context="cmake_policy_ctx" />         <WordDetect String="configure_file" insensitive="true" attribute="Command" context="configure_file_ctx" />         <WordDetect String="continue" insensitive="true" attribute="Command" context="continue_ctx" />@@ -2950,6 +3070,14 @@         <keyword attribute="Named Args" context="#stay" String="cmake_parse_arguments_nargs" />         <IncludeRules context="User Function Args" />       </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_path_ctx">+        <DetectChar attribute="Normal Text" context="cmake_path_ctx_op" char="(" />+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_path_ctx_op">+        <IncludeRules context="EndCmdPop2" />+        <keyword attribute="Named Args" context="#stay" String="cmake_path_nargs" />+        <IncludeRules context="User Function Args" />+      </context>       <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx">         <DetectChar attribute="Normal Text" context="cmake_policy_ctx_op" char="(" />       </context>@@ -3860,7 +3988,7 @@       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Detect More target-properties">-        <RegExpr attribute="Property" context="#stay" String="\b(?:XCODE_ATTRIBUTE_&id_re;|VS_SOURCE_SETTINGS_&id_re;|VS_GLOBAL_&id_re;|VS_DOTNET_REFERENCE_&id_re;|VS_DOTNET_REFERENCEPROP_&id_re;_TAG_&id_re;|STATIC_LIBRARY_FLAGS_&id_re;|RUNTIME_OUTPUT_NAME_&id_re;|RUNTIME_OUTPUT_DIRECTORY_&id_re;|PDB_OUTPUT_DIRECTORY_&id_re;|PDB_NAME_&id_re;|OUTPUT_NAME_&id_re;|OSX_ARCHITECTURES_&id_re;|MAP_IMPORTED_CONFIG_&id_re;|LOCATION_&id_re;|LINK_INTERFACE_MULTIPLICITY_&id_re;|LINK_INTERFACE_LIBRARIES_&id_re;|LINK_FLAGS_&id_re;|LIBRARY_OUTPUT_NAME_&id_re;|LIBRARY_OUTPUT_DIRECTORY_&id_re;|INTERPROCEDURAL_OPTIMIZATION_&id_re;|IMPORTED_SONAME_&id_re;|IMPORTED_OBJECTS_&id_re;|IMPORTED_NO_SONAME_&id_re;|IMPORTED_LOCATION_&id_re;|IMPORTED_LINK_INTERFACE_MULTIPLICITY_&id_re;|IMPORTED_LINK_INTERFACE_LIBRARIES_&id_re;|IMPORTED_LINK_INTERFACE_LANGUAGES_&id_re;|IMPORTED_LINK_DEPENDENT_LIBRARIES_&id_re;|IMPORTED_LIBNAME_&id_re;|IMPORTED_IMPLIB_&id_re;|FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;|EXCLUDE_FROM_DEFAULT_BUILD_&id_re;|COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;|COMPILE_PDB_NAME_&id_re;|ARCHIVE_OUTPUT_NAME_&id_re;|ARCHIVE_OUTPUT_DIRECTORY_&id_re;|&id_re;_VISIBILITY_PRESET|&id_re;_POSTFIX|&id_re;_OUTPUT_NAME|&id_re;_INCLUDE_WHAT_YOU_USE|&id_re;_CPPLINT|&id_re;_CPPCHECK|&id_re;_COMPILER_LAUNCHER|&id_re;_CLANG_TIDY)\b" />+        <RegExpr attribute="Property" context="#stay" String="\b(?:XCODE_EMBED_&id_re;_REMOVE_HEADERS_ON_COPY|XCODE_EMBED_&id_re;_PATH|XCODE_EMBED_&id_re;_CODE_SIGN_ON_COPY|XCODE_EMBED_&id_re;|XCODE_ATTRIBUTE_&id_re;|VS_SOURCE_SETTINGS_&id_re;|VS_GLOBAL_&id_re;|VS_DOTNET_REFERENCE_&id_re;|VS_DOTNET_REFERENCEPROP_&id_re;_TAG_&id_re;|STATIC_LIBRARY_FLAGS_&id_re;|RUNTIME_OUTPUT_NAME_&id_re;|RUNTIME_OUTPUT_DIRECTORY_&id_re;|PDB_OUTPUT_DIRECTORY_&id_re;|PDB_NAME_&id_re;|OUTPUT_NAME_&id_re;|OSX_ARCHITECTURES_&id_re;|MAP_IMPORTED_CONFIG_&id_re;|LOCATION_&id_re;|LINK_INTERFACE_MULTIPLICITY_&id_re;|LINK_INTERFACE_LIBRARIES_&id_re;|LINK_FLAGS_&id_re;|LIBRARY_OUTPUT_NAME_&id_re;|LIBRARY_OUTPUT_DIRECTORY_&id_re;|INTERPROCEDURAL_OPTIMIZATION_&id_re;|IMPORTED_SONAME_&id_re;|IMPORTED_OBJECTS_&id_re;|IMPORTED_NO_SONAME_&id_re;|IMPORTED_LOCATION_&id_re;|IMPORTED_LINK_INTERFACE_MULTIPLICITY_&id_re;|IMPORTED_LINK_INTERFACE_LIBRARIES_&id_re;|IMPORTED_LINK_INTERFACE_LANGUAGES_&id_re;|IMPORTED_LINK_DEPENDENT_LIBRARIES_&id_re;|IMPORTED_LIBNAME_&id_re;|IMPORTED_IMPLIB_&id_re;|FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;|EXCLUDE_FROM_DEFAULT_BUILD_&id_re;|COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;|COMPILE_PDB_NAME_&id_re;|ARCHIVE_OUTPUT_NAME_&id_re;|ARCHIVE_OUTPUT_DIRECTORY_&id_re;|&id_re;_VISIBILITY_PRESET|&id_re;_POSTFIX|&id_re;_OUTPUT_NAME|&id_re;_LINKER_LAUNCHER|&id_re;_INCLUDE_WHAT_YOU_USE|&id_re;_CPPLINT|&id_re;_CPPCHECK|&id_re;_COMPILER_LAUNCHER|&id_re;_CLANG_TIDY)\b" />       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Detect More source-properties">@@ -3894,7 +4022,7 @@        <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">         <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&id_re;_PLATFORM_ID|CMAKE_&id_re;_COMPILER_VERSION_INTERNAL|CMAKE_&id_re;_COMPILER_ARCHITECTURE_ID|CMAKE_&id_re;_COMPILER_ABI)\b" />-        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:SWIG_MODULE_&id_re;_EXTRA_DEPS|ExternalData_URL_ALGO_&id_re;_&id_re;|ExternalData_CUSTOM_SCRIPT_&id_re;|DOXYGEN_&id_re;|CPACK_WIX_PROPERTY_&id_re;|CPACK_WIX_&id_re;_EXTRA_FLAGS|CPACK_WIX_&id_re;_EXTENSIONS|CPACK_RPM_NO_&id_re;_INSTALL_PREFIX_RELOCATION|CPACK_RPM_&id_re;_USER_FILELIST|CPACK_RPM_&id_re;_USER_BINARY_SPECFILE|CPACK_RPM_&id_re;_PACKAGE_URL|CPACK_RPM_&id_re;_PACKAGE_SUMMARY|CPACK_RPM_&id_re;_PACKAGE_SUGGESTS|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_PREUN|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_PRE|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_POSTUN|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_POST|CPACK_RPM_&id_re;_PACKAGE_REQUIRES|CPACK_RPM_&id_re;_PACKAGE_PROVIDES|CPACK_RPM_&id_re;_PACKAGE_PREFIX|CPACK_RPM_&id_re;_PACKAGE_OBSOLETES|CPACK_RPM_&id_re;_PACKAGE_NAME|CPACK_RPM_&id_re;_PACKAGE_GROUP|CPACK_RPM_&id_re;_PACKAGE_DESCRIPTION|CPACK_RPM_&id_re;_PACKAGE_CONFLICTS|CPACK_RPM_&id_re;_PACKAGE_AUTOREQPROV|CPACK_RPM_&id_re;_PACKAGE_AUTOREQ|CPACK_RPM_&id_re;_PACKAGE_AUTOPROV|CPACK_RPM_&id_re;_PACKAGE_ARCHITECTURE|CPACK_RPM_&id_re;_FILE_NAME|CPACK_RPM_&id_re;_DEFAULT_USER|CPACK_RPM_&id_re;_DEFAULT_GROUP|CPACK_RPM_&id_re;_DEFAULT_FILE_PERMISSIONS|CPACK_RPM_&id_re;_DEFAULT_DIR_PERMISSIONS|CPACK_RPM_&id_re;_DEBUGINFO_PACKAGE|CPACK_RPM_&id_re;_DEBUGINFO_FILE_NAME|CPACK_RPM_&id_re;_BUILD_SOURCE_DIRS_PREFIX|CPACK_PREFLIGHT_&id_re;_SCRIPT|CPACK_POSTFLIGHT_&id_re;_SCRIPT|CPACK_NUGET_PACKAGE_DEPENDENCIES_&id_re;_VERSION|CPACK_NUGET_&id_re;_PACKAGE_VERSION|CPACK_NUGET_&id_re;_PACKAGE_TITLE|CPACK_NUGET_&id_re;_PACKAGE_TAGS|CPACK_NUGET_&id_re;_PACKAGE_RELEASE_NOTES|CPACK_NUGET_&id_re;_PACKAGE_OWNERS|CPACK_NUGET_&id_re;_PACKAGE_NAME|CPACK_NUGET_&id_re;_PACKAGE_LICENSEURL|CPACK_NUGET_&id_re;_PACKAGE_ICONURL|CPACK_NUGET_&id_re;_PACKAGE_HOMEPAGE_URL|CPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION_SUMMARY|CPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION|CPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES_&id_re;_VERSION|CPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES|CPACK_NUGET_&id_re;_PACKAGE_COPYRIGHT|CPACK_NUGET_&id_re;_PACKAGE_AUTHORS|CPACK_NSIS_&id_re;_INSTALL_DIRECTORY|CPACK_DMG_&id_re;_FILE_NAME|CPACK_DEBIAN_&id_re;_PACKAGE_SUGGESTS|CPACK_DEBIAN_&id_re;_PACKAGE_SOURCE|CPACK_DEBIAN_&id_re;_PACKAGE_SHLIBDEPS|CPACK_DEBIAN_&id_re;_PACKAGE_SECTION|CPACK_DEBIAN_&id_re;_PACKAGE_REPLACES|CPACK_DEBIAN_&id_re;_PACKAGE_RECOMMENDS|CPACK_DEBIAN_&id_re;_PACKAGE_PROVIDES|CPACK_DEBIAN_&id_re;_PACKAGE_PRIORITY|CPACK_DEBIAN_&id_re;_PACKAGE_PREDEPENDS|CPACK_DEBIAN_&id_re;_PACKAGE_NAME|CPACK_DEBIAN_&id_re;_PACKAGE_ENHANCES|CPACK_DEBIAN_&id_re;_PACKAGE_DEPENDS|CPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_STRICT_PERMISSION|CPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_EXTRA|CPACK_DEBIAN_&id_re;_PACKAGE_CONFLICTS|CPACK_DEBIAN_&id_re;_PACKAGE_BREAKS|CPACK_DEBIAN_&id_re;_PACKAGE_ARCHITECTURE|CPACK_DEBIAN_&id_re;_FILE_NAME|CPACK_DEBIAN_&id_re;_DESCRIPTION|CPACK_DEBIAN_&id_re;_DEBUGINFO_PACKAGE|CPACK_COMPONENT_&id_re;_REQUIRED|CPACK_COMPONENT_&id_re;_HIDDEN|CPACK_COMPONENT_&id_re;_GROUP|CPACK_COMPONENT_&id_re;_DISPLAY_NAME|CPACK_COMPONENT_&id_re;_DISABLED|CPACK_COMPONENT_&id_re;_DESCRIPTION|CPACK_COMPONENT_&id_re;_DEPENDS|CPACK_BINARY_&id_re;|CPACK_ARCHIVE_&id_re;_FILE_NAME|CPACK_&id_re;_COMPONENT_INSTALL|CMAKE_XCODE_ATTRIBUTE_&id_re;|CMAKE_USER_MAKE_RULES_OVERRIDE_&id_re;|CMAKE_STATIC_LINKER_FLAGS_&id_re;_INIT|CMAKE_STATIC_LINKER_FLAGS_&id_re;|CMAKE_SHARED_LINKER_FLAGS_&id_re;_INIT|CMAKE_SHARED_LINKER_FLAGS_&id_re;|CMAKE_RUNTIME_OUTPUT_DIRECTORY_&id_re;|CMAKE_PROJECT_&id_re;_INCLUDE|CMAKE_POLICY_WARNING_CMP[0-9]{4}|CMAKE_POLICY_DEFAULT_CMP[0-9]{4}|CMAKE_PDB_OUTPUT_DIRECTORY_&id_re;|CMAKE_MODULE_LINKER_FLAGS_&id_re;_INIT|CMAKE_MODULE_LINKER_FLAGS_&id_re;|CMAKE_MATCH_[0-9]+|CMAKE_MAP_IMPORTED_CONFIG_&id_re;|CMAKE_LIBRARY_OUTPUT_DIRECTORY_&id_re;|CMAKE_INTERPROCEDURAL_OPTIMIZATION_&id_re;|CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;|CMAKE_EXE_LINKER_FLAGS_&id_re;_INIT|CMAKE_EXE_LINKER_FLAGS_&id_re;|CMAKE_DISABLE_FIND_PACKAGE_&id_re;|CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;|CMAKE_ARGV[0-9]+|CMAKE_ARCHIVE_OUTPUT_DIRECTORY_&id_re;|CMAKE_&id_re;_VISIBILITY_PRESET|CMAKE_&id_re;_STANDARD_LIBRARIES|CMAKE_&id_re;_STANDARD_INCLUDE_DIRECTORIES|CMAKE_&id_re;_SOURCE_FILE_EXTENSIONS|CMAKE_&id_re;_SIZEOF_DATA_PTR|CMAKE_&id_re;_SIMULATE_VERSION|CMAKE_&id_re;_SIMULATE_ID|CMAKE_&id_re;_POSTFIX|CMAKE_&id_re;_OUTPUT_EXTENSION|CMAKE_&id_re;_LINK_EXECUTABLE|CMAKE_&id_re;_LINKER_WRAPPER_FLAG_SEP|CMAKE_&id_re;_LINKER_WRAPPER_FLAG|CMAKE_&id_re;_LINKER_PREFERENCE_PROPAGATES|CMAKE_&id_re;_LINKER_PREFERENCE|CMAKE_&id_re;_LIBRARY_ARCHITECTURE|CMAKE_&id_re;_INCLUDE_WHAT_YOU_USE|CMAKE_&id_re;_IMPLICIT_LINK_LIBRARIES|CMAKE_&id_re;_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES|CMAKE_&id_re;_IMPLICIT_LINK_DIRECTORIES|CMAKE_&id_re;_IMPLICIT_INCLUDE_DIRECTORIES|CMAKE_&id_re;_IGNORE_EXTENSIONS|CMAKE_&id_re;_GHS_KERNEL_FLAGS_RELWITHDEBINFO|CMAKE_&id_re;_GHS_KERNEL_FLAGS_RELEASE|CMAKE_&id_re;_GHS_KERNEL_FLAGS_MINSIZEREL|CMAKE_&id_re;_GHS_KERNEL_FLAGS_DEBUG|CMAKE_&id_re;_FLAGS_RELWITHDEBINFO_INIT|CMAKE_&id_re;_FLAGS_RELWITHDEBINFO|CMAKE_&id_re;_FLAGS_RELEASE_INIT|CMAKE_&id_re;_FLAGS_RELEASE|CMAKE_&id_re;_FLAGS_MINSIZEREL_INIT|CMAKE_&id_re;_FLAGS_MINSIZEREL|CMAKE_&id_re;_FLAGS_INIT|CMAKE_&id_re;_FLAGS_DEBUG_INIT|CMAKE_&id_re;_FLAGS_DEBUG|CMAKE_&id_re;_FLAGS|CMAKE_&id_re;_CREATE_STATIC_LIBRARY|CMAKE_&id_re;_CREATE_SHARED_MODULE|CMAKE_&id_re;_CREATE_SHARED_LIBRARY|CMAKE_&id_re;_CPPLINT|CMAKE_&id_re;_CPPCHECK|CMAKE_&id_re;_COMPILE_OBJECT|CMAKE_&id_re;_COMPILER_VERSION|CMAKE_&id_re;_COMPILER_TARGET|CMAKE_&id_re;_COMPILER_RANLIB|CMAKE_&id_re;_COMPILER_LOADED|CMAKE_&id_re;_COMPILER_LAUNCHER|CMAKE_&id_re;_COMPILER_ID|CMAKE_&id_re;_COMPILER_EXTERNAL_TOOLCHAIN|CMAKE_&id_re;_COMPILER_AR|CMAKE_&id_re;_COMPILER|CMAKE_&id_re;_CLANG_TIDY|CMAKE_&id_re;_ARCHIVE_FINISH|CMAKE_&id_re;_ARCHIVE_CREATE|CMAKE_&id_re;_ARCHIVE_APPEND|CMAKE_&id_re;_ANDROID_TOOLCHAIN_SUFFIX|CMAKE_&id_re;_ANDROID_TOOLCHAIN_PREFIX|CMAKE_&id_re;_ANDROID_TOOLCHAIN_MACHINE|ARGV[0-9]+|&id_re;__TRYRUN_OUTPUT|&id_re;_VERSION_TWEAK|&id_re;_VERSION_STRING|&id_re;_VERSION_PATCH|&id_re;_VERSION_MINOR|&id_re;_VERSION_MAJOR|&id_re;_VERSION_COUNT|&id_re;_VERSION|&id_re;_UNPARSED_ARGUMENTS|&id_re;_SOURCE_DIR|&id_re;_ROOT|&id_re;_MODULE_NAME|&id_re;_LIBRARY_DIRS|&id_re;_LIBRARIES|&id_re;_KEYWORDS_MISSING_VALUES|&id_re;_INCLUDE_DIRS|&id_re;_HOMEPAGE_URL|&id_re;_FOUND|&id_re;_FIND_VERSION_TWEAK|&id_re;_FIND_VERSION_PATCH|&id_re;_FIND_VERSION_MINOR|&id_re;_FIND_VERSION_MAJOR|&id_re;_FIND_VERSION_EXACT|&id_re;_FIND_VERSION_COUNT|&id_re;_FIND_VERSION|&id_re;_FIND_REQUIRED_&id_re;|&id_re;_FIND_REQUIRED|&id_re;_FIND_QUIETLY|&id_re;_FIND_COMPONENTS|&id_re;_DESCRIPTION|&id_re;_CONSIDERED_VERSIONS|&id_re;_CONSIDERED_CONFIGS|&id_re;_BINARY_DIR)\b" />+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:SWIG_MODULE_&id_re;_EXTRA_DEPS|ExternalData_URL_ALGO_&id_re;_&id_re;|ExternalData_CUSTOM_SCRIPT_&id_re;|DOXYGEN_&id_re;|CPACK_WIX_PROPERTY_&id_re;|CPACK_WIX_&id_re;_EXTRA_FLAGS|CPACK_WIX_&id_re;_EXTENSIONS|CPACK_RPM_NO_&id_re;_INSTALL_PREFIX_RELOCATION|CPACK_RPM_&id_re;_USER_FILELIST|CPACK_RPM_&id_re;_USER_BINARY_SPECFILE|CPACK_RPM_&id_re;_PACKAGE_URL|CPACK_RPM_&id_re;_PACKAGE_SUMMARY|CPACK_RPM_&id_re;_PACKAGE_SUGGESTS|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_PREUN|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_PRE|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_POSTUN|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_POST|CPACK_RPM_&id_re;_PACKAGE_REQUIRES|CPACK_RPM_&id_re;_PACKAGE_PROVIDES|CPACK_RPM_&id_re;_PACKAGE_PREFIX|CPACK_RPM_&id_re;_PACKAGE_OBSOLETES|CPACK_RPM_&id_re;_PACKAGE_NAME|CPACK_RPM_&id_re;_PACKAGE_GROUP|CPACK_RPM_&id_re;_PACKAGE_DESCRIPTION|CPACK_RPM_&id_re;_PACKAGE_CONFLICTS|CPACK_RPM_&id_re;_PACKAGE_AUTOREQPROV|CPACK_RPM_&id_re;_PACKAGE_AUTOREQ|CPACK_RPM_&id_re;_PACKAGE_AUTOPROV|CPACK_RPM_&id_re;_PACKAGE_ARCHITECTURE|CPACK_RPM_&id_re;_FILE_NAME|CPACK_RPM_&id_re;_DEFAULT_USER|CPACK_RPM_&id_re;_DEFAULT_GROUP|CPACK_RPM_&id_re;_DEFAULT_FILE_PERMISSIONS|CPACK_RPM_&id_re;_DEFAULT_DIR_PERMISSIONS|CPACK_RPM_&id_re;_DEBUGINFO_PACKAGE|CPACK_RPM_&id_re;_DEBUGINFO_FILE_NAME|CPACK_RPM_&id_re;_BUILD_SOURCE_DIRS_PREFIX|CPACK_PREFLIGHT_&id_re;_SCRIPT|CPACK_POSTFLIGHT_&id_re;_SCRIPT|CPACK_NUGET_PACKAGE_DEPENDENCIES_&id_re;_VERSION|CPACK_NUGET_&id_re;_PACKAGE_VERSION|CPACK_NUGET_&id_re;_PACKAGE_TITLE|CPACK_NUGET_&id_re;_PACKAGE_TAGS|CPACK_NUGET_&id_re;_PACKAGE_RELEASE_NOTES|CPACK_NUGET_&id_re;_PACKAGE_OWNERS|CPACK_NUGET_&id_re;_PACKAGE_NAME|CPACK_NUGET_&id_re;_PACKAGE_LICENSE_FILE_NAME|CPACK_NUGET_&id_re;_PACKAGE_LICENSE_EXPRESSION|CPACK_NUGET_&id_re;_PACKAGE_LICENSEURL|CPACK_NUGET_&id_re;_PACKAGE_LANGUAGE|CPACK_NUGET_&id_re;_PACKAGE_ICONURL|CPACK_NUGET_&id_re;_PACKAGE_ICON|CPACK_NUGET_&id_re;_PACKAGE_HOMEPAGE_URL|CPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION_SUMMARY|CPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION|CPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES_&id_re;_VERSION|CPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES|CPACK_NUGET_&id_re;_PACKAGE_COPYRIGHT|CPACK_NUGET_&id_re;_PACKAGE_AUTHORS|CPACK_NSIS_&id_re;_INSTALL_DIRECTORY|CPACK_DMG_&id_re;_FILE_NAME|CPACK_DEBIAN_&id_re;_PACKAGE_SUGGESTS|CPACK_DEBIAN_&id_re;_PACKAGE_SOURCE|CPACK_DEBIAN_&id_re;_PACKAGE_SHLIBDEPS|CPACK_DEBIAN_&id_re;_PACKAGE_SECTION|CPACK_DEBIAN_&id_re;_PACKAGE_REPLACES|CPACK_DEBIAN_&id_re;_PACKAGE_RECOMMENDS|CPACK_DEBIAN_&id_re;_PACKAGE_PROVIDES|CPACK_DEBIAN_&id_re;_PACKAGE_PRIORITY|CPACK_DEBIAN_&id_re;_PACKAGE_PREDEPENDS|CPACK_DEBIAN_&id_re;_PACKAGE_NAME|CPACK_DEBIAN_&id_re;_PACKAGE_ENHANCES|CPACK_DEBIAN_&id_re;_PACKAGE_DEPENDS|CPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_STRICT_PERMISSION|CPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_EXTRA|CPACK_DEBIAN_&id_re;_PACKAGE_CONFLICTS|CPACK_DEBIAN_&id_re;_PACKAGE_BREAKS|CPACK_DEBIAN_&id_re;_PACKAGE_ARCHITECTURE|CPACK_DEBIAN_&id_re;_FILE_NAME|CPACK_DEBIAN_&id_re;_DESCRIPTION|CPACK_DEBIAN_&id_re;_DEBUGINFO_PACKAGE|CPACK_COMPONENT_&id_re;_REQUIRED|CPACK_COMPONENT_&id_re;_HIDDEN|CPACK_COMPONENT_&id_re;_GROUP|CPACK_COMPONENT_&id_re;_DISPLAY_NAME|CPACK_COMPONENT_&id_re;_DISABLED|CPACK_COMPONENT_&id_re;_DESCRIPTION|CPACK_COMPONENT_&id_re;_DEPENDS|CPACK_BINARY_&id_re;|CPACK_ARCHIVE_&id_re;_FILE_NAME|CPACK_&id_re;_COMPONENT_INSTALL|CMAKE_XCODE_ATTRIBUTE_&id_re;|CMAKE_USER_MAKE_RULES_OVERRIDE_&id_re;|CMAKE_STATIC_LINKER_FLAGS_&id_re;_INIT|CMAKE_STATIC_LINKER_FLAGS_&id_re;|CMAKE_SHARED_LINKER_FLAGS_&id_re;_INIT|CMAKE_SHARED_LINKER_FLAGS_&id_re;|CMAKE_RUNTIME_OUTPUT_DIRECTORY_&id_re;|CMAKE_PROJECT_&id_re;_INCLUDE|CMAKE_POLICY_WARNING_CMP[0-9]{4}|CMAKE_POLICY_DEFAULT_CMP[0-9]{4}|CMAKE_PDB_OUTPUT_DIRECTORY_&id_re;|CMAKE_MODULE_LINKER_FLAGS_&id_re;_INIT|CMAKE_MODULE_LINKER_FLAGS_&id_re;|CMAKE_MATCH_[0-9]+|CMAKE_MAP_IMPORTED_CONFIG_&id_re;|CMAKE_LIBRARY_OUTPUT_DIRECTORY_&id_re;|CMAKE_INTERPROCEDURAL_OPTIMIZATION_&id_re;|CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;|CMAKE_EXE_LINKER_FLAGS_&id_re;_INIT|CMAKE_EXE_LINKER_FLAGS_&id_re;|CMAKE_DISABLE_FIND_PACKAGE_&id_re;|CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;|CMAKE_ARGV[0-9]+|CMAKE_ARCHIVE_OUTPUT_DIRECTORY_&id_re;|CMAKE_&id_re;_VISIBILITY_PRESET|CMAKE_&id_re;_STANDARD_LIBRARIES|CMAKE_&id_re;_STANDARD_INCLUDE_DIRECTORIES|CMAKE_&id_re;_SOURCE_FILE_EXTENSIONS|CMAKE_&id_re;_SIZEOF_DATA_PTR|CMAKE_&id_re;_SIMULATE_VERSION|CMAKE_&id_re;_SIMULATE_ID|CMAKE_&id_re;_POSTFIX|CMAKE_&id_re;_OUTPUT_EXTENSION|CMAKE_&id_re;_LINK_LIBRARY_FLAG|CMAKE_&id_re;_LINK_LIBRARY_FILE_FLAG|CMAKE_&id_re;_LINK_EXECUTABLE|CMAKE_&id_re;_LINKER_WRAPPER_FLAG_SEP|CMAKE_&id_re;_LINKER_WRAPPER_FLAG|CMAKE_&id_re;_LINKER_PREFERENCE_PROPAGATES|CMAKE_&id_re;_LINKER_PREFERENCE|CMAKE_&id_re;_LINKER_LAUNCHER|CMAKE_&id_re;_LIBRARY_ARCHITECTURE|CMAKE_&id_re;_INCLUDE_WHAT_YOU_USE|CMAKE_&id_re;_IMPLICIT_LINK_LIBRARIES|CMAKE_&id_re;_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES|CMAKE_&id_re;_IMPLICIT_LINK_DIRECTORIES|CMAKE_&id_re;_IMPLICIT_INCLUDE_DIRECTORIES|CMAKE_&id_re;_IGNORE_EXTENSIONS|CMAKE_&id_re;_GHS_KERNEL_FLAGS_RELWITHDEBINFO|CMAKE_&id_re;_GHS_KERNEL_FLAGS_RELEASE|CMAKE_&id_re;_GHS_KERNEL_FLAGS_MINSIZEREL|CMAKE_&id_re;_GHS_KERNEL_FLAGS_DEBUG|CMAKE_&id_re;_FLAGS_RELWITHDEBINFO_INIT|CMAKE_&id_re;_FLAGS_RELWITHDEBINFO|CMAKE_&id_re;_FLAGS_RELEASE_INIT|CMAKE_&id_re;_FLAGS_RELEASE|CMAKE_&id_re;_FLAGS_MINSIZEREL_INIT|CMAKE_&id_re;_FLAGS_MINSIZEREL|CMAKE_&id_re;_FLAGS_INIT|CMAKE_&id_re;_FLAGS_DEBUG_INIT|CMAKE_&id_re;_FLAGS_DEBUG|CMAKE_&id_re;_FLAGS|CMAKE_&id_re;_CREATE_STATIC_LIBRARY|CMAKE_&id_re;_CREATE_SHARED_MODULE|CMAKE_&id_re;_CREATE_SHARED_LIBRARY|CMAKE_&id_re;_CPPLINT|CMAKE_&id_re;_CPPCHECK|CMAKE_&id_re;_COMPILE_OBJECT|CMAKE_&id_re;_COMPILER_VERSION|CMAKE_&id_re;_COMPILER_TARGET|CMAKE_&id_re;_COMPILER_RANLIB|CMAKE_&id_re;_COMPILER_LOADED|CMAKE_&id_re;_COMPILER_LAUNCHER|CMAKE_&id_re;_COMPILER_ID|CMAKE_&id_re;_COMPILER_EXTERNAL_TOOLCHAIN|CMAKE_&id_re;_COMPILER_AR|CMAKE_&id_re;_COMPILER|CMAKE_&id_re;_CLANG_TIDY|CMAKE_&id_re;_BYTE_ORDER|CMAKE_&id_re;_ARCHIVE_FINISH|CMAKE_&id_re;_ARCHIVE_CREATE|CMAKE_&id_re;_ARCHIVE_APPEND|CMAKE_&id_re;_ANDROID_TOOLCHAIN_SUFFIX|CMAKE_&id_re;_ANDROID_TOOLCHAIN_PREFIX|CMAKE_&id_re;_ANDROID_TOOLCHAIN_MACHINE|ARGV[0-9]+|&id_re;__TRYRUN_OUTPUT|&id_re;_VERSION_TWEAK|&id_re;_VERSION_STRING|&id_re;_VERSION_PATCH|&id_re;_VERSION_MINOR|&id_re;_VERSION_MAJOR|&id_re;_VERSION_COUNT|&id_re;_VERSION|&id_re;_UNPARSED_ARGUMENTS|&id_re;_SOURCE_DIR|&id_re;_ROOT|&id_re;_MODULE_NAME|&id_re;_LIBRARY_DIRS|&id_re;_LIBRARIES|&id_re;_KEYWORDS_MISSING_VALUES|&id_re;_IS_TOP_LEVEL|&id_re;_INCLUDE_DIRS|&id_re;_HOMEPAGE_URL|&id_re;_FOUND|&id_re;_FIND_VERSION_TWEAK|&id_re;_FIND_VERSION_PATCH|&id_re;_FIND_VERSION_MINOR|&id_re;_FIND_VERSION_MAJOR|&id_re;_FIND_VERSION_EXACT|&id_re;_FIND_VERSION_COUNT|&id_re;_FIND_VERSION|&id_re;_FIND_REQUIRED_&id_re;|&id_re;_FIND_REQUIRED|&id_re;_FIND_QUIETLY|&id_re;_FIND_COMPONENTS|&id_re;_DESCRIPTION|&id_re;_CONSIDERED_VERSIONS|&id_re;_CONSIDERED_CONFIGS|&id_re;_BINARY_DIR)\b" />       </context>        <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
xml/d.xml view
@@ -105,7 +105,7 @@    ======================================================================== --> -<language name="D" version="11" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">+<language name="D" version="12" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">   <highlighting>     <!-- User-defined keywords (add identifiers you'd like highlighted here) -->     <list name="userkeywords">@@ -496,7 +496,7 @@         <DetectSpaces/>         <!-- Match an Integer -->         <RegExpr attribute="Integer" context="#stay" String="(?:(?:0(?:[0-7_]+|[bB]_*[01][01_]*|[xX]_*[\da-fA-F][\da-fA-F_]*))|\d+[\d_]*)(?:L[uU]?|[uU]L?)?"/>-        <RegExpr attribute="String" context="#stay" String="&quot;[^&quot;]*&quot;"/>+        <RangeDetect attribute="String" context="#stay" char="&quot;" char1="&quot;"/>         <keyword attribute="SpecialTokens"  context="#stay"      String="specialtokens"/>         <IncludeRules context="CommentRules" />         <RegExpr attribute="Error" context="#pop" String=".+"/>
xml/doxygen.xml view
@@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [-    <!ENTITY wordsep "(?:[][,?;()]|\.$|\.?\s)">   <!-- things that end a TagWord -->+    <!ENTITY wordsep "(?:[][,?;()]|\.$|\.?\s|$)">   <!-- things that end a TagWord -->     <!ENTITY sl_word ".*?(?=&wordsep;)">     <!ENTITY ml_word ".*?(?=&wordsep;|\*/)"> ]> <language name="Doxygen"-          version="13"+          version="14"           kateversion="5.0"           section="Markup"           extensions="*.dox;*.doxygen"
xml/glsl.xml view
@@ -1,6 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="8" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL">+<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="10" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL">+	<!--+		Based on GLSLangSpec.4.60.pdf+		https://www.khronos.org/registry/OpenGL/specs/gl/+	--> 	<highlighting> 		<list name="keywords"> 			<item>break</item>@@ -26,86 +30,204 @@ 			<item>invariant</item> 		</list> 		<list name="types">-			<item>float</item>+			<item>bool</item> 			<item>int</item>+			<item>uint</item>+			<item>float</item>+			<item>double</item> 			<item>void</item>-			<item>bool</item>  			<item>mat2</item> 			<item>mat3</item> 			<item>mat4</item>-			-			<item>vec2</item>-			<item>vec3</item>-			<item>vec4</item>-			<item>ivec2</item>-			<item>ivec3</item>-			<item>ivec4</item>+			<item>mat2x2</item>+			<item>mat2x3</item>+			<item>mat2x4</item>+			<item>mat3x2</item>+			<item>mat3x3</item>+			<item>mat3x4</item>+			<item>mat4x2</item>+			<item>mat4x3</item>+			<item>mat4x4</item>++			<item>dmat2</item>+			<item>dmat3</item>+			<item>dmat4</item>+			<item>dmat2x2</item>+			<item>dmat2x3</item>+			<item>dmat2x4</item>+			<item>dmat3x2</item>+			<item>dmat3x3</item>+			<item>dmat3x4</item>+			<item>dmat4x2</item>+			<item>dmat4x3</item>+			<item>dmat4x4</item>+ 			<item>bvec2</item> 			<item>bvec3</item> 			<item>bvec4</item>-			+			<item>dvec2</item>+			<item>dvec3</item>+			<item>dvec4</item>+			<item>ivec2</item>+			<item>ivec3</item>+			<item>ivec4</item>+			<item>uvec2</item>+			<item>uvec3</item>+			<item>uvec4</item>+			<item>vec2</item>+			<item>vec3</item>+			<item>vec4</item>+ 			<item>sampler1D</item>-			<item>sampler2D</item>-			<item>sampler3D</item>-			<item>samplerCube</item>-			<item>sampler2DRect</item>+			<item>texture1D</item>+			<item>image1D</item>+			<item>sampler1DShadow</item>+ 			<item>sampler1DArray</item>+			<item>texture1DArray</item>+			<item>image1DArray</item>+			<item>sampler1DArrayShadow</item>++			<item>sampler2D</item>+			<item>texture2D</item>+			<item>image2D</item>+			<item>sampler2DShadow</item>+ 			<item>sampler2DArray</item>-			<item>samplerCubeArray</item>-			<item>samplerBuffer</item>+			<item>texture2DArray</item>+			<item>image2DArray</item>+			<item>sampler2DArrayShadow</item>+ 			<item>sampler2DMS</item>+			<item>texture2DMS</item>+			<item>image2DMS</item> 			<item>sampler2DMSArray</item>+			<item>texture2DMSArray</item>+			<item>image2DMSArray</item>+			<item>sampler2DRect</item>+			<item>texture2DRect</item>+			<item>image2DRect</item> -			<item>sampler1DShadow</item>-			<item>sampler2DShadow</item>-			<item>samplerCubeShadow</item> 			<item>sampler2DRectShadow</item>-			<item>sampler1DArrayShadow</item>-			<item>sampler2DArrayShadow</item>+			<item>sampler3D</item>+			<item>texture3D</item>+			<item>image3D</item>+			<item>samplerCube</item>+			<item>textureCube</item>+			<item>imageCube</item>+			<item>samplerCubeShadow</item>++			<item>samplerCubeArray</item>+			<item>textureCubeArray</item>+			<item>imageCubeArray</item> 			<item>samplerCubeArrayShadow</item> +			<item>samplerBuffer</item>+			<item>textureBuffer</item>+			<item>imageBuffer</item>+			<item>subpassInput</item>+			<item>subpassInputMS</item>+ 			<item>isampler1D</item>+			<item>itexture1D</item>+			<item>iimage1D</item>++			<item>isampler1DArray</item>+			<item>itexture1DArray</item>+			<item>iimage1DArray</item>+ 			<item>isampler2D</item>+			<item>itexture2D</item>+			<item>iimage2D</item>++			<item>isampler2DArray</item>+			<item>itexture2DArray</item>+			<item>iimage2DArray</item>++			<item>isampler2DMS</item>+			<item>itexture2DMS</item>+			<item>iimage2DMS</item>++			<item>isampler2DMSArray</item>+			<item>itexture2DMSArray</item>+			<item>iimage2DMSArray</item>++			<item>isampler2DRect</item>+			<item>itexture2DRect</item>+			<item>iimage2DRect</item>+ 			<item>isampler3D</item>+			<item>itexture3D</item>+			<item>iimage3D</item>+ 			<item>isamplerCube</item>-			<item>isampler2DRect</item>-			<item>isampler1DArray</item>-			<item>isampler2DArray</item>+			<item>itextureCube</item>+			<item>iimageCube</item>+ 			<item>isamplerCubeArray</item>+			<item>itextureCubeArray</item>+			<item>iimageCubeArray</item>+ 			<item>isamplerBuffer</item>-			<item>isampler2DMS</item>-			<item>isampler2DMSArray</item>+			<item>itextureBuffer</item>+			<item>iimageBuffer</item> -			<item>isampler1DShadow</item>-			<item>isampler2DShadow</item>-			<item>isamplerCubeShadow</item>-			<item>isampler2DRectShadow</item>-			<item>isampler1DArrayShadow</item>-			<item>isampler2DArrayShadow</item>-			<item>isamplerCubeArrayShadow</item>+			<item>isubpassInput</item>+			<item>isubpassInputMS</item>  			<item>usampler1D</item>-			<item>usampler2D</item>-			<item>usampler3D</item>-			<item>usamplerCube</item>-			<item>usampler2DRect</item>+			<item>utexture1D</item>+			<item>uimage1D</item>+ 			<item>usampler1DArray</item>+			<item>utexture1DArray</item>+			<item>uimage1DArray</item>++			<item>usampler2D</item>+			<item>utexture2D</item>+			<item>uimage2D</item>+ 			<item>usampler2DArray</item>-			<item>usamplerCubeArray</item>-			<item>usamplerBuffer</item>+			<item>utexture1DArray</item>+			<item>uimage2DArray</item>+ 			<item>usampler2DMS</item>+			<item>utexture2DMS</item>+			<item>uimage2DMS</item>+ 			<item>usampler2DMSArray</item>+			<item>utexture2DMSArray</item>+			<item>uimage2DMSArray</item> -			<item>usampler1DShadow</item>-			<item>usampler2DShadow</item>-			<item>usamplerCubeShadow</item>-			<item>usampler2DRectShadow</item>-			<item>usampler1DArrayShadow</item>-			<item>usampler2DArrayShadow</item>-			<item>usamplerCubeArrayShadow</item>+			<item>usampler2DRect</item>+			<item>utexture2DRect</item>+			<item>uimage2DRect</item> +			<item>usampler3D</item>+			<item>utexture3D</item>+			<item>uimage3D</item>++			<item>usamplerCube</item>+			<item>utextureCube</item>+			<item>uimageCube</item>++			<item>usamplerCubeArray</item>+			<item>utextureCubeArray</item>+			<item>uimageCubeArray</item>++			<item>usamplerBuffer</item>+			<item>utextureBuffer</item>+			<item>uimageBuffer</item>+ 			<item>atomic_uint</item>++			<item>usubpassInput</item>+			<item>usubpassInputMS</item>++			<item>sampler</item>++			<item>samplerShadow</item> 		</list> 		<list name="typequal"> 			<item>attribute</item>@@ -116,10 +238,21 @@ 			<item>out</item> 			<item>inout</item> +			<item>patch</item>++			<!-- precision qualifiers -->+			<item>lowp</item>+			<item>mediump</item>+			<item>highp</item>+			<item>precise</item>+			<item>precision</item>+ 			<!-- interpolation qualifiers --> 			<item>flat</item> 			<item>noperspective</item> 			<item>smooth</item>+			<item>centroid</item>+			<item>sample</item>  			<!-- layout qualifiers --> 			<item>location</item>@@ -189,12 +322,22 @@ 			<item>asinh</item> 			<item>atan</item> 			<item>atanh</item>-			<item>atomicAdd</item>-			<item>atomicAnd</item> 			<item>atomicCompSwap</item> 			<item>atomicCounter</item>+			<item>atomicCounterAdd</item>+			<item>atomicCounterAnd</item>+			<item>atomicCounterCompSwap</item> 			<item>atomicCounterDecrement</item>+			<item>atomicCounterExchange</item> 			<item>atomicCounterIncrement</item>+			<item>atomicCounterMax</item>+			<item>atomicCounterMin</item>+			<item>atomicCounterOr</item>+			<item>atomicCounterSubtract</item>+			<item>atomicCounterXor</item>+			<item>atomicAdd</item>+			<item>atomicAnd</item>+			<item>atomicCompSwap</item> 			<item>atomicExchange</item> 			<item>atomicMax</item> 			<item>atomicMin</item>@@ -1075,18 +1218,90 @@ 			<item>gl_out</item>  			<!-- Built-in Constants -->-			<item>gl_MaxLights</item>+			<item>gl_MaxAtomicCounterBindings</item>+			<item>gl_MaxAtomicCounterBufferSize</item>+			<item>gl_MaxClipDistances</item> 			<item>gl_MaxClipPlanes</item>-			<item>gl_MaxTextureUnits</item>+			<item>gl_MaxCombinedAtomicCounterBuffers</item>+			<item>gl_MaxCombinedAtomicCounters</item>+			<item>gl_MaxCombinedClipAndCullDistances</item>+			<item>gl_MaxCombinedImageUniforms</item>+			<item>gl_MaxCombinedImageUnitsAndFragmentOutputs</item>+			<item>gl_MaxCombinedShaderOutputResources</item>+			<item>gl_MaxCombinedTextureImageUnits</item>+			<item>gl_MaxComputeAtomicCounterBuffers</item>+			<item>gl_MaxComputeAtomicCounters</item>+			<item>gl_MaxComputeImageUniforms</item>+			<item>gl_MaxComputeTextureImageUnits</item>+			<item>gl_MaxComputeUniformComponents</item>+			<item>gl_MaxComputeWorkGroupCount</item>+			<item>gl_MaxComputeWorkGroupSize</item>+			<item>gl_MaxCullDistances</item>+			<item>gl_MaxDrawBuffers</item>+			<item>gl_MaxFragmentAtomicCounterBuffers</item>+			<item>gl_MaxFragmentAtomicCounters</item>+			<item>gl_MaxFragmentImageUniforms</item>+			<item>gl_MaxFragmentInputComponents</item>+			<item>gl_MaxFragmentUniformComponents</item>+			<item>gl_MaxFragmentUniformVectors</item>+			<item>gl_MaxGeometryAtomicCounterBuffers</item>+			<item>gl_MaxGeometryAtomicCounters</item>+			<item>gl_MaxGeometryImageUniforms</item>+			<item>gl_MaxGeometryInputComponents</item>+			<item>gl_MaxGeometryOutputComponents</item>+			<item>gl_MaxGeometryOutputVertices</item>+			<item>gl_MaxGeometryTextureImageUnits</item>+			<item>gl_MaxGeometryTotalOutputComponents</item>+			<item>gl_MaxGeometryUniformComponents</item>+			<item>gl_MaxImageSamples</item>+			<item>gl_MaxImageUnits</item>+			<item>gl_MaxInputAttachments</item>+			<item>gl_MaxLights</item>+			<item>gl_MaxPatchVertices</item>+			<item>gl_MaxProgramTexelOffset</item>+			<item>gl_MaxSamples</item>+			<item>gl_MaxTessControlAtomicCounterBuffers</item>+			<item>gl_MaxTessControlAtomicCounters</item>+			<item>gl_MaxTessControlImageUniforms</item>+			<item>gl_MaxTessControlInputComponents</item>+			<item>gl_MaxTessControlOutputComponents</item>+			<item>gl_MaxTessControlTextureImageUnits</item>+			<item>gl_MaxTessControlTotalOutputComponents</item>+			<item>gl_MaxTessControlUniformComponents</item>+			<item>gl_MaxTessEvaluationAtomicCounterBuffers</item>+			<item>gl_MaxTessEvaluationAtomicCounters</item>+			<item>gl_MaxTessEvaluationImageUniforms</item>+			<item>gl_MaxTessEvaluationInputComponents</item>+			<item>gl_MaxTessEvaluationOutputComponents</item>+			<item>gl_MaxTessEvaluationTextureImageUnits</item>+			<item>gl_MaxTessEvaluationUniformComponents</item>+			<item>gl_MaxTessGenLevel</item>+			<item>gl_MaxTessPatchComponents</item> 			<item>gl_MaxTextureCoords</item>+			<item>gl_MaxTextureImageUnits</item>+			<item>gl_MaxTextureUnits</item>+			<item>gl_MaxTransformFeedbackBuffers</item>+			<item>gl_MaxTransformFeedbackInterleavedComponents</item>+			<item>gl_MaxVaryingComponents</item>+			<item>gl_MaxVaryingFloats</item>+			<item>gl_MaxVaryingVectors</item>+			<item>gl_MaxVertexAtomicCounterBuffers</item>+			<item>gl_MaxVertexAtomicCounters</item>+			<item>gl_MaxVertexAttribs</item> 			<item>gl_MaxVertexAttributes</item>+			<item>gl_MaxVertexImageUniforms</item>+			<item>gl_MaxVertexOutputComponents</item>+			<item>gl_MaxVertexTextureImageUnits</item> 			<item>gl_MaxVertexUniformComponents</item>+			<item>gl_MaxVertexUniformVectors</item>+			<item>gl_MaxViewports</item>+			<item>gl_MinProgramTexelOffset</item>++			<!-- Compatibility Profile Built-In Constants -->+			<item>gl_MaxTextureUnits</item>+			<item>gl_MaxTextureCoords</item>+			<item>gl_MaxClipPlanes</item> 			<item>gl_MaxVaryingFloats</item>-			<item>gl_MaxVertexTextureImageUnits</item>-			<item>gl_MaxCombinedTextureImageUnits</item>-			<item>gl_MaxTextureImageUnits</item>-			<item>gl_MaxFragmentUniformComponents</item>-			<item>gl_MaxDrawBuffers</item>  			<!-- Built-in Uniform State --> 			<item>gl_ModelViewMatrix</item>@@ -1154,20 +1369,20 @@ 				<keyword attribute="Type Qualifier" String="typequal" context="#stay" /> 				<keyword attribute="StdFunction" String="stdlib" context="#stay" /> 				<keyword attribute="StdVariable" String="stdvar" context="#stay" />-				+ 				<Float attribute="Float" context="#stay" /> 				<HlCOct attribute="Octal" context="#stay"/> 				<HlCHex attribute="Hex" context="#stay"/> 				<Int attribute="Decimal" context="#stay" />-				+ 				<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/> 				<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/> 				<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" /> 				<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />-				+ 				<DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="true"/> 				<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />-				+ 				<DetectChar attribute="Symbol" context="Member" char="." /> 				<AnyChar attribute="Symbol" context="#stay" String="+-/*%&lt;&gt;[]()^|&amp;~=!:;,?&#59;" /> 			</context>@@ -1185,7 +1400,7 @@ 			</context> 			<context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"> 			</context>-	        </contexts>+		</contexts> 		<itemDatas> 			<itemData name="Normal Text"    defStyleNum="dsNormal"/> 			<itemData name="Keyword"        defStyleNum="dsKeyword"/>
xml/gnuassembler.xml view
@@ -6,279 +6,2299 @@ *                                                                       * *               Syntax highlighting for the GNU Assembler               * *                   Copyright (C) 2002, John Zaitseff                   *-*                                                                       *-*************************************************************************--Updated:  Miquel Sabaté <mikisabate@gmail.com>-Date:     14th September, 2010-Version:  1.02--Updated:  Roland Pabel <roland@pabel.name>-Date:     15th August, 2002-Version:  1.01--Author:   John Zaitseff <J.Zaitseff@zap.org.au>-Date:     15th April, 2002-Version:  1.0--This file contains the XML syntax highlighting description for the GNU-Assembler, for KATE, the KDE Advanced Editor.  Keywords have been taken-directly from the GNU Assembler source code (read.c).--Known problems: Floating point highlighting does not work correctly.--This program, including associated files, is free software.  You may-distribute it and/or modify it under the terms of the GNU General Public-License as published by the Free Software Foundation; either Version 2 of-the license, or (at your option) any later version.--This program is distributed in the hope that it will be useful, but-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY-or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License-for more details.--You should have received a copy of the GNU General Public License along-with this program; if not, write to the Free Software Foundation, Inc.,-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA---->--<language name="GNU Assembler" version="7" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">-  <highlighting>-    <list name="keywords">-      <item>.abort</item>-      <item>.align</item>-      <item>.app-file</item>-      <item>.appline</item>-      <item>.ascii</item>-      <item>.asciz</item>-      <item>.att_syntax</item>-      <item>.balign</item>-      <item>.balignl</item>-      <item>.balignw</item>-      <item>.byte</item>-      <item>.code16</item>-      <item>.code32</item>-      <item>.comm</item>-      <item>.common.s</item>-      <item>.common</item>-      <item>.data</item>-      <item>.dc.b</item>-      <item>.dc.d</item>-      <item>.dc.l</item>-      <item>.dc.s</item>-      <item>.dc.w</item>-      <item>.dc.x</item>-      <item>.dc</item>-      <item>.dcb.b</item>-      <item>.dcb.d</item>-      <item>.dcb.l</item>-      <item>.dcb.s</item>-      <item>.dcb.w</item>-      <item>.dcb.x</item>-      <item>.dcb</item>-      <item>.debug</item>-      <item>.def</item>-      <item>.desc</item>-      <item>.dim</item>-      <item>.double</item>-      <item>.ds.b</item>-      <item>.ds.d</item>-      <item>.ds.l</item>-      <item>.ds.p</item>-      <item>.ds.s</item>-      <item>.ds.w</item>-      <item>.ds.x</item>-      <item>.ds</item>-      <item>.dsect</item>-      <item>.eject</item>-      <item>.else</item>-      <item>.elsec</item>-      <item>.elseif</item>-      <item>.end</item>-      <item>.endc</item>-      <item>.endef</item>-      <item>.endfunc</item>-      <item>.endif</item>-      <item>.endm</item>-      <item>.endr</item>-      <item>.equ</item>-      <item>.equiv</item>-      <item>.err</item>-      <item>.exitm</item>-      <item>.extend</item>-      <item>.extern</item>-      <item>.fail</item>-      <item>.file</item>-      <item>.fill</item>-      <item>.float</item>-      <item>.format</item>-      <item>.func</item>-      <item>.global</item>-      <item>.globl</item>-      <item>.hidden</item>-      <item>.hword</item>-      <item>.ident</item>-      <item>.if</item>-      <item>.ifc</item>-      <item>.ifdef</item>-      <item>.ifeq</item>-      <item>.ifeqs</item>-      <item>.ifge</item>-      <item>.ifgt</item>-      <item>.ifle</item>-      <item>.iflt</item>-      <item>.ifnc</item>-      <item>.ifndef</item>-      <item>.ifne</item>-      <item>.ifnes</item>-      <item>.ifnotdef</item>-      <item>.include</item>-      <item>.int</item>-      <item>.intel_syntax</item>-      <item>.internal</item>-      <item>.irep</item>-      <item>.irepc</item>-      <item>.irp</item>-      <item>.irpc</item>-      <item>.lcomm</item>-      <item>.lflags</item>-      <item>.line</item>-      <item>.linkonce</item>-      <item>.list</item>-      <item>.llen</item>-      <item>.ln</item>-      <item>.long</item>-      <item>.lsym</item>-      <item>.macro</item>-      <item>.mexit</item>-      <item>.name</item>-      <item>.noformat</item>-      <item>.nolist</item>-      <item>.nopage</item>-      <item>noprefix</item>-      <item>.octa</item>-      <item>.offset</item>-      <item>.org</item>-      <item>.p2align</item>-      <item>.p2alignl</item>-      <item>.p2alignw</item>-      <item>.page</item>-      <item>.plen</item>-      <item>.popsection</item>-      <item>.previous</item>-      <item>.print</item>-      <item>.protected</item>-      <item>.psize</item>-      <item>.purgem</item>-      <item>.pushsection</item>-      <item>.quad</item>-      <item>.rodata</item>-      <item>.rep</item>-      <item>.rept</item>-      <item>.rva</item>-      <item>.sbttl</item>-      <item>.scl</item>-      <item>.sect.s</item>-      <item>.sect</item>-      <item>.section.s</item>-      <item>.section</item>-      <item>.set</item>-      <item>.short</item>-      <item>.single</item>-      <item>.size</item>-      <item>.skip</item>-      <item>.sleb128</item>-      <item>.space</item>-      <item>.spc</item>-      <item>.stabd</item>-      <item>.stabn</item>-      <item>.stabs</item>-      <item>.string</item>-      <item>.struct</item>-      <item>.subsection</item>-      <item>.symver</item>-      <item>.tag</item>-      <item>.text</item>-      <item>.title</item>-      <item>.ttl</item>-      <item>.type</item>-      <item>.uleb128</item>-      <item>.use</item>-      <item>.val</item>-      <item>.version</item>-      <item>.vtable_entry</item>-      <item>.vtable_inherit</item>-      <item>.weak</item>-      <item>.word</item>-      <item>.xcom</item>-      <item>.xdef</item>-      <item>.xref</item>-      <item>.xstabs</item>-      <item>.zero</item>-      <!-- Directives specific to ARM -->-      <item>.arm</item>-      <item>.bss</item>-      <item>.code</item>-      <item>.even</item>-      <item>.force_thumb</item>-      <item>.ldouble</item>-      <item>.loc</item>-      <item>.ltorg</item>-      <item>.packed</item>-      <item>.pool</item>-      <item>.req</item>-      <item>.thumb</item>-      <item>.thumb_func</item>-      <item>.thumb_set</item>-    </list>--    <contexts>-      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">-        <RegExpr      attribute="Label" context="#stay" String="[\.]?[_\w\d-]*\s*:" />-        <keyword      attribute="Keyword" context="#stay" String="keywords"/>-        <HlCOct       attribute="Octal" context="#stay" />-        <HlCHex       attribute="Hex" context="#stay" />-        <RegExpr      attribute="Binary" context="#stay" String="0[bB][01]+" />-        <Int          attribute="Decimal" context="#stay" />-        <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />-        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />-        <HlCChar      attribute="Char" context="#stay" />-        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />-        <DetectChar   attribute="String" context="String" char="&quot;" />-        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />-        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />-        <RegExpr      attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />-        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" firstNonSpace="true" />-        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" beginRegion="BlockComment" />-        <AnyChar      attribute="Comment" context="Commentar 2" String="@;#" />-        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{|}~" />-      </context>-      <context attribute="Comment" lineEndContext="#stay" name="Commentar 1">-        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />-        <DetectSpaces />-        <IncludeRules context="##Comments" />-      </context>-      <context attribute="Comment" lineEndContext="#pop" name="Commentar 2" >-        <DetectSpaces />-        <IncludeRules context="##Comments" />-      </context>-      <context attribute="String" lineEndContext="#pop" name="String">-        <LineContinue  attribute="String" context="Some Context" />-        <HlCStringChar attribute="String Char" context="#stay" />-        <DetectChar    attribute="String" context="#pop" char="&quot;" />-      </context>-      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor" />-      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">-        <LineContinue attribute="Preprocessor" context="#stay"/>-      </context>-      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />-    </contexts>--    <itemDatas>-      <itemData name="Normal Text"  defStyleNum="dsNormal"   />-      <itemData name="Label"        defStyleNum="dsKeyword"  />-      <itemData name="Keyword"      defStyleNum="dsKeyword"  />+*                   Copyright (C) 2021, Waqar Ahmed                     *+*                                                                       *+*************************************************************************++Updated:  Waqar Ahmed <waqar.17a@gmail.com>+Date:     30 April, 2021+Version:  2.0++Updated:  Miquel Sabaté <mikisabate@gmail.com>+Date:     14th September, 2010+Version:  1.02++Updated:  Roland Pabel <roland@pabel.name>+Date:     15th August, 2002+Version:  1.01++Author:   John Zaitseff <J.Zaitseff@zap.org.au>+Date:     15th April, 2002+Version:  1.0++This file contains the XML syntax highlighting description for the GNU+Assembler, for KATE, the KDE Advanced Editor.  Keywords have been taken+directly from the GNU Assembler source code (read.c).++Known problems: Floating point highlighting does not work correctly.++This program, including associated files, is free software.  You may+distribute it and/or modify it under the terms of the GNU General Public+License as published by the Free Software Foundation; either Version 2 of+the license, or (at your option) any later version.++This program is distributed in the hope that it will be useful, but+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License+for more details.++You should have received a copy of the GNU General Public License along+with this program; if not, write to the Free Software Foundation, Inc.,+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA++-->++<language name="GNU Assembler" version="8" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com) Waqar Ahmed (waqar.17a@gmail.com)" license="GPLv2+">+  <highlighting>+    <list name="registers">+      <!-- General purpose registers -->+      <item>rax</item>+      <item>eax</item>+      <item>ax</item>+      <item>ah</item>+      <item>al</item>+      <item>rbx</item>+      <item>ebx</item>+      <item>bx</item>+      <item>bh</item>+      <item>bl</item>+      <item>rcx</item>+      <item>ecx</item>+      <item>cx</item>+      <item>ch</item>+      <item>cl</item>+      <item>rdx</item>+      <item>edx</item>+      <item>dx</item>+      <item>dh</item>+      <item>dl</item>+      <item>rbp</item>+      <item>ebp</item>+      <item>bp</item>+      <item>bpl</item>+      <item>rsi</item>+      <item>esi</item>+      <item>si</item>+      <item>sil</item>+      <item>rdi</item>+      <item>edi</item>+      <item>di</item>+      <item>dil</item>++      <item>rip</item>+      <item>eip</item>+      <item>ip</item>++      <item>rsp</item>+      <item>esp</item>+      <item>sp</item>+      <item>spl</item>+      <item>r8</item>+      <item>r8d</item>+      <item>r8w</item>+      <item>r8b</item>+      <item>r9</item>+      <item>r9d</item>+      <item>r9w</item>+      <item>r9b</item>+      <item>r10</item>+      <item>r10d</item>+      <item>r10w</item>+      <item>r10b</item>+      <item>r11</item>+      <item>r11d</item>+      <item>r11w</item>+      <item>r11b</item>+      <item>r12</item>+      <item>r12d</item>+      <item>r12w</item>+      <item>r12b</item>+      <item>r13</item>+      <item>r13d</item>+      <item>r13w</item>+      <item>r13b</item>+      <item>r14</item>+      <item>r14d</item>+      <item>r14w</item>+      <item>r14b</item>+      <item>r15</item>+      <item>r15d</item>+      <item>r15w</item>+      <item>r15b</item>+      <!-- Segmentation registers -->+      <item>cs</item>+      <item>ds</item>+      <item>es</item>+      <item>fs</item>+      <item>gs</item>+      <item>ss</item>+      <!-- Control registers -->+      <item>cr0</item>+      <!--<item>cr1</item>-->+      <item>cr2</item>+      <item>cr3</item>+      <item>cr4</item>+      <!-- Debug registers -->+      <item>dr0</item>+      <item>dr1</item>+      <item>dr2</item>+      <item>dr3</item>+      <item>dr6</item>+      <item>dr7</item>+      <!-- x87 FPU Registers -->+      <item>st</item>+      <!-- MMX registers -->+      <item>mm0</item>+      <item>mm1</item>+      <item>mm2</item>+      <item>mm3</item>+      <item>mm4</item>+      <item>mm5</item>+      <item>mm6</item>+      <item>mm7</item>+      <!-- XMM registers -->+      <item>xmm0</item>+      <item>xmm1</item>+      <item>xmm2</item>+      <item>xmm3</item>+      <item>xmm4</item>+      <item>xmm5</item>+      <item>xmm6</item>+      <item>xmm7</item>+      <item>xmm8</item>+      <item>xmm9</item>+      <item>xmm10</item>+      <item>xmm11</item>+      <item>xmm12</item>+      <item>xmm13</item>+      <item>xmm14</item>+      <item>xmm15</item>+      <item>xmm16</item>+      <item>xmm17</item>+      <item>xmm18</item>+      <item>xmm19</item>+      <item>xmm20</item>+      <item>xmm21</item>+      <item>xmm22</item>+      <item>xmm23</item>+      <item>xmm24</item>+      <item>xmm25</item>+      <item>xmm26</item>+      <item>xmm27</item>+      <item>xmm28</item>+      <item>xmm29</item>+      <item>xmm30</item>+      <item>xmm31</item>+      <!-- YMM registers -->+      <item>ymm0</item>+      <item>ymm1</item>+      <item>ymm2</item>+      <item>ymm3</item>+      <item>ymm4</item>+      <item>ymm5</item>+      <item>ymm6</item>+      <item>ymm7</item>+      <item>ymm8</item>+      <item>ymm9</item>+      <item>ymm10</item>+      <item>ymm11</item>+      <item>ymm12</item>+      <item>ymm13</item>+      <item>ymm14</item>+      <item>ymm15</item>+      <item>ymm16</item>+      <item>ymm17</item>+      <item>ymm18</item>+      <item>ymm19</item>+      <item>ymm20</item>+      <item>ymm21</item>+      <item>ymm22</item>+      <item>ymm23</item>+      <item>ymm24</item>+      <item>ymm25</item>+      <item>ymm26</item>+      <item>ymm27</item>+      <item>ymm28</item>+      <item>ymm29</item>+      <item>ymm30</item>+      <item>ymm31</item>+      <!-- ZMM registers -->+      <item>zmm0</item>+      <item>zmm1</item>+      <item>zmm2</item>+      <item>zmm3</item>+      <item>zmm4</item>+      <item>zmm5</item>+      <item>zmm6</item>+      <item>zmm7</item>+      <item>zmm8</item>+      <item>zmm9</item>+      <item>zmm10</item>+      <item>zmm11</item>+      <item>zmm12</item>+      <item>zmm13</item>+      <item>zmm14</item>+      <item>zmm15</item>+      <item>zmm16</item>+      <item>zmm17</item>+      <item>zmm18</item>+      <item>zmm19</item>+      <item>zmm20</item>+      <item>zmm21</item>+      <item>zmm22</item>+      <item>zmm23</item>+      <item>zmm24</item>+      <item>zmm25</item>+      <item>zmm26</item>+      <item>zmm27</item>+      <item>zmm28</item>+      <item>zmm29</item>+      <item>zmm30</item>+      <item>zmm31</item>+    </list>++    <list name="instructions">+      <item>lock</item>+      <item>rep</item>+      <item>repe</item>+      <item>repz</item>+      <item>repne</item>+      <item>repnz</item>+      <item>xaquire</item>+      <item>xrelease</item>+      <item>bnd</item>+      <item>nobnd</item>+      <item>aaa</item>+      <item>aad</item>+      <item>aam</item>+      <item>aas</item>+      <item>adc</item>+      <item>addb</item>+      <item>addw</item>+      <item>addl</item>+      <item>addq</item>+      <item>and</item>+      <item>arpl</item>+      <item>bb0_reset</item>+      <item>bb1_reset</item>+      <item>bound</item>+      <item>bsf</item>+      <item>bsr</item>+      <item>bswap</item>+      <item>bt</item>+      <item>btc</item>+      <item>btr</item>+      <item>bts</item>+      <item>cbw</item>+      <item>cdq</item>+      <item>cdqe</item>+      <item>clc</item>+      <item>cld</item>+      <item>cli</item>+      <item>clts</item>+      <item>cltd</item>+      <item>cmc</item>+      <item>cmpb</item>+      <item>cmpw</item>+      <item>cmpl</item>+      <item>cmpq</item>+      <item>cmpsb</item>+      <item>cmpsd</item>+      <item>cmpsq</item>+      <item>cmpsw</item>+      <item>cmpxchg</item>+      <item>cmpxchg486</item>+      <item>cmpxchg8b</item>+      <item>cmpxchg16b</item>+      <item>cpuid</item>+      <item>cpu_read</item>+      <item>cpu_write</item>+      <item>cqo</item>+      <item>cwd</item>+      <item>cwde</item>+      <item>daa</item>+      <item>das</item>+      <item>dec</item>+      <item>div</item>+      <item>divb</item>+      <item>divw</item>+      <item>divl</item>+      <item>divq</item>+      <item>dmint</item>+      <item>emms</item>+      <item>enter</item>+      <item>equ</item>+      <item>f2xm1</item>+      <item>fabs</item>+      <item>fadd</item>+      <item>faddp</item>+      <item>fbld</item>+      <item>fbstp</item>+      <item>fchs</item>+      <item>fclex</item>+      <item>fcmovb</item>+      <item>fcmovbe</item>+      <item>fcmove</item>+      <item>fcmovnb</item>+      <item>fcmovnbe</item>+      <item>fcmovne</item>+      <item>fcmovnu</item>+      <item>fcmovu</item>+      <item>fcom</item>+      <item>fcomi</item>+      <item>fcomip</item>+      <item>fcomp</item>+      <item>fcompp</item>+      <item>fcos</item>+      <item>fdecstp</item>+      <item>fdisi</item>+      <item>fdiv</item>+      <item>fdivp</item>+      <item>fdivr</item>+      <item>fdivrp</item>+      <item>femms</item>+      <item>feni</item>+      <item>ffree</item>+      <item>ffreep</item>+      <item>fiadd</item>+      <item>ficom</item>+      <item>ficomp</item>+      <item>fidiv</item>+      <item>fidivr</item>+      <item>fild</item>+      <item>fimul</item>+      <item>fincstp</item>+      <item>finit</item>+      <item>fist</item>+      <item>fistp</item>+      <item>fisttp</item>+      <item>fisub</item>+      <item>fisubr</item>+      <item>fld</item>+      <item>fld1</item>+      <item>fldcw</item>+      <item>fldenv</item>+      <item>fldl2e</item>+      <item>fldl2t</item>+      <item>fldlg2</item>+      <item>fldln2</item>+      <item>fldpi</item>+      <item>fldz</item>+      <item>fmul</item>+      <item>fmulp</item>+      <item>fnclex</item>+      <item>fndisi</item>+      <item>fneni</item>+      <item>fninit</item>+      <item>fnop</item>+      <item>fnsave</item>+      <item>fnstcw</item>+      <item>fnstenv</item>+      <item>fnstsw</item>+      <item>fpatan</item>+      <item>fprem</item>+      <item>fprem1</item>+      <item>fptan</item>+      <item>frndint</item>+      <item>frstor</item>+      <item>fsave</item>+      <item>fscale</item>+      <item>fsetpm</item>+      <item>fsin</item>+      <item>fsincos</item>+      <item>fsqrt</item>+      <item>fst</item>+      <item>fstcw</item>+      <item>fstenv</item>+      <item>fstp</item>+      <item>fstsw</item>+      <item>fsub</item>+      <item>fsubp</item>+      <item>fsubr</item>+      <item>fsubrp</item>+      <item>ftst</item>+      <item>fucom</item>+      <item>fucomi</item>+      <item>fucomip</item>+      <item>fucomp</item>+      <item>fucompp</item>+      <item>fxam</item>+      <item>fxch</item>+      <item>fxtract</item>+      <item>fyl2x</item>+      <item>fyl2xp1</item>+      <item>global</item>+      <item>globl</item>+      <item>hlt</item>+      <item>ibts</item>+      <item>icebp</item>+      <item>idiv</item>+      <item>idivb</item>+      <item>idivw</item>+      <item>idivl</item>+      <item>idivq</item>+      <item>imul</item>+      <item>imulb</item>+      <item>imulw</item>+      <item>imull</item>+      <item>imulq</item>+      <item>in</item>+      <item>inc</item>+      <item>incbin</item>+      <item>insb</item>+      <item>insd</item>+      <item>insw</item>+      <item>int</item>+      <item>int01</item>+      <item>int1</item>+      <item>int03</item>+      <item>int3</item>+      <item>into</item>+      <item>invd</item>+      <item>invpcid</item>+      <item>invlpg</item>+      <item>invlpga</item>+      <item>iret</item>+      <item>iretd</item>+      <item>iretq</item>+      <item>iretw</item>+      <item>jcxz</item>+      <item>jecxz</item>+      <item>jrcxz</item>+      <item>lahf</item>+      <item>lar</item>+      <item>lds</item>+      <item>leal</item>+      <item>leaq</item>+      <item>leave</item>+      <item>les</item>+      <item>lfence</item>+      <item>lfs</item>+      <item>lgdt</item>+      <item>lgs</item>+      <item>lidt</item>+      <item>lldt</item>+      <item>lmsw</item>+      <item>loadall</item>+      <item>loadall286</item>+      <item>lodsb</item>+      <item>lodsd</item>+      <item>lodsq</item>+      <item>lodsw</item>+      <item>loop</item>+      <item>loope</item>+      <item>loopne</item>+      <item>loopnz</item>+      <item>loopz</item>+      <item>lsl</item>+      <item>lss</item>+      <item>ltr</item>+      <item>mfence</item>+      <item>monitor</item>+      <item>movb</item>+      <item>movw</item>+      <item>movl</item>+      <item>movq</item>+      <item>movsb</item>+      <item>movsd</item>+      <item>movsq</item>+      <item>movsw</item>+      <item>movsx</item>+      <item>movsxd</item>+      <item>movzx</item>+      <item>mul</item>+      <item>mulb</item>+      <item>mulw</item>+      <item>mull</item>+      <item>mulq</item>+      <item>mwait</item>+      <item>neg</item>+      <item>nop</item>+      <item>not</item>+      <item>or</item>+      <item>out</item>+      <item>outsb</item>+      <item>outsd</item>+      <item>outsw</item>+      <item>packssdw</item>+      <item>packsswb</item>+      <item>packuswb</item>+      <item>paddb</item>+      <item>paddd</item>+      <item>paddsb</item>+      <item>paddsiw</item>+      <item>paddsw</item>+      <item>paddusb</item>+      <item>paddusw</item>+      <item>paddw</item>+      <item>pand</item>+      <item>pandn</item>+      <item>pause</item>+      <item>paveb</item>+      <item>pavgusb</item>+      <item>pcmpeqb</item>+      <item>pcmpeqd</item>+      <item>pcmpeqw</item>+      <item>pcmpgtb</item>+      <item>pcmpgtd</item>+      <item>pcmpgtw</item>+      <item>pdistib</item>+      <item>pf2id</item>+      <item>pfacc</item>+      <item>pfadd</item>+      <item>pfcmpeq</item>+      <item>pfcmpge</item>+      <item>pfcmpgt</item>+      <item>pfmax</item>+      <item>pfmin</item>+      <item>pfmul</item>+      <item>pfrcp</item>+      <item>pfrcpit1</item>+      <item>pfrcpit2</item>+      <item>pfrsqit1</item>+      <item>pfrsqrt</item>+      <item>pfsub</item>+      <item>pfsubr</item>+      <item>pi2fd</item>+      <item>pmachriw</item>+      <item>pmaddwd</item>+      <item>pmagw</item>+      <item>pmulhriw</item>+      <item>pmulhrwa</item>+      <item>pmulhrwc</item>+      <item>pmulhw</item>+      <item>pmullw</item>+      <item>pmvgezb</item>+      <item>pmvlzb</item>+      <item>pmvnzb</item>+      <item>pmvzb</item>+      <item>pop</item>+      <item>popl</item>+      <item>popq</item>+      <item>popa</item>+      <item>popad</item>+      <item>popaw</item>+      <item>popf</item>+      <item>popfd</item>+      <item>popfq</item>+      <item>popfw</item>+      <item>por</item>+      <item>prefetch</item>+      <item>prefetchw</item>+      <item>pslld</item>+      <item>psllq</item>+      <item>psllw</item>+      <item>psrad</item>+      <item>psraw</item>+      <item>psrld</item>+      <item>psrlq</item>+      <item>psrlw</item>+      <item>psubb</item>+      <item>psubd</item>+      <item>psubsb</item>+      <item>psubsiw</item>+      <item>psubsw</item>+      <item>psubusb</item>+      <item>psubusw</item>+      <item>psubw</item>+      <item>punpckhbw</item>+      <item>punpckhdq</item>+      <item>punpckhwd</item>+      <item>punpcklbw</item>+      <item>punpckldq</item>+      <item>punpcklwd</item>+      <item>push</item>+      <item>pusha</item>+      <item>pushl</item>+      <item>pushq</item>+      <item>pushad</item>+      <item>pushaw</item>+      <item>pushf</item>+      <item>pushfd</item>+      <item>pushfq</item>+      <item>pushfw</item>+      <item>pxor</item>+      <item>rcl</item>+      <item>rcr</item>+      <item>rdshr</item>+      <item>rdmsr</item>+      <item>rdpmc</item>+      <item>rdtsc</item>+      <item>rdtscp</item>+      <item>ret</item>+      <item>retf</item>+      <item>retn</item>+      <item>retq</item>+      <item>rol</item>+      <item>ror</item>+      <item>rdm</item>+      <item>rsdc</item>+      <item>rsldt</item>+      <item>rsm</item>+      <item>rsts</item>+      <item>sahf</item>+      <item>sal</item>+      <item>sall</item>+      <item>salq</item>+      <item>salc</item>+      <item>sar</item>+      <item>sarl</item>+      <item>sarq</item>+      <item>sbb</item>+      <item>scasb</item>+      <item>scasd</item>+      <item>scasq</item>+      <item>scasw</item>+      <item>sfence</item>+      <item>sgdt</item>+      <item>shl</item>+      <item>shll</item>+      <item>shllq</item>+      <item>shld</item>+      <item>shr</item>+      <item>shrd</item>+      <item>sidt</item>+      <item>sldt</item>+      <item>skinit</item>+      <item>smi</item>+      <item>smint</item>+      <item>smintold</item>+      <item>smsw</item>+      <item>stc</item>+      <item>std</item>+      <item>sti</item>+      <item>stosb</item>+      <item>stosd</item>+      <item>stosq</item>+      <item>stosw</item>+      <item>str</item>+      <item>sub</item>+      <item>subw</item>+      <item>subl</item>+      <item>subq</item>+      <item>svdc</item>+      <item>svldt</item>+      <item>svts</item>+      <item>swapgs</item>+      <item>syscall</item>+      <item>sysenter</item>+      <item>sysexit</item>+      <item>sysret</item>+      <item>test</item>+      <item>testl</item>+      <item>testq</item>+      <item>ud0</item>+      <item>ud1</item>+      <item>ud2b</item>+      <item>ud2</item>+      <item>ud2a</item>+      <item>umov</item>+      <item>verr</item>+      <item>verw</item>+      <item>fwait</item>+      <item>wbinvd</item>+      <item>wrshr</item>+      <item>wrmsr</item>+      <item>xadd</item>+      <item>xbts</item>+      <item>xchg</item>+      <item>xlatb</item>+      <item>xlat</item>+      <item>xor</item>+      <item>cmove</item>+      <item>cmovz</item>+      <item>cmovne</item>+      <item>cmovnz</item>+      <item>cmova</item>+      <item>cmovnbe</item>+      <item>cmovae</item>+      <item>cmovnb</item>+      <item>cmovb</item>+      <item>cmovnae</item>+      <item>cmovbe</item>+      <item>cmovna</item>+      <item>cmovg</item>+      <item>cmovnle</item>+      <item>cmovge</item>+      <item>cmovnl</item>+      <item>cmovl</item>+      <item>cmovnge</item>+      <item>cmovle</item>+      <item>cmovng</item>+      <item>cmovc</item>+      <item>cmovnc</item>+      <item>cmovo</item>+      <item>cmovno</item>+      <item>cmovs</item>+      <item>cmovns</item>+      <item>cmovp</item>+      <item>cmovpe</item>+      <item>cmovnp</item>+      <item>cmovpo</item>+      <item>sete</item>+      <item>setz</item>+      <item>setne</item>+      <item>setnz</item>+      <item>seta</item>+      <item>setnbe</item>+      <item>setae</item>+      <item>setnb</item>+      <item>setnc</item>+      <item>setb</item>+      <item>setnae</item>+      <item>setcset</item>+      <item>setbe</item>+      <item>setna</item>+      <item>setg</item>+      <item>setnle</item>+      <item>setge</item>+      <item>setnl</item>+      <item>setl</item>+      <item>setnge</item>+      <item>setle</item>+      <item>setng</item>+      <item>sets</item>+      <item>setns</item>+      <item>seto</item>+      <item>setno</item>+      <item>setpe</item>+      <item>setp</item>+      <item>setpo</item>+      <item>setnp</item>+      <item>addps</item>+      <item>addss</item>+      <item>andnps</item>+      <item>andps</item>+      <item>cmpeqps</item>+      <item>cmpeqss</item>+      <item>cmpleps</item>+      <item>cmpless</item>+      <item>cmpltps</item>+      <item>cmpltss</item>+      <item>cmpneqps</item>+      <item>cmpneqss</item>+      <item>cmpnleps</item>+      <item>cmpnless</item>+      <item>cmpnltps</item>+      <item>cmpnltss</item>+      <item>cmpordps</item>+      <item>cmpordss</item>+      <item>cmpunordps</item>+      <item>cmpunordss</item>+      <item>cmpps</item>+      <item>cmpss</item>+      <item>comiss</item>+      <item>cvtpi2ps</item>+      <item>cvtps2pi</item>+      <item>cvtsi2ss</item>+      <item>cvtss2si</item>+      <item>cvttps2pi</item>+      <item>cvttss2si</item>+      <item>divps</item>+      <item>divss</item>+      <item>ldmxcsr</item>+      <item>maxps</item>+      <item>maxss</item>+      <item>minps</item>+      <item>minss</item>+      <item>movaps</item>+      <item>movhps</item>+      <item>movlhps</item>+      <item>movlps</item>+      <item>movhlps</item>+      <item>movmskps</item>+      <item>movntps</item>+      <item>movss</item>+      <item>movups</item>+      <item>mulps</item>+      <item>mulss</item>+      <item>orps</item>+      <item>rcpps</item>+      <item>rcpss</item>+      <item>rsqrtps</item>+      <item>rsqrtss</item>+      <item>shufps</item>+      <item>sqrtps</item>+      <item>sqrtss</item>+      <item>stmxcsr</item>+      <item>subps</item>+      <item>subss</item>+      <item>ucomiss</item>+      <item>unpckhps</item>+      <item>unpcklps</item>+      <item>xorps</item>+      <item>fxrstor</item>+      <item>fxrstor64</item>+      <item>fxsave</item>+      <item>fxsave64</item>+      <item>xgetbv</item>+      <item>xsetbv</item>+      <item>xsave</item>+      <item>xsave64</item>+      <item>xsaveopt</item>+      <item>xsaveopt64</item>+      <item>xrstor</item>+      <item>xrstor64</item>+      <item>prefetchnta</item>+      <item>prefetcht0</item>+      <item>prefetcht1</item>+      <item>prefetcht2</item>+      <item>maskmovq</item>+      <item>movntq</item>+      <item>pavgb</item>+      <item>pavgw</item>+      <item>pextrw</item>+      <item>pinsrw</item>+      <item>pmaxsw</item>+      <item>pmaxub</item>+      <item>pminsw</item>+      <item>pminub</item>+      <item>pmovmskb</item>+      <item>pmulhuw</item>+      <item>psadbw</item>+      <item>pshufw</item>+      <item>pf2iw</item>+      <item>pfnacc</item>+      <item>pfpnacc</item>+      <item>pi2fw</item>+      <item>pswapd</item>+      <item>maskmovdqu</item>+      <item>clflush</item>+      <item>movntdq</item>+      <item>movnti</item>+      <item>movntpd</item>+      <item>movdqa</item>+      <item>movdqu</item>+      <item>movdq2q</item>+      <item>movq2dq</item>+      <item>paddq</item>+      <item>pmuludq</item>+      <item>pshufd</item>+      <item>pshufhw</item>+      <item>pshuflw</item>+      <item>pslldq</item>+      <item>psrldq</item>+      <item>psubq</item>+      <item>punpckhqdq</item>+      <item>punpcklqdq</item>+      <item>addpd</item>+      <item>addsd</item>+      <item>andnpd</item>+      <item>andpd</item>+      <item>cmpeqpd</item>+      <item>cmpeqsd</item>+      <item>cmplepd</item>+      <item>cmplesd</item>+      <item>cmpltpd</item>+      <item>cmpltsd</item>+      <item>cmpneqpd</item>+      <item>cmpneqsd</item>+      <item>cmpnlepd</item>+      <item>cmpnlesd</item>+      <item>cmpnltpd</item>+      <item>cmpnltsd</item>+      <item>cmpordpd</item>+      <item>cmpordsd</item>+      <item>cmpunordpd</item>+      <item>cmpunordsd</item>+      <item>cmppd</item>+      <item>comisd</item>+      <item>cvtdq2pd</item>+      <item>cvtdq2ps</item>+      <item>cvtpd2dq</item>+      <item>cvtpd2pi</item>+      <item>cvtpd2ps</item>+      <item>cvtpi2pd</item>+      <item>cvtps2dq</item>+      <item>cvtps2pd</item>+      <item>cvtsd2si</item>+      <item>cvtsd2ss</item>+      <item>cvtsi2sd</item>+      <item>cvtss2sd</item>+      <item>cvttpd2pi</item>+      <item>cvttpd2dq</item>+      <item>cvttps2dq</item>+      <item>cvttsd2si</item>+      <item>divpd</item>+      <item>divsd</item>+      <item>maxpd</item>+      <item>maxsd</item>+      <item>minpd</item>+      <item>minsd</item>+      <item>movapd</item>+      <item>movhpd</item>+      <item>movlpd</item>+      <item>movmskpd</item>+      <item>movupd</item>+      <item>mulpd</item>+      <item>mulsd</item>+      <item>orpd</item>+      <item>shufpd</item>+      <item>sqrtpd</item>+      <item>sqrtsd</item>+      <item>subpd</item>+      <item>subsd</item>+      <item>ucomisd</item>+      <item>unpckhpd</item>+      <item>unpcklpd</item>+      <item>xorpd</item>+      <item>addsubpd</item>+      <item>addsubps</item>+      <item>haddpd</item>+      <item>haddps</item>+      <item>hsubpd</item>+      <item>hsubps</item>+      <item>lddqu</item>+      <item>movddup</item>+      <item>movshdup</item>+      <item>movsldup</item>+      <item>clgi</item>+      <item>stgi</item>+      <item>vmcall</item>+      <item>vmclear</item>+      <item>vmfunc</item>+      <item>vmlaunch</item>+      <item>vmload</item>+      <item>vmmcall</item>+      <item>vmptrld</item>+      <item>vmptrst</item>+      <item>vmread</item>+      <item>vmresume</item>+      <item>vmrun</item>+      <item>vmsave</item>+      <item>vmwrite</item>+      <item>vmxoff</item>+      <item>vmxon</item>+      <item>invept</item>+      <item>invvpid</item>+      <item>pabsb</item>+      <item>pabsw</item>+      <item>pabsd</item>+      <item>palignr</item>+      <item>phaddw</item>+      <item>phaddd</item>+      <item>phaddsw</item>+      <item>phsubw</item>+      <item>phsubd</item>+      <item>phsubsw</item>+      <item>pmaddubsw</item>+      <item>pmulhrsw</item>+      <item>pshufb</item>+      <item>psignb</item>+      <item>psignw</item>+      <item>psignd</item>+      <item>extrq</item>+      <item>insertq</item>+      <item>movntsd</item>+      <item>movntss</item>+      <item>lzcnt</item>+      <item>blendpd</item>+      <item>blendps</item>+      <item>blendvpd</item>+      <item>blendvps</item>+      <item>dppd</item>+      <item>dpps</item>+      <item>extractps</item>+      <item>insertps</item>+      <item>movntdqa</item>+      <item>mpsadbw</item>+      <item>packusdw</item>+      <item>pblendvb</item>+      <item>pblendw</item>+      <item>pcmpeqq</item>+      <item>pextrb</item>+      <item>pextrd</item>+      <item>pextrq</item>+      <item>phminposuw</item>+      <item>pinsrb</item>+      <item>pinsrd</item>+      <item>pinsrq</item>+      <item>pmaxsb</item>+      <item>pmaxsd</item>+      <item>pmaxud</item>+      <item>pmaxuw</item>+      <item>pminsb</item>+      <item>pminsd</item>+      <item>pminud</item>+      <item>pminuw</item>+      <item>pmovsxbw</item>+      <item>pmovsxbd</item>+      <item>pmovsxbq</item>+      <item>pmovsxwd</item>+      <item>pmovsxwq</item>+      <item>pmovsxdq</item>+      <item>pmovzxbw</item>+      <item>pmovzxbd</item>+      <item>pmovzxbq</item>+      <item>pmovzxwd</item>+      <item>pmovzxwq</item>+      <item>pmovzxdq</item>+      <item>pmuldq</item>+      <item>pmulld</item>+      <item>ptest</item>+      <item>roundpd</item>+      <item>roundps</item>+      <item>roundsd</item>+      <item>roundss</item>+      <item>crc32</item>+      <item>pcmpestri</item>+      <item>pcmpestrm</item>+      <item>pcmpistri</item>+      <item>pcmpistrm</item>+      <item>pcmpgtq</item>+      <item>popcnt</item>+      <item>getsec</item>+      <item>pfrcpv</item>+      <item>pfrsqrtv</item>+      <item>movbe</item>+      <item>aesenc</item>+      <item>aesenclast</item>+      <item>aesdec</item>+      <item>aesdeclast</item>+      <item>aesimc</item>+      <item>aeskeygenassist</item>+      <item>vaesenc</item>+      <item>vaesenclast</item>+      <item>vaesdec</item>+      <item>vaesdeclast</item>+      <item>vaesimc</item>+      <item>vaeskeygenassist</item>+      <item>vaddpd</item>+      <item>vaddps</item>+      <item>vaddsd</item>+      <item>vaddss</item>+      <item>vaddsubpd</item>+      <item>vaddsubps</item>+      <item>vandpd</item>+      <item>vandps</item>+      <item>vandnpd</item>+      <item>vandnps</item>+      <item>vblendpd</item>+      <item>vblendps</item>+      <item>vblendvpd</item>+      <item>vblendvps</item>+      <item>vbroadcastss</item>+      <item>vbroadcastsd</item>+      <item>vbroadcastf128</item>+      <item>vcmpeq_ospd</item>+      <item>vcmpeqpd</item>+      <item>vcmplt_ospd</item>+      <item>vcmpltpd</item>+      <item>vcmple_ospd</item>+      <item>vcmplepd</item>+      <item>vcmpunord_qpd</item>+      <item>vcmpunordpd</item>+      <item>vcmpneq_uqpd</item>+      <item>vcmpneqpd</item>+      <item>vcmpnlt_uspd</item>+      <item>vcmpnltpd</item>+      <item>vcmpnle_uspd</item>+      <item>vcmpnlepd</item>+      <item>vcmpord_qpd</item>+      <item>vcmpordpd</item>+      <item>vcmpeq_uqpd</item>+      <item>vcmpnge_uspd</item>+      <item>vcmpngepd</item>+      <item>vcmpngt_uspd</item>+      <item>vcmpngtpd</item>+      <item>vcmpfalse_oqpd</item>+      <item>vcmpfalsepd</item>+      <item>vcmpneq_oqpd</item>+      <item>vcmpge_ospd</item>+      <item>vcmpgepd</item>+      <item>vcmpgt_ospd</item>+      <item>vcmpgtpd</item>+      <item>vcmptrue_uqpd</item>+      <item>vcmptruepd</item>+      <item>vcmplt_oqpd</item>+      <item>vcmple_oqpd</item>+      <item>vcmpunord_spd</item>+      <item>vcmpneq_uspd</item>+      <item>vcmpnlt_uqpd</item>+      <item>vcmpnle_uqpd</item>+      <item>vcmpord_spd</item>+      <item>vcmpeq_uspd</item>+      <item>vcmpnge_uqpd</item>+      <item>vcmpngt_uqpd</item>+      <item>vcmpfalse_ospd</item>+      <item>vcmpneq_ospd</item>+      <item>vcmpge_oqpd</item>+      <item>vcmpgt_oqpd</item>+      <item>vcmptrue_uspd</item>+      <item>vcmppd</item>+      <item>vcmpeq_osps</item>+      <item>vcmpeqps</item>+      <item>vcmplt_osps</item>+      <item>vcmpltps</item>+      <item>vcmple_osps</item>+      <item>vcmpleps</item>+      <item>vcmpunord_qps</item>+      <item>vcmpunordps</item>+      <item>vcmpneq_uqps</item>+      <item>vcmpneqps</item>+      <item>vcmpnlt_usps</item>+      <item>vcmpnltps</item>+      <item>vcmpnle_usps</item>+      <item>vcmpnleps</item>+      <item>vcmpord_qps</item>+      <item>vcmpordps</item>+      <item>vcmpeq_uqps</item>+      <item>vcmpnge_usps</item>+      <item>vcmpngeps</item>+      <item>vcmpngt_usps</item>+      <item>vcmpngtps</item>+      <item>vcmpfalse_oqps</item>+      <item>vcmpfalseps</item>+      <item>vcmpneq_oqps</item>+      <item>vcmpge_osps</item>+      <item>vcmpgeps</item>+      <item>vcmpgt_osps</item>+      <item>vcmpgtps</item>+      <item>vcmptrue_uqps</item>+      <item>vcmptrueps</item>+      <item>vcmplt_oqps</item>+      <item>vcmple_oqps</item>+      <item>vcmpunord_sps</item>+      <item>vcmpneq_usps</item>+      <item>vcmpnlt_uqps</item>+      <item>vcmpnle_uqps</item>+      <item>vcmpord_sps</item>+      <item>vcmpeq_usps</item>+      <item>vcmpnge_uqps</item>+      <item>vcmpngt_uqps</item>+      <item>vcmpfalse_osps</item>+      <item>vcmpneq_osps</item>+      <item>vcmpge_oqps</item>+      <item>vcmpgt_oqps</item>+      <item>vcmptrue_usps</item>+      <item>vcmpps</item>+      <item>vcmpeq_ossd</item>+      <item>vcmpeqsd</item>+      <item>vcmplt_ossd</item>+      <item>vcmpltsd</item>+      <item>vcmple_ossd</item>+      <item>vcmplesd</item>+      <item>vcmpunord_qsd</item>+      <item>vcmpunordsd</item>+      <item>vcmpneq_uqsd</item>+      <item>vcmpneqsd</item>+      <item>vcmpnlt_ussd</item>+      <item>vcmpnltsd</item>+      <item>vcmpnle_ussd</item>+      <item>vcmpnlesd</item>+      <item>vcmpord_qsd</item>+      <item>vcmpordsd</item>+      <item>vcmpeq_uqsd</item>+      <item>vcmpnge_ussd</item>+      <item>vcmpngesd</item>+      <item>vcmpngt_ussd</item>+      <item>vcmpngtsd</item>+      <item>vcmpfalse_oqsd</item>+      <item>vcmpfalsesd</item>+      <item>vcmpneq_oqsd</item>+      <item>vcmpge_ossd</item>+      <item>vcmpgesd</item>+      <item>vcmpgt_ossd</item>+      <item>vcmpgtsd</item>+      <item>vcmptrue_uqsd</item>+      <item>vcmptruesd</item>+      <item>vcmplt_oqsd</item>+      <item>vcmple_oqsd</item>+      <item>vcmpunord_ssd</item>+      <item>vcmpneq_ussd</item>+      <item>vcmpnlt_uqsd</item>+      <item>vcmpnle_uqsd</item>+      <item>vcmpord_ssd</item>+      <item>vcmpeq_ussd</item>+      <item>vcmpnge_uqsd</item>+      <item>vcmpngt_uqsd</item>+      <item>vcmpfalse_ossd</item>+      <item>vcmpneq_ossd</item>+      <item>vcmpge_oqsd</item>+      <item>vcmpgt_oqsd</item>+      <item>vcmptrue_ussd</item>+      <item>vcmpsd</item>+      <item>vcmpeq_osss</item>+      <item>vcmpeqss</item>+      <item>vcmplt_osss</item>+      <item>vcmpltss</item>+      <item>vcmple_osss</item>+      <item>vcmpless</item>+      <item>vcmpunord_qss</item>+      <item>vcmpunordss</item>+      <item>vcmpneq_uqss</item>+      <item>vcmpneqss</item>+      <item>vcmpnlt_usss</item>+      <item>vcmpnltss</item>+      <item>vcmpnle_usss</item>+      <item>vcmpnless</item>+      <item>vcmpord_qss</item>+      <item>vcmpordss</item>+      <item>vcmpeq_uqss</item>+      <item>vcmpnge_usss</item>+      <item>vcmpngess</item>+      <item>vcmpngt_usss</item>+      <item>vcmpngtss</item>+      <item>vcmpfalse_oqss</item>+      <item>vcmpfalsess</item>+      <item>vcmpneq_oqss</item>+      <item>vcmpge_osss</item>+      <item>vcmpgess</item>+      <item>vcmpgt_osss</item>+      <item>vcmpgtss</item>+      <item>vcmptrue_uqss</item>+      <item>vcmptruess</item>+      <item>vcmplt_oqss</item>+      <item>vcmple_oqss</item>+      <item>vcmpunord_sss</item>+      <item>vcmpneq_usss</item>+      <item>vcmpnlt_uqss</item>+      <item>vcmpnle_uqss</item>+      <item>vcmpord_sss</item>+      <item>vcmpeq_usss</item>+      <item>vcmpnge_uqss</item>+      <item>vcmpngt_uqss</item>+      <item>vcmpfalse_osss</item>+      <item>vcmpneq_osss</item>+      <item>vcmpge_oqss</item>+      <item>vcmpgt_oqss</item>+      <item>vcmptrue_usss</item>+      <item>vcmpss</item>+      <item>vcomisd</item>+      <item>vcomiss</item>+      <item>vcvtdq2pd</item>+      <item>vcvtdq2ps</item>+      <item>vcvtpd2dq</item>+      <item>vcvtpd2ps</item>+      <item>vcvtps2dq</item>+      <item>vcvtps2pd</item>+      <item>vcvtsd2si</item>+      <item>vcvtsd2ss</item>+      <item>vcvtsi2sd</item>+      <item>vcvtsi2ss</item>+      <item>vcvtss2sd</item>+      <item>vcvtss2si</item>+      <item>vcvttpd2dq</item>+      <item>vcvttps2dq</item>+      <item>vcvttsd2si</item>+      <item>vcvttss2si</item>+      <item>vdivpd</item>+      <item>vdivps</item>+      <item>vdivsd</item>+      <item>vdivss</item>+      <item>vdppd</item>+      <item>vdpps</item>+      <item>vextractf128</item>+      <item>vextractps</item>+      <item>vhaddpd</item>+      <item>vhaddps</item>+      <item>vhsubpd</item>+      <item>vhsubps</item>+      <item>vinsertf128</item>+      <item>vinsertps</item>+      <item>vlddqu</item>+      <item>vldqqu</item>+      <item>vldmxcsr</item>+      <item>vmaskmovdqu</item>+      <item>vmaskmovps</item>+      <item>vmaskmovpd</item>+      <item>vmaxpd</item>+      <item>vmaxps</item>+      <item>vmaxsd</item>+      <item>vmaxss</item>+      <item>vminpd</item>+      <item>vminps</item>+      <item>vminsd</item>+      <item>vminss</item>+      <item>vmovapd</item>+      <item>vmovaps</item>+      <item>vmovd</item>+      <item>vmovq</item>+      <item>vmovddup</item>+      <item>vmovdqa</item>+      <item>vmovqqa</item>+      <item>vmovdqu</item>+      <item>vmovqqu</item>+      <item>vmovhlps</item>+      <item>vmovhpd</item>+      <item>vmovhps</item>+      <item>vmovlhps</item>+      <item>vmovlpd</item>+      <item>vmovlps</item>+      <item>vmovmskpd</item>+      <item>vmovmskps</item>+      <item>vmovntdq</item>+      <item>vmovntqq</item>+      <item>vmovntdqa</item>+      <item>vmovntpd</item>+      <item>vmovntps</item>+      <item>vmovsd</item>+      <item>vmovshdup</item>+      <item>vmovsldup</item>+      <item>vmovss</item>+      <item>vmovupd</item>+      <item>vmovups</item>+      <item>vmpsadbw</item>+      <item>vmulpd</item>+      <item>vmulps</item>+      <item>vmulsd</item>+      <item>vmulss</item>+      <item>vorpd</item>+      <item>vorps</item>+      <item>vpabsb</item>+      <item>vpabsw</item>+      <item>vpabsd</item>+      <item>vpacksswb</item>+      <item>vpackssdw</item>+      <item>vpackuswb</item>+      <item>vpackusdw</item>+      <item>vpaddb</item>+      <item>vpaddw</item>+      <item>vpaddd</item>+      <item>vpaddq</item>+      <item>vpaddsb</item>+      <item>vpaddsw</item>+      <item>vpaddusb</item>+      <item>vpaddusw</item>+      <item>vpalignr</item>+      <item>vpand</item>+      <item>vpandn</item>+      <item>vpavgb</item>+      <item>vpavgw</item>+      <item>vpblendvb</item>+      <item>vpblendw</item>+      <item>vpcmpestri</item>+      <item>vpcmpestrm</item>+      <item>vpcmpistri</item>+      <item>vpcmpistrm</item>+      <item>vpcmpeqb</item>+      <item>vpcmpeqw</item>+      <item>vpcmpeqd</item>+      <item>vpcmpeqq</item>+      <item>vpcmpgtb</item>+      <item>vpcmpgtw</item>+      <item>vpcmpgtd</item>+      <item>vpcmpgtq</item>+      <item>vpermilpd</item>+      <item>vpermilps</item>+      <item>vperm2f128</item>+      <item>vpextrb</item>+      <item>vpextrw</item>+      <item>vpextrd</item>+      <item>vpextrq</item>+      <item>vphaddw</item>+      <item>vphaddd</item>+      <item>vphaddsw</item>+      <item>vphminposuw</item>+      <item>vphsubw</item>+      <item>vphsubd</item>+      <item>vphsubsw</item>+      <item>vpinsrb</item>+      <item>vpinsrw</item>+      <item>vpinsrd</item>+      <item>vpinsrq</item>+      <item>vpmaddwd</item>+      <item>vpmaddubsw</item>+      <item>vpmaxsb</item>+      <item>vpmaxsw</item>+      <item>vpmaxsd</item>+      <item>vpmaxub</item>+      <item>vpmaxuw</item>+      <item>vpmaxud</item>+      <item>vpminsb</item>+      <item>vpminsw</item>+      <item>vpminsd</item>+      <item>vpminub</item>+      <item>vpminuw</item>+      <item>vpminud</item>+      <item>vpmovmskb</item>+      <item>vpmovsxbw</item>+      <item>vpmovsxbd</item>+      <item>vpmovsxbq</item>+      <item>vpmovsxwd</item>+      <item>vpmovsxwq</item>+      <item>vpmovsxdq</item>+      <item>vpmovzxbw</item>+      <item>vpmovzxbd</item>+      <item>vpmovzxbq</item>+      <item>vpmovzxwd</item>+      <item>vpmovzxwq</item>+      <item>vpmovzxdq</item>+      <item>vpmulhuw</item>+      <item>vpmulhrsw</item>+      <item>vpmulhw</item>+      <item>vpmullw</item>+      <item>vpmulld</item>+      <item>vpmuludq</item>+      <item>vpmuldq</item>+      <item>vpor</item>+      <item>vpsadbw</item>+      <item>vpshufb</item>+      <item>vpshufd</item>+      <item>vpshufhw</item>+      <item>vpshuflw</item>+      <item>vpsignb</item>+      <item>vpsignw</item>+      <item>vpsignd</item>+      <item>vpslldq</item>+      <item>vpsrldq</item>+      <item>vpsllw</item>+      <item>vpslld</item>+      <item>vpsllq</item>+      <item>vpsraw</item>+      <item>vpsrad</item>+      <item>vpsrlw</item>+      <item>vpsrld</item>+      <item>vpsrlq</item>+      <item>vptest</item>+      <item>vpsubb</item>+      <item>vpsubw</item>+      <item>vpsubd</item>+      <item>vpsubq</item>+      <item>vpsubsb</item>+      <item>vpsubsw</item>+      <item>vpsubusb</item>+      <item>vpsubusw</item>+      <item>vpunpckhbw</item>+      <item>vpunpckhwd</item>+      <item>vpunpckhdq</item>+      <item>vpunpckhqdq</item>+      <item>vpunpcklbw</item>+      <item>vpunpcklwd</item>+      <item>vpunpckldq</item>+      <item>vpunpcklqdq</item>+      <item>vpxor</item>+      <item>vrcpps</item>+      <item>vrcpss</item>+      <item>vrsqrtps</item>+      <item>vrsqrtss</item>+      <item>vroundpd</item>+      <item>vroundps</item>+      <item>vroundsd</item>+      <item>vroundss</item>+      <item>vshufpd</item>+      <item>vshufps</item>+      <item>vsqrtpd</item>+      <item>vsqrtps</item>+      <item>vsqrtsd</item>+      <item>vsqrtss</item>+      <item>vstmxcsr</item>+      <item>vsubpd</item>+      <item>vsubps</item>+      <item>vsubsd</item>+      <item>vsubss</item>+      <item>vtestps</item>+      <item>vtestpd</item>+      <item>vucomisd</item>+      <item>vucomiss</item>+      <item>vunpckhpd</item>+      <item>vunpckhps</item>+      <item>vunpcklpd</item>+      <item>vunpcklps</item>+      <item>vxorpd</item>+      <item>vxorps</item>+      <item>vzeroall</item>+      <item>vzeroupper</item>+      <item>pclmullqlqdq</item>+      <item>pclmulhqlqdq</item>+      <item>pclmullqhqdq</item>+      <item>pclmulhqhqdq</item>+      <item>pclmulqdq</item>+      <item>vpclmullqlqdq</item>+      <item>vpclmulhqlqdq</item>+      <item>vpclmullqhqdq</item>+      <item>vpclmulhqhqdq</item>+      <item>vpclmulqdq</item>+      <item>vfmadd132ps</item>+      <item>vfmadd132pd</item>+      <item>vfmadd312ps</item>+      <item>vfmadd312pd</item>+      <item>vfmadd213ps</item>+      <item>vfmadd213pd</item>+      <item>vfmadd123ps</item>+      <item>vfmadd123pd</item>+      <item>vfmadd231ps</item>+      <item>vfmadd231pd</item>+      <item>vfmadd321ps</item>+      <item>vfmadd321pd</item>+      <item>vfmaddsub132ps</item>+      <item>vfmaddsub132pd</item>+      <item>vfmaddsub312ps</item>+      <item>vfmaddsub312pd</item>+      <item>vfmaddsub213ps</item>+      <item>vfmaddsub213pd</item>+      <item>vfmaddsub123ps</item>+      <item>vfmaddsub123pd</item>+      <item>vfmaddsub231ps</item>+      <item>vfmaddsub231pd</item>+      <item>vfmaddsub321ps</item>+      <item>vfmaddsub321pd</item>+      <item>vfmsub132ps</item>+      <item>vfmsub132pd</item>+      <item>vfmsub312ps</item>+      <item>vfmsub312pd</item>+      <item>vfmsub213ps</item>+      <item>vfmsub213pd</item>+      <item>vfmsub123ps</item>+      <item>vfmsub123pd</item>+      <item>vfmsub231ps</item>+      <item>vfmsub231pd</item>+      <item>vfmsub321ps</item>+      <item>vfmsub321pd</item>+      <item>vfmsubadd132ps</item>+      <item>vfmsubadd132pd</item>+      <item>vfmsubadd312ps</item>+      <item>vfmsubadd312pd</item>+      <item>vfmsubadd213ps</item>+      <item>vfmsubadd213pd</item>+      <item>vfmsubadd123ps</item>+      <item>vfmsubadd123pd</item>+      <item>vfmsubadd231ps</item>+      <item>vfmsubadd231pd</item>+      <item>vfmsubadd321ps</item>+      <item>vfmsubadd321pd</item>+      <item>vfnmadd132ps</item>+      <item>vfnmadd132pd</item>+      <item>vfnmadd312ps</item>+      <item>vfnmadd312pd</item>+      <item>vfnmadd213ps</item>+      <item>vfnmadd213pd</item>+      <item>vfnmadd123ps</item>+      <item>vfnmadd123pd</item>+      <item>vfnmadd231ps</item>+      <item>vfnmadd231pd</item>+      <item>vfnmadd321ps</item>+      <item>vfnmadd321pd</item>+      <item>vfnmsub132ps</item>+      <item>vfnmsub132pd</item>+      <item>vfnmsub312ps</item>+      <item>vfnmsub312pd</item>+      <item>vfnmsub213ps</item>+      <item>vfnmsub213pd</item>+      <item>vfnmsub123ps</item>+      <item>vfnmsub123pd</item>+      <item>vfnmsub231ps</item>+      <item>vfnmsub231pd</item>+      <item>vfnmsub321ps</item>+      <item>vfnmsub321pd</item>+      <item>vfmadd132ss</item>+      <item>vfmadd132sd</item>+      <item>vfmadd312ss</item>+      <item>vfmadd312sd</item>+      <item>vfmadd213ss</item>+      <item>vfmadd213sd</item>+      <item>vfmadd123ss</item>+      <item>vfmadd123sd</item>+      <item>vfmadd231ss</item>+      <item>vfmadd231sd</item>+      <item>vfmadd321ss</item>+      <item>vfmadd321sd</item>+      <item>vfmsub132ss</item>+      <item>vfmsub132sd</item>+      <item>vfmsub312ss</item>+      <item>vfmsub312sd</item>+      <item>vfmsub213ss</item>+      <item>vfmsub213sd</item>+      <item>vfmsub123ss</item>+      <item>vfmsub123sd</item>+      <item>vfmsub231ss</item>+      <item>vfmsub231sd</item>+      <item>vfmsub321ss</item>+      <item>vfmsub321sd</item>+      <item>vfnmadd132ss</item>+      <item>vfnmadd132sd</item>+      <item>vfnmadd312ss</item>+      <item>vfnmadd312sd</item>+      <item>vfnmadd213ss</item>+      <item>vfnmadd213sd</item>+      <item>vfnmadd123ss</item>+      <item>vfnmadd123sd</item>+      <item>vfnmadd231ss</item>+      <item>vfnmadd231sd</item>+      <item>vfnmadd321ss</item>+      <item>vfnmadd321sd</item>+      <item>vfnmsub132ss</item>+      <item>vfnmsub132sd</item>+      <item>vfnmsub312ss</item>+      <item>vfnmsub312sd</item>+      <item>vfnmsub213ss</item>+      <item>vfnmsub213sd</item>+      <item>vfnmsub123ss</item>+      <item>vfnmsub123sd</item>+      <item>vfnmsub231ss</item>+      <item>vfnmsub231sd</item>+      <item>vfnmsub321ss</item>+      <item>vfnmsub321sd</item>+      <item>rdfsbase</item>+      <item>rdgsbase</item>+      <item>rdrand</item>+      <item>wrfsbase</item>+      <item>wrgsbase</item>+      <item>vcvtph2ps</item>+      <item>vcvtps2ph</item>+      <item>adcx</item>+      <item>adox</item>+      <item>rdseed</item>+      <item>clac</item>+      <item>stac</item>+      <item>xstore</item>+      <item>xcryptecb</item>+      <item>xcryptcbc</item>+      <item>xcryptctr</item>+      <item>xcryptcfb</item>+      <item>xcryptofb</item>+      <item>montmul</item>+      <item>xsha1</item>+      <item>xsha256</item>+      <item>llwpcb</item>+      <item>slwpcb</item>+      <item>lwpval</item>+      <item>lwpins</item>+      <item>vfmaddpd</item>+      <item>vfmaddps</item>+      <item>vfmaddsd</item>+      <item>vfmaddss</item>+      <item>vfmaddsubpd</item>+      <item>vfmaddsubps</item>+      <item>vfmsubaddpd</item>+      <item>vfmsubaddps</item>+      <item>vfmsubpd</item>+      <item>vfmsubps</item>+      <item>vfmsubsd</item>+      <item>vfmsubss</item>+      <item>vfnmaddpd</item>+      <item>vfnmaddps</item>+      <item>vfnmaddsd</item>+      <item>vfnmaddss</item>+      <item>vfnmsubpd</item>+      <item>vfnmsubps</item>+      <item>vfnmsubsd</item>+      <item>vfnmsubss</item>+      <item>vfrczpd</item>+      <item>vfrczps</item>+      <item>vfrczsd</item>+      <item>vfrczss</item>+      <item>vpcmov</item>+      <item>vpcomb</item>+      <item>vpcomd</item>+      <item>vpcomq</item>+      <item>vpcomub</item>+      <item>vpcomud</item>+      <item>vpcomuq</item>+      <item>vpcomuw</item>+      <item>vpcomw</item>+      <item>vphaddbd</item>+      <item>vphaddbq</item>+      <item>vphaddbw</item>+      <item>vphadddq</item>+      <item>vphaddubd</item>+      <item>vphaddubq</item>+      <item>vphaddubw</item>+      <item>vphaddudq</item>+      <item>vphadduwd</item>+      <item>vphadduwq</item>+      <item>vphaddwd</item>+      <item>vphaddwq</item>+      <item>vphsubbw</item>+      <item>vphsubdq</item>+      <item>vphsubwd</item>+      <item>vpmacsdd</item>+      <item>vpmacsdqh</item>+      <item>vpmacsdql</item>+      <item>vpmacssdd</item>+      <item>vpmacssdqh</item>+      <item>vpmacssdql</item>+      <item>vpmacsswd</item>+      <item>vpmacssww</item>+      <item>vpmacswd</item>+      <item>vpmacsww</item>+      <item>vpmadcsswd</item>+      <item>vpmadcswd</item>+      <item>vpperm</item>+      <item>vprotb</item>+      <item>vprotd</item>+      <item>vprotq</item>+      <item>vprotw</item>+      <item>vpshab</item>+      <item>vpshad</item>+      <item>vpshaq</item>+      <item>vpshaw</item>+      <item>vpshlb</item>+      <item>vpshld</item>+      <item>vpshlq</item>+      <item>vpshlw</item>+      <item>vbroadcasti128</item>+      <item>vpblendd</item>+      <item>vpbroadcastb</item>+      <item>vpbroadcastw</item>+      <item>vpbroadcastd</item>+      <item>vpbroadcastq</item>+      <item>vpermd</item>+      <item>vpermpd</item>+      <item>vpermps</item>+      <item>vpermq</item>+      <item>vperm2i128</item>+      <item>vextracti128</item>+      <item>vinserti128</item>+      <item>vpmaskmovd</item>+      <item>vpmaskmovq</item>+      <item>vpsllvd</item>+      <item>vpsllvq</item>+      <item>vpsravd</item>+      <item>vpsrlvd</item>+      <item>vpsrlvq</item>+      <item>vgatherdpd</item>+      <item>vgatherqpd</item>+      <item>vgatherdps</item>+      <item>vgatherqps</item>+      <item>vpgatherdd</item>+      <item>vpgatherqd</item>+      <item>vpgatherdq</item>+      <item>vpgatherqq</item>+      <item>xabort</item>+      <item>xbegin</item>+      <item>xend</item>+      <item>xtest</item>+      <item>andn</item>+      <item>bextr</item>+      <item>blci</item>+      <item>blcic</item>+      <item>blsi</item>+      <item>blsic</item>+      <item>blcfill</item>+      <item>blsfill</item>+      <item>blcmsk</item>+      <item>blsmsk</item>+      <item>blsr</item>+      <item>blcs</item>+      <item>bzhi</item>+      <item>mulx</item>+      <item>pdep</item>+      <item>pext</item>+      <item>rorx</item>+      <item>sarx</item>+      <item>shlx</item>+      <item>shrx</item>+      <item>tzcnt</item>+      <item>tzmsk</item>+      <item>t1mskc</item>+      <item>valignd</item>+      <item>valignq</item>+      <item>vblendmpd</item>+      <item>vblendmps</item>+      <item>vbroadcastf32x4</item>+      <item>vbroadcastf64x4</item>+      <item>vbroadcasti32x4</item>+      <item>vbroadcasti64x4</item>+      <item>vcompresspd</item>+      <item>vcompressps</item>+      <item>vcvtpd2udq</item>+      <item>vcvtps2udq</item>+      <item>vcvtsd2usi</item>+      <item>vcvtss2usi</item>+      <item>vcvttpd2udq</item>+      <item>vcvttps2udq</item>+      <item>vcvttsd2usi</item>+      <item>vcvttss2usi</item>+      <item>vcvtudq2pd</item>+      <item>vcvtudq2ps</item>+      <item>vcvtusi2sd</item>+      <item>vcvtusi2ss</item>+      <item>vexpandpd</item>+      <item>vexpandps</item>+      <item>vextractf32x4</item>+      <item>vextractf64x4</item>+      <item>vextracti32x4</item>+      <item>vextracti64x4</item>+      <item>vfixupimmpd</item>+      <item>vfixupimmps</item>+      <item>vfixupimmsd</item>+      <item>vfixupimmss</item>+      <item>vgetexppd</item>+      <item>vgetexpps</item>+      <item>vgetexpsd</item>+      <item>vgetexpss</item>+      <item>vgetmantpd</item>+      <item>vgetmantps</item>+      <item>vgetmantsd</item>+      <item>vgetmantss</item>+      <item>vinsertf32x4</item>+      <item>vinsertf64x4</item>+      <item>vinserti32x4</item>+      <item>vinserti64x4</item>+      <item>vmovdqa32</item>+      <item>vmovdqa64</item>+      <item>vmovdqu32</item>+      <item>vmovdqu64</item>+      <item>vpabsq</item>+      <item>vpandd</item>+      <item>vpandnd</item>+      <item>vpandnq</item>+      <item>vpandq</item>+      <item>vpblendmd</item>+      <item>vpblendmq</item>+      <item>vpcmpltd</item>+      <item>vpcmpled</item>+      <item>vpcmpneqd</item>+      <item>vpcmpnltd</item>+      <item>vpcmpnled</item>+      <item>vpcmpd</item>+      <item>vpcmpltq</item>+      <item>vpcmpleq</item>+      <item>vpcmpneqq</item>+      <item>vpcmpnltq</item>+      <item>vpcmpnleq</item>+      <item>vpcmpq</item>+      <item>vpcmpequd</item>+      <item>vpcmpltud</item>+      <item>vpcmpleud</item>+      <item>vpcmpnequd</item>+      <item>vpcmpnltud</item>+      <item>vpcmpnleud</item>+      <item>vpcmpud</item>+      <item>vpcmpequq</item>+      <item>vpcmpltuq</item>+      <item>vpcmpleuq</item>+      <item>vpcmpnequq</item>+      <item>vpcmpnltuq</item>+      <item>vpcmpnleuq</item>+      <item>vpcmpuq</item>+      <item>vpcompressd</item>+      <item>vpcompressq</item>+      <item>vpermi2d</item>+      <item>vpermi2pd</item>+      <item>vpermi2ps</item>+      <item>vpermi2q</item>+      <item>vpermt2d</item>+      <item>vpermt2pd</item>+      <item>vpermt2ps</item>+      <item>vpermt2q</item>+      <item>vpexpandd</item>+      <item>vpexpandq</item>+      <item>vpmaxsq</item>+      <item>vpmaxuq</item>+      <item>vpminsq</item>+      <item>vpminuq</item>+      <item>vpmovdb</item>+      <item>vpmovdw</item>+      <item>vpmovqb</item>+      <item>vpmovqd</item>+      <item>vpmovqw</item>+      <item>vpmovsdb</item>+      <item>vpmovsdw</item>+      <item>vpmovsqb</item>+      <item>vpmovsqd</item>+      <item>vpmovsqw</item>+      <item>vpmovusdb</item>+      <item>vpmovusdw</item>+      <item>vpmovusqb</item>+      <item>vpmovusqd</item>+      <item>vpmovusqw</item>+      <item>vpord</item>+      <item>vporq</item>+      <item>vprold</item>+      <item>vprolq</item>+      <item>vprolvd</item>+      <item>vprolvq</item>+      <item>vprord</item>+      <item>vprorq</item>+      <item>vprorvd</item>+      <item>vprorvq</item>+      <item>vpscatterdd</item>+      <item>vpscatterdq</item>+      <item>vpscatterqd</item>+      <item>vpscatterqq</item>+      <item>vpsraq</item>+      <item>vpsravq</item>+      <item>vpternlogd</item>+      <item>vpternlogq</item>+      <item>vptestmd</item>+      <item>vptestmq</item>+      <item>vptestnmd</item>+      <item>vptestnmq</item>+      <item>vpxord</item>+      <item>vpxorq</item>+      <item>vrcp14pd</item>+      <item>vrcp14ps</item>+      <item>vrcp14sd</item>+      <item>vrcp14ss</item>+      <item>vrndscalepd</item>+      <item>vrndscaleps</item>+      <item>vrndscalesd</item>+      <item>vrndscaless</item>+      <item>vrsqrt14pd</item>+      <item>vrsqrt14ps</item>+      <item>vrsqrt14sd</item>+      <item>vrsqrt14ss</item>+      <item>vscalefpd</item>+      <item>vscalefps</item>+      <item>vscalefsd</item>+      <item>vscalefss</item>+      <item>vscatterdpd</item>+      <item>vscatterdps</item>+      <item>vscatterqpd</item>+      <item>vscatterqps</item>+      <item>vshuff32x4</item>+      <item>vshuff64x2</item>+      <item>vshufi32x4</item>+      <item>vshufi64x2</item>+      <item>kandnw</item>+      <item>kandw</item>+      <item>kmovw</item>+      <item>knotw</item>+      <item>kortestw</item>+      <item>korw</item>+      <item>kshiftlw</item>+      <item>kshiftrw</item>+      <item>kunpckbw</item>+      <item>kxnorw</item>+      <item>kxorw</item>+      <item>vpbroadcastmb2q</item>+      <item>vpbroadcastmw2d</item>+      <item>vpconflictd</item>+      <item>vpconflictq</item>+      <item>vplzcntd</item>+      <item>vplzcntq</item>+      <item>vexp2pd</item>+      <item>vexp2ps</item>+      <item>vrcp28pd</item>+      <item>vrcp28ps</item>+      <item>vrcp28sd</item>+      <item>vrcp28ss</item>+      <item>vrsqrt28pd</item>+      <item>vrsqrt28ps</item>+      <item>vrsqrt28sd</item>+      <item>vrsqrt28ss</item>+      <item>vgatherpf0dpd</item>+      <item>vgatherpf0dps</item>+      <item>vgatherpf0qpd</item>+      <item>vgatherpf0qps</item>+      <item>vgatherpf1dpd</item>+      <item>vgatherpf1dps</item>+      <item>vgatherpf1qpd</item>+      <item>vgatherpf1qps</item>+      <item>vscatterpf0dpd</item>+      <item>vscatterpf0dps</item>+      <item>vscatterpf0qpd</item>+      <item>vscatterpf0qps</item>+      <item>vscatterpf1dpd</item>+      <item>vscatterpf1dps</item>+      <item>vscatterpf1qpd</item>+      <item>vscatterpf1qps</item>+      <item>prefetchwt1</item>+      <item>bndmk</item>+      <item>bndcl</item>+      <item>bndcu</item>+      <item>bndcn</item>+      <item>bndmov</item>+      <item>bndldx</item>+      <item>bndstx</item>+      <item>sha1rnds4</item>+      <item>sha1nexte</item>+      <item>sha1msg1</item>+      <item>sha1msg2</item>+      <item>sha256rnds2</item>+      <item>sha256msg1</item>+      <item>sha256msg2</item>+      <item>hint_nop</item>+    </list>++    <list name="branch instructions">+      <item>call</item>+      <item>callq</item>+      <item>iret</item>+      <item>iretd</item>+      <item>iretq</item>+      <item>iretw</item>+      <item>ja</item>+      <item>jae</item>+      <item>jb</item>+      <item>jbe</item>+      <item>jc</item>+      <item>jcxz</item>+      <item>je</item>+      <item>jecxz</item>+      <item>jg</item>+      <item>jge</item>+      <item>jl</item>+      <item>jle</item>+      <item>jmp</item>+      <item>jmpe</item>+      <item>jna</item>+      <item>jnae</item>+      <item>jnb</item>+      <item>jnbe</item>+      <item>jnc</item>+      <item>jne</item>+      <item>jng</item>+      <item>jnge</item>+      <item>jnl</item>+      <item>jnle</item>+      <item>jno</item>+      <item>jnp</item>+      <item>jns</item>+      <item>jnz</item>+      <item>jo</item>+      <item>jp</item>+      <item>jpe</item>+      <item>jpo</item>+      <item>jrcxz</item>+      <item>js</item>+      <item>jz</item>+      <item>ret</item>+      <item>retd</item>+      <item>retf</item>+      <item>retfd</item>+      <item>retfq</item>+      <item>retfw</item>+      <item>retn</item>+      <item>retnd</item>+      <item>retnq</item>+      <item>retnw</item>+      <item>retq</item>+      <item>retw</item>+    </list>++    <list name="keywords">+      <item>.abort</item>+      <item>.align</item>+      <item>.app-file</item>+      <item>.appline</item>+      <item>.ascii</item>+      <item>.asciz</item>+      <item>.att_syntax</item>+      <item>.balign</item>+      <item>.balignl</item>+      <item>.balignw</item>+      <item>.byte</item>+      <item>.code16</item>+      <item>.code32</item>+      <item>.comm</item>+      <item>.common.s</item>+      <item>.common</item>+      <item>.data</item>+      <item>.dc.b</item>+      <item>.dc.d</item>+      <item>.dc.l</item>+      <item>.dc.s</item>+      <item>.dc.w</item>+      <item>.dc.x</item>+      <item>.dc</item>+      <item>.dcb.b</item>+      <item>.dcb.d</item>+      <item>.dcb.l</item>+      <item>.dcb.s</item>+      <item>.dcb.w</item>+      <item>.dcb.x</item>+      <item>.dcb</item>+      <item>.debug</item>+      <item>.def</item>+      <item>.desc</item>+      <item>.dim</item>+      <item>.double</item>+      <item>.ds.b</item>+      <item>.ds.d</item>+      <item>.ds.l</item>+      <item>.ds.p</item>+      <item>.ds.s</item>+      <item>.ds.w</item>+      <item>.ds.x</item>+      <item>.ds</item>+      <item>.dsect</item>+      <item>.eject</item>+      <item>.else</item>+      <item>.elsec</item>+      <item>.elseif</item>+      <item>.end</item>+      <item>.endc</item>+      <item>.endef</item>+      <item>.endfunc</item>+      <item>.endif</item>+      <item>.endm</item>+      <item>.endr</item>+      <item>.equ</item>+      <item>.equiv</item>+      <item>.err</item>+      <item>.exitm</item>+      <item>.extend</item>+      <item>.extern</item>+      <item>.fail</item>+      <item>.file</item>+      <item>.fill</item>+      <item>.float</item>+      <item>.format</item>+      <item>.func</item>+      <item>.global</item>+      <item>.globl</item>+      <item>.hidden</item>+      <item>.hword</item>+      <item>.ident</item>+      <item>.if</item>+      <item>.ifc</item>+      <item>.ifdef</item>+      <item>.ifeq</item>+      <item>.ifeqs</item>+      <item>.ifge</item>+      <item>.ifgt</item>+      <item>.ifle</item>+      <item>.iflt</item>+      <item>.ifnc</item>+      <item>.ifndef</item>+      <item>.ifne</item>+      <item>.ifnes</item>+      <item>.ifnotdef</item>+      <item>.include</item>+      <item>.int</item>+      <item>.intel_syntax</item>+      <item>.internal</item>+      <item>.irep</item>+      <item>.irepc</item>+      <item>.irp</item>+      <item>.irpc</item>+      <item>.lcomm</item>+      <item>.lflags</item>+      <item>.line</item>+      <item>.linkonce</item>+      <item>.list</item>+      <item>.llen</item>+      <item>.ln</item>+      <item>.long</item>+      <item>.lsym</item>+      <item>.macro</item>+      <item>.mexit</item>+      <item>.name</item>+      <item>.noformat</item>+      <item>.nolist</item>+      <item>.nopage</item>+      <item>noprefix</item>+      <item>.octa</item>+      <item>.offset</item>+      <item>.org</item>+      <item>.p2align</item>+      <item>.p2alignl</item>+      <item>.p2alignw</item>+      <item>.page</item>+      <item>.plen</item>+      <item>.popsection</item>+      <item>.previous</item>+      <item>.print</item>+      <item>.protected</item>+      <item>.psize</item>+      <item>.purgem</item>+      <item>.pushsection</item>+      <item>.quad</item>+      <item>.rodata</item>+      <item>.rep</item>+      <item>.rept</item>+      <item>.rva</item>+      <item>.sbttl</item>+      <item>.scl</item>+      <item>.sect.s</item>+      <item>.sect</item>+      <item>.section.s</item>+      <item>.section</item>+      <item>.set</item>+      <item>.short</item>+      <item>.single</item>+      <item>.size</item>+      <item>.skip</item>+      <item>.sleb128</item>+      <item>.space</item>+      <item>.spc</item>+      <item>.stabd</item>+      <item>.stabn</item>+      <item>.stabs</item>+      <item>.string</item>+      <item>.struct</item>+      <item>.subsection</item>+      <item>.symver</item>+      <item>.tag</item>+      <item>.text</item>+      <item>.title</item>+      <item>.ttl</item>+      <item>.type</item>+      <item>.uleb128</item>+      <item>.use</item>+      <item>.val</item>+      <item>.version</item>+      <item>.vtable_entry</item>+      <item>.vtable_inherit</item>+      <item>.weak</item>+      <item>.word</item>+      <item>.xcom</item>+      <item>.xdef</item>+      <item>.xref</item>+      <item>.xstabs</item>+      <item>.zero</item>+      <!-- Directives specific to ARM -->+      <item>.arm</item>+      <item>.bss</item>+      <item>.code</item>+      <item>.even</item>+      <item>.force_thumb</item>+      <item>.ldouble</item>+      <item>.loc</item>+      <item>.ltorg</item>+      <item>.packed</item>+      <item>.pool</item>+      <item>.req</item>+      <item>.thumb</item>+      <item>.thumb_func</item>+      <item>.thumb_set</item>+    </list>++    <contexts>+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">+        <RegExpr      attribute="Label" context="#stay" String="[\.]?[_\w\d-]*\s*:" />+        <keyword      attribute="Keyword" context="#stay" String="keywords"/>+        <keyword      attribute="Registers" context="#stay" String="registers"/>+        <keyword      attribute="Instructions" context="#stay" String="instructions"/>+        <keyword      attribute="Branch Instructions" context="#stay" String="branch instructions"/>+        <HlCOct       attribute="Octal" context="#stay" />+        <HlCHex       attribute="Hex" context="#stay" />+        <RegExpr      attribute="Binary" context="#stay" String="0[bB][01]+" />+        <Int          attribute="Decimal" context="#stay" />+        <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />+        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />+        <HlCChar      attribute="Char" context="#stay" />+        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />+        <DetectChar   attribute="String" context="String" char="&quot;" />+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />+        <RegExpr      attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" firstNonSpace="true" />+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" beginRegion="BlockComment" />+        <AnyChar      attribute="Comment" context="Commentar 2" String="@;#" />+        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{|}~" />+      </context>+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 1">+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />+        <DetectSpaces />+        <IncludeRules context="##Comments" />+      </context>+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 2" >+        <DetectSpaces />+        <IncludeRules context="##Comments" />+      </context>+      <context attribute="String" lineEndContext="#pop" name="String">+        <LineContinue  attribute="String" context="Some Context" />+        <HlCStringChar attribute="String Char" context="#stay" />+        <DetectChar    attribute="String" context="#pop" char="&quot;" />+      </context>+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor" />+      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">+        <LineContinue attribute="Preprocessor" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />+    </contexts>++    <itemDatas>+      <itemData name="Normal Text"  defStyleNum="dsNormal"   />+      <itemData name="Label"        defStyleNum="dsFunction"  />+      <itemData name="Keyword"      defStyleNum="dsKeyword"  />+      <itemData name="Registers"    defStyleNum="dsKeyword"  />+      <itemData name="Instructions" defStyleNum="dsKeyword"  />+      <itemData name="Branch Instructions" defStyleNum="dsControlFlow"  />       <itemData name="Decimal"      defStyleNum="dsDecVal"   />       <itemData name="Octal"        defStyleNum="dsBaseN"    />       <itemData name="Hex"          defStyleNum="dsBaseN"    />
xml/haskell.xml view
@@ -2,7 +2,7 @@ <!DOCTYPE language SYSTEM "language.dtd" [   <!ENTITY symbolops "\-!#\$&#37;&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:"> ]>-<language name="Haskell" version="19" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">+<language name="Haskell" version="20" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">   <highlighting>   <list name="keywords">     <item>case</item>@@ -459,11 +459,8 @@   </list>   <contexts>     <context attribute="Normal" lineEndContext="#stay" name="code">-      <StringDetect attribute="Pragma"  context="pragma" String="{-#"/>-      <StringDetect attribute="Comment" context="#stay" String="{--}"/>-      <RegExpr attribute="Comment" context="comments" String="\{-(?=[^#]|$)" beginRegion="BlockComment"/>-      <RegExpr attribute="Comment" context="comment"  String="--[\-]*(?=[^!#\$%&amp;\*\+\./&lt;=&gt;\?@&#92;\^\|\-~:]|$)" />-      <WordDetect attribute="Keyword" context="import"   String="import" />+      <IncludeRules context="FindComment"/>+      <WordDetect attribute="Keyword" context="import" String="import"/>       <Detect2Chars attribute="C2HS Directive" context="c2hs directive" char="{" char1="#"/>       <DetectChar attribute="C Preprocessor" context="C Preprocessor" char="#" column="0"/> @@ -473,10 +470,10 @@       <keyword attribute="Data Prelude"     context="#stay" String="prelude data" />       <keyword attribute="Class Prelude"    context="#stay" String="prelude class" /> -      <RegExpr attribute="Special"          context="#stay" String="(::|=&gt;|\-&gt;|&lt;\-|=)(?![&symbolops;])|∷⇒→←∀∃" />+      <RegExpr attribute="Special"          context="#stay" String="(::|=&gt;|-&gt;|&lt;-|=)(?![&symbolops;])" />       <RegExpr attribute="Signature"        context="#stay" String="\s*[a-z_][a-zA-Z0-9_']*\s*(?=::([^&symbolops;]|$))|\s*(\([&symbolops;]*\))*\s*(?=::[^&symbolops;])" />       <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z_][a-zA-Z0-9_']*" />-      <RegExpr attribute="Operator"         context="#stay" String="([A-Z][a-zA-Z0-0_']*\.)*[&symbolops;]+" />+      <RegExpr attribute="Operator"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[&symbolops;]+" />       <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*|'(?![A-Z]')([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />        <RegExpr    attribute="Float"   context="#stay" String ="\d+\.\d+([Ee][+-]?\d+)?|\d+[Ee][+-]?\d+"/>@@ -494,6 +491,11 @@       <StringDetect attribute="Normal" context="Julius" String="[julius|" />       <RegExpr attribute="Normal" context="QuasiQuote" String="\[[a-zA-Z_'](\w|[_'])*\|" />     </context>+    <context attribute="Normal" lineEndContext="#pop" name="FindComment">+      <StringDetect attribute="Pragma"  context="pragma" String="{-#"/>+      <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="BlockComment"/>+      <RegExpr attribute="Comment" context="comment" String="--+(?![&symbolops;])"/>+    </context>     <context attribute="Normal" lineEndContext="#stay" name="QuasiQuote">       <Detect2Chars attribute="Normal" context="#pop" char="|" char1="]"/>     </context>@@ -506,38 +508,44 @@       <IncludeRules context="##Hamlet" />     </context>     <context attribute="Pragma" lineEndContext="#stay" name="pragma">+      <DetectSpaces attribute="Pragma" />       <keyword attribute="Pragma" context="#stay" String="language_pragmas" />+      <DetectIdentifier attribute="Pragma" />       <StringDetect attribute="Pragma"  context="#pop" String="#-}"/>     </context>     <context attribute="Comment" lineEndContext="#pop" name="comment">+      <DetectSpaces attribute="Comment" />       <IncludeRules context="Haddock" />       <IncludeRules context="##Comments" />+      <DetectIdentifier attribute="Comment" />     </context>     <context attribute="Comment" lineEndContext="#stay" name="comments">+      <DetectSpaces attribute="Comment" />       <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="BlockComment" />       <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="BlockComment" />       <IncludeRules context="Haddock" />       <IncludeRules context="##Comments" />+      <DetectIdentifier attribute="Comment" />     </context>     <context attribute="Char" lineEndContext="#pop" name="char">-      <RegExpr attribute="Char" context="#stay" String="\\." />       <DetectChar attribute="Char" context="#pop" char="'" />+      <RegExpr attribute="Char" context="#stay" String="\\." />     </context>     <context attribute="String" lineEndContext="#stay" name="string">-      <RegExpr attribute="String" context="#stay" String="\\." />       <DetectChar attribute="String" context="#pop" char="&quot;" />+      <RegExpr attribute="String" context="#stay" String="\\." />     </context>     <context attribute="Function Infix" lineEndContext="#stay" name="infix">       <DetectChar attribute="Function Infix" context="#pop" char="`"/>+      <DetectIdentifier attribute="Function Infix"/>     </context>     <context attribute="Normal" lineEndContext="#pop" name="import">+      <DetectSpaces attribute="Normal" />       <keyword attribute="Keyword"          context="#stay" String="import_keywords" />       <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z][a-zA-Z0-9_']*" />       <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" /> -      <RegExpr attribute="Pragma"  context="#stay" String="\{-#.*#-\}"/>-      <RegExpr attribute="Comment" context="comments" String="\{-(?=[^#]|$)" beginRegion="BlockComment" />-      <RegExpr attribute="Comment" context="comment"  String="--(?=[^&symbolops;]|$)" />+      <IncludeRules context="FindComment" />     </context>      <!-- Haddock -->@@ -551,8 +559,10 @@       <DetectChar attribute="Haddock Emphasis" context="Haddock Emphasis" char="/" />     </context>     <context attribute="Haddock Emphasis" lineEndContext="#pop" name="Haddock Emphasis">+      <DetectSpaces attribute="Haddock Emphasis" />       <DetectChar attribute="Haddock Emphasis" context="#pop#pop" char="/" />       <IncludeRules context="Haddock"/>+      <DetectIdentifier attribute="Haddock Emphasis" />     </context>     <context attribute="Haddock Bold" lineEndContext="#pop" name="Start Haddock Bold">       <Detect2Chars attribute="Haddock Bold" context="Haddock Bold" char="_" char1="_" />@@ -570,6 +580,7 @@      <!-- C2Hs -->     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs directive">+      <DetectSpaces attribute="C2HS Directive" />       <Detect2Chars attribute="C2HS Directive" context="#pop" char="#" char1="}" />       <keyword attribute="Keyword" context="#stay"          String="c2hs_keywords" />       <StringDetect attribute="Keyword" context="#stay"          String="context" />@@ -579,26 +590,28 @@       <StringDetect attribute="Keyword" context="c2hs fun"       String="fun" />       <StringDetect attribute="Keyword" context="c2hs pointer"   String="pointer" />       <StringDetect attribute="Keyword" context="c2hs enum"      String="enum" />-      <StringDetect attribute="Keyword" context="c2hs import"    String="import" />+      <StringDetect attribute="Keyword" context="c2hs enum"      String="import" />     </context>-    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs import">+    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs enum">+      <DetectSpaces attribute="C2HS Directive" />       <RegExpr attribute="Type"    context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />       <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />+      <DetectIdentifier attribute="C2HS Directive" />     </context>     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs pointer">+      <DetectSpaces attribute="C2HS Directive" />       <keyword attribute="Keyword" context="#stay" String="c2hs_keywords" />       <StringDetect attribute="Keyword" context="#stay" String="newtype" />       <RegExpr attribute="Type"    context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />       <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />+      <DetectIdentifier attribute="C2HS Directive" />     </context>     <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs fun">+      <DetectSpaces attribute="C2HS Directive" />       <keyword attribute="Keyword" context="#stay" String="c2hs_keywords" />-      <RegExpr attribute="Type" context="#stay" String="`[^']*'" />-      <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />-    </context>-    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs enum">-      <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />+      <RangeDetect attribute="Type" context="#stay" char="`" char1="'" />       <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />+      <DetectIdentifier attribute="C2HS Directive" />     </context>   </contexts>   <itemDatas>
xml/ini.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="8" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL">+<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="10" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL">  <highlighting> <list name="keywords">@@ -34,15 +34,26 @@  <contexts>  <context name="ini" attribute="Normal Text" lineEndContext="#stay">-  <RangeDetect attribute="Section" context="#stay" char="["  char1="]" beginRegion="Section" endRegion="Section" />+  <RangeDetect attribute="Section" context="#stay" char="[" char1="]" beginRegion="Section" endRegion="Section" />   <DetectChar attribute="Assignment" context="Value" char="=" />   <AnyChar String=";#" attribute="Comment" context="Comment" firstNonSpace="true" />+  <DetectIdentifier />+  <DetectSpaces />  </context> - <context name="Value" attribute="Value" lineEndContext="#pop" >+ <context name="Value" attribute="Value" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!NormalValue">+  <RegExpr context="#pop!SpecialValue" String="\s*((-?(\d+(\.\d*)?|\.d+)(e\d+)?|On|Off|Defaults?|Localhost|Null|True|False|Yes|No|Normal)\s*$|~?(E_ALL|E_ERROR|E_WARNING|E_PARSE|E_NOTICE|E_STRICT|E_CORE_ERROR|E_CORE_WARNING|E_COMPILE_ERROR|E_COMPILE_WARNING|E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE)\b)" lookAhead="1" insensitive="1"/>+ </context>++ <context name="SpecialValue" attribute="Value" lineEndContext="#pop">   <Float attribute="Float" />   <Int attribute="Int" />-  <keyword attribute="Keyword" String="keywords" />+  <keyword attribute="Keyword" String="keywords"/>+  <DetectChar attribute="Int" char="-" />+  <DetectSpaces />+ </context>++ <context name="NormalValue" attribute="Value" lineEndContext="#pop">  </context>   <context name="Comment" attribute="Comment" lineEndContext="#pop">
xml/isocpp.xml view
@@ -24,7 +24,7 @@ <language     name="ISO C++"     section="Sources"-    version="23"+    version="24"     kateversion="5.0"     indenter="cstyle"     style="C++"@@ -57,6 +57,10 @@       <item>throw</item>       <item>try</item>       <item>while</item>+      <!-- coroutine -->+      <item>co_await</item>+      <item>co_return</item>+      <item>co_yield</item>     </list>      <!-- https://en.cppreference.com/w/cpp/keyword -->@@ -128,20 +132,9 @@       <item>import</item>       <item>module</item>       <item>export</item> <!-- Unused but reserved, keyword since c++20 -->-      <!-- coroutine -->-      <item>co_await</item>-      <item>co_return</item>-      <item>co_yield</item>       <!-- reflexion TS -->       <!-- <item>reflexpr</item> -->     </list>-    <!-- This keyword may appear in InternalsNS context. For example in code:-      details::some_class::template some_templated_static();-      and it should be displayed as keyword, not like part of details namespace...-      -->-    <list name="template">-      <item>template</item>-    </list>      <!-- 7.6 Attributes -->     <!-- http://en.cppreference.com/w/cpp/language/attributes -->@@ -162,13 +155,6 @@       <!-- TM TS -->       <!-- <item>optimize_for_synchronized</item> -->     </list>-    <!-- This keyword may appear in Attribute context. For example in code:-    [[using CC: opt(1), debug]]-    and it should be displayed as keyword, not like part of attribute...-    -->-    <list name="using">-      <item>using</item>-    </list>      <!-- https://en.cppreference.com/w/cpp/keyword -->     <!-- https://en.cppreference.com/w/cpp/types/integer -->@@ -261,30 +247,32 @@       <item>__VA_ARGS__</item>       <item>__VA_OPT__</item>     </list>-    <list name="preprocessorIf">+    <list name="preprocessor">       <item>if</item>-    </list>-    <list name="preprocessorIfDef">       <item>ifdef</item>       <item>ifndef</item>-    </list>-    <list name="preprocessorElseIf">       <item>elif</item>-    </list>-    <list name="preprocessorElse">       <item>else</item>-    </list>-    <list name="preprocessorEndIf">       <item>endif</item>+      <item>cmakedefine01</item>+      <item>cmakedefine</item>+      <item>define</item>+      <item>include</item>+      <item>error</item>+      <item>line</item>+      <item>pragma</item>+      <item>undef</item>+      <item>warning</item>     </list>+    <list name="preprocessorIfDef">+      <item>ifdef</item>+      <item>ifndef</item>+    </list>     <list name="preprocessorDefine">       <item>cmakedefine01</item>       <item>cmakedefine</item>       <item>define</item>     </list>-    <list name="preprocessorInclude">-      <item>include</item>-    </list>     <list name="preprocessorOther">       <item>error</item>       <item>line</item>@@ -528,7 +516,11 @@         <!-- Attributes may contain some text: [[deprecated("Reason text")]] -->         <DetectChar attribute="String" context="String" char="&quot;" />         <AnyChar attribute="Decimal" context="Integer" String="0123456789" lookAhead="true" />-        <keyword attribute="Keyword" context="AttributeNamespace" String="using" />+        <!-- This keyword may appear in Attribute context. For example in code:+        [[using CC: opt(1), debug]]+        and it should be displayed as keyword, not like part of attribute...+        -->+        <WordDetect attribute="Keyword" context="AttributeNamespace" String="using" />         <IncludeRules context="DetectGccAttributes##GCCExtensions" />         <RegExpr attribute="CONSTS/MACROS" context="#stay" String="[A-Z][A-Z0-9_]{2,}\b" />         <DetectIdentifier />@@ -559,7 +551,11 @@       <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop" />        <context name="DetectNSEnd" attribute="Normal Text" lineEndContext="#stay">-        <keyword attribute="Keyword" context="#stay" String="template" />+        <!-- This keyword may appear in InternalsNS context. For example in code:+          details::some_class::template some_templated_static();+          and it should be displayed as keyword, not like part of details namespace...+          -->+        <WordDetect attribute="Keyword" context="#stay" String="template" />         <DetectIdentifier context="#stay" />         <AnyChar attribute="Separator Symbol" context="#pop" String="&separators;" />         <AnyChar attribute="Symbol" context="#pop" String="&ns_punctuators; &#9;" />@@ -614,15 +610,6 @@       <context name="AfterHashLineError" attribute="Region Marker" lineEndContext="#pop">         <LineContinue attribute="Error" context="#stay" />         <RegExpr attribute="Error" context="#pop!LineError" String="[^\\]+" />-        <!-- for auto-completion in Kate editor -->-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorInclude" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorIfDef" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorIf" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorElseIf" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorElse" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorEndIf" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorOther" />-        <keyword attribute="Preprocessor" context="#pop!LineError" String="preprocessorDefine" />       </context>        <context name="LineError" attribute="Error" lineEndContext="#pop">@@ -630,17 +617,17 @@       </context>        <context name="PreprocessorCmd" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHashLineError">-        <keyword attribute="Preprocessor" context="#pop!Include" String="preprocessorInclude" />+        <WordDetect attribute="Preprocessor" context="#pop!Include" String="include" />         <keyword attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="preprocessorIfDef" beginRegion="PP" lookAhead="true" />-        <keyword attribute="Preprocessor" context="#pop!PreprocessorIf" String="preprocessorIf" beginRegion="PP" lookAhead="true" />-        <keyword attribute="Preprocessor" context="#pop!PreprocessorIf" String="preprocessorElseIf" endRegion="PP" beginRegion="PP" lookAhead="true" />-        <keyword attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="preprocessorElse" endRegion="PP" beginRegion="PP" />-        <keyword attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="preprocessorEndIf" endRegion="PP" />+        <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIf" String="if" beginRegion="PP" lookAhead="true" />+        <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIf" String="elif" endRegion="PP" beginRegion="PP" lookAhead="true" />+        <WordDetect attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="else" endRegion="PP" beginRegion="PP" />+        <WordDetect attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="endif" endRegion="PP" />         <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessorOther" />         <keyword attribute="Preprocessor" context="#pop!Define" String="preprocessorDefine" />         <!-- GCC extension -->         <WordDetect attribute="Preprocessor" context="#pop!Include" String="include_next" />-        <RegExpr attribute="Preprocessor" context="#pop!Preprocessor" String="[0-9]+" />+        <Int attribute="Preprocessor" context="#pop!Preprocessor"/>       </context>        <context name="Include" attribute="Preprocessor" lineEndContext="#pop" >
xml/j.xml view
@@ -62,7 +62,7 @@ --> <language name="J"           section="Scripts"-          version="4"+          version="5"           kateversion="5.0"           extensions="*.ijs;*.ijt;*.IJS;*.IJT"           mimetype="text/x-j;text/x-jsrc"@@ -74,7 +74,7 @@       <context attribute="Sentence" lineEndContext="#pop" name="sentence">         <DetectSpaces/>         <RegExpr      attribute="Foldable"       context="#stay"        String=":\s*0|\bdefine\b" beginRegion="Fold"/>-        <RegExpr      attribute="Foldable"       context="#stay"        String="^\)$" endRegion="Fold" column="0"/>+        <LineContinue attribute="Foldable"       context="#stay"        char=")" endRegion="Fold" column="0"/>         <StringDetect attribute="Comment"        context="#stay"        String="NB.(" beginRegion="Fold"/>         <StringDetect attribute="Comment"        context="#stay"        String="NB.)" endRegion="Fold"/>         <StringDetect attribute="Comment"        context="comment line" String="NB."/>
xml/java.xml view
@@ -7,7 +7,7 @@ 	<!ENTITY float "(\b&int;(\.((&int;&exp;?+|&exp;)[fFdD]?\b|[fFdD]\b)?|&exp;[fFdD]?\b|[fFdD]\b)|\.&int;&exp;?[fFdD]?\b)"> 	<!ENTITY hexfloat "\b0[xX](&hex;\.?+&hex;?+|\.&hex;?)[pP][-+]?&int;[fFdD]?\b"> ]>-<language name="Java" version="9" kateversion="5.62" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">+<language name="Java" version="10" kateversion="5.62" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)"> 	<highlighting> 		<list name="java15"> 			<item>ACTIVE</item>@@ -3732,6 +3732,7 @@ 			<item>volatile</item> 		</list> 		<list name="control flow">+			<item>assert</item> 			<item>break</item> 			<item>case</item> 			<item>catch</item>@@ -3760,6 +3761,7 @@ 			<item>long</item> 			<item>short</item> 			<item>static</item>+			<item>var</item> 			<item>void</item> 		</list> 		<contexts>
xml/javascript.xml view
@@ -2,6 +2,12 @@ <!DOCTYPE language SYSTEM "language.dtd" [   <!ENTITY identifier "[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*">++  <!-- https://tc39.es/ecma262/#sec-literals-numeric-literals -->+  <!ENTITY DecimalIntegerLiteral "(0|[1-9][0-9]*+(_[0-9]++)*+)">+  <!ENTITY DecimalDigits "([0-9]++(_[0-9]++)*+)">+  <!ENTITY ExponentPart "([eE][+-]?&DecimalDigits;)">+  <!ENTITY float "&DecimalIntegerLiteral;(\.&DecimalDigits;?&ExponentPart;?|&ExponentPart;)|\.&DecimalDigits;&ExponentPart;?"> ]>  <!--@@ -17,7 +23,7 @@    * QML    * CoffeeScript (embedded) -->-<language name="JavaScript" version="19" kateversion="5.53" section="Scripts" extensions="*.js;*.kwinscript;*.julius"+<language name="JavaScript" version="20" kateversion="5.53" section="Scripts" extensions="*.js;*.kwinscript;*.julius"           mimetype="text/x-javascript;application/x-javascript;application/javascript;text/javascript" indenter="cstyle"           author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license=""> @@ -102,6 +108,7 @@       <item>BigUint64Array</item>       <item>DataView</item>       <item>Date</item>+      <item>FinalizationRegistry</item>       <item>Float32Array</item>       <item>Float64Array</item>       <item>Function</item>@@ -127,6 +134,7 @@       <item>Uint32Array</item>       <item>Uint8ClampedArray</item>       <item>WeakMap</item>+      <item>WeakRef</item>       <item>WeakSet</item>       <!-- Class: Error -->       <item>Error</item>@@ -1740,14 +1748,16 @@        <!-- Numbers -->       <context attribute="Normal Text" lineEndContext="#stay" name="FindNumbers">-        <Float attribute="Float" context="NoRegExp" />-        <!-- Invalid Binary, Octal or Hex. IMPORTANT: Allow Bigint. -->-        <RegExpr attribute="Error" context="NoRegExp" String="\b0(?:b[01]*[2-9]\d*|o[0-7]*[89]\d*|x[0-9a-f]*[g-mo-z][a-mo-z0-9]*)" insensitive="true" />-        <HlCHex attribute="Hex" context="NoRegExp" />-        <RegExpr attribute="Octal" context="NoRegExp" String="\b0[oO][0-7]+" />-        <RegExpr attribute="Binary" context="NoRegExp" String="\b0[bB][01]+" />-        <RegExpr attribute="Float" context="NoRegExp" String="\b\d+[eE][\+\-]?\d+" />-        <Int attribute="Decimal" context="NoRegExp" />+        <RegExpr attribute="Float" context="NoRegExp" String="\b&float;" />+        <RegExpr attribute="Hex" context="NumericSufix" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+"/>+        <!-- 07 is octal, 08 is decimal -->+        <RegExpr attribute="Octal" context="NumericSufix" String="\b0([oO][0-7]++(_[0-7]++)*+|0*+[1-7][0-7]*+(_[0-7]++)*+(?!_?[89]))" />+        <RegExpr attribute="Binary" context="NumericSufix" String="\b0[bB][01]++(_[01]++)*+" />+        <RegExpr attribute="Decimal" context="NumericSufix" String="\b0*+([1-9][0-9]*+(_[0-9]++)*+)?"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="NumericSufix" fallthrough="true" fallthroughContext="#pop!NoRegExp">+        <DetectChar attribute="Normal Text" context="#pop!NoRegExp" char="n" />+        <RegExpr attribute="Error" context="#pop!NoRegExp" String="[0-9]*(&identifier;)?"/>       </context>        <!-- Find Objects Member and Functions -->
xml/julia.xml view
@@ -31,28 +31,42 @@ [   <!ENTITY int "[0-9]([0-9_]*[0-9])?">   <!ENTITY hex "[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?">+  <!ENTITY function_disallowed_chars "\s.,(){}\[\];:&#37;'&quot;&amp;$=/?\|^#@">+  <!ENTITY function_disallowed_first_char "0-9!&function_disallowed_chars;">+  <!ENTITY function_begin_boundary "(?:(?&lt;=[&function_disallowed_chars;!]|^)(?=[^&function_disallowed_first_char;]))"> ]> -<language name="Julia" section="Sources" version="11" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">+<language name="Julia" section="Sources" version="12" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">    <highlighting>-    <list name="block_begin">+    <list name="cflow_begin">+      <item>for</item>+      <item>while</item>+      <item>if</item>       <item>begin</item>       <item>do</item>-      <item>for</item>+    </list>+    <list name="cflow_eb">+      <item>else</item>+      <item>elseif</item>+      <item>try</item>+      <item>catch</item>+      <item>finally</item>+    </list>+    <list name="cflow">+      <item>break</item>+      <item>return</item>+      <item>continue</item>+    </list>+    <list name="block_begin">       <item>function</item>-      <item>if</item>       <item>let</item>       <item>quote</item>-      <item>try</item>       <item>type</item>-      <item>while</item>-    </list>-    <list name="block_eb">-      <item>catch</item>-      <item>finally</item>-      <item>else</item>-      <item>elseif</item>+      <item>struct</item>+      <item>module</item>+      <item>baremodule</item>+      <item>macro</item>     </list>     <list name="block_end">       <item>end</item>@@ -60,10 +74,8 @@     <list name="keywords">       <item>abstract</item>       <item>bitstype</item>-      <item>break</item>       <item>ccall</item>       <item>const</item>-      <item>continue</item>       <item>export</item>       <item>global</item>       <item>import</item>@@ -71,7 +83,6 @@       <item>local</item>       <item>macro</item>       <item>module</item>-      <item>return</item>       <item>typealias</item>       <item>importall</item>       <item>baremodule</item>@@ -372,20 +383,18 @@       <item>stdout</item>       <item>stderr</item>       <item>stdin</item>-      <item>open</item>-      <item>read</item>-      <item>write</item>-      <item>create</item>-      <item>truncate</item>-      <item>append</item>       <item>ENDIAN_BOM</item>       <!-- Numbers -->       <item>im</item>       <item>pi</item>+      <item>&#960;</item>       <item>e</item>+      <item>&#8495;</item>       <item>catalan</item>       <item>eulergamma</item>+      <item>&#611;</item>       <item>golden</item>+      <item>&#966;</item>       <item>Inf</item>       <item>Inf64</item>       <item>Inf32</item>@@ -441,13 +450,37 @@       <item>Math</item>       <item>Unicode</item>       <item>Sort</item>+      <item>Artifacts</item>       <item>Base64</item>+      <item>CRC32c</item>       <item>Dates</item>+      <item>DelimitedFiles</item>+      <item>Distributed</item>+      <item>Downloads</item>+      <item>FileWatching</item>+      <item>Future</item>+      <item>InteractiveUtils</item>+      <item>LibGit2</item>+      <item>Libc</item>+      <item>Libdl</item>+      <item>LinearAlgebra</item>+      <item>Logging</item>       <item>Mmap</item>+      <item>Pkg</item>+      <item>Printf</item>+      <item>Profile</item>+      <item>REPL</item>       <item>Random</item>+      <item>SHA</item>+      <item>Serialization</item>       <item>SharedArrays</item>       <item>Sockets</item>       <item>SparseArrays</item>+      <item>Statistics</item>+      <item>SuiteSparse</item>+      <item>TOML</item>+      <item>Test</item>+      <item>UUIDs</item>       <item>CoreLogging</item>     </list>     <contexts>@@ -459,15 +492,20 @@         <!-- Blocks -->         <keyword context="#stay" attribute="Keyword" String="block_begin"                  beginRegion="block" />-        <keyword context="#stay" attribute="Keyword" String="block_eb"-                 endRegion="block" beginRegion="block" />+        <keyword context="controlflow-block" attribute="Control Flow" String="cflow_begin"+                 beginRegion="block" />+        <keyword context="#stay" attribute="Control Flow" String="cflow"/>         <keyword context="#stay" attribute="Keyword" String="block_end"                  endRegion="block" />         <StringDetect String="#BEGIN" context="region_marker" attribute="FoldingComment" beginRegion="user_region" />         <StringDetect String="#END" context="region_marker" attribute="FoldingComment" endRegion="user_region" /> +        <!-- functions have to be before built-in types to properly match constructors -->+        <RegExpr context="#stay" attribute="Function" String="&function_begin_boundary;[^&function_disallowed_first_char;][^&function_disallowed_chars;]*!?(?=\.?\()" />+        <RegExpr context="parametric-constructor" attribute="Function" String="&function_begin_boundary;[^&function_disallowed_first_char;][^&function_disallowed_chars;]*(?=\{.+\}.?\()" />+         <!-- Keywords, types, and comments -->-        <RegExpr context="#stay" attribute="Keyword" String="\b(abstract|primitive)\s+type\b|\bmutable\s+struct\b" />+        <RegExpr context="#stay" attribute="Keyword" String="\b(abstract|primitive)\s+type\b|\bmutable\s+struct\b" beginRegion="block"/>         <keyword context="#stay" attribute="Keyword" String="keywords" />         <keyword context="#stay" attribute="Data Type" String="types" />         <keyword context="#stay" attribute="Boolean" String="booleans" />@@ -505,31 +543,71 @@          <!-- Multi-character operators -->         <StringDetect context="#stay" attribute="Operator" String="..."/>-        <Detect2Chars context="#stay" attribute="Operator" char=":" char1=":"/>+        <Detect2Chars context="type-annotation" attribute="Operator" char=":" char1=":"/>+        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;&gt;="/>         <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;&gt;="/>+        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;="/>         <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;="/>+        <StringDetect context="#stay" attribute="Operator" String=".&lt;&lt;="/>         <StringDetect context="#stay" attribute="Operator" String="&lt;&lt;="/>+        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;&gt;"/>         <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;&gt;"/>+        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;"/>         <Detect2Chars context="#stay" attribute="Operator" char="&gt;" char1="&gt;"/>         <Detect2Chars context="#stay" attribute="Operator" char="&lt;" char1="&lt;"/>+        <StringDetect context="#stay" attribute="Operator" String=".=="/>         <Detect2Chars context="#stay" attribute="Operator" char="=" char1="="/>+        <StringDetect context="#stay" attribute="Operator" String=".!="/>         <Detect2Chars context="#stay" attribute="Operator" char="!" char1="="/>+        <StringDetect context="#stay" attribute="Operator" String=".&lt;="/>         <Detect2Chars context="#stay" attribute="Operator" char="&lt;" char1="="/>+        <StringDetect context="#stay" attribute="Operator" String=".&gt;="/>         <Detect2Chars context="#stay" attribute="Operator" char="&gt;" char1="="/>         <Detect2Chars context="#stay" attribute="Operator" char="&amp;" char1="&amp;"/>         <Detect2Chars context="#stay" attribute="Operator" char="|" char1="|"/>+        <StringDetect context="#stay" attribute="Operator" String=".*="/>         <Detect2Chars context="#stay" attribute="Operator" char="." char1="*"/>+        <StringDetect context="#stay" attribute="Operator" String=".^="/>         <Detect2Chars context="#stay" attribute="Operator" char="." char1="^"/>+        <StringDetect context="#stay" attribute="Operator" String="./="/>         <Detect2Chars context="#stay" attribute="Operator" char="." char1="/"/>         <Detect2Chars context="#stay" attribute="Operator" char="." char1="'"/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="~"/>+        <StringDetect context="#stay" attribute="Operator" String=".&#8891;="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&#8891;"/>+        <StringDetect context="#stay" attribute="Operator" String=".&amp;="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&amp;"/>+        <StringDetect context="#stay" attribute="Operator" String=".|="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="|"/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="!"/>+        <StringDetect context="#stay" attribute="Operator" String=".+="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="+"/>+        <StringDetect context="#stay" attribute="Operator" String=".-="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="-"/>+        <StringDetect context="#stay" attribute="Operator" String=".%="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="%"/>+        <StringDetect context="#stay" attribute="Operator" String=".&#247;="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&#247;"/>+        <StringDetect context="#stay" attribute="Operator" String=".&#92;="/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&#92;"/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&#8800;"/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&#8804;"/>+        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&#8805;"/>         <Detect2Chars context="#stay" attribute="Operator" char="+" char1="="/>         <Detect2Chars context="#stay" attribute="Operator" char="-" char1="="/>         <Detect2Chars context="#stay" attribute="Operator" char="*" char1="="/>         <Detect2Chars context="#stay" attribute="Operator" char="/" char1="="/>+        <Detect2Chars context="#stay" attribute="Operator" char="&#92;" char1="="/>+        <Detect2Chars context="#stay" attribute="Operator" char="&#247;" char1="="/>+        <Detect2Chars context="#stay" attribute="Operator" char="%" char1="="/>+        <Detect2Chars context="#stay" attribute="Operator" char="^" char1="="/>         <Detect2Chars context="#stay" attribute="Operator" char="&amp;" char1="="/>         <Detect2Chars context="#stay" attribute="Operator" char="|" char1="="/>-        <Detect2Chars context="#stay" attribute="Operator" char="$" char1="="/>+        <Detect2Chars context="#stay" attribute="Operator" char="&#8891;" char1="="/> +        <!-- subtype operator -->+        <Detect2Chars context="type-annotation" attribute="Operator" char="&lt;" char1=":"/>+         <!-- Look-ahead for adjoint ' after variable, number literal, closing braces and .' -->         <RegExpr context="_adjoint" attribute="Variable" String="[a-zA-Z]\w*(?=')" />         <RegExpr context="_adjoint" attribute="Float" String="(&int;(\.&int;)?|\.&int;)([eEfF][+-]?\d+)?(im)?(?=')" />@@ -541,7 +619,6 @@         <RegExpr context="#stay" attribute="Incomplete Char" String="'[^']*(''[^']*)*" />          <RegExpr context="#stay" attribute="Macro" String="@[a-zA-Z_]\w*" />-        <RegExpr context="#stay" attribute="Function" String="\b[A-Za-z_]\w*(?=\!?\()" />          <!-- Identifiers, numbers and braces -->         <!-- We can't use HlCHex, Int, and Float because we need to allow the "im" at the end of complex numbers -->@@ -554,7 +631,7 @@         <AnyChar context="#stay" attribute="Delimiter" String="()[]{}"/>          <!-- Single-character operators -->-        <AnyChar context="#stay" attribute="Operator" String="*+-/\&amp;|&lt;&gt;~$!^=,;:@"/>+        <AnyChar context="#stay" attribute="Operator" String="*+-/\&amp;|&lt;&gt;~$!^=,;:@&#8891;%&#247;&#92;&#8800;&#8804;&#8805;"/>        </context> @@ -660,7 +737,30 @@         <Detect2Chars char="=" char1="#" context="#pop" attribute="Comment" endRegion="block-comment"/>         <IncludeRules context="##Comments" />       </context>+      <context name="controlflow-block" lineEndContext="#stay" attribute="Normal Text">+        <keyword context="#stay" attribute="Control Flow" String="cflow_eb" endRegion="block" beginRegion="block" />+        <keyword context="#pop" attribute="Control Flow" String="block_end" endRegion="block" />+        <IncludeRules context="_normal" />+      </context>+      <context name="parametric-type" lineEndContext="#stay" attribute="Data Type">+        <DetectChar char="{" context="parametric-type"/>+        <DetectChar char="}" context="#pop"/>+      </context>+      <context name="parametric-constructor" lineEndContext="#stay" attribute="Data Type">+        <DetectChar char="{" context="parametric-type"/>+        <AnyChar String=",;()=:&gt;&lt;&amp;%*?[]^" context="#pop"/>+      </context> +      <!-- we have to allow spaces before the type, but switch to the parent context after the type -->+      <context name="type-annotation-internal" lineEndContext="#pop#pop" attribute="Data Type">+        <DetectChar char="{" context="parametric-type"/>+        <AnyChar String=",;()=:&gt;&lt;&amp;%*?[]^" context="#pop#pop"/>+        <DetectSpaces context="#pop#pop"/>+        <DetectChar char="}" lookAhead="true" context="#pop#pop"/>+      </context>+      <context name="type-annotation" lineEndContext="#pop" attribute="Data Type">+        <DetectIdentifier context="type-annotation-internal" attribute="Data Type"/>+      </context>     </contexts>      <itemDatas>@@ -677,12 +777,13 @@       <itemData name="Char" defStyleNum="dsChar"/>       <itemData name="Incomplete Char" defStyleNum="dsChar"/>       <itemData name="Keyword" defStyleNum="dsKeyword"/>+      <itemData name="Control Flow" defStyleNum="dsControlFlow" />       <itemData name="Data Type" defStyleNum="dsDataType"/>       <itemData name="Constant" defStyleNum="dsConstant"/>-      <itemData name="Boolean" defStyleNum="dsExtension"/>+      <itemData name="Boolean" defStyleNum="dsConstant"/>       <itemData name="Macro" defStyleNum="dsPreprocessor"/>       <itemData name="Module" defStyleNum="dsBuiltIn"/>-      <itemData name="Function" defStyleNum="dsNormal"/>+      <itemData name="Function" defStyleNum="dsFunction"/>       <itemData name="Command String" defStyleNum="dsSpecialString"/>       <itemData name="Comment" defStyleNum="dsComment"/>       <itemData name="FoldingComment" defStyleNum="dsRegionMarker" />
xml/latex.xml view
@@ -4,7 +4,7 @@     <!ENTITY bullet "&#xd7;">     <!ENTITY envname "[a-zA-Z]+\*?"> ]>-<language name="LaTeX" version="18" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >+<language name="LaTeX" version="19" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >   <highlighting>     <!-- NOTE: Keywords of kind "\something" do not need a delimiter before "\".          Using a DetectChar rule with lookAhead to detect "\" at the beginning@@ -771,7 +771,7 @@         <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>       </context>       <context name="BackslashMathModeEnv" attribute="Math" lineEndContext="#pop">-        <keyword String="beginEnv" attribute="Structure" context="#pop!FindBeginEnvironmentInMathMode" beginRegion="block"/>+        <keyword String="beginEnv" attribute="Structure" context="#pop!FindBeginEnvironment" beginRegion="block"/>         <keyword String="endEnv" attribute="Structure" context="#pop!MathFindEnd"/>         <keyword String="MathModeText" attribute="Macro Mathmode" context="#pop!MathModeText"/>         <Detect2Chars char="\" char1="(" attribute="Error" context="#pop"/>@@ -779,25 +779,6 @@         <Detect2Chars char="\" char1="[" attribute="Error" context="#pop"/>         <Detect2Chars char="\" char1="]" attribute="Error" context="#pop"/>         <DetectChar char="\" attribute="Macro Mathmode" context="#pop!MathContrSeq"/>-      </context>--      <!-- start of an environment in math mode -->-      <context name="FindBeginEnvironmentInMathMode" attribute="Normal Text" lineEndContext="#stay">-        <DetectSpaces/>-        <DetectChar char="{" attribute="Normal Text" context="BeginEnvironmentInMathMode"/>-        <RegExpr String="." attribute="Normal Text" context="#pop"/>-      </context>--      <!-- filter the environment name and check the type in math mode -->-      <context name="BeginEnvironmentInMathMode" attribute="Environment" lineEndContext="#stay">-        <keyword String="ListingsEnv" attribute="Environment" context="ListingsEnv"/>-        <keyword String="MintedEnv" attribute="Environment" context="MintedEnv"/>-        <keyword String="VerbatimEnv" attribute="Environment" context="VerbatimEnv" lookAhead="true"/>-        <keyword String="CommentEnv" attribute="Environment" context="CommentEnv"/>-        <keyword String="TabEnv" attribute="Environment" context="TabEnv"/>-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>-        <RegExpr String="&envname;" attribute="Environment" context="LatexEnv"/>-        <RegExpr String="." attribute="Error" context="#pop"/>       </context>        <!-- end of math environment -->
xml/lex.xml view
@@ -20,7 +20,7 @@      ======================================================================== -->-<language name="Lex/Flex" version="6" kateversion="5.0" section="Sources" extensions="*.l;*.lex;*.flex" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">+<language name="Lex/Flex" version="7" kateversion="5.0" section="Sources" extensions="*.l;*.lex;*.flex" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">  <highlighting> <contexts>@@ -56,7 +56,7 @@     <RegExpr attribute="Alert" context="#stay" String=".*" />     </context>   <context name="Rule RegExpr" attribute="RegExpr" lineEndContext="#pop">-    <RegExpr attribute="Content-Type Delimiter" context="Start Conditions Scope" String="\{$" beginRegion="SCscope" />  +    <LineContinue attribute="Content-Type Delimiter" context="Start Conditions Scope" char="{" beginRegion="SCscope" />       <IncludeRules context="RegExpr Base" />     <RegExpr attribute="RegExpr" context="#stay" String="\S" />       <DetectSpaces attribute="Normal Text" context="Action" />  
xml/markdown.xml view
@@ -90,7 +90,7 @@ <!ENTITY checkbox "\[[ x]\](?=\s)"> ]> -<language name="Markdown" version="17" kateversion="5.79" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">+<language name="Markdown" version="18" kateversion="5.79" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">   <highlighting>     <contexts>       <!-- Start of the Markdown document: find metadata or code block -->@@ -149,12 +149,12 @@       </context>        <context name="find-header" attribute="Normal Text" lineEndContext="#pop">-        <RegExpr attribute="Header H1" context="#pop" String="^#\s.*[#]?$" column="0"/>-        <RegExpr attribute="Header H2" context="#pop" String="^##\s.*[#]?$" column="0"/>-        <RegExpr attribute="Header H3" context="#pop" String="^###\s.*[#]?$" column="0"/>-        <RegExpr attribute="Header H4" context="#pop" String="^####\s.*[#]?$" column="0"/>-        <RegExpr attribute="Header H5" context="#pop" String="^#####\s.*[#]?$" column="0"/>-        <RegExpr attribute="Header H6" context="#pop" String="^######\s.*[#]?$" column="0"/>+        <RegExpr attribute="Header H1" context="#pop" String="^#\s.*[#]?$" column="0" endRegion="H1" beginRegion="H1"/>+        <RegExpr attribute="Header H2" context="#pop" String="^##\s.*[#]?$" column="0" endRegion="H2" beginRegion="H2"/>+        <RegExpr attribute="Header H3" context="#pop" String="^###\s.*[#]?$" column="0" endRegion="H3" beginRegion="H3"/>+        <RegExpr attribute="Header H4" context="#pop" String="^####\s.*[#]?$" column="0" endRegion="H4" beginRegion="H4"/>+        <RegExpr attribute="Header H5" context="#pop" String="^#####\s.*[#]?$" column="0" endRegion="H5" beginRegion="H5"/>+        <RegExpr attribute="Header H6" context="#pop" String="^######\s.*[#]?$" column="0" endRegion="H6" beginRegion="H6"/>         <DetectChar attribute="Normal Text" context="#pop" char="#"/>       </context>       <context name="find-strong-normal" attribute="Normal Text" lineEndContext="#pop">
xml/perl.xml view
@@ -39,7 +39,7 @@     Enhance tr/// and y/// support. -->-<language name="Perl" version="17" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">+<language name="Perl" version="18" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">   <highlighting>     <list name="keywords">       <item>if</item>@@ -92,7 +92,7 @@       <item>+</item>       <item>-</item>       <item>*</item>-     <!-- <item>/</item>//-->+      <!-- <item>/</item>//-->       <item>%</item>       <item>||</item>       <item>//</item>@@ -420,7 +420,8 @@         <DetectChar attribute="Operator" context="quote_word_paren" char="(" beginRegion="Wordlist" />         <DetectChar attribute="Operator" context="quote_word_brace" char="{" beginRegion="Wordlist" />         <DetectChar attribute="Operator" context="quote_word_bracket" char="[" beginRegion="Wordlist" />-        <RegExpr attribute="Operator" context="quote_word" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="Wordlist" />+        <DetectChar attribute="Operator" context="quote_word_angular" char="&lt;" beginRegion="Wordlist" />+        <RegExpr attribute="Operator" context="quote_word" String="([^a-zA-Z0-9_\s[\]{}()\&lt;&gt;])" beginRegion="Wordlist" />         <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->       </context> @@ -755,6 +756,12 @@         <DetectIdentifier />         <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="]" />         <DetectChar attribute="Operator" context="#pop#pop#pop" char="]" endRegion="Wordlist" />+      </context>+      <context name="quote_word_angular" attribute="Normal Text" lineEndContext="#stay">+        <DetectSpaces />+        <DetectIdentifier />+        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="&gt;" />+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="&gt;" endRegion="Wordlist" />       </context>        <!-- ====== Here Documents ====== -->
xml/php.xml view
@@ -77,8 +77,9 @@   <!ENTITY float "\b&LNUM;(\.(&LNUM;)?(&EXPONENT;)?|&EXPONENT;)|\.&LNUM;(&EXPONENT;)?"> ]> -<language name="PHP/PHP" indenter="cstyle" version="19" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">+<language name="PHP/PHP" indenter="cstyle" version="21" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">   <highlighting>+    <!-- https://php.watch/versions -->      <!-- https://secure.php.net/manual/en/reserved.keywords.php -->     <list name="control structures">@@ -137,6 +138,7 @@       <item>echo</item>       <item>empty</item>       <item>enddeclare</item>+      <item>enum</item>       <item>eval</item>       <item>extends</item>       <item>final</item>@@ -859,6 +861,7 @@       <item>CURLOPT_CUSTOMREQUEST</item>       <item>CURLOPT_DEFAULT_PROTOCOL</item>       <item>CURLOPT_DISALLOW_USERNAME_IN_URL</item>+      <item>CURLOPT_DOH_URL</item>       <item>CURLOPT_DNS_CACHE_TIMEOUT</item>       <item>CURLOPT_DNS_INTERFACE</item>       <item>CURLOPT_DNS_LOCAL_IP4</item>@@ -2412,6 +2415,7 @@       <item>MYSQLI_REFRESH_HOSTS</item>       <item>MYSQLI_REFRESH_LOG</item>       <item>MYSQLI_REFRESH_MASTER</item>+      <item>MYSQLI_REFRESH_REPLICA</item>       <item>MYSQLI_REFRESH_SLAVE</item>       <item>MYSQLI_REFRESH_STATUS</item>       <item>MYSQLI_REFRESH_TABLES</item>@@ -5386,6 +5390,7 @@       <item>array_intersect_key</item>       <item>array_intersect_uassoc</item>       <item>array_intersect_ukey</item>+      <item>array_is_list</item>       <item>array_keys</item>       <item>array_key_exists</item>       <item>array_key_first</item>@@ -6461,6 +6466,7 @@       <item>fbsql_username</item>       <item>fbsql_warnings</item>       <item>fclose</item>+      <item>fdatasync</item>       <item>fdf_add_doc_javascript</item>       <item>fdf_add_template</item>       <item>fdf_close</item>@@ -6496,6 +6502,7 @@       <item>fdf_set_target_frame</item>       <item>fdf_set_value</item>       <item>fdf_set_version</item>+      <item>fdiv</item>       <item>feof</item>       <item>fflush</item>       <item>fgetc</item>@@ -6554,6 +6561,7 @@       <item>fseek</item>       <item>fsockopen</item>       <item>fstat</item>+      <item>fsync</item>       <item>ftell</item>       <item>ftok</item>       <item>ftp_alloc</item>@@ -6656,6 +6664,7 @@       <item>get_class_methods</item>       <item>get_class_vars</item>       <item>get_current_user</item>+      <item>get_debug_type</item>       <item>get_declared_classes</item>       <item>get_declared_interfaces</item>       <item>get_declared_traits</item>@@ -6675,6 +6684,7 @@       <item>get_parent_class</item>       <item>get_required_files</item>       <item>get_resources</item>+      <item>get_resource_id</item>       <item>get_resource_type</item>       <item>glob</item>       <item>gmdate</item>@@ -8742,6 +8752,7 @@       <item>preg_filter</item>       <item>preg_grep</item>       <item>preg_last_error</item>+      <item>preg_last_error_msg</item>       <item>preg_match</item>       <item>preg_match_all</item>       <item>preg_quote</item>@@ -9518,6 +9529,8 @@       <item>strtoupper</item>       <item>strtr</item>       <item>strval</item>+      <item>str_contains</item>+      <item>str_ends_with</item>       <item>str_getcsv</item>       <item>str_ireplace</item>       <item>str_pad</item>@@ -9526,6 +9539,7 @@       <item>str_rot13</item>       <item>str_shuffle</item>       <item>str_split</item>+      <item>str_starts_with</item>       <item>str_word_count</item>       <item>substr</item>       <item>substr_compare</item>@@ -10238,6 +10252,7 @@     </list>      <list name="predefined-classes">+        <item>AddressInfo</item>         <item>APCIterator</item>         <item>APCUIterator</item>         <item>AppendIterator</item>@@ -10299,6 +10314,10 @@         <item>Cond</item>         <item>Countable</item>         <item>CURLFile</item>+        <item>CurlHandle</item>+        <item>CurlMultiHandle</item>+        <item>CurlShareHandle</item>+        <item>CURLStringFile</item>         <item>DateInterval</item>         <item>DatePeriod</item>         <item>DateTime</item>@@ -10312,6 +10331,7 @@         <item>DOMAttr</item>         <item>DOMCdataSection</item>         <item>DomCharacterData</item>+        <item>DOMChildNode</item>         <item>DOMComment</item>         <item>DOMDocument</item>         <item>DOMDocumentFragment</item>@@ -10325,6 +10345,7 @@         <item>DOMNode</item>         <item>DOMNodeList</item>         <item>DOMNotation</item>+        <item>DOMParentNode</item>         <item>DOMProcessingInstruction</item>         <item>DOMText</item>         <item>DomXPath</item>@@ -10351,6 +10372,7 @@         <item>FilesystemIterator</item>         <item>FilterIterator</item>         <item>finfo</item>+        <item>GdImage</item>         <item>GearmanClient</item>         <item>GearmanException</item>         <item>GearmanJob</item>@@ -10462,6 +10484,9 @@         <item>OAuthProvider</item>         <item>OCI-Collection</item>         <item>OCI-Lob</item>+        <item>OpenSSLAsymmetricKey</item>+        <item>OpenSSLCertificate</item>+        <item>OpenSSLCertificateSigningRequest</item>         <item>OuterIterator</item>         <item>OutOfBoundsException</item>         <item>OutOfRangeException</item>@@ -10476,6 +10501,7 @@         <item>PharException</item>         <item>PharFileInfo</item>         <item>phdfs</item>+        <item>PhpToken</item>         <item>php_user_filter</item>         <item>QuickHashIntHash</item>         <item>QuickHashIntSet</item>@@ -10551,6 +10577,7 @@         <item>SoapParam</item>         <item>SoapServer</item>         <item>SoapVar</item>+        <item>Socket</item>         <item>SodiumException</item>         <item>SolrClientException</item>         <item>SolrCollapseFunction</item>@@ -10598,6 +10625,7 @@         <item>StompException</item>         <item>StompFrame</item>         <item>streamWrapper</item>+        <item>Stringable</item>         <item>SVM</item>         <item>SVMException</item>         <item>SVMModel</item>@@ -10643,6 +10671,8 @@         <item>TypeError</item>         <item>UnderflowException</item>         <item>UnexpectedValueException</item>+        <item>UnhandledMatchError</item>+        <item>ValueError</item>         <item>V8Js</item>         <item>V8JsException</item>         <item>VarnishAdmin</item>@@ -10653,6 +10683,7 @@         <item>WeakMap</item>         <item>WeakRef</item>         <item>Worker</item>+        <item>XMLParser</item>         <item>XMLReader</item>         <item>XMLWriter</item>         <item>XSLTProcessor</item>@@ -10927,6 +10958,7 @@         <Detect2Chars attribute="Keyword" context="#pop" char="?" char1="&gt;" lookAhead="true" />         <AnyChar attribute="Other" context="#stay" String=";,?:" /> +        <Detect2Chars attribute="Attribute" context="Attribute" char="#" char1="["/>         <IncludeRules context="FindComment"/>          <StringDetect attribute="Operator" context="#stay" String="&lt;=>" />@@ -11142,7 +11174,7 @@         <IncludeRules context="findfloat"/>         <RegExpr attribute="Hex" context="#pop" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+\b"/>         <RegExpr attribute="Binary" context="#pop" String="\b0[bB][01]++(_[01]++)*+\b"/>-        <RegExpr attribute="Octal" context="#pop" String="\b0_*+[0-7]++(_[0-7]++)*+\b"/>+        <RegExpr attribute="Octal" context="#pop" String="\b0[oO_]?[0-7]++(_[0-7]++)*+\b"/>         <RegExpr attribute="Decimal" context="#pop" String="\b(0|[1-9][0-9]*+(_[0-9]++)*+)\b"/>         <AnyChar attribute="Error" context="#pop" String="0123456789"/>       </context>@@ -11198,6 +11230,16 @@         <DetectSpaces attribute="PHP Text"/>       </context> +      <context name="Attribute" attribute="Attribute" lineEndContext="#stay">+        <DetectChar attribute="Attribute" context="#pop" char="]"/>+        <DetectChar attribute="Symbol" context="ArrayInAttribute" char="["/>+        <IncludeRules context="phpsource"/>+      </context>+      <context name="ArrayInAttribute" attribute="Attribute" lineEndContext="#stay">+        <DetectChar attribute="Symbol" context="#pop" char="]"/>+        <IncludeRules context="phpsource"/>+      </context>+     </contexts>     <itemDatas>       <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />@@ -11206,6 +11248,7 @@       <itemData name="Classes" defStyleNum="dsBuiltIn" spellChecking="false" />       <itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />       <itemData name="Special method" defStyleNum="dsBuiltIn" spellChecking="false" />+      <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false" />       <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />       <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false" />       <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
xml/prolog.xml view
@@ -105,7 +105,7 @@     <!ENTITY bs         "\"> ]> <language name="Prolog" section="Sources"-	  version="15" kateversion="5.62"+	  version="16" kateversion="5.62" 	  mimetype="text/x-prolog" 	  extensions="*.prolog;*.dcg;*.pro" 	  author="Torsten Eichstädt (torsten.eichstaedt@web.de)"@@ -868,7 +868,6 @@ 	    <context name="arith_expr_common" lineEndContext="#stay" attribute="Syntax Error" > 		<IncludeRules context="layout" /> 		<IncludeRules context="number" />-		<keyword String="arith eval ISO" context="#pop" attribute="Syntax Error" /> 		<keyword String="bogus ISO" context="#stay" attribute="ISO Bogus" /> 		<keyword String="arith expr mixed ISO" context="#stay" attribute="Arithmetics" /> 		<keyword String="arith expr int ISO" context="#stay" attribute="Integer Arithmetics" />
xml/python.xml view
@@ -33,6 +33,10 @@ 	     type              ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%" 	--> 	<!ENTITY strsubstitution_py3 "\{(?:(?:[a-zA-Z0-9_]+|[0-9]+)(?:\.[a-zA-Z0-9_]+|\[[^ \]]+\])*)?(?:![rs])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX&#37;]?)?\}">++	<!ENTITY rawString "(?:ru|u?r|)(?:'(?:[^']++|\\')*+'|&quot;(?:[^&quot;]++|\\&quot;)*+&quot;)">+	<!ENTITY formatString "(?:r?f|fr?)(?:'(?:[^'{]++|\\'|\{\{|\{[^}]++\})*+'|&quot;(?:[^&quot;]++|\\&quot;|\{\{|\{[^}]*+\})*+&quot;)">+	<!ENTITY string "&rawString;|&formatString;"> ]> <!-- Python syntax highlightning v0.9 by Per Wigren --> <!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) -->@@ -48,7 +52,7 @@ <!-- v2.07 add support for %prog and co, see bug 142832 --> <!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords --> <!-- v2.29 recognize escape sequenzes correctly -->-<language name="Python" version="14" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">+<language name="Python" version="18" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license=""> 	<highlighting> 		<list name="import"> 			<item>import</item>@@ -90,6 +94,10 @@ 			<item>async</item> 			<item>await</item> 		</list>+		<list name="patternmatching">+			<item>match</item>+			<item>case</item>+		</list> 		<list name="builtinfuncs"> 			<item>__import__</item> 			<item>abs</item>@@ -366,90 +374,132 @@ 		</list> 		<contexts> 			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">+				<DetectSpaces attribute="Normal Text"/>+ 				<keyword attribute="Import" String="import" context="#stay"/> 				<keyword attribute="Definition Keyword" String="defs" context="#stay"/> 				<keyword attribute="Operator Keyword" String="operators" context="#stay"/> 				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>+				<keyword attribute="Flow Control Keyword" String="patternmatching" context="Pattern Matching" lookAhead="1" firstNonSpace="1"/> 				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/> 				<keyword attribute="Special Variable" String="specialvars" context="#stay"/> 				<keyword attribute="Extensions" String="bindings" context="#stay"/> 				<keyword attribute="Exceptions" String="exceptions" context="#stay"/> 				<keyword attribute="Overloaders" String="overloaders" context="#stay"/>-				<RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/> -				<!-- Complex: 1j ; 1.1j ; 1.j ; .1j ; 1e3j ; 1.1e3j ; 1.e3j ; .1e3j -->-				<RegExpr attribute="Complex" String="(?:&beforeDigit;&digitPart;(?:\.(?:&digitPart;)?)?|&beforePointFloat;\.&digitPart;)(?:[eE][\+\-]?&digitPart;)?[jJ]\b" context="#stay"/>-				<!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 -->-				<RegExpr attribute="Hex" String="&beforeDigit;0[xX](?:_?[\da-fA-F])+\b" context="#stay"/>-				<RegExpr attribute="Binary" String="&beforeDigit;0[bB](?:_?[01])+\b" context="#stay"/>-				<RegExpr attribute="Octal" String="&beforeDigit;0[oO](?:_?[0-7])+\b" context="#stay"/>-				<!-- Float: 1.1 ; 1. ; .1 ; 1e3 ; 1.1e3 ; 1.e3 ; .1e3 -->-				<RegExpr attribute="Float" String="(?:&beforeDigit;&digitPart;(?:\.(?:&digitPart;)?)?|&beforePointFloat;\.&digitPart;)[eE][\+\-]?&digitPart;\b|(?:&beforeDigit;&digitPart;\.(?:&digitPart;\b)?|&beforePointFloat;\.&digitPart;\b)" context="#stay"/>-				<!-- Decimal: 123 ; 000 -->-				<RegExpr attribute="Int" String="&beforeDigit;(?:[1-9](?:_?\d)*|0(?:_?0)*)[lL]?\b" context="#stay"/>- 				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/> 				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/> 				<DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/> -				<IncludeRules context="CommentVariants" />- 				<DetectChar attribute="Comment" char="#" context="Hash comment"/> +				<IncludeRules context="Number" />+				<IncludeRules context="CommentVariants" /> 				<IncludeRules context="StringVariants" /> +				<DetectIdentifier attribute="Normal Text"/>+ 				<RegExpr attribute="Decorator" String="@[_a-zA-Z[:^ascii:]][\._a-zA-Z0-9[:^ascii:]]*" firstNonSpace="true"/>-				<AnyChar attribute="Operator" String="+*/%\|=;\!&lt;&gt;!^&amp;~-@" context="#stay"/>+				<AnyChar attribute="Operator" String="+*/%\|=;&lt;&gt;!^&amp;~-@" context="#stay"/>++				<Int attribute="Error"/> 			</context> +			<!-- https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals -->+			<!-- https://docs.python.org/3/reference/lexical_analysis.html#integer-literals -->+			<context name="Number" attribute="Normal Text" lineEndContext="#pop">+				<!-- fast path -->+				<RegExpr String="&beforeDigit;[0-9]|&beforePointFloat;\.[0-9]" context="AssumeNumber" lookAhead="1"/>+			</context>+			<context name="AssumeNumber" attribute="Normal Text" lineEndContext="#pop">+				<!-- Complex: 1j ; 1.1j ; 1.j ; .1j ; 1e3j ; 1.1e3j ; 1.e3j ; .1e3j -->+				<RegExpr attribute="Complex" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|&beforePointFloat;\.&digitPart;)(?:[eE][\+\-]?&digitPart;)?[jJ]" context="CheckSuffixError"/>+				<!-- Hexadecimal: 0xA1, Binary: 0b01, Octal: 0o71 -->+				<RegExpr attribute="Hex" String="0[xX](?:_?[0-9a-fA-F])+" context="CheckSuffixError"/>+				<RegExpr attribute="Binary" String="0[bB](?:_?[01])+" context="CheckSuffixError"/>+				<RegExpr attribute="Octal" String="0[oO](?:_?[0-7])+" context="CheckSuffixError"/>+				<!-- Float: 1.1 ; 1. ; .1 ; 1e3 ; 1.1e3 ; 1.e3 ; .1e3 -->+				<RegExpr attribute="Float" String="(?:&digitPart;(?:\.(?:&digitPart;)?)?|\.&digitPart;)[eE][\+\-]?&digitPart;|&digitPart;\.(?:&digitPart;)?|\.&digitPart;" context="CheckSuffixError"/>+				<!-- Decimal: 123 ; 000 -->+				<!-- l and L are python2 suffixes -->+				<RegExpr attribute="Int" String="(?:[1-9](?:_?\d)*|0(?:_?0)*)[lL]?" context="CheckSuffixError"/>+			</context>+			<context name="CheckSuffixError" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+				<RegExpr attribute="Error" String="[\w\d]+" context="#pop#pop"/>+			</context>++			<context name="Pattern Matching" attribute="Flow Control Keyword" lineEndContext="#pop">+				<!--+					Python 3.10: https://docs.python.org/3.10/reference/compound_stmts.html#the-match-statement+					( 'match' | 'case' ) expression ':'+					exclude:+					( 'match' | 'case' ) ( 'if' | 'for' | '.' | ':' | '=' | ',' | ']' | ')' ) ...+				-->+				<RegExpr attribute="Flow Control Keyword" String="\w++(?=\s+(?!(?:if|for)\b)[\w'&quot;~]|\s*+(?![.:=\]),]|(?:if|for)\b)((?:&string;|[^#;(){}]|\(\)|\((?1)\)|\{\}|\{(\s*+(?:(?:&string;|[a-zA-Z0-9.]++)\s*+:\s*+(?:&string;|[^#;(){},]|\(\)|\((?1)\)|\{\}|\{(?2)\})++,?)*+)\})+?):)|" context="#pop"/>+				<DetectIdentifier attribute="Normal Text" context="#pop"/>+			</context>+ 			<context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> 				<DetectSpaces/>-				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>+				<LineContinue attribute="Normal Text" context="#pop!CheckForStringNext"/> 			</context> -			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop"> 				<DetectSpaces/>-				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>+				<LineContinue attribute="Normal Text" context="#stay"/> 				<IncludeRules context="StringVariants"/> 			</context> +			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->+			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals --> 			<context name="StringVariants" attribute="Normal Text" lineEndContext="#stay">-				<DetectSpaces/>+				<!-- fast path -->+				<RegExpr String="(?:u|r|b|f|ur|fr|rf|br|rb)?['&quot;]" insensitive="true" context="AssumeStringVariants" lookAhead="1"/>+			</context>+			<context name="AssumeStringVariants" attribute="Normal Text" lineEndContext="#stay">+				<RegExpr attribute="String" String="u?'''"                insensitive="true" context="#pop!Triple A-string" beginRegion="Triple A-region"/>+				<RegExpr attribute="String" String="u?&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-string" beginRegion="Triple Q-region"/>+				<RegExpr attribute="String" String="u?'"                  insensitive="true" context="#pop!Single A-string"/>+				<RegExpr attribute="String" String="u?&quot;"             insensitive="true" context="#pop!Single Q-string"/> -				<RegExpr attribute="String" String="u?'''"                insensitive="true" context="Triple A-string" beginRegion="Triple A-region"/>-				<RegExpr attribute="String" String="u?&quot;&quot;&quot;" insensitive="true" context="Triple Q-string" beginRegion="Triple Q-region"/>-				<RegExpr attribute="String" String="u?'"                  insensitive="true" context="Single A-string"/>-				<RegExpr attribute="String" String="u?&quot;"             insensitive="true" context="Single Q-string"/>+				<RegExpr attribute="Raw String" String="u?r'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>+				<RegExpr attribute="Raw String" String="u?r&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>+				<RegExpr attribute="Raw String" String="u?r'"                  insensitive="true" context="#pop!Raw A-string"/>+				<RegExpr attribute="Raw String" String="u?r&quot;"             insensitive="true" context="#pop!Raw Q-string"/> -				<RegExpr attribute="Raw String" String="(?:u?r|ru)'''"                insensitive="true" context="Raw Triple A-string" beginRegion="Triple A-region"/>-				<RegExpr attribute="Raw String" String="(?:u?r|ru)&quot;&quot;&quot;" insensitive="true" context="Raw Triple Q-string" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Raw String" String="(?:u?r|ru)'"                  insensitive="true" context="Raw A-string"/>-				<RegExpr attribute="Raw String" String="(?:u?r|ru)&quot;"             insensitive="true" context="Raw Q-string"/>+				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="#pop!Single A-F-String"/>+				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="#pop!Single Q-F-String"/> -				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="Triple A-F-String" beginRegion="Triple A-region"/>-				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="Triple Q-F-String" beginRegion="Triple Q-region"/>-				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="Single A-F-String"/>-				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="Single Q-F-String"/>+				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>+				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>+				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'"                  insensitive="true" context="#pop!Raw A-F-String"/>+				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;"             insensitive="true" context="#pop!Raw Q-F-String"/> -				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'''"                insensitive="true" context="Raw Triple A-F-String" beginRegion="Triple A-region"/>-				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;&quot;&quot;" insensitive="true" context="Raw Triple Q-F-String" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'"                  insensitive="true" context="Raw A-F-String"/>-				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;"             insensitive="true" context="Raw Q-F-String"/>+				<StringDetect attribute="B-String" String="b'''"                insensitive="true" context="#pop!Triple A-B-String" beginRegion="Triple A-region"/>+				<StringDetect attribute="B-String" String="b&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-B-String" beginRegion="Triple Q-region"/>+				<StringDetect attribute="B-String" String="b'"                  insensitive="true" context="#pop!Single A-B-String"/>+				<StringDetect attribute="B-String" String="b&quot;"             insensitive="true" context="#pop!Single Q-B-String"/>++				<RegExpr attribute="Raw B-String" String="(?:br|rb)'''"                insensitive="true" context="#pop!Raw Triple A-B-String" beginRegion="Triple A-region"/>+				<RegExpr attribute="Raw B-String" String="(?:br|rb)&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-B-String" beginRegion="Triple Q-region"/>+				<RegExpr attribute="Raw B-String" String="(?:br|rb)'"                  insensitive="true" context="#pop!Raw A-B-String"/>+				<RegExpr attribute="Raw B-String" String="(?:br|rb)&quot;"             insensitive="true" context="#pop!Raw Q-B-String"/> 			</context> +			<!-- https://docs.python.org/2/reference/lexical_analysis.html#string-literals -->+			<!-- https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals --> 			<context name="CommentVariants" attribute="Normal Text" lineEndContext="#stay">-				<DetectSpaces/>--				<RegExpr attribute="Comment" String="u?'''"                insensitive="true" firstNonSpace="true" context="Triple A-comment" beginRegion="Triple A-region"/>-				<RegExpr attribute="Comment" String="u?&quot;&quot;&quot;" insensitive="true" firstNonSpace="true" context="Triple Q-comment" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Comment" String="u?'"                  insensitive="true" firstNonSpace="true" context="Single A-comment"/>-				<RegExpr attribute="Comment" String="u?&quot;"             insensitive="true" firstNonSpace="true" context="Single Q-comment"/>--				<RegExpr attribute="Comment" String="(?:u?r|ru)'''"                insensitive="true" firstNonSpace="true" context="Triple A-comment" beginRegion="Triple A-region"/>-				<RegExpr attribute="Comment" String="(?:u?r|ru)&quot;&quot;&quot;" insensitive="true" firstNonSpace="true" context="Triple Q-comment" beginRegion="Triple Q-region"/>-				<RegExpr attribute="Comment" String="(?:u?r|ru)'"                  insensitive="true" firstNonSpace="true" context="Single A-comment"/>-				<RegExpr attribute="Comment" String="(?:u?r|ru)&quot;"             insensitive="true" firstNonSpace="true" context="Single Q-comment"/>+				<!-- fast path -->+				<RegExpr String="(?:u|r|ur)?['&quot;]" insensitive="true" firstNonSpace="true" context="AssumeCommentVariants" lookAhead="1"/> 			</context>+			<context name="AssumeCommentVariants" attribute="Normal Text" lineEndContext="#stay">+				<RegExpr attribute="Comment" String="(?:u?r?)'''"                insensitive="true" context="#pop!Triple A-comment" beginRegion="Triple A-region"/>+				<RegExpr attribute="Comment" String="(?:u?r?)&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-comment" beginRegion="Triple Q-region"/>+				<RegExpr attribute="Comment" String="(?:u?r?)'"                  insensitive="true" context="#pop!Single A-comment"/>+				<RegExpr attribute="Comment" String="(?:u?r?)&quot;"             insensitive="true" context="#pop!Single Q-comment"/>+			</context>  			<context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true"> 				<DetectSpaces/>@@ -477,30 +527,39 @@ 			<context name="Hash comment" attribute="Comment" lineEndContext="#pop"> 				<DetectSpaces /> 				<IncludeRules context="##Comments" />+				<DetectIdentifier/> 			</context>  			<context name="Triple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">-				<IncludeRules context="stringescape"/>+				<DetectSpaces/> 				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Triple A-region"/> 				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/> 			</context>  			<context name="Triple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">-				<IncludeRules context="stringescape"/>+				<DetectSpaces/> 				<StringDetect attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/> 				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/> 			</context>  			<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">-				<IncludeRules context="stringescape"/>+				<DetectSpaces/> 				<DetectChar attribute="Comment" char="'" context="#pop"/> 				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/> 			</context>  			<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">-				<IncludeRules context="stringescape"/>+				<DetectSpaces/> 				<DetectChar attribute="Comment" char="&quot;" context="#pop"/> 				<IncludeRules context="##Comments" />+				<DetectIdentifier/>+				<IncludeRules context="stringescape"/> 			</context>  			<!-- Strings -->@@ -517,17 +576,28 @@ 				<!-- As this highlighting style is for both, Python 2 and 3, 				we do not know if a normal string is “unicode” or not. So we 				-->-				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8}|\\N\{[a-zA-Z0-9\- ]+\}" context="#stay"/>+				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}|\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8}|\\N\{[a-zA-Z0-9\- ]+\}|\\$" context="#stay"/> 			</context> +			<!-- escape characters -->+			<context name="bytesescape" attribute="String Char" lineEndContext="#stay">+				<!-- As this highlighting style is for both, Python 2 and 3,+				we do not know if a normal string is “unicode” or not. So we+				-->+				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]|\\[0-7]{1,3}|\\x[0-9A-Fa-f]{2}|\\$" context="#stay"/>+			</context>+ 			<!-- f-literals --> 			<context name="stringinterpolation" attribute="F-String" lineEndContext="#stay"> 				<Detect2Chars attribute="String Char" char="{" char1="{" context="#stay"/> 				<DetectChar attribute="String Substitution" char="{" context="String Interpolation"/>+				<Detect2Chars attribute="String Char" char="}" char1="}" context="#stay"/>+				<DetectChar attribute="Error" char="}" context="#stay"/> 			</context> 			<context name="String Interpolation" attribute="String Substitution" lineEndContext="#stay"> 				<DetectChar attribute="Error" char="\" context="#pop"/>-				<RegExpr attribute="String Substitution" String="(?:![rs])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}" context="#pop"/>+				<!-- format specifiers: [[fill]align][sign][#][0][minimumwidth][.precision][type] -->+				<RegExpr attribute="String Substitution" String="(?:![rsa])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}" context="#pop"/> 				<IncludeRules context="Normal"/> <!-- TODO: create expression context instead --> 			</context> @@ -542,107 +612,191 @@ 			Adding byte literals wouldn’t make the current 2⁴ into 2⁵ contexts, as there are no byte f-literals 			--> - 			<!-- Triple-quoted A-strings --> 			<context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringformat"/> 				<StringDetect attribute="String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 			</context>  			<context name="Raw Triple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<HlCStringChar attribute="Raw String" context="#stay"/>+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="'"/> 				<IncludeRules context="stringformat"/> 				<StringDetect attribute="Raw String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 			</context>  			<context name="Triple A-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringinterpolation"/> 				<StringDetect attribute="F-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 			</context>  			<context name="Raw Triple A-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<HlCStringChar attribute="Raw F-String" context="#stay"/>+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/> 				<IncludeRules context="stringinterpolation"/> 				<StringDetect attribute="Raw F-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/> 			</context> +			<context name="Triple A-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|'(?!''))++"/>+				<IncludeRules context="bytesescape"/>+				<StringDetect attribute="B-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw Triple A-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?|'(?!''))++"/>+				<StringDetect attribute="Raw B-String" String="'''" context="#pop!#CheckForString" endRegion="Triple A-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>+ 			<!-- Triple-quoted Q-strings --> 			<context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringformat"/> 				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 			</context>  			<context name="Raw Triple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<HlCStringChar attribute="Raw String" context="#stay"/>+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/> 				<IncludeRules context="stringformat"/> 				<StringDetect attribute="Raw String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 			</context>  			<context name="Triple Q-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringinterpolation"/> 				<StringDetect attribute="F-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 			</context>  			<context name="Raw Triple Q-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">-				<HlCStringChar attribute="Raw F-String" context="#stay"/>+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/> 				<IncludeRules context="stringinterpolation"/> 				<StringDetect attribute="Raw F-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/> 			</context> +			<context name="Triple Q-B-String" attribute="B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|&quot;(?!&quot;&quot;))++"/>+				<IncludeRules context="bytesescape"/>+				<StringDetect attribute="B-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>+				<RegExpr attribute="Error" String="."/>+			</context> +			<context name="Raw Triple Q-B-String" attribute="Raw B-String" lineEndContext="#stay" noIndentationBasedFolding="true">+				<RegExpr attribute="Raw B-String" String="([\x20\x21\x23-\x5B\x5D-\x7E]++|\\.?|&quot;(?!&quot;&quot;))++"/>+				<StringDetect attribute="Raw B-String" String="&quot;&quot;&quot;" context="#pop!#CheckForString" endRegion="Triple Q-region"/>+				<RegExpr attribute="Error" String="."/>+			</context>++ 			<!-- Single-quoted A-strings --> 			<context name="Single A-string" attribute="String" lineEndContext="#stay">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringformat"/> 				<DetectChar attribute="String" char="'" context="#pop!#CheckForString"/> 			</context>  			<context name="Raw A-string" attribute="Raw String" lineEndContext="#stay">-				<HlCStringChar attribute="Raw String" context="#stay"/>+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="'"/> 				<IncludeRules context="stringformat"/> 				<DetectChar attribute="Raw String" char="'" context="#pop!#CheckForString"/> 			</context>  			<context name="Single A-F-String" attribute="F-String" lineEndContext="#stay">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringinterpolation"/> 				<DetectChar attribute="F-String" char="'" context="#pop!#CheckForString"/> 			</context>  			<context name="Raw A-F-String" attribute="Raw F-String" lineEndContext="#stay">-				<HlCStringChar attribute="Raw F-String" context="#stay"/>+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="'"/> 				<IncludeRules context="stringinterpolation"/> 				<DetectChar attribute="Raw F-String" char="'" context="#pop!#CheckForString"/> 			</context> +			<context name="Single A-B-String" attribute="B-String" lineEndContext="#stay">+				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2}))++"/>+				<IncludeRules context="bytesescape"/>+				<DetectChar attribute="B-String" char="'" context="#pop!#CheckForString"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw A-B-String" attribute="Raw B-String" lineEndContext="#stay">+				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?)++"/>+				<DetectChar attribute="Raw B-String" char="'" context="#pop!#CheckForString"/>+				<RegExpr attribute="Error" String="."/>+			</context>+ 			<!-- Single-quoted Q-strings --> 			<context name="Single Q-string" attribute="String" lineEndContext="#stay">+				<DetectSpaces attribute="String"/>+				<DetectIdentifier attribute="String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringformat"/> 				<DetectChar attribute="String" char="&quot;" context="#pop!#CheckForString"/> 			</context>  			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#stay">-				<HlCStringChar attribute="Raw String" context="#stay"/>+				<DetectSpaces attribute="Raw String"/>+				<DetectIdentifier attribute="Raw String"/>+				<Detect2Chars attribute="Raw String" char="\" char1="&quot;"/> 				<IncludeRules context="stringformat"/> 				<DetectChar attribute="Raw String" char="&quot;" context="#pop!#CheckForString"/> 			</context>  			<context name="Single Q-F-String" attribute="F-String" lineEndContext="#stay">+				<DetectSpaces attribute="F-String"/>+				<DetectIdentifier attribute="F-String"/> 				<IncludeRules context="stringescape"/> 				<IncludeRules context="stringinterpolation"/> 				<DetectChar attribute="F-String" char="&quot;" context="#pop!#CheckForString"/> 			</context>  			<context name="Raw Q-F-String" attribute="Raw F-String" lineEndContext="#stay">-				<HlCStringChar attribute="Raw F-String" context="#stay"/>+				<DetectSpaces attribute="Raw F-String"/>+				<DetectIdentifier attribute="Raw F-String"/>+				<Detect2Chars attribute="Raw F-String" char="\" char1="&quot;"/> 				<IncludeRules context="stringinterpolation"/> 				<DetectChar attribute="Raw F-String" char="&quot;" context="#pop!#CheckForString"/> 			</context>++			<context name="Single Q-B-String" attribute="B-String" lineEndContext="#stay">+				<RegExpr attribute="B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\(?=[^\\'&quot;abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2}))++"/>+				<IncludeRules context="bytesescape"/>+				<DetectChar attribute="B-String" char="&quot;" context="#pop!#CheckForString"/>+				<RegExpr attribute="Error" String="."/>+			</context>++			<context name="Raw Q-B-String" attribute="Raw B-String" lineEndContext="#stay">+				<RegExpr attribute="Raw B-String" String="([\x20-\x26\x28-\x5B\x5D-\x7E]++|\\.?)++"/>+				<DetectChar attribute="Raw B-String" char="&quot;" context="#pop!#CheckForString"/>+				<RegExpr attribute="Error" String="."/>+			</context>+ 		</contexts>  		<itemDatas>@@ -668,6 +822,8 @@ 			<itemData name="Raw String" defStyleNum="dsVerbatimString"/> 			<itemData name="F-String" defStyleNum="dsSpecialString"/> 			<itemData name="Raw F-String" defStyleNum="dsVerbatimString"/>+			<itemData name="B-String" defStyleNum="dsString" spellChecking="false"/>+			<itemData name="Raw B-String" defStyleNum="dsVerbatimString" spellChecking="false"/> 			<itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/> 			<itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/> 			<itemData name="Decorator" defStyleNum="dsAttribute" spellChecking="false"/>
xml/rhtml.xml view
@@ -44,7 +44,7 @@ --> 	 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->-<language name="Ruby/Rails/RHTML" version="13" kateversion="5.63" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">+<language name="Ruby/Rails/RHTML" version="14" kateversion="5.63" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+"> 	 	<highlighting> 	@@ -359,8 +359,7 @@ 			</context> 			 			<context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">-				<RegExpr attribute="Attribute" context="#stay" String="&name;" column="0"/>-				<RegExpr attribute="Attribute" context="#stay" String="\s+&name;" />+				<RegExpr attribute="Attribute" context="#stay" String="^&name;|\s+&name;" /> 				<DetectChar attribute="Attribute" context="Value" char="=" /> 			</context> 			@@ -501,8 +500,7 @@ 				<IncludeRules context="find-rubysource" /> 				 				<IncludeRules context="FindEntityRefs" />-				<RegExpr attribute="Value" context="#stay" String="/(?!&gt;)" />-				<RegExpr attribute="Value" context="#stay" String="[^/&gt;&lt;&quot;&apos;\s]" />+				<RegExpr attribute="Value" context="#stay" String="/(?!&gt;)|[^/&gt;&lt;&quot;&apos;\s]" /> 			</context> 			 			<context name="Value DQ" attribute="Value" lineEndContext="#stay">@@ -544,10 +542,10 @@ 				<LineContinue attribute="Ruby Normal Text" context="Line Continue"/>  				<!-- __END__ token on own line. -->-				<RegExpr attribute="Keyword" String="__END__$" context="DATA" column="0"/>+				<RegExpr attribute="Keyword" String="^__END__$" context="DATA" column="0"/> 				 				<!-- "shebang" line -->-				<StringDetect attribute="Keyword" String="#!/" context="ShebangLine" column="0"/>+				<StringDetect attribute="Keyword" String="^#!/" context="ShebangLine" column="0"/> 				 				<!-- "def" - "end" blocks --> 				<!-- check for statement modifiers with regexes -->@@ -619,11 +617,8 @@ 				<DetectChar attribute="Operator" char="." context="#stay"/> 				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/> 				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>-				<RegExpr attribute="Operator" String="\s[\?\:\%/]\s" context="#stay"/>-				<RegExpr attribute="Operator" String="[|&amp;&lt;&gt;\^\+*~\-=]+" context="#stay"/>-				<!-- regexp hack -->-				<RegExpr attribute="Operator" String="\s!" context="#stay"/>-				<RegExpr attribute="Operator" String="/=\s" context="#stay" insensitive="0"/>+				<!-- \s! is regexp hack -->+				<RegExpr attribute="Operator" String="\s[\?\:\%/]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\s!|/=\s" context="#stay"/> 				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/> 				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/> 				@@ -635,8 +630,8 @@ 				 				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/> 				-				<RegExpr attribute="Comment" String="#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>-				<RegExpr attribute="Comment" String="#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>+				<RegExpr attribute="Comment" String="^#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>+				<RegExpr attribute="Comment" String="^#\s*END.*$"  context="#stay" endRegion="marker" column="0"/> 				<DetectChar attribute="Comment" char="#"  context="Comment Line" firstNonSpace="true"/> 				<RegExpr attribute="Comment" String="\s#"  context="General Comment"/> 				@@ -772,12 +767,12 @@ 			 			<context name="normal_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true"> 				<!--				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>-->-				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/> 				<IncludeRules context="heredoc_rules" /> 			</context> 			<context name="apostrophed_normal_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true"> 				<!--				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>-->-				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/> 			</context> 			 			<!-- rules for heredoc types -->
xml/roff.xml view
@@ -15,7 +15,7 @@   <!ENTITY escape2 "\\[gkmMVYz]&roffid;">   <!ENTITY escape3 "\\O([0-4]|\[5[lrci][^]]\])"> ]>-<language name="Roff" section="Markup" version="7" kateversion="5.0" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">+<language name="Roff" section="Markup" version="8" kateversion="5.0" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">    <highlighting> @@ -63,7 +63,7 @@         <RegExpr attribute="Escape" context="Argument" String="\\R&argsep1;"/> <!-- TODO - &roffid; (register), measurement -->         <RegExpr attribute="Glyph" context="GlyphArgument" String="\\C&argsep1;"/>         <RegExpr attribute="Glyph" context="#pop" String="\\N&argsep2;[0-9]+\1|\\&roffid;"/>-        <RegExpr attribute="Escape" context="#pop" String="\\$"/>+        <LineContinue attribute="Escape" context="#pop" char="\"/>         <DetectChar attribute="Error" context="#pop" char="\"/>       </context> 
xml/rust.xml view
@@ -40,7 +40,7 @@ 	<!ENTITY scope2 "::(?=[^\s\:])"> <!-- Points after keyword or group { } -->  ]>-<language name="Rust" version="11" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" priority="15" license="MIT" author="The Rust Project Developers">+<language name="Rust" version="13" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" priority="15" license="MIT" author="The Rust Project Developers"> <highlighting> 	<list name="fn"> 		<item>fn</item>@@ -56,25 +56,18 @@ 		<item>await</item> 		<item>become</item> 		<item>box</item>-		<item>break</item> 		<item>const</item>-		<item>continue</item> 		<item>crate</item> 		<item>default</item> 		<item>do</item> 		<item>dyn</item>-		<item>else</item> 		<item>enum</item> 		<item>extern</item> 		<item>final</item>-		<item>for</item>-		<item>if</item> 		<item>impl</item> 		<item>in</item> 		<item>let</item>-		<item>loop</item> 		<item>macro</item>-		<item>match</item> 		<item>mod</item> 		<item>move</item> 		<item>mut</item>@@ -85,7 +78,6 @@ 		<item>pub</item> 		<item>pure</item> 		<item>ref</item>-		<item>return</item> 		<item>sizeof</item> 		<item>static</item> 		<item>struct</item>@@ -99,11 +91,21 @@ 		<item>use</item> 		<item>virtual</item> 		<item>where</item>-		<item>while</item> 		<item>yield</item> 		<!-- Also (these keywords are in other lists): 		     type, Self, self. --> 	</list>+	<list name="controlflow">+		<item>break</item>+		<item>continue</item>+		<item>else</item>+		<item>for</item>+		<item>if</item>+		<item>loop</item>+		<item>match</item>+		<item>return</item>+		<item>while</item>+	</list> 	<list name="traits"> 		<!-- Core Traits --> 		<item>Add</item>@@ -372,6 +374,7 @@ 			<keyword String="type" attribute="Keyword" context="Type"/> 			<keyword String="self" attribute="Self" context="#stay"/> 			<keyword String="keywords" attribute="Keyword" context="#stay"/>+			<keyword String="controlflow" attribute="Control Flow" context="#stay"/> 			<keyword String="types" attribute="Type" context="#stay"/> 			<keyword String="ctypes" attribute="CType" context="#stay"/> 			<keyword String="constants" attribute="Constant" context="#stay"/>@@ -462,27 +465,28 @@ 		</context> 	</contexts> 	<itemDatas>-		<itemData name="Normal Text"  defStyleNum="dsNormal"/>+		<itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="0"/> 		<itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="0"/>+		<itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="0"/> 		<itemData name="Self"         defStyleNum="dsKeyword" spellChecking="0"/> 		<itemData name="Type"         defStyleNum="dsDataType" spellChecking="0"/> 		<itemData name="Trait"        defStyleNum="dsBuiltIn" spellChecking="0"/> 		<itemData name="CType"        defStyleNum="dsDataType" spellChecking="0"/> 		<itemData name="Constant"     defStyleNum="dsConstant" spellChecking="0"/> 		<itemData name="CConstant"    defStyleNum="dsConstant" spellChecking="0"/>-		<itemData name="Definition"   defStyleNum="dsNormal"/>+		<itemData name="Definition"   defStyleNum="dsNormal" spellChecking="0"/> 		<itemData name="Comment"      defStyleNum="dsComment"/>-		<itemData name="Scope"        defStyleNum="dsPreprocessor"/>-		<itemData name="Number"       defStyleNum="dsDecVal"/>+		<itemData name="Scope"        defStyleNum="dsPreprocessor" spellChecking="0"/>+		<itemData name="Number"       defStyleNum="dsDecVal" spellChecking="0"/> 		<itemData name="String"       defStyleNum="dsString"/>-		<itemData name="CharEscape"   defStyleNum="dsSpecialChar"/>-		<itemData name="Character"    defStyleNum="dsChar"/>-		<itemData name="Macro"        defStyleNum="dsPreprocessor"/>-		<itemData name="Symbol"       defStyleNum="dsOperator"/>-		<itemData name="Attribute"    defStyleNum="dsAttribute"/>+		<itemData name="CharEscape"   defStyleNum="dsSpecialChar" spellChecking="0"/>+		<itemData name="Character"    defStyleNum="dsChar" spellChecking="0"/>+		<itemData name="Macro"        defStyleNum="dsPreprocessor" spellChecking="0"/>+		<itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="0"/>+		<itemData name="Attribute"    defStyleNum="dsAttribute" spellChecking="0"/> 		<itemData name="Lifetime"     defStyleNum="dsOthers" spellChecking="0"/> 		<itemData name="Raw Identifier" defStyleNum="dsAnnotation" spellChecking="0"/>-		<itemData name="Error"        defStyleNum="dsError"/>+		<itemData name="Error"        defStyleNum="dsError" spellChecking="0"/> 	</itemDatas> </highlighting> <general>
xml/sed.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="sed" section="Scripts" version="7" kateversion="5.0" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL">+<language name="sed" section="Scripts" version="8" kateversion="5.0" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL">         <highlighting>                 <contexts>                         <context name="BeginningOfLine" attribute="Normal" lineEndContext="#stay">@@ -29,7 +29,6 @@                         </context>                          <context name="AfterFirstAddress2" attribute="Normal" lineEndContext="BeginningOfLine">-                                <DetectSpaces/>                                 <DetectChar char="," attribute="Normal" context="SecondAddress"/>                                 <DetectChar char="~" attribute="Normal" context="Step"/>                                 <IncludeRules                           context="Command"/>
xml/swift.xml view
@@ -138,7 +138,6 @@                 <DetectChar attribute="Symbol" context="Dot" char="." lookAhead="1"/>                 <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>                 <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>-                <DetectChar attribute="Annotation" context="Annotation" char="@" />                  <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>                 <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>@@ -158,6 +157,8 @@                 <WordDetect attribute="Keyword" context="Imports" String="@testable"/>                 <WordDetect attribute="Keyword" context="Imports" String="import"/> +                <DetectChar attribute="Annotation" context="Annotation" char="@" />+                 <WordDetect attribute="Keyword" context="TypeDeclaration" String="struct"/>                 <WordDetect attribute="Keyword" context="TypeDeclaration" String="class"/>                 <WordDetect attribute="Keyword" context="TypeDeclaration" String="protocol"/>@@ -252,17 +253,31 @@              <context name="TypeDeclaration" lineEndContext="#stay" attribute="Normal Text">                 <keyword attribute="Keyword" context="#stay" String="keywords"/>-                <RegExpr attribute="Type" context="#stay" String="([A-Z])+?[A-Za-z0-9]+" />+                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />                 <DetectChar attribute="Symbol" context="Parameters" char="(" />+                <DetectChar attribute="Symbol" context="SuperTypes" char=":" />                 <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />             </context> +            <context name="SuperTypes" lineEndContext="#stay" attribute="Normal Text">+                <keyword attribute="Keyword" context="#pop#pop" String="keywords" lookAhead="true" />++                <DetectChar attribute="Symbol" context="#stay" char="," />+                <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />+                <DetectChar attribute="Symbol" context="Parameters" char="(" />+                <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />++                <DetectIdentifier attribute="Data Type" context="#stay"/>+            </context>+             <context name="FunctionDeclaration" lineEndContext="#stay" attribute="Normal Text">-                <keyword attribute="Keyword" context="#stay" String="func"/>+                <keyword attribute="Keyword" context="#stay" String="keywords"/>                 <DetectChar attribute="Symbol" context="#stay" char="." />                 <DetectChar attribute="Symbol" context="Parameters" char="(" />                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />+                <DetectChar attribute="Symbol" context="TypeName" char=":" />+                 <AnyChar attribute="Symbol" context="#pop" String="{=" lookAhead="true" />                  <DetectIdentifier attribute="Function" context="#stay"/>
xml/xml.xml view
@@ -6,7 +6,7 @@ 	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*"> 	<!ENTITY entref  "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);"> ]>-<language name="XML" version="12" kateversion="5.0" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">+<language name="XML" version="14" kateversion="5.0" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">  <highlighting> <contexts>@@ -16,13 +16,13 @@    <context name="FindXML" attribute="Normal Text" lineEndContext="#stay">     <DetectSpaces />+    <DetectIdentifier />+    <RegExpr attribute="Element Symbols" context="ElementTagName" String="&lt;(?=(&name;))" beginRegion="element" />     <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />     <StringDetect attribute="CDATA" context="CDATAStart" String="&lt;![CDATA[" lookAhead="true" />-    <RegExpr attribute="Doctype Symbols" context="DoctypeTagName" String="&lt;!(?=DOCTYPE\s+)" beginRegion="doctype" />+    <RegExpr attribute="Doctype Symbols" context="DoctypeTagName" String="&lt;!(?=DOCTYPE(\s|$))" beginRegion="doctype" />     <IncludeRules context="FindProcessingInstruction" />-    <RegExpr attribute="Element Symbols" context="ElementTagName" String="&lt;(?=(&name;))" beginRegion="element" />     <IncludeRules context="FindEntityRefs" />-    <DetectIdentifier />   </context>    <context name="FindEntityRefs" attribute="Other Text" lineEndContext="#stay">@@ -70,13 +70,13 @@   <context name="PI-XML" attribute="Other Text" lineEndContext="#stay">     <IncludeRules context="PI" />     <RegExpr attribute="Attribute" context="#stay" String="(?:^|\s+)&name;" />-    <DetectChar attribute="Attribute" context="Value" char="=" />+    <DetectChar attribute="Attribute Separator" context="Value" char="=" />   </context>    <context name="DoctypeTagName" attribute="Other Text" lineEndContext="#pop">     <StringDetect attribute="Doctype" context="#pop!DoctypeVariableName" String="DOCTYPE" />   </context>-  <context name="DoctypeVariableName" attribute="Other Text" lineEndContext="#pop!Doctype" fallthrough="true" fallthroughContext="#pop!Doctype">+  <context name="DoctypeVariableName" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Doctype">     <DetectSpaces />     <RegExpr attribute="Doctype Name" context="#pop!Doctype" String="&name;" />   </context>@@ -116,7 +116,7 @@     <IncludeRules context="FindPEntityRefs" />   </context> -  <context name="ElementTagName" attribute="Other Text" lineEndContext="#pop!Element" fallthrough="true" fallthroughContext="#pop!Element">+  <context name="ElementTagName" attribute="Other Text" lineEndContext="#pop!Element">     <StringDetect attribute="Element" context="#pop!Element" String="%1" dynamic="true" />   </context>   <context name="Element" attribute="Other Text" lineEndContext="#stay">@@ -131,7 +131,7 @@     <IncludeRules context="FindXML" />   </context> -  <context name="El End TagName" attribute="Other Text" lineEndContext="#pop!El End" fallthrough="true" fallthroughContext="#pop!El End">+  <context name="El End TagName" attribute="Other Text" lineEndContext="#pop!El End">     <StringDetect attribute="Element" context="#pop!El End" String="%1" dynamic="true" />   </context>   <context name="El End" attribute="Other Text" lineEndContext="#stay">@@ -140,7 +140,7 @@   </context>    <context name="Attribute" attribute="Other Text" lineEndContext="#stay">-    <DetectChar attribute="Attribute" context="#pop!Value" char="=" />+    <DetectChar attribute="Attribute Separator" context="#pop!Value" char="=" />     <RegExpr attribute="Error" context="#stay" String="\S" />   </context> @@ -175,6 +175,7 @@   <itemData name="Element"         defStyleNum="dsKeyword" spellChecking="false" />   <itemData name="Element Symbols" defStyleNum="dsNormal" spellChecking="false" />   <itemData name="Attribute"       defStyleNum="dsOthers" spellChecking="false" />+  <itemData name="Attribute Separator" defStyleNum="dsOthers" spellChecking="false" />   <itemData name="Value"           defStyleNum="dsString" spellChecking="false" />   <itemData name="EntityRef"       defStyleNum="dsDecVal" spellChecking="false" />   <itemData name="PEntityRef"      defStyleNum="dsDecVal" spellChecking="false" />
xml/xslt.xml view
@@ -1,7 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [-  <!ENTITY qname    "[A-Za-z_:][\w.:_-]*">+  <!ENTITY qname   "[A-Za-z_:][\w.:_-]*">+	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*">   <!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&qname;);">   <!ENTITY axisname  "ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self"> ]>@@ -52,7 +53,7 @@  --> -<language version="9" kateversion="5.0" name="xslt" section="Markup" extensions="*.xsl;*.xslt" license="LGPL" author="Peter Lammich (views@gmx.de)">+<language version="10" kateversion="5.0" name="xslt" section="Markup" extensions="*.xsl;*.xslt" license="LGPL" author="Peter Lammich (views@gmx.de)">   <highlighting>     <list name="keytags">       <item>xsl:value-of</item>@@ -245,167 +246,249 @@       <item>document-uri</item>       <item>adjust-time-to-timezone</item>     </list>++    <list name="xsl-attributes">+      <item>select</item>+      <item>test</item>+      <item>match</item>+    </list>          <contexts> -       <context name="normalText" attribute="Normal Text" lineEndContext="#stay">-         <StringDetect attribute="Comment" context="comment" String="&lt;!--" beginRegion="comment"/>-         -         <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />-         <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />-         <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />+      <context name="normalText" attribute="Normal Text" lineEndContext="#stay">+        <DetectSpaces />+        <DetectIdentifier /> -         <DetectChar attribute="Tag" context="tagname" char="&lt;" />-         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />-       </context>+        <Detect2Chars context="specialtag" char="&lt;" char1="!" lookAhead="1"/>+        <Detect2Chars context="pitag" char="&lt;" char1="?" lookAhead="1"/>+        <Detect2Chars attribute="Tag Symbols" context="ElementEndTagName" char="&lt;" char1="/" endRegion="element" />+        <DetectChar attribute="Tag Symbols" context="ElementTagName" char="&lt;" beginRegion="element" /> +        <IncludeRules context="FindEntityRefs" />+      </context> -       -       <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">-         <DetectSpaces />-         <DetectIdentifier />-         <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />-         <StringDetect attribute="Entity Reference" context="#stay" String="]]&amp;gt;" />-       </context>-       -       <context name="PI" attribute="Normal Text" lineEndContext="#stay">-         <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />-       </context>-       -       <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">-         <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />-         <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />-       </context>-       -       <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">-         <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />-         <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />-         <StringDetect attribute="Comment" context="comment" String="&lt;!--" beginRegion="comment" />-         <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />-         <IncludeRules context="FindPEntityRefs" />-       </context>-       -       <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">-         <DetectChar attribute="Doctype" context="#pop" char="&gt;" />-         <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />-         <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />-       </context>-       -       <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">-         <DetectChar attribute="Value" context="#pop" char="&quot;" />-         <IncludeRules context="FindPEntityRefs" />-       </context>-       -       <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">-         <DetectChar attribute="Value" context="#pop" char="&apos;" />-         <IncludeRules context="FindPEntityRefs" />-       </context>-       -       <context name="detectEntRef" attribute="Normal Text" lineEndContext="#stay">-         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />-       </context>-       <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">-         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />-         <RegExpr attribute="PEntity Reference" context="#stay" String="%&qname;;" />-         <AnyChar attribute="Invalid" context="#stay" String="&amp;%" />-       </context>-       -       <context name="tagname" attribute="Tag" lineEndContext="#stay">-         <keyword attribute="XSLT Tag" context="xattributes" String="keytags" />-         <keyword attribute="XSLT 2.0 Tag" context="xattributes" String="keytags_2.0" />-         <DetectSpaces attribute="Attribute" context="attributes" />-         <DetectChar attribute="Tag" context="#pop" char="&gt;" />-       </context>-       -       <context name="attributes" attribute="Attribute" lineEndContext="#stay">-         <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />-         <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />-         <RegExpr attribute="Normal Text" context="attrValue" String="\s*=\s*" />-       </context>+      <context name="pitag" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="PI Symbols" context="#pop!PI TagName" String="&lt;\?(?=([\w:_-]*))" beginRegion="pi" />+        <DetectChar attribute="Invalid" context="#pop" char="&lt;"/>+      </context> -       <context name="attrValue" attribute="Invalid" lineEndContext="#stay">-         <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />-         <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />-         <DetectChar attribute="Attribute Value" context="string" char="&quot;" />-         <DetectChar attribute="Attribute Value" context="sqstring" char="'" />-       </context>+      <context name="specialtag" attribute="Normal Text" lineEndContext="#stay">+        <StringDetect attribute="Comment" context="#pop!comment" String="&lt;!--" beginRegion="comment"/>+        <StringDetect attribute="CDATA" context="#pop!CDATAStart" String="&lt;![CDATA[" lookAhead="1" />+        <RegExpr attribute="Doctype Symbols" context="#pop!DoctypeTagName" String="&lt;!(?=DOCTYPE(\s|$))" beginRegion="doctype" />+        <DetectChar attribute="Invalid" context="#pop" char="&lt;"/>+      </context> -       <context name="xattributes" attribute="Attribute" lineEndContext="#stay">-          <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />-          <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />-          <RegExpr attribute="Attribute" context="xattrValue" String="select\s*=\s*|test\s*=\s*|match\s*=\s*" />-          <RegExpr attribute="Attribute" context="attrValue" String="\s*=\s*" />-       </context>+      <context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />+        <AnyChar attribute="Invalid" context="#stay" String="&amp;&lt;" />+      </context> -       <context name="xattrValue" attribute="Invalid" lineEndContext="#stay">-         <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />-         <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />-         <DetectChar attribute="XPath" context="xpath" char="&quot;" />-         <DetectChar attribute="XPath" context="sqxpath" char="'" />-       </context>-       -       -       <context name="string" attribute="Attribute Value" lineEndContext="#stay">-         <DetectChar attribute="XPath" context="xpath" char="{" />-         <DetectChar attribute="Attribute Value" context="#pop#pop" char="&quot;" />-         <IncludeRules context="detectEntRef" />-       </context>+      <context name="CDATAStart" attribute="Normal Text" lineEndContext="#pop">+        <StringDetect attribute="CDATA Symbols" context="#stay" String="&lt;![" beginRegion="cdata" />+        <StringDetect attribute="CDATA" context="#stay" String="CDATA" />+        <DetectChar attribute="CDATA Symbols" context="#pop!CDATA" char="[" />+      </context>+      <context name="CDATA" attribute="Other Text" lineEndContext="#stay">+        <DetectSpaces />+        <DetectIdentifier />+        <StringDetect attribute="CDATA Symbols" context="#pop" String="]]&gt;" endRegion="cdata" />+        <StringDetect attribute="Entity Reference" context="#stay" String="]]&amp;gt;" />+      </context> -       <context name="sqstring" attribute="Attribute Value" lineEndContext="#stay">-         <DetectChar attribute="XPath" context="sqxpath" char="{" />-         <DetectChar attribute="Attribute Value" context="#pop#pop" char="'" />-         <IncludeRules context="detectEntRef" />-       </context>-       -       <context name="comment" attribute="Comment" lineEndContext="#stay">-         <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />-         <RegExpr attribute="Invalid" context="#stay" String="-(-(?!-&gt;))+" />-         <IncludeRules context="##Comments" />-       </context>+      <context name="PI TagName" attribute="Other Text" lineEndContext="#pop!PI" fallthrough="true" fallthroughContext="#pop!PI">+        <RegExpr attribute="Processing Instruction" context="#pop!PI-XML" String="xml(?=\s|$)" insensitive="true" />+        <StringDetect attribute="Processing Instruction" context="#pop!PI" String="%1" dynamic="true" />+      </context>+      <context name="PI" attribute="Other Text" lineEndContext="#stay">+        <Detect2Chars attribute="PI Symbols" context="#pop" char="?" char1="&gt;" endRegion="pi" />+      </context>+      <context name="PI-XML" attribute="Other Text" lineEndContext="#stay">+        <IncludeRules context="PI" />+        <RegExpr attribute="Attribute" context="#stay" String="(?:^|\s+)&name;" />+        <DetectChar attribute="Attribute Separator" context="SpaceBeforeAttrValue" char="=" />+      </context> -       <context name="xpath" attribute="XPath" lineEndContext="#stay">-         <keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />-         <keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />-         <RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />-         <DetectChar attribute="XPath" context="#pop" char="}" />-         <DetectChar attribute="XPath String" context="sqxpathstring" char="'" />-         <DetectChar attribute="XPath" context="#pop#pop" char="&quot;" />-         <RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />-         <RegExpr attribute="Variable" context="#stay" String="\$&qname;" />-         <RegExpr attribute="XPath" context="#stay" String="&qname;" />-         <DetectChar attribute="Invalid" context="#stay" char="$" />-         <IncludeRules context="detectEntRef" />-       </context>-       -       <context name="sqxpath" attribute="XPath" lineEndContext="#stay">-         <keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />-         <keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />-         <RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />-         <DetectChar attribute="XPath" context="#pop" char="}" />-         <DetectChar attribute="XPath String" context="xpathstring" char="&quot;" />-         <DetectChar attribute="XPath" context="#pop#pop" char="'" />-         <RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />-         <RegExpr attribute="Variable" context="#stay" String="\$&qname;" />-         <RegExpr attribute="XPath" context="#stay" String="&qname;" />-         <DetectChar attribute="Invalid" context="#stay" char="$" />-         <IncludeRules context="detectEntRef" />-       </context>-       -       <context name="sqxpathstring" attribute="XPath String" lineEndContext="#stay">-         <DetectChar attribute="XPath String" context="#pop" char="'" />-         <IncludeRules context="detectEntRef" />-       </context>-       -       <context name="xpathstring" attribute="XPath String" lineEndContext="#stay">-         <DetectChar attribute="XPath String" context="#pop" char="&quot;" />-         <IncludeRules context="detectEntRef" />-       </context>+      <context name="DoctypeTagName" attribute="Other Text" lineEndContext="#pop">+        <StringDetect attribute="Doctype" context="#pop!DoctypeVariableName" String="DOCTYPE" />+      </context>+      <context name="DoctypeVariableName" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Doctype">+        <DetectSpaces />+        <RegExpr attribute="Doctype Name" context="#pop!Doctype" String="&name;" />+      </context>+      <context name="Doctype" attribute="Other Text" lineEndContext="#stay">+        <DetectChar attribute="Doctype Symbols" context="#pop" char="&gt;" endRegion="doctype" />+        <DetectChar attribute="Doctype Symbols" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />+      </context>++      <context name="Doctype Internal Subset" attribute="Other Text" lineEndContext="#stay">+        <DetectChar attribute="Doctype Symbols" context="#pop" char="]" endRegion="int_subset" />+        <RegExpr attribute="Doctype Symbols" context="Doctype Markupdecl TagName" String="&lt;!(?=(ELEMENT|ENTITY|ATTLIST|NOTATION)\b)" />+        <StringDetect attribute="Comment" context="comment" String="&lt;!--" beginRegion="comment" />+        <RegExpr attribute="PI Symbols" context="PI TagName" String="&lt;\?(?=([\w:_-]*))" beginRegion="pi" />+        <IncludeRules context="FindPEntityRefs" />+      </context>++      <context name="Doctype Markupdecl TagName" attribute="Other Text" lineEndContext="#pop">+        <StringDetect attribute="Doctype" context="#pop!Doctype Markupdecl VariableName" String="%1" dynamic="true" />+      </context>+      <context name="Doctype Markupdecl VariableName" attribute="Other Text" lineEndContext="#pop!Doctype Markupdecl" fallthrough="true" fallthroughContext="#pop!Doctype Markupdecl">+        <DetectSpaces />+        <RegExpr attribute="Doctype Name" context="#pop!Doctype Markupdecl" String="&name;" />+      </context>+      <context name="Doctype Markupdecl" attribute="Other Text" lineEndContext="#stay">+        <DetectChar attribute="Doctype Symbols" context="#pop" char="&gt;" />+        <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />+        <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />+      </context>++      <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">+        <DetectChar attribute="Value" context="#pop" char="&quot;" />+        <IncludeRules context="FindPEntityRefs" />+      </context>++      <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">+        <DetectChar attribute="Value" context="#pop" char="&apos;" />+        <IncludeRules context="FindPEntityRefs" />+      </context>++      <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">+        <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />+        <RegExpr attribute="PEntity Reference" context="#stay" String="%&qname;;" />+        <AnyChar attribute="Invalid" context="#stay" String="&amp;%" />+      </context>++      <context name="ElementTagName" attribute="Other Text" lineEndContext="#pop!attributes" fallthrough="true" fallthroughContext="#pop">+        <keyword attribute="XSLT Tag" context="#pop!xattributes" String="keytags" />+        <keyword attribute="XSLT 2.0 Tag" context="#pop!xattributes" String="keytags_2.0" />+        <DetectIdentifier context="#pop!attributes" attribute="Tag" />+      </context>++      <context name="ElementEndTagName" attribute="Other Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <keyword attribute="XSLT Tag" context="#pop!endtag" String="keytags" />+        <keyword attribute="XSLT 2.0 Tag" context="#pop!endtag" String="keytags_2.0" />+        <DetectIdentifier context="#pop!endtag" attribute="Tag" />+      </context>+      <context name="endtag" attribute="Other Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+        <DetectChar attribute="Tag Symbols" context="#pop" char="&gt;" />+        <DetectSpaces/>+      </context>++      <context name="attributes" attribute="Attribute" lineEndContext="#stay">+        <DetectSpaces attribute="Attribute" />+        <Detect2Chars attribute="Tag Symbols" context="#pop" char="/" char1="&gt;" endRegion="element" />+        <DetectChar attribute="Tag Symbols" context="#pop" char="&gt;" />+        <DetectChar attribute="Attribute Separator" context="SpaceBeforeAttrValue" char="=" />+        <DetectIdentifier attribute="Attribute" />+      </context>++      <context name="SpaceBeforeAttrValue" attribute="Attribute" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!attrValue">+        <DetectSpaces attribute="Attribute" />+      </context>+      <context name="attrValue" attribute="Invalid" lineEndContext="#stay">+        <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />+        <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />+        <DetectChar attribute="Attribute Value" context="string" char="&quot;" />+        <DetectChar attribute="Attribute Value" context="sqstring" char="'" />+      </context>++      <context name="xattributes" attribute="Attribute" lineEndContext="#stay">+        <DetectSpaces attribute="Attribute" />+        <Detect2Chars attribute="Tag Symbols" context="#pop#pop" char="/" char1="&gt;" endRegion="element" />+        <DetectChar attribute="Tag Symbols" context="#pop#pop" char="&gt;" />+        <keyword attribute="XSLT XPath Attribute" context="xattributesSep" String="xsl-attributes" />+        <DetectChar attribute="Attribute Separator" context="SpaceBeforeAttrValue" char="=" />+        <DetectIdentifier attribute="Attribute" />+      </context>++      <context name="xattributesSep" attribute="Attribute" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+        <DetectSpaces attribute="Attribute" />+        <DetectChar attribute="Attribute Separator" context="SpaceBeforeXAttrValue" char="=" />+      </context>+      <context name="SpaceBeforeXAttrValue" attribute="Attribute" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!xattrValue">+        <DetectSpaces attribute="Attribute" />+      </context>+      <context name="xattrValue" attribute="Invalid" lineEndContext="#stay">+        <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />+        <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />+        <DetectChar attribute="XPath" context="xpath" char="&quot;" />+        <DetectChar attribute="XPath" context="sqxpath" char="'" />+      </context>+++      <context name="string" attribute="Attribute Value" lineEndContext="#stay">+        <DetectIdentifier />+        <DetectChar attribute="XPath" context="xpath" char="{" />+        <DetectChar attribute="Attribute Value" context="#pop#pop" char="&quot;" />+        <IncludeRules context="FindEntityRefs" />+      </context>++      <context name="sqstring" attribute="Attribute Value" lineEndContext="#stay">+        <DetectIdentifier />+        <DetectChar attribute="XPath" context="sqxpath" char="{" />+        <DetectChar attribute="Attribute Value" context="#pop#pop" char="'" />+        <IncludeRules context="FindEntityRefs" />+      </context>++      <context name="comment" attribute="Comment" lineEndContext="#stay">+        <DetectSpaces />+        <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />+        <RegExpr attribute="Invalid" context="#stay" String="-(-(?!-&gt;))+" />+        <IncludeRules context="##Comments" />+        <DetectIdentifier />+      </context>++      <context name="xpath" attribute="XPath" lineEndContext="#stay">+        <keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />+        <keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />+        <RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />+        <DetectChar attribute="XPath" context="#pop" char="}" />+        <DetectChar attribute="XPath String" context="sqxpathstring" char="'" />+        <DetectChar attribute="XPath" context="#pop#pop" char="&quot;" />+        <RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />+        <RegExpr attribute="Variable" context="#stay" String="\$&qname;" />+        <RegExpr attribute="XPath" context="#stay" String="&qname;" />+        <DetectChar attribute="Invalid" context="#stay" char="$" />+        <DetectIdentifier />+        <IncludeRules context="FindEntityRefs" />+      </context>++      <context name="sqxpath" attribute="XPath" lineEndContext="#stay">+        <keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />+        <keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />+        <RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />+        <DetectChar attribute="XPath" context="#pop" char="}" />+        <DetectChar attribute="XPath String" context="xpathstring" char="&quot;" />+        <DetectChar attribute="XPath" context="#pop#pop" char="'" />+        <RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />+        <RegExpr attribute="Variable" context="#stay" String="\$&qname;" />+        <RegExpr attribute="XPath" context="#stay" String="&qname;" />+        <DetectChar attribute="Invalid" context="#stay" char="$" />+        <DetectIdentifier />+        <IncludeRules context="FindEntityRefs" />+      </context>++      <context name="sqxpathstring" attribute="XPath String" lineEndContext="#stay">+        <DetectChar attribute="XPath String" context="#pop" char="'" />+        <DetectIdentifier />+        <IncludeRules context="FindEntityRefs" />+      </context>++      <context name="xpathstring" attribute="XPath String" lineEndContext="#stay">+        <DetectChar attribute="XPath String" context="#pop" char="&quot;" />+        <DetectIdentifier />+        <IncludeRules context="FindEntityRefs" />+      </context>             </contexts>     <itemDatas>       <itemData name="Normal Text" defStyleNum="dsNormal"/>+      <itemData name="Other Text" defStyleNum="dsNormal" />       <itemData name="Tag" defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="Tag Symbols" defStyleNum="dsKeyword" spellChecking="false" />       <itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false"/>+      <itemData name="XSLT XPath Attribute" defStyleNum="dsOthers" spellChecking="false"/>+      <itemData name="Attribute Separator" defStyleNum="dsOthers" spellChecking="false"/>       <itemData name="Value" defStyleNum="dsAttribute"/>       <itemData name="Invalid" defStyleNum="dsError" spellChecking="false"/>       <itemData name="Attribute Value" defStyleNum="dsString"/>@@ -422,8 +505,12 @@       <itemData name="Entity Reference" defStyleNum="dsDecVal" spellChecking="false"/>        <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" spellChecking="false"/>+      <itemData name="CDATA Symbols"   defStyleNum="dsBaseN"    bold="0" italic="0" spellChecking="false" />       <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false"/>+      <itemData name="PI Symbols" defStyleNum="dsFunction" bold="0" italic="0" spellChecking="false" />       <itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false"/>+      <itemData name="Doctype Name" defStyleNum="dsDataType" bold="0" italic="0" spellChecking="false" />+      <itemData name="Doctype Symbols" defStyleNum="dsDataType" bold="0" italic="0" spellChecking="false" />       <itemData name="PEntity Reference" defStyleNum="dsDecVal" spellChecking="false"/>      </itemDatas>
xml/zsh.xml view
@@ -1,611 +1,2020 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [-        <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">-        <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">-        <!ENTITY word     "[^|&amp;;()&lt;&gt;\s]+">    <!-- see man bash -->-        <!ENTITY eos      "(?=($|\s))">                 <!-- eol or space following -->-        <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->-        <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name -->-]>-<language name="Zsh" version="8" kateversion="5.53" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Kolberg (bulldog98@kubuntu-de.org)" license="LGPL">--<!-- (c) 2011 by Jonathan Kolberg (bulldog98@kubuntu-de.org)-  modified for zsh -->-<!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)-    Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)-    Changes by Sebastian Pipping (webmaster@hartwork.org)-    Released under the LGPL, part of kdelibs/kate -->--  <highlighting>-    <list name="keywords">-      <item>else</item>-      <item>for</item>-      <item>function</item>-      <item>in</item>-      <item>select</item>-      <item>until</item>-      <item>while</item>-      <item>elif</item>-      <item>then</item>-      <item>set</item>-    </list>--<list name="builtins"><!-- see man zshbuiltins -->-	<item>-</item>-	<item>.</item>-	<item>:</item>-	<item>alias</item>-	<item>autoload</item>-	<item>bg</item>-	<item>bindkey</item>-	<item>break</item>-	<item>builtin</item>-	<item>bye</item>-	<item>cap</item>-	<item>cd</item>-	<item>chdir</item>-	<item>clone</item>-	<item>command</item>-	<item>comparguments</item>-	<item>compcall</item>-	<item>compctl</item>-	<item>compdescribe</item>-	<item>compfiles</item>-	<item>compgroups</item>-	<item>compquote</item>-	<item>comptags</item>-	<item>comptry</item>-	<item>compvalues</item>-	<item>continue</item>-	<item>dirs</item>-	<item>disable</item>-	<item>disown</item>-	<item>echo</item>-	<item>echotc</item>-	<item>echoti</item>-	<item>emulate</item>-	<item>enable</item>-	<item>eval</item>-	<item>exec</item>-	<item>exit</item>-	<item>false</item>-	<item>fc</item>-	<item>fg</item>-	<item>functions</item>-	<item>getcap</item>-	<item>getopts</item>-	<item>hash</item>-	<item>history</item>-	<item>jobs</item>-	<item>kill</item>-	<item>let</item>-	<item>limit</item>-	<item>log</item>-	<item>logout</item>-	<item>noglob</item>-	<item>popd</item>-	<item>print</item>-	<item>printf</item>-	<item>pushd</item>-	<item>pushln</item>-	<item>pwd</item>-	<item>r</item>-	<item>rehash</item>-	<item>return</item>-	<item>sched</item>-	<item>set</item>-	<item>setcap</item>-	<item>setopt</item>-	<item>shift</item>-	<item>source</item>-	<item>stat</item>-	<item>suspend</item>-	<item>test</item>-	<item>times</item>-	<item>trap</item>-	<item>true</item>-	<item>ttyctl</item>-	<item>type</item>-	<item>ulimit</item>-	<item>umask</item>-	<item>unalias</item>-	<item>unfunction</item>-	<item>unhash</item>-	<item>unlimit</item>-	<item>unset</item>-	<item>unsetopt</item>-	<item>vared</item>-	<item>wait</item>-	<item>whence</item>-	<item>where</item>-	<item>which</item>-	<item>zcompile</item>-	<item>zformat</item>-	<item>zftp</item>-	<item>zle</item>-	<item>zmodload</item>-	<item>zparseopts</item>-	<item>zprof</item>-	<item>zpty</item>-	<item>zregexparse</item>-	<item>zsocket</item>-	<item>zstyle</item>-	<item>ztcp</item>-    </list>--    <list name="builtins_var">-	<item>declare</item>-	<item>export</item>-	<item>float</item>-	<item>getln</item>-	<item>integer</item>-	<item>unset</item>-	<item>declare</item>-	<item>typeset</item>-	<item>local</item>-	<item>read</item>-	<item>readonly</item>-    </list>--    <list name="unixcommands">-      <include>unixcommands##Bash</include>-    </list>---    <contexts>-      <context attribute="Normal Text" lineEndContext="#stay" name="Start">-        <IncludeRules context="FindAll" />-      </context>--<!-- ====== The following rulessets are meant to be included ======== -->-      <!-- FindAll tries to interpret everything -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindAll">-        <IncludeRules context="FindComments" />-        <IncludeRules context="FindCommands" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- FindMost tries to interpret anything except commands -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindMost">-        <IncludeRules context="FindComments" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>---      <!-- FindComments consumes shell comments till EOL -->-      <context attribute="Normal Text" lineEndContext="#pop" name="FindComments">-        <DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>-        <RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />-      </context>-      <context attribute="Comment" lineEndContext="#pop" name="Comment">-        <DetectSpaces />-        <IncludeRules context="##Comments" />-      </context>--      <!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->-      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">-        <DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>-        <RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />-      </context>-      <context attribute="Comment" lineEndContext="#pop" name="CommentParen">-        <RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />-        <IncludeRules context="##Comments" />-      </context>--      <!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->-      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">-        <DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>-        <RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />-      </context>-      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">-        <RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />-        <IncludeRules context="##Comments" />-      </context>---      <!-- FindCommands matches many items that can be expected outside strings, substitutions etc. -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">-        <!-- start expression in double parentheses -->-        <Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />-        <!-- start expression in double brackets -->-        <RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[&eos;" beginRegion="expression" column="0"/>-        <RegExpr attribute="Keyword" context="ExprDblBracket" String="\s\[\[&eos;" beginRegion="expression" />-        <!-- start expression in single brackets -->-        <RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression" column="0"/>-        <RegExpr attribute="Builtin" context="ExprBracket" String="\s\[&eos;" beginRegion="expression" />-        <!-- start a group command with { -->-        <RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />-        <!-- start a subshell -->-        <DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />-        <!-- match do and if blocks -->-        <RegExpr attribute="Keyword" context="#stay" String="\bdo&noword;" beginRegion="do" />-        <RegExpr attribute="Keyword" context="#stay" String="\bdone&noword;" endRegion="do" />-        <RegExpr attribute="Keyword" context="#stay" String="\bif&eos;" beginRegion="if" />-        <RegExpr attribute="Keyword" context="#stay" String="\bfi&noword;" endRegion="if" />-        <!-- handle case as a special case -->-        <RegExpr attribute="Keyword" context="Case" String="\bcase&noword;" beginRegion="case" />-        <!-- handle command line options -->-        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9][A-Za-z0-9_]*" />-        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />-        <!-- handle variable assignments -->-        <RegExpr attribute="Variable" context="Assign" String="\b&varname;\+?=" />-        <RegExpr attribute="Variable" context="AssignSubscr" String="\b&varname;(?=\[.+\]\+?=)" />-        <!-- handle functions with function keyword before keywords -->-        <StringDetect attribute="Function" context="#stay" String=":()" />-        <RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />-        <!-- handle keywords -->-        <keyword attribute="Keyword" context="#stay" String="keywords" />-        <RegExpr attribute="Builtin" context="#stay" String="\.(?=\s)" />-        <keyword attribute="Builtin" context="#stay" String="builtins" />-        <keyword attribute="Command" context="#stay" String="unixcommands" />-        <!-- handle commands that have variable names as argument -->-        <keyword attribute="Builtin" context="VarName" String="builtins_var" />-        <!-- handle here-string -->-        <RegExpr attribute="Redirection" context="#stay" String="\d*&lt;&lt;&lt;" />-        <!-- handle here document -->-        <Detect2Chars attribute="Redirection" context="HereDoc" char="&lt;" char1="&lt;" lookAhead="true" />-        <!-- handle process subst -->-        <Detect2Chars attribute="Redirection" context="ProcessSubst" char="&lt;" char1="(" />-        <Detect2Chars attribute="Redirection" context="ProcessSubst" char="&gt;" char1="(" />-        <!-- handle redirection -->-        <RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />-        <!-- handle &, &&, | and || -->-        <RegExpr attribute="Control" context="#stay" String="([|&amp;])\1?" />-        <!-- mark function definitions without function keyword -->-        <RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />-      </context>--      <!-- FindOthers contains various rules to mark different shell input -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">-        <RegExpr attribute="Escape" context="#stay" String="\\[][;\\$`{}()|&amp;&lt;&gt;* ]" />-        <RegExpr attribute="Keyword" context="#stay" String="\\$" />-        <RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />-        <RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />-        <RegExpr attribute="Path" context="#stay" String="~\w*" />-        <RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />-        <!-- TODO: shell globs beside * and ? (in Path's) -->-      </context>--      <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">-        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="'" />-        <Detect2Chars attribute="Escape" context="#stay" char="\" char1="&quot;" />-        <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />-        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />-        <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />-        <Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1="&quot;" />-      </context>--      <!-- FindSubstitutions goes after anything starting with $ and ` and their escapes -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">-        <RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />-        <RegExpr attribute="Variable" context="#stay" String="\$&varname;" />-        <RegExpr attribute="Variable" context="#stay" String="\$[*@#?$!_0-9-]" />-        <RegExpr attribute="Variable" context="#stay" String="\$\{[*@#?$!_0-9-]\}" />-        <RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;(\[[*@]\])?\}" />-        <RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;(\[[*@]\]|[*@])?\}" />-        <RegExpr attribute="Variable" context="VarBrace" String="\$\{#?&varname;" />-        <RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/=?+-])" />-        <StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />-        <StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />-        <Detect2Chars attribute="Variable" context="SubstCommand" char="$" char1="(" />-        <DetectChar attribute="Backquote" context="SubstBackq" char="`" />-        <RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />-      </context>--      <!-- FindTests finds operators valid in tests -->-      <context attribute="Normal Text" lineEndContext="#stay" name="FindTests">-        <RegExpr attribute="Expression" context="#stay" String="-[abcdefghkprstuwxOGLSNozn](?=\s)"/>-        <RegExpr attribute="Expression" context="#stay" String="-([no]t|ef)(?=\s)"/>-        <RegExpr attribute="Expression" context="#stay" String="([!=]=?|[&gt;&lt;])(?=\s)"/>-        <RegExpr attribute="Expression" context="#stay" String="-(eq|ne|[gl][te])(?=\s)"/>-      </context>---<!-- ====== These are the contexts that can be branched to ======= -->--      <!-- ExprDblParen consumes an expression started in command mode till )) -->-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">-        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />-        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">-        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression" />-        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- ExprSubParen consumes an expression till ) -->-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubParen">-        <DetectChar attribute="Normal Text" context="#pop" char=")" />-        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- ExprBracket consumes an expression till ] -->-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket">-        <RegExpr attribute="Builtin" context="#pop" String="\s\](?=($|[\s;|&amp;]))" endRegion="expression" />-        <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>-        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />-        <IncludeRules context="FindTests" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- ExprDblBracket consumes an expression till ]] -->-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket">-        <RegExpr attribute="Keyword" context="#pop" String="\s\]\](?=($|[\s;|&amp;]))" endRegion="expression" />-        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>-        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />-        <IncludeRules context="FindTests" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- Group consumes shell input till } -->-      <context attribute="Normal Text" lineEndContext="#stay" name="Group">-        <DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />-        <IncludeRules context="FindAll" />-      </context>--      <!-- SubShell consumes shell input till ) -->-      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell">-        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />-        <IncludeRules context="FindAll" />-      </context>--      <!-- Assign consumes an expression till EOL or whitespace -->-      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">-        <DetectChar attribute="Variable" context="AssignArray" char="(" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-        <RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]" />-      </context>--      <!-- AssignArray consumes everything till ), marking assignments -->-      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">-        <DetectChar attribute="Variable" context="#pop" char=")" />-        <DetectChar attribute="Variable" context="Subscript" char="[" />-        <DetectChar attribute="Variable" context="Assign" char="=" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->-      <context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">-        <DetectChar attribute="Variable" context="Subscript" char="[" />-        <Detect2Chars attribute="Variable" context="Assign" char="+" char1="=" />-        <DetectChar attribute="Variable" context="Assign" char="=" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- Subscript consumes anything till ], marks as Variable -->-      <context attribute="Variable" lineEndContext="#stay" name="Subscript">-        <DetectChar attribute="Variable" context="#pop" char="]" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- FunctionDef consumes a name, possibly with (), marks as Function -->-      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">-        <RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />-      </context>--      <!-- VarName consumes spare variable names and assignments -->-      <context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">-        <!-- handle command line options -->-        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+" />-        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />-        <RegExpr attribute="Variable" context="#stay" String="\b&varname;" />-        <DetectChar attribute="Variable" context="Subscript" char="[" />-        <DetectChar attribute="Variable" context="Assign" char="=" />-        <IncludeRules context="FindMost" />-        <!-- stay here in spaces and other safe characters -->-        <RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />-      </context>--      <!-- ProcessSubst handles <(command) and >(command) -->-      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">-        <DetectChar attribute="Redirection" context="#pop" char=")" />-        <IncludeRules context="FindCommentsParen" />-        <IncludeRules context="FindCommands" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- StringSQ consumes anything till ' -->-      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">-        <DetectChar attribute="String SingleQ" context="#pop" char="'" />-      </context>--      <!-- StringDQ consumes anything till ", substitutes vars and expressions -->-      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">-        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;" />-        <RegExpr attribute="String Escape" context="#stay" String="\\[`&quot;\\$\n]" />-        <IncludeRules context="FindSubstitutions" />-      </context>--      <!-- StringEsc eats till ', but escaping many characters -->-      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">-        <DetectChar attribute="String SingleQ" context="#pop" char="'" />-        <RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']" />-        <RegExpr attribute="String Escape" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />-      </context>--      <!-- VarBrace is called as soon as ${xxx is encoutered -->-      <context attribute="Error" lineEndContext="#stay" name="VarBrace">-        <DetectChar attribute="Variable" context="#pop" char="}" />-        <DetectChar attribute="Variable" context="Subscript" char="[" />-        <RegExpr attribute="Variable" context="VarAlt" String="(:?[-=?+]|##?|%%?)" />-        <RegExpr attribute="Variable" context="VarSubst" String="//?" />-        <DetectChar attribute="Variable" context="VarSub" char=":" />-      </context>--      <!-- VarAlt is to handle default/alternate/etc values of variables -->-      <context attribute="Normal Text" lineEndContext="#stay" name="VarAlt">-        <DetectChar attribute="Variable" context="#pop#pop" char="}" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-      </context>--      <!-- VarSubst is to handle substitutions on variables -->-      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst">-        <DetectChar attribute="Variable" context="#pop#pop" char="}" />-        <DetectChar attribute="Variable" context="VarSubst2" char="/" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-      </context>-      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst2">-        <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-      </context>--      <!-- VarSub is to substrings of variables -->-      <context attribute="Error" lineEndContext="#stay" name="VarSub">-        <DetectChar attribute="Variable" context="VarSub2" char=":" />-        <DetectChar attribute="Variable" context="#pop#pop" char="}" />-        <RegExpr attribute="Variable" context="#stay" String="&varname;" />-        <RegExpr attribute="Variable" context="#stay" String="[0-9]+(?=[:}])" />-        <IncludeRules context="FindSubstitutions" />-      </context>-      <context attribute="Error" lineEndContext="#stay" name="VarSub2">-        <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />-        <RegExpr attribute="Variable" context="#stay" String="&varname;" />-        <RegExpr attribute="Variable" context="#stay" String="[0-9](?=[:}])" />-        <IncludeRules context="FindSubstitutions" />-      </context>---      <!-- SubstFile is called after a <( or >( is encoutered -->-      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">-        <DetectChar attribute="Redirection" context="#pop" char=")" />-        <IncludeRules context="FindCommentsParen" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- SubstCommand is called after a $( is encountered -->-      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">-        <DetectChar attribute="Variable" context="#pop" char=")" />-        <IncludeRules context="FindCommentsParen" />-        <IncludeRules context="FindCommands" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- SubstBackq is called when a backquote is encountered -->-      <context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">-        <DetectChar attribute="Backquote" context="#pop" char="`" />-        <IncludeRules context="FindCommentsBackq" />-        <IncludeRules context="FindCommands" />-        <IncludeRules context="FindStrings" />-        <IncludeRules context="FindSubstitutions" />-        <IncludeRules context="FindOthers" />-      </context>--      <!-- Case is called after the case keyword is encoutered. We handle this because of-           the lonely closing parentheses that would otherwise disturb the expr matching -->-      <context attribute="Normal Text" lineEndContext="#stay" name="Case">-        <RegExpr attribute="Keyword" context="CaseIn" String="\sin\b" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- CaseIn is called when the construct 'case ... in' has been found. -->-      <context attribute="Normal Text" lineEndContext="#stay" name="CaseIn">-        <RegExpr attribute="Keyword" context="#pop#pop" String="\besac(?=$|[\s;)])" endRegion="case" />-        <DetectChar attribute="Keyword" context="CaseExpr" char=")" beginRegion="caseexpr" />-        <AnyChar attribute="Keyword" context="#stay" String="(|" />-        <IncludeRules context="FindMost" />-      </context>--      <!-- CaseExpr eats shell input till ;; -->-      <context attribute="Normal Text" lineEndContext="#stay" name="CaseExpr">-        <Detect2Chars attribute="Keyword" context="#pop" char=";" char1=";" endRegion="caseexpr" />-        <RegExpr attribute="Keyword" context="#pop" String="esac(?=$|[\s;)])" lookAhead="true" firstNonSpace="true" endRegion="caseexpr"/>-        <IncludeRules context="FindAll" />-      </context>--      <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->-      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">-        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*&quot;(&word;)&quot;)" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*'(&word;)')" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*\\(&word;))" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocINQ" String="(&lt;&lt;-\s*(&word;))" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*&quot;(&word;)&quot;)" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />-        <RegExpr attribute="Redirection" context="HereDocNQ"  String="(&lt;&lt;\s*(&word;))" lookAhead="true" />-        <Detect2Chars attribute="Redirection" context="#pop"  char="&lt;" char1="&lt;" /><!-- always met -->-      </context>--      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">-        <IncludeRules context="FindAll" />-      </context>--      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocQ" dynamic="true">-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />-        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>-      </context>--      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocNQ" dynamic="true">-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />-        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>-        <IncludeRules context="FindSubstitutions" />-      </context>--      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocIQ" dynamic="true">-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />-        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>-      </context>--      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocINQ" dynamic="true">-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />-        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>-        <IncludeRules context="FindSubstitutions" />-      </context>--    </contexts>--    <itemDatas>-      <itemData name="Normal Text"	defStyleNum="dsNormal" />-      <itemData name="Comment"		defStyleNum="dsComment" />-      <itemData name="Keyword" 		defStyleNum="dsKeyword" />-      <itemData name="Control" 		defStyleNum="dsKeyword" />-      <itemData name="Builtin" 		defStyleNum="dsKeyword" color="#808" />-      <itemData name="Command" 		defStyleNum="dsKeyword" color="#c0c" />-      <itemData name="Redirection" 	defStyleNum="dsKeyword" color="#238" />-      <itemData name="Escape" 		defStyleNum="dsDataType" />-      <itemData name="String SingleQ" 	defStyleNum="dsString" />-      <itemData name="String DoubleQ" 	defStyleNum="dsString" />-      <itemData name="Backquote" 	defStyleNum="dsKeyword" />-      <itemData name="String Transl." 	defStyleNum="dsString" />-      <itemData name="String Escape" 	defStyleNum="dsDataType" />-      <itemData name="Variable" 	defStyleNum="dsOthers" />-      <itemData name="Expression" 	defStyleNum="dsOthers" />-      <itemData name="Function" 	defStyleNum="dsFunction" />-      <itemData name="Path" 		defStyleNum="dsNormal" />-      <itemData name="Option" 		defStyleNum="dsNormal" />-      <itemData name="Error"            defStyleNum="dsError" />-    </itemDatas>-  </highlighting>-  <general>-    <comments>-      <comment name="singleLine" start="#"/>-    </comments>-    <keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-/" additionalDeliminator="`"/>+        <!ENTITY tab      "&#009;">+        <!ENTITY funcname "[^&_fragpathseps;=]*+">+        <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">+        <!ENTITY eos      "(?=$|[ &tab;])">                 <!-- eol or space following -->+        <!ENTITY eoexpr   "(?=$|[ &tab;&lt;>|&amp;;)])">++        <!ENTITY substseps  "${}'&quot;`\\">+        <!ENTITY symbolseps "&lt;>|&amp;;()">+        <!ENTITY wordseps   " &tab;&symbolseps;">+        <!ENTITY wordseps_or_extglog " &tab;>|&amp;;)`"> <!-- wordseps without < and ( -->++        <!ENTITY _fragpathseps  "*?#^~[&wordseps;&substseps;">+        <!ENTITY _fragpathnosep "(?:&_brace_noexpansion;)?+">+        <!ENTITY path        "(?:[^&_fragpathseps;]*+&_fragpathnosep;)*+">+        <!ENTITY fragpath    "(?:[^&_fragpathseps;/]*+&_fragpathnosep;)*+">+        <!ENTITY fragpathesc "\\.(?:[^&_fragpathseps;/]*+(?:\\.|&_brace_noexpansion;)?+)*+">+        <!ENTITY opt         "(?:[^&_fragpathseps;=/]*+&_fragpathnosep;)*+">+        <!ENTITY assumepath  "/&path;|(?=[*?#^~([]|&lt;[0-9]*-[0-9]*>)">+        <!ENTITY pathpart    "(?:~(?:/&path;|(?=[&wordseps;]|$))|&fragpath;(?:&assumepath;|(?=&fragpathesc;&assumepath;))|\.\.?(?=[&wordseps;]|$))">++        <!ENTITY _braceexpansion_spe     " &tab;&lt;>|&amp;;{}\\`'&quot;$">+        <!ENTITY _brace_noexpansion      "\{[^&_braceexpansion_spe;,]*+\}">+        <!ENTITY _braceexpansion_var     "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">+        <!ENTITY _braceexpansion_string  "'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;">+        <!ENTITY _braceexpansion_elems   "\\.|`[^`]*`|&_braceexpansion_string;|&_braceexpansion_var;|&_brace_noexpansion;">+        <!ENTITY _braceexpansion_consume "&_braceexpansion_elems;|{(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_elems;)*?}|(?R)?+">+        <!ENTITY _braceexpansion "(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_consume;)*?,(?:[^&_braceexpansion_spe;]++|&_braceexpansion_consume;)*?}">+        <!ENTITY braceexpansion "{&_braceexpansion;">++        <!ENTITY _bracerangevar "\$([#+^=~]*([_a-zA-Z0-9]+|[*@#])(\[((\$[#+^=~]*)?([-+_a-zA-Z0-9]+|[*@])|$#)\])?|#|'(\\.|[^'\\])')">+        <!ENTITY _bracerangeoperand "-?([0-9]+|[a-zA-Z!#$&#37;*+,-./:=?@^_~]|&_bracerangevar;|\\.|'[^'\\]'|&quot;(\\.|[^&quot;\\`])&quot;|`[^`]*`)">+        <!ENTITY bracerangeexpansion "{(?=&_bracerangeoperand;\.\.&_bracerangeoperand;(\.\.-?([0-9]+|&_bracerangevar;))?})">++        <!ENTITY nobraceexpansion "(?:{([^&_braceexpansion_spe;/{},]++|(?R))+?})+">+        <!ENTITY nogroupend "(?:}+(?:[^&_fragpathseps;]|(?=[}$'&quot;`\\])))">++        <!-- glob with |, ( or spaces is a pattern -->+        <!ENTITY _ispattern_ugN "[ug][0123456789]+">+        <!ENTITY _ispattern_ugeP "[ugeP](?:&_ispattern_ugeP_0;|&_ispattern_ugeP_1;|&_ispattern_ugeP_2;|&_ispattern_ugeP_3;|&_ispattern_ugeP_4;|(?=\|))">+        <!ENTITY _ispattern_ugeP_0    ":(?:[^:'`&quot;\\|()]*+(?:&_ispattern_q;)?)*(?::|(?=[|()]))">+        <!ENTITY _ispattern_ugeP_1   "\[(?:[^]'`&quot;\\|()]*+(?:&_ispattern_q;)?)*(?:\](?=[|()]))">+        <!ENTITY _ispattern_ugeP_2    "{(?:[^}'`&quot;\\|()]*+(?:&_ispattern_q;)?)*(?:}(?=[|()]))">+        <!ENTITY _ispattern_ugeP_3 "&lt;(?:[^>'`&quot;\\|()]*+(?:&_ispattern_q;)?)*(?:>|(?=[|()]))">+        <!ENTITY _ispattern_ugeP_4  "([^&wordseps;{}'&quot;`\\])(?:(?:(?!\1)[^'`&quot;\\\1|()])*+(?:&_ispattern_q;)?)*(?:\1|(?=[|()]))">+        <!ENTITY _ispattern_dq "&quot;(?:[^&quot;\\`]*+(?:`[^`]`|\\.)?)*&quot;">+        <!ENTITY _ispattern_q "\\.|'[^']*'|`[^`]`|&_ispattern_dq;">+        <!ENTITY _ispattern_check "(?:\)(?:[^ &tab;}&lt;>|&amp;;)]|&nogroupend;)|[ &tab;|(]|$)">+        <!ENTITY ispattern "(?:[^ &tab;\\'&quot;|()`ugeP]*+(?:&_ispattern_ugN;|&_ispattern_ugeP;|&_ispattern_q;)?)*&_ispattern_check;">++        <!ENTITY heredocq "(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">++        <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])">++        <!ENTITY int "(?:[0-9]++[_0-9]*+)">+        <!ENTITY exp "(?:[eE][-+]?&int;)">+]>+<language name="Zsh" version="22" kateversion="5.79" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">++  <highlighting>+    <list name="keywords">+      <item>continue</item>+      <item>break</item>+      <item>case</item>+      <item>do</item>+      <item>done</item>+      <item>elif</item>+      <item>else</item>+      <item>end</item>+      <item>esac</item>+      <item>fi</item>+      <item>for</item>+      <item>foreach</item>+      <item>function</item>+      <item>if</item>+      <item>in</item>+      <item>repeat</item>+      <item>return</item>+      <item>select</item>+      <item>then</item>+      <item>until</item>+      <item>while</item>+    </list>++<list name="builtins"><!-- see man zshbuiltins -->+	<item>-</item>+	<item>.</item>+	<item>:</item>+	<item>alias</item>+	<item>autoload</item>+	<item>bg</item>+	<item>bindkey</item>+	<item>builtin</item>+	<item>bye</item>+	<item>cap</item>+	<item>cd</item>+	<item>chdir</item>+	<item>clone</item>+	<item>command</item>+	<item>comparguments</item>+	<item>compcall</item>+	<item>compctl</item>+	<item>compdescribe</item>+	<item>compfiles</item>+	<item>compgroups</item>+	<item>compquote</item>+	<item>comptags</item>+	<item>comptry</item>+	<item>compvalues</item>+	<item>coproc</item>+	<item>dirs</item>+	<item>disable</item>+	<item>disown</item>+	<item>echo</item>+	<item>echotc</item>+	<item>echoti</item>+	<item>emulate</item>+	<item>enable</item>+	<item>eval</item>+	<item>exec</item>+	<item>exit</item>+	<item>false</item>+	<item>fc</item>+	<item>fg</item>+	<item>functions</item>+	<item>getcap</item>+	<item>hash</item>+	<item>history</item>+	<item>jobs</item>+	<item>kill</item>+	<item>limit</item>+	<item>log</item>+	<item>logout</item>+	<item>nocorrect</item>+	<item>noglob</item>+	<item>popd</item>+	<item>print</item>+	<item>printf</item>+	<item>pushd</item>+	<item>pushln</item>+	<item>pwd</item>+	<item>r</item>+	<item>rehash</item>+	<item>sched</item>+	<item>set</item>+	<item>setcap</item>+	<item>setopt</item>+	<item>shift</item>+	<item>source</item>+	<item>stat</item>+	<item>suspend</item>+	<item>test</item>+	<item>times</item>+	<item>trap</item>+	<item>true</item>+	<item>ttyctl</item>+	<item>type</item>+	<item>ulimit</item>+	<item>umask</item>+	<item>unalias</item>+	<item>unfunction</item>+	<item>unhash</item>+	<item>unlimit</item>+	<item>unset</item>+	<item>unsetopt</item>+	<item>vared</item>+	<item>wait</item>+	<item>whence</item>+	<item>where</item>+	<item>which</item>+	<item>zcompile</item>+	<item>zformat</item>+	<item>zftp</item>+	<item>zle</item>+	<item>zmodload</item>+	<item>zparseopts</item>+	<item>zprof</item>+	<item>zpty</item>+	<item>zregexparse</item>+	<item>zsocket</item>+	<item>zstyle</item>+	<item>ztcp</item>+    </list>++    <list name="builtins_var">+	<item>declare</item>+	<item>export</item>+	<item>float</item>+	<item>getln</item>+	<item>getopts</item>+	<item>integer</item>+	<item>let</item>+	<item>local</item>+	<item>read</item>+	<item>readonly</item>+	<item>typeset</item>+	<item>unset</item>+    </list>++    <list name="unixcommands">+      <include>unixcommands##Bash</include>+    </list>++    <contexts>+      <context attribute="Normal Text" lineEndContext="#stay" name="Start" fallthroughContext="Command">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Comment" context="Comment" char="#"/>+        <!-- start expression in double parentheses -->+        <Detect2Chars context="ExprDblParenOrSubShell" char="(" char1="(" lookAhead="1"/>+        <!-- start a subshell -->+        <DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell"/>+        <!-- start expression in single/double brackets -->+        <DetectChar context="MaybeBracketExpression" char="[" lookAhead="1"/>+        <!-- start a group command or BraceExpansion with { -->+        <DetectChar attribute="Keyword" context="Group" char="{"/>++        <!-- handle ` -->+        <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>++        <!-- &> redirections -->+        <Detect2Chars attribute="Redirection" context="Prefix&amp;>" char="&amp;" char1=">"/>+        <Detect2Chars attribute="Control" context="#stay" char="&amp;" char1="!"/>++        <!-- handle branche conditions -->+        <Detect2Chars attribute="Control" context="#stay" char="&amp;" char1="&amp;"/>+        <Detect2Chars attribute="Control" context="#stay" char="|" char1="|"/>++        <!-- handle &, |, ; -->+        <AnyChar attribute="Control" context="#stay" String="&amp;|;"/>++        <!-- handle variable assignments -->+        <RegExpr attribute="Variable" context="VarAssign" String="&varname;(?=\+?=|\[(?:$|[^]]))|[0-9]+(?=\+?=)"/>+        <!-- handle keywords -->+        <keyword context="DispatchKeyword" String="keywords" lookAhead="1"/>+        <!-- handle commands that have variable names as argument -->+        <keyword attribute="Builtin" context="VarName" String="builtins_var" lookAhead="1"/>+        <WordDetect attribute="Builtin" context="#stay" String="noglob"/>+        <!-- mark function definitions without function keyword -->+        <RegExpr attribute="Function" context="#stay" String="&funcname;[ &tab;]*\(\)"/>+        <keyword attribute="Builtin" context="CommandArgs" String="builtins"/>+        <keyword attribute="Command" context="CommandArgs" String="unixcommands"/>++        <!-- handle redirection -->+        <AnyChar context="CommandMaybeRedirection" String="&lt;&gt;0123456789" lookAhead="1"/>++        <DetectChar attribute="Error" context="#stay" char=")"/>+        <DetectChar context="MaybeGroupEnd" char="}" lookAhead="1"/>++        <LineContinue attribute="Escape" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="MaybeGroupEnd">+        <RegExpr context="#pop!Command" String="&nogroupend;" lookAhead="1"/>+        <DetectChar attribute="Error" context="#pop" char="}"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="MaybeBracketExpression" fallthroughContext="#pop!Command">+        <!-- start expression in double brackets -->+        <RegExpr attribute="Keyword" context="#pop!ExprDblBracket" String="\[\[(?=$|[ &tab;(])" beginRegion="expression"/>+        <!-- start expression in single brackets -->+        <RegExpr attribute="Builtin" context="#pop!ExprBracket" String="\[&eos;" beginRegion="expression"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="CommandMaybeRedirection" fallthroughContext="#pop!Command">+        <IncludeRules context="FindRedirection"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="Return" fallthroughContext="#pop">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <Int attribute="Number" context="#stay"/>+      </context>+      <!-- Comment consumes shell comments till EOL -->+      <context attribute="Comment" lineEndContext="#pop" name="Comment">+        <DetectSpaces attribute="Comment"/>+        <IncludeRules context="##Comments"/>+        <DetectIdentifier attribute="Comment" context="#stay"/>+      </context>++      <!-- Group is called after a { is encountered -->+      <context attribute="Normal Text" lineEndContext="#stay" name="Group" fallthroughContext="Command">+        <DetectChar attribute="Keyword" context="#pop!GroupEnd" char="}"/>+        <IncludeRules context="Start"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="GroupEnd" fallthroughContext="#pop!CommandArgs">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <WordDetect attribute="Control Flow" context="#pop" String="always"/>+      </context>++      <context attribute="OtherCommand" lineEndContext="#pop" name="Command">+        <DetectSpaces attribute="Normal Text" context="#pop!CommandArgs"/>+        <DetectIdentifier attribute="OtherCommand" context="#stay"/>+        <DetectChar context="CommandVariables" char="$" lookAhead="1"/>+        <IncludeRules context="FindStrings"/>+        <Detect2Chars attribute="Control" context="#pop" char="&amp;" char1="&amp;"/>+        <Detect2Chars attribute="Control" context="#pop" char="|" char1="|"/>+        <DetectChar attribute="Control" context="#pop" char="|"/>+        <AnyChar context="#pop" String=";)`" lookAhead="1"/>+        <AnyChar context="#pop!CommandArgs" String="&amp;&lt;>" lookAhead="1"/>+        <!-- start expression in double parentheses -->+        <Detect2Chars attribute="Error" context="#pop!ExprDblParen" char="(" char1="(" beginRegion="expression"/>+        <!-- start a subshell -->+        <DetectChar attribute="Error" context="#pop!SubShell" char="(" beginRegion="subshell"/>+        <DetectChar context="CommandAssumeEscape" char="\" lookAhead="1"/>+        <DetectChar context="CommandMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="CommandMaybeGroupEnd" char="}" lookAhead="1"/>+      </context>+      <context attribute="Command" lineEndContext="#pop" name="CommandVariables">+        <IncludeRules context="DispatchVariables"/>+        <DetectChar attribute="OtherCommand" context="#pop" char="$"/>+      </context>+      <context attribute="OtherCommand" lineEndContext="#pop" name="CommandAssumeEscape">+        <LineContinue attribute="Escape" context="#pop"/>+        <RegExpr attribute="OtherCommand" context="#pop" String="\\."/>+      </context>+      <context attribute="OtherCommand" lineEndContext="#pop" name="CommandMaybeBraceExpansion">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="OtherCommand" context="#pop" char="{"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="CommandMaybeGroupEnd">+        <RegExpr attribute="OtherCommand" context="#pop" String="&nogroupend;+"/>+        <DetectChar context="#pop#pop" char="}" lookAhead="1"/>+      </context>++      <context attribute="Variable" lineEndContext="#pop" name="DispatchVariables">+        <IncludeRules context="DispatchSubstVariables"/>+        <IncludeRules context="DispatchStringVariables"/>+        <IncludeRules context="DispatchVarNameVariables"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="DispatchSubstVariables">+        <Detect2Chars attribute="Parameter Expansion" context="#pop!VarBraceStart" char="$" char1="{"/>+        <StringDetect context="#pop!ExprDblParenSubstOrSubstCommand" String="$((" lookAhead="1"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop!SubstCommand" char="$" char1="(" beginRegion="subshell"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="DispatchStringVariables">+        <Detect2Chars attribute="String SingleQ" context="#pop!StringEsc" char="$" char1="'"/>+        <Detect2Chars attribute="String Transl." context="#pop!StringDQ" char="$" char1="&quot;"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="DispatchVarNameVariables">+        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="#" lookAhead="1"/>+        <RegExpr attribute="Variable" context="#pop!AfterVarName" String="\$(?:&varname;|[0-9]+|[-*@?$!])"/>+        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="~" lookAhead="1"/>+        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="=" lookAhead="1"/>+        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="^" lookAhead="1"/>+        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="+" lookAhead="1"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="VarNameSpe">+        <DetectChar attribute="Variable" context="#pop!VarNameSpeParam" char="$"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="VarNameSpeParam">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameSubstLen" char="#"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameParam+" char="+"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!VarNameParam" String="~=^"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="VarNameSubstLen" fallthroughContext="#pop!AfterVarName">+        <DetectIdentifier attribute="Variable" context="#pop!AfterVarName"/>+        <AnyChar attribute="Variable" context="#pop!AfterVarName" String="-*@?$!"/>+        <Int attribute="Variable" context="#pop!AfterVarName" additionalDeliminator="#~=^+{}[]:-/$"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="VarNameParam" fallthroughContext="#pop!AfterVarName">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameSubstLen" char="#"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameParam+" char="+"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="^=~"/>+        <IncludeRules context="VarNameSubstLen"/>+      </context>+      <context attribute="Variable" lineEndContext="#pop" name="VarNameParam+" fallthroughContext="#pop">+        <IncludeRules context="VarNameSubstLen"/>+      </context>++      <!-- called as soon as $xxx is encoutered -->+      <context attribute="Normal Text" lineEndContext="#pop" name="AfterVarName" fallthroughContext="#pop">+        <DetectChar context="VarNameDispatchModifiers" char=":" lookAhead="1"/>+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="VarNameDispatchModifiers" fallthroughContext="#pop#pop">+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="a"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="A"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="c"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="e"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop!VarNameModifier_h" char=":" char1="h"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="l"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="p"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="P"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="q"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="Q"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="r"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop!VarNameModifier_s" char=":" char1="s"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop!VarNameModifier_h" char=":" char1="t"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="u"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="x"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=":" char1="&amp;"/>+        <StringDetect attribute="Parameter Expansion" context="#pop!VarNameModifier_s" String=":gs"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="VarNameModifier_h" fallthroughContext="#pop">+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+      </context>+      <context attribute="Parameter Expansion Operator" lineEndContext="#pop#pop" name="VarNameModifier_s" fallthroughContext="#pop#pop">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameModifier_s_Str" char="/"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#pop#pop" name="VarNameModifier_s_Str">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameModifier_s_Rep" char="/"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;"/>+        <DetectChar attribute="String SingleQ" context="#pop" char="'"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#pop#pop" name="VarNameModifier_s_Rep">+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="/"/>+        <AnyChar context="#pop#pop" String=" &tab;&lt;>|&amp;;()" lookAhead="1"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="CommandBackq" fallthroughContext="Command">+        <DetectChar attribute="Backquote" context="#pop!CommandArgs" char="`"/>+        <DetectChar attribute="Comment" context="CommentBackq" char="#"/>+        <IncludeRules context="Start"/>+      </context>+      <!-- CommentBackq consumes shell comments till EOL or a backquote -->+      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">+        <DetectChar context="#pop" char="`" lookAhead="1"/>+        <IncludeRules context="Comment"/>+      </context>++      <!-- CommandArgs matches the items after a command -->+      <context attribute="Normal Text" lineEndContext="#pop" name="CommandArgs" fallthroughContext="CommandArg">+        <DetectSpaces attribute="Normal Text" context="#stay"/>++        <!-- &> redirections -->+        <Detect2Chars attribute="Redirection" context="Prefix&amp;>" char="&amp;" char1=">"/>++        <!-- handle &, |, ;, ` -->+        <AnyChar context="#pop" String="&amp;|;`" lookAhead="1"/>++        <!-- handle process subst -->+        <Detect2Chars attribute="Redirection" context="ProcessSubst" char="=" char1="("/>+        <!-- handle redirection -->+        <AnyChar context="CommandArgMaybeRedirection" String="&gt;&lt;0123456789" lookAhead="1"/>++        <DetectChar context="#pop" char=")" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="CommandArg" fallthroughContext="#pop!NormalOption">+        <!-- In command arguments, do not allow comments after escaped characters.+             This avoids highlighting comments within paths or other text. Ex: pathtext\ #no\ comment -->+        <DetectChar context="#pop#pop" char="#" lookAhead="1"/>+        <Detect2Chars attribute="Option" context="#pop!LongOption" char="-" char1="-"/>+        <DetectChar attribute="Option" context="#pop!ShortOption" char="-"/>+        <DetectChar attribute="Keyword" context="#pop!NormalOption" char="="/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="CommandArgMaybeRedirection" fallthroughContext="#pop!NormalOption">+        <IncludeRules context="FindRedirection"/>+      </context>++      <context attribute="Option" lineEndContext="#pop" name="ShortOption" fallthroughContext="#pop">+        <DetectChar attribute="Path" context="PathThenPop" char="/"/>+        <IncludeRules context="LongOption"/>+      </context>+      <context attribute="Option" lineEndContext="#pop" name="LongOption" fallthroughContext="#pop">+        <AnyChar context="#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <DetectChar attribute="Operator" context="#pop!NormalOption" char="="/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSingleGlob"/>+        <IncludeRules context="FindGlobAny"/>+        <AnyChar context="#pop!NormalOption" String="({}&lt;" lookAhead="1"/>+        <RegExpr attribute="Option" context="#stay" String="&opt;"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="NormalOption" fallthroughContext="#pop">+        <AnyChar context="#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <DetectChar attribute="Glob" context="PathThenPop" char="[" lookAhead="1"/>+        <DetectChar context="ExprGlobParenThenPath" char="(" lookAhead="1"/>+        <IncludeRules context="FindPathThenPop"/>+        <DetectChar context="NormalOptionMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>+        <IncludeRules context="FindNormalTextOption"/>+        <DetectChar context="MaybeGlobRangeOrPop" char="&lt;" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="NormalOptionRecBrace">+        <AnyChar context="#pop#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSingleGlob"/>+        <IncludeRules context="FindGlobAny"/>+        <DetectChar context="ExprGlobParen" char="(" lookAhead="1"/>+        <DetectChar context="NormalOptionMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar attribute="Normal Text" context="#pop" char="}"/>+        <DetectChar context="MaybeGlobRangeOrPop" char="&lt;" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="NormalOptionMaybeGroupEnd">+        <IncludeRules context="FindNoGroupEndThenPop"/>+        <DetectChar context="#pop#pop#pop" char="}" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="FindNoGroupEndThenPop">+        <RegExpr context="#pop" String="&nogroupend;"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="FindNormalTextOption">+        <RegExpr attribute="Normal Text" context="#stay" String="([^[&wordseps;&substseps;]+|&nogroupend;)+"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="NormalOptionMaybeBraceExpansion">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="Normal Text" context="#pop!NormalOptionRecBrace" char="{"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="AssumeEscape">+        <LineContinue attribute="Escape" context="#pop"/>+        <RegExpr attribute="Escape" context="#pop" String="\\."/>+      </context>++<!-- ====== The following rulessets are meant to be included ======== -->++      <!-- FindRedirection consumes shell redirection -->+      <context attribute="Normal Text" lineEndContext="#pop" name="FindRedirection">+        <RegExpr attribute="File Descriptor" context="#pop!AssumeRedirection" String="[0-9]++(?=[&lt;>])"/>+        <IncludeRules context="AssumeRedirection"/>+      </context>++      <!-- DispatchBraceExpansion consumes brace expansions -->+      <context attribute="Normal Text" lineEndContext="#pop" name="DispatchBraceExpansion">+        <RegExpr context="#pop!BraceExpansion" String="&braceexpansion;" lookAhead="1"/>+        <IncludeRules context="IncBraceExpansion"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="DispatchPathBraceExpansion">+        <RegExpr context="#pop!PathBraceExpansion" String="&braceexpansion;" lookAhead="1"/>+        <IncludeRules context="IncBraceExpansion"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="IncBraceExpansion">+        <RegExpr attribute="Escape" context="#pop!SequenceExpression" String="&bracerangeexpansion;"/>+        <RegExpr context="#pop" String="&nobraceexpansion;"/>+      </context>++      <!-- FindPathThenPop consumes path -->+      <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPop">+        <AnyChar attribute="Glob" context="PathThenPop" String="?*#^"/>+        <RegExpr attribute="Path" context="PathThenPop" String="&pathpart;"/>+        <DetectChar attribute="Glob" context="PathThenPop" char="~"/>+      </context>+      <context attribute="Path" lineEndContext="#pop#pop" name="IncPath">+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSingleGlob"/>+        <IncludeRules context="FindGlobAny"/>+        <DetectChar context="ExprGlobParen" char="(" lookAhead="1"/>+        <RegExpr attribute="Path" context="#stay" String="&path;"/>+        <DetectChar context="MaybeGlobRangeOrPop" char="&lt;" lookAhead="1"/>+        <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>+      </context>+      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPop">+        <AnyChar context="#pop#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <IncludeRules context="IncPath"/>+        <DetectChar context="PathMaybeGroupEnd" char="}" lookAhead="1"/>+      </context>+      <context attribute="Path" lineEndContext="#pop" name="PathRecBrace">+        <AnyChar context="#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <IncludeRules context="IncPath"/>+        <DetectChar attribute="Path" context="#pop" char="}"/>+      </context>+      <context attribute="Glob" lineEndContext="#stay" name="MaybeGlobRangeOrPop" fallthroughContext="#pop#pop">+        <IncludeRules context="FindGlobRangeThenPop"/>+      </context>+      <context attribute="Path" lineEndContext="#pop" name="PathMaybeBraceExpansion">+        <IncludeRules context="DispatchPathBraceExpansion"/>+        <DetectChar attribute="Path" context="#pop!PathRecBrace" char="{"/>+      </context>+      <context attribute="Path" lineEndContext="#pop" name="PathMaybeGroupEnd">+        <IncludeRules context="FindNoGroupEndThenPop"/>+        <DetectChar context="#pop#pop#pop" char="}" lookAhead="1"/>+      </context>+      <context attribute="Glob" lineEndContext="#stay" name="FindGlobRangeThenPop">+        <RegExpr attribute="Glob" context="#pop!InGlobRange" String="&lt;(?=[0-9]*-[0-9]*>)"/>+      </context>+      <context attribute="Number" lineEndContext="#stay" name="InGlobRange">+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+        <DetectChar attribute="Glob" context="#stay" char="-"/>+        <DetectChar attribute="Glob" context="#pop" char=">"/>+      </context>++      <!-- FindPathThenPopInAlternateValue consumes path in ${xx:here}-->+      <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPopInAlternateValue">+        <AnyChar attribute="Glob" context="PathThenPopInAlternateValue" String="?*#^~|"/>+        <Detect2Chars context="PathThenPopInAlternateValue" char="(" char1="#" lookAhead="1"/>+        <AnyChar context="PathThenPopInAlternateValue" String="[(" lookAhead="1"/>+        <RegExpr attribute="Path" context="PathThenPopInAlternateValue" String="&pathpart;"/>+      </context>+      <context attribute="Path" lineEndContext="#pop" name="PathThenPopInAlternateValue">+        <AnyChar context="#pop" String="&wordseps_or_extglog;}" lookAhead="1"/>+        <IncludeRules context="IncPath"/>+      </context>++      <context attribute="Glob" lineEndContext="#stay" name="FindGlobAny">+        <DetectChar attribute="Glob" context="GlobAnyFlag" char="["/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#pop" name="GlobAnyFlag" fallthroughContext="#pop!GlobAny">+        <DetectChar attribute="Glob Flag" context="#pop!GlobAny" char="^"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#pop" name="GlobAny">+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar attribute="Glob Flag" context="#stay" char="-"/>+        <Detect2Chars attribute="Glob" context="GlobClass" char="[" char1=":"/>+        <DetectChar attribute="Glob" context="#pop" char="]"/>+      </context>+      <context attribute="Glob" lineEndContext="#pop#pop" name="GlobClass">+        <Detect2Chars attribute="Glob" context="#pop" char=":" char1="]"/>+        <DetectChar attribute="Error" context="#pop" char="]"/>+      </context>++      <context attribute="Pattern" lineEndContext="#stay" name="FindSingleGlob">+        <AnyChar attribute="Glob" context="#stay" String="?*#^~"/>+      </context>++      <context attribute="Pattern" lineEndContext="#stay" name="FindGlobPattern">+        <AnyChar attribute="Glob" context="#stay" String="?*#^~|"/>+        <IncludeRules context="FindGlobAny"/>+        <IncludeRules context="FindGroupPattern"/>+      </context>++      <context attribute="Pattern" lineEndContext="#stay" name="FindPattern">+        <IncludeRules context="FindGlobPattern"/>+        <DetectChar context="GlobRangeOrError" char="&lt;" lookAhead="1"/>+      </context>+      <context attribute="Glob" lineEndContext="#stay" name="GlobRangeOrError">+        <IncludeRules context="FindGlobRangeThenPop"/>+        <DetectChar attribute="Error" context="#pop" char="&lt;"/>+      </context>++      <context attribute="Pattern" lineEndContext="#stay" name="FindSubPattern">+        <IncludeRules context="FindGlobPattern"/>+        <DetectChar context="GlobRangeOrPattern" char="&lt;" lookAhead="1"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="GlobRangeOrPattern">+        <IncludeRules context="FindGlobRangeThenPop"/>+        <DetectChar attribute="Pattern" context="#pop" char="&lt;"/>+      </context>++      <context attribute="Pattern" lineEndContext="#stay" name="FindStringDQPattern">+        <IncludeRules context="FindGlobPattern"/>+        <DetectChar context="GlobRangeOrStringDQ" char="&lt;" lookAhead="1"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#stay" name="GlobRangeOrStringDQ">+        <IncludeRules context="FindGlobRangeThenPop"/>+        <DetectChar attribute="String DoubleQ" context="#pop" char="&lt;"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#stay" name="FindGroupPattern">+        <Detect2Chars attribute="Glob Flag" context="GlobPatFlag" char="(" char1="#"/>+        <DetectChar attribute="Glob" context="ExtGlobPattern" char="("/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="ExtGlobPattern">+        <DetectChar attribute="Glob" context="#pop" char=")"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSubPattern"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="ExtGlobPatternThenPath">+        <DetectChar attribute="Glob" context="#pop!PathThenPop" char=")"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSubPattern"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="VarAssign" fallthroughContext="#pop">+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>+        <DetectChar attribute="Operator" context="#pop!Assign" char="="/>+        <Detect2Chars attribute="Operator" context="#pop!Assign" char="+" char1="="/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="DispatchKeyword">+        <!-- match do and if blocks -->+        <Detect2Chars attribute="Control Flow" context="#pop!NotCond" char="i" char1="f" beginRegion="if"/>+        <Detect2Chars attribute="Control Flow" context="#pop" char="f" char1="i" endRegion="if"/>+        <StringDetect attribute="Control Flow" context="#pop" String="done" endRegion="do"/>+        <Detect2Chars attribute="Control Flow" context="#pop" char="d" char1="o" beginRegion="do"/>+        <!-- handle while/until as a special case -->+        <StringDetect attribute="Control Flow" context="#pop!NotCond" String="while"/>+        <StringDetect attribute="Control Flow" context="#pop!NotCond" String="until"/>+        <!-- handle for as a special case -->+        <StringDetect attribute="Control Flow" context="#pop!Foreach" String="foreach"/>+        <StringDetect attribute="Control Flow" context="#pop!For" String="for"/>+        <!-- handle select as a special case -->+        <StringDetect attribute="Control Flow" context="#pop!Select" String="select"/>+        <StringDetect attribute="Control Flow" context="#pop!Repeat" String="repeat"/>+        <!-- handle case as a special case -->+        <StringDetect attribute="Control Flow" context="#pop!Case" String="case" beginRegion="case"/>+        <!-- handle functions with function keyword before keywords -->+        <StringDetect attribute="Keyword" context="#pop!FunctionDef" String="function"/>+        <StringDetect attribute="Control Flow" context="#pop!Return" String="return"/>+        <!-- not a keyword in this context -->+        <Detect2Chars attribute="Error" context="#pop" char="i" char1="n"/>+        <StringDetect attribute="Error" context="#pop" String="esac"/>+        <!-- handle keywords -->+        <DetectIdentifier attribute="Control Flow" context="#pop"/>+      </context>++      <!-- if ! ... and while ! ... -->+      <context attribute="Normal Text" lineEndContext="#pop" name="NotCond" fallthroughContext="#pop">+        <DetectSpaces attribute="Normal Text" context="#pop!NotCond2"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="NotCond2" fallthroughContext="#pop">+        <Detect2Chars attribute="Expression" context="#pop" char="!" char1="&tab;"/>+        <Detect2Chars attribute="Expression" context="#pop" char="!" char1=" "/>+        <LineContinue attribute="Expression" context="#pop" char="!"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="Foreach" fallthroughContext="#pop">+        <LineContinue attribute="Escape" context="#stay"/>+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectIdentifier attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Keyword" context="#pop!ForeachWord" char="("/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ForeachWord" fallthroughContext="NormalOption">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Control" context="#stay" char=";"/>+        <DetectChar attribute="Keyword" context="#pop" char=")"/>+        <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>+        <AnyChar attribute="Control" context="#stay" String="&symbolseps;"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="For" fallthroughContext="#pop">+        <LineContinue attribute="Escape" context="#stay"/>+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <WordDetect attribute="Keyword" context="#pop!CommandArgs" String="in"/>+        <DetectIdentifier attribute="Normal Text" context="#stay"/>+        <Detect2Chars attribute="Keyword" context="#pop!ForArithmeticExpr" char="(" char1="("/>+        <DetectChar attribute="Keyword" context="#pop!ForeachWord" char="("/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ForArithmeticExpr">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Control" context="#stay" char=";"/>+        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="Select" fallthroughContext="#pop">+        <LineContinue attribute="Escape" context="#stay"/>+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectIdentifier attribute="Normal Text" context="#pop!SelectIn"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="SelectIn" fallthroughContext="#pop">+        <LineContinue attribute="Escape" context="#stay"/>+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <WordDetect attribute="Keyword" context="#pop!CommandArgs" String="in"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="Repeat" fallthroughContext="#pop!RepeatArithmeticExpr">+        <LineContinue attribute="Escape" context="#stay"/>+        <DetectSpaces attribute="Normal Text" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="RepeatArithmeticExpr">+        <DetectSpaces attribute="Normal Text" context="#pop"/>+        <DetectChar attribute="Control" context="#pop" char=";"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>++      <!-- &> and &>> redirection -->+      <context attribute="Normal Text" lineEndContext="#pop" name="Prefix&amp;>" fallthroughContext="#pop!FdRedirection">+        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1="|"/>+        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1="!"/>+        <AnyChar attribute="Redirection" context="#pop!WordRedirection" String=">|!"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="AssumeRedirection">+        <!-- handle output redirection -->+        <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">>|"/>+        <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">>!"/>+        <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">>&amp;|"/>+        <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">>&amp;!"/>+        <StringDetect attribute="Redirection" context="#pop!ProcessSubst" String=">>("/>+        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1=">"/>+        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1="|"/>+        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1="!"/>+        <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">&amp;|"/>+        <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">&amp;!"/>+        <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char=">" char1="&amp;"/>+        <Detect2Chars attribute="Redirection" context="#pop!ProcessSubst" char=">" char1="("/>+        <DetectChar attribute="Redirection" context="#pop!WordRedirection" char=">"/>+        <!-- handle input redirection -->+        <Detect2Chars attribute="Redirection" context="#pop!ProcessSubst" char="&lt;" char1="("/>+        <StringDetect attribute="Redirection" context="#pop!ProcessSubst" String="&lt;&lt;("/>+        <StringDetect attribute="Redirection" context="#pop!StringRedirection" String="&lt;&lt;&lt;"/>+        <!-- handle here document -->+        <Detect2Chars context="#pop!HereDoc" char="&lt;" char1="&lt;" lookAhead="1"/>+        <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char="&lt;" char1="&amp;"/>+        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char="&lt;" char1=">"/>+        <IncludeRules context="FindGlobRangeThenPop"/>+        <DetectChar attribute="Redirection" context="#pop!WordRedirection" char="&lt;"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection" fallthroughContext="#pop!FdRedirection2">+        <DetectSpaces attribute="Normal Text" context="#pop!FdRedirection2"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection2" fallthroughContext="#pop!WordRedirection2">+        <RegExpr attribute="File Descriptor" context="#pop!CloseFile" String="[0-9]+(?=-?&eoexpr;)"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="WordRedirection" fallthroughContext="#pop!WordRedirection2">+        <DetectSpaces attribute="Normal Text" context="#pop!WordRedirection2"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="WordRedirection2" fallthroughContext="#pop">+        <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <RegExpr attribute="Path" context="PathThenPop" String="&path;"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection" fallthroughContext="#pop!StringRedirection2">+        <DetectSpaces attribute="Normal Text" context="#pop!StringRedirection2"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection2">+        <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="CloseFile" fallthroughContext="#pop">+        <DetectChar attribute="Keyword" context="#pop" char="-"/>+      </context>++      <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="&lt;&lt;-[ &tab;]*&heredocq;(?=[ &tab;]*$)"/>+        <RegExpr attribute="Redirection" context="HereDocINQ" String="&lt;&lt;-[ &tab;]*([^&wordseps;]+)(?=[ &tab;]*$)"/>+        <RegExpr attribute="Redirection" context="HereDocQ"   String="&lt;&lt;[ &tab;]*&heredocq;(?=[ &tab;]*$)"/>+        <RegExpr attribute="Redirection" context="HereDocNQ"  String="&lt;&lt;[ &tab;]*([^&wordseps;]+)(?=[ &tab;]*$)"/>++        <RegExpr context="HereDocIQCmd"  String="(&lt;&lt;-[ &tab;]*&heredocq;)" lookAhead="1"/>+        <RegExpr context="HereDocINQCmd" String="(&lt;&lt;-[ &tab;]*([^&wordseps;]+))" lookAhead="1"/>+        <RegExpr context="HereDocQCmd"   String="(&lt;&lt;[ &tab;]*&heredocq;)" lookAhead="1"/>+        <RegExpr context="HereDocNQCmd"  String="(&lt;&lt;[ &tab;]*([^&wordseps;]+))" lookAhead="1"/>++        <Detect2Chars attribute="Redirection" context="#pop"  char="&lt;" char1="&lt;"/><!-- always met -->+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder" fallthroughContext="Command">+        <IncludeRules context="Start"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQ" dynamic="1" fallthroughContext="HereDocText">+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%1$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocNQ" dynamic="1" fallthroughContext="HereDocSubstitutions">+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%1$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQ" dynamic="1" fallthroughContext="HereDocText">+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%1$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQ" dynamic="1" fallthroughContext="HereDocSubstitutions">+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%1$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQCmd" dynamic="1" fallthroughContext="HereDocText">+        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocNQCmd" dynamic="1" fallthroughContext="HereDocSubstitutions">+        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQCmd" dynamic="1" fallthroughContext="HereDocText">+        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQCmd" dynamic="1" fallthroughContext="HereDocSubstitutions">+        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2$" dynamic="1" column="0"/>+      </context>++      <context attribute="Here Doc" lineEndContext="#pop" name="HereDocText">+      </context>++      <context attribute="Here Doc" lineEndContext="#pop" name="HereDocSubstitutions">+        <DetectChar context="HereDocVariables" char="$" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+      </context>+      <context attribute="Here Doc" lineEndContext="#pop" name="HereDocVariables">+        <IncludeRules context="DispatchSubstVariables"/>+        <IncludeRules context="DispatchVarNameVariables"/>+        <DetectChar attribute="Here Doc" context="#pop" char="$"/>+      </context>++      <!-- VarName consumes spare variable names and assignments -->+      <context attribute="Normal Text" lineEndContext="#pop" name="VarName">+        <StringDetect attribute="Builtin" context="#pop!BuiltinGetopts" String="getopts"/>+        <StringDetect attribute="Builtin" context="#pop!BuiltinLet" String="let"/>+        <DetectIdentifier attribute="Builtin" context="#pop!VarNameArgs"/>+        <AnyChar attribute="Builtin" context="#pop!VarNameArgs" String=".:-"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="VarNameArgs" fallthroughContext="#pop!CommandArgs">+        <DetectSpaces attribute="Normal Text" context="VarNameArg"/>+        <LineContinue attribute="Escape" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="VarNameArg" fallthroughContext="#pop!VarNameArg2">+        <!-- In command arguments, do not allow comments after escaped characters.+             This avoids highlighting comments within paths or other text. Ex: pathtext\ #no\ comment -->+        <DetectChar context="#pop#pop" char="#" lookAhead="1"/>+        <AnyChar attribute="Option" context="#pop!ShortOption" String="-+"/>+        <DetectChar attribute="Keyword" context="#pop!VarNameArg2" char="="/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="VarNameArg2" fallthroughContext="#pop!NormalOption">+        <DetectChar attribute="Variable" context="Subscript" char="["/>+        <DetectChar attribute="Operator" context="Assign" char="="/>+        <DetectChar attribute="Variable" context="AssignArray" char="("/>+        <DetectIdentifier attribute="Variable" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinGetopts" fallthroughContext="#pop!CommandArgs">+        <DetectSpaces attribute="Normal Text" context="#pop!BuiltinGetoptsOpt"/>+        <LineContinue attribute="Escape" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="BuiltinGetoptsOpt" fallthroughContext="#pop!BuiltinGetoptsOpt2">+        <DetectChar context="#pop#pop" char="#" lookAhead="1"/>+        <DetectChar attribute="Keyword" context="#pop!NormalOption" char="="/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinGetoptsOpt2" fallthroughContext="#pop!NormalOption">+        <DetectChar attribute="Operator" context="#stay" char=":"/>+        <DetectIdentifier attribute="Normal Text" context="#stay" />+        <DetectSpaces attribute="Normal Text" context="#pop!BuiltinGetoptsVar"/>+        <AnyChar context="#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <DetectChar context="NormalOptionMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>+        <AnyChar attribute="Normal Text" context="#stay" String="/%.0123456789"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinGetoptsVar" fallthroughContext="#pop!CommandArgs">+        <DetectIdentifier attribute="Variable" context="#pop!CommandArgs"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLet" fallthroughContext="#pop!CommandArgs">+        <DetectSpaces attribute="Normal Text" context="#pop!BuiltinLetArgs"/>+        <LineContinue attribute="Escape" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLetArgs" fallthroughContext="BuiltinLetArg">+        <AnyChar context="BuiltinLetArgsNumber" String="0123456789" lookAhead="1"/>+        <IncludeRules context="CommandArgs"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLetArgsNumber" fallthroughContext="#pop!BuiltinLetArg">+        <IncludeRules context="FindRedirection"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="BuiltinLetArg" fallthroughContext="#pop!BuiltinLetExpr">+        <DetectChar context="#pop#pop" char="#" lookAhead="1"/>+        <DetectChar attribute="Keyword" context="#pop!NormalOption" char="="/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLetExpr" fallthroughContext="#pop!NormalOption">+        <DetectIdentifier attribute="Variable" context="#stay" />+        <AnyChar context="#pop" String="&wordseps_or_extglog;" lookAhead="1"/>+        <AnyChar attribute="Operator" context="#stay" String="+-!%=^:"/>+        <AnyChar context="Number" String="0123456789." lookAhead="1"/>+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>+        <IncludeRules context="FindWord"/>+        <Detect2Chars attribute="BaseN" context="NoPrefix" char="#" char1="#"/>+        <DetectChar attribute="Error" context="#stay" char="#"/>+        <DetectChar context="NormalOptionMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>+      </context>++      <!-- ProcessSubst handles <(command) and >(command) -->+      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst" fallthroughContext="Command">+        <DetectChar attribute="Redirection" context="#pop" char=")"/>+        <IncludeRules context="Start"/>+      </context>++      <!-- StringSQ consumes anything till ' -->+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">+        <DetectChar attribute="String SingleQ" context="#pop" char="'"/>+      </context>++      <!-- StringDQ consumes anything till ", substitutes vars and expressions -->+      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">+        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;"/>+        <DetectChar context="StringDQEscape" char="\" lookAhead="1"/>+        <DetectChar context="StringDQDispatchVariables" char="$" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQDispatchVariables">+        <IncludeRules context="DispatchSubstVariables"/>+        <IncludeRules context="DispatchVarNameVariables"/>+        <DetectChar attribute="String DoubleQ" context="#pop" char="$"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#pop" name="StringDQEscape">+        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="&quot;"/>+        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="\"/>+        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="`"/>+        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="$"/>+        <LineContinue attribute="String Escape" context="#pop"/>+        <DetectChar attribute="String DoubleQ" context="#pop" char="\"/>+      </context>++      <!-- RegularBackq consumes anything till ` -->+      <context attribute="Normal Text" lineEndContext="#stay" name="RegularBackq" fallthroughContext="Command">+        <DetectChar attribute="Backquote" context="#pop" char="`"/>+        <DetectChar attribute="Comment" context="CommentBackq" char="#"/>+        <IncludeRules context="Start"/>+      </context>++      <!-- StringEsc eats till ', but escaping many characters -->+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">+        <DetectChar attribute="String SingleQ" context="#pop" char="'"/>+        <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abefnrtv\\']|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="FindWord">+        <IncludeRules context="FindStrings"/>+        <DetectChar context="RegularVariable" char="$" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="RegularVariable">+        <IncludeRules context="DispatchVariables"/>+        <DetectChar attribute="Normal Text" context="#pop" char="$"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="FindStrings">+        <DetectChar attribute="String SingleQ" context="StringSQ" char="'"/>+        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;"/>+      </context>++      <!-- SubstCommand is called after a $( is encountered -->+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand" fallthroughContext="Command">+        <DetectChar attribute="Parameter Expansion" context="#pop" char=")" endRegion="subshell"/>+        <IncludeRules context="Start"/>+      </context>++      <!-- VarBraceStart is called as soon as ${ is encoutered -->+      <context attribute="Variable" lineEndContext="#pop" name="VarBraceStart" fallthroughContext="#pop!CheckVarAlt">+        <DetectChar attribute="Parameter Expansion" context="#pop!VarFlags" char="("/>+        <IncludeRules context="VarFlagsVar"/>+      </context>+      <context attribute="Variable" lineEndContext="#stay" name="VarBraceStartRecursive" fallthroughContext="#pop#pop!CheckVarAlt">+        <Detect2Chars attribute="Parameter Expansion" context="VarBraceStart" char="$" char1="{"/>+        <StringDetect context="#pop!ExprDblParenSubstOrSubstCommand" String="$((" lookAhead="1"/>+        <Detect2Chars attribute="Parameter Expansion" context="#pop!SubstCommand" char="$" char1="(" beginRegion="subshell"/>+        <DetectChar attribute="Error" context="#pop" char="$"/>+      </context>+      <context attribute="Error" lineEndContext="#stay" name="VarError">+        <DetectChar attribute="Variable" context="#pop" char="}"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="CheckVarAlt" fallthroughContext="#pop!VarError">+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+        <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[@]"/>+        <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[*]"/>+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="%" char1="%"/>+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="#" char1="#"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" String="#%"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" String="-+=?"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValuePrefix" char=":"/>+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarBraceSubst" char="/" char1="/"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBraceSubst" char="/"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="AlternateValuePrefix" fallthroughContext="#pop!VarSub">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="^" char1="^"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="#"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" String="-+=?|*^"/>+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=":" char1="="/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBraceSubst" char="/"/>++        <!-- Modifiers -->+        <AnyChar attribute="Parameter Expansion" context="#pop!VarBraceModifiers" String="aAcehlpPqQrsg&amp;tux" lookAhead="1"/>+      </context>++      <!-- called as soon as ${xxx:y (with y a modifier) is encoutered -->+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarBraceModifiers">+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=":"/>+        <AnyChar attribute="Parameter Expansion" context="VarBraceModifier_h" String="ht"/>+        <DetectChar attribute="Parameter Expansion" context="VarBraceModifier_s" char="s"/>+        <Detect2Chars attribute="Parameter Expansion" context="VarBraceModifier_s" char="g" char1="s"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarBraceModifier_h" fallthroughContext="#pop">+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+      </context>++      <!-- called as soon as ${xxx:s and ${xxx:gs is encoutered -->+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarBraceModifier_s">+        <DetectChar attribute="Error" context="#pop#pop" char="}"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBraceModifier_s_Str" char="/"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarBraceModifier_s_Str">+        <DetectChar attribute="Parameter Expansion" context="#pop#pop" char="}"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBraceModifier_s_Rep" char="/"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar attribute="String SingleQ" context="RecursiveVarBraceModifier_s" char="{"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="RecursiveVarBraceModifier_s">+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar attribute="String SingleQ" context="#pop" char="}"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarBraceModifier_s_Rep">+        <DetectChar attribute="Parameter Expansion" context="#pop#pop" char="}"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="/"/>+        <DetectChar attribute="String SingleQ" context="RecursiveVarBraceModifier_s" char="{"/>+      </context>++      <!-- called as soon as ${xxx: is encoutered -->+      <context attribute="Normal Text" lineEndContext="#stay" name="VarSub">+        <DetectChar attribute="Variable" context="#pop" char="}"/>+        <AnyChar context="VarOffset" String="0123456789" lookAhead="1"/>+        <AnyChar attribute="Operator" context="#stay" String="+-!~*/%&lt;>=&amp;^|"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=":"/>+        <DetectChar context="VarVariables" char="$" lookAhead="1"/>+        <IncludeRules context="FindStrings"/>+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+      </context>+      <context attribute="Command" lineEndContext="#pop" name="VarVariables">+        <IncludeRules context="DispatchVariables"/>+        <DetectChar attribute="Error" context="#pop" char="$"/>+      </context>+      <context attribute="Number" lineEndContext="#pop" name="VarOffset" fallthroughContext="#pop">+        <Detect2Chars attribute="Hex" context="#pop!Hex" char="0" char1="x"/>+        <Detect2Chars attribute="Hex" context="#pop!Hex" char="0" char1="X"/>+        <AnyChar attribute="Number" context="#stay" String="0123456789_"/>+        <DetectChar attribute="Base" context="#stay" char="#"/>+      </context>++      <!-- called as soon as ${xxx:-, etc are encoutered -->+      <context attribute="String DoubleQ" lineEndContext="#stay" name="AlternateValue">+        <DetectChar attribute="String DoubleQ" context="RecursiveAlternateValue" char="{"/>+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindPathThenPopInAlternateValue"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#stay" name="RecursiveAlternateValue">+        <DetectChar attribute="String DoubleQ" context="RecursiveAlternateValue" char="{"/>+        <DetectChar attribute="String DoubleQ" context="#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindPathThenPopInAlternateValue"/>+      </context>++      <!-- called as soon as ${xxx%, etc are encoutered -->+      <context attribute="String DoubleQ" lineEndContext="#stay" name="AlternatePatternValue">+        <DetectChar attribute="String DoubleQ" context="RecursiveAlternatePatternValue" char="{"/>+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindStringDQPattern"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#stay" name="RecursiveAlternatePatternValue">+        <DetectChar attribute="String DoubleQ" context="RecursiveAlternateValue" char="{"/>+        <DetectChar attribute="String DoubleQ" context="#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindStringDQPattern"/>+      </context>++      <!-- called as soon as ${xxx/ ${xxx// ${xxx:/ are encoutered -->+      <context attribute="Normal Text" lineEndContext="#stay" name="VarBraceSubst" fallthroughContext="#pop!VarBraceSubstPat">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarBraceSubstPat" char="#" char1="%"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!VarBraceSubstPat" String="#%"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="VarBraceSubstPat">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="/"/>+        <DetectChar attribute="String DoubleQ" context="RecursiveAlternateValue" char="{"/>+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSubPattern"/>+        <DetectIdentifier attribute="Pattern" context="#stay"/>+      </context>++      <!-- called as soon as ${( is encoutered -->+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarFlags">+        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="#q@AabcCDefFikLnoOPqQ+-tuUvVwWXz0~mSBEMNR"/>+        <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_s" String="sjgZ_"/>+        <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_l" String="lrI"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlagsSubs" char="p"/>++        <DetectChar attribute="Parameter Expansion" context="#pop!VarFlagsVar" char=")"/>+        <DetectChar attribute="Error" context="#pop" char="}"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarFlagsSubs">+        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="#q@AabcCDefFikLnoOPqQ+-tuUvVwWXz0~mSBEMNRp"/>+        <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_s" String="gZ"/>+        <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_ps" String="sj_"/>+        <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_pl" String="lrI"/>++        <DetectChar attribute="Parameter Expansion" context="#pop!VarFlagsVar" char=")"/>+        <DetectChar attribute="Error" context="#pop" char="}"/>+      </context>+      <context attribute="Variable" lineEndContext="#stay" name="VarFlagsVar" fallthroughContext="#pop!CheckVarAlt">+        <DetectChar context="VarBraceStartRecursive" char="$" lookAhead="1"/>+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="#+^=~"/>+        <DetectIdentifier attribute="Variable" context="#pop!CheckVarAlt"/>+        <AnyChar attribute="Variable" context="#pop!CheckVarAlt" String="*@?$!-"/>+        <Int attribute="Variable" context="#pop!CheckVarAlt" additionalDeliminator="#~=^+{}[]:-/$"/>+      </context>++      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarFlag_s">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_s[" char="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_s&lt;" char="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_s{" char="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_s(" char="("/>+        <RegExpr attribute="Parameter Expansion Operator" context="#pop!VarFlag_sx" String="(.)"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_s[">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_s&lt;">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=">"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_s{">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="}"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_s(">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=")"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_sx">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="1" dynamic="1"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_l">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_l[" char="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_l&lt;" char="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_l{" char="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_l(" char="("/>+        <RegExpr attribute="Parameter Expansion Operator" context="#pop!VarFlag_lx" String="(.)"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_l[">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_l[s" char="]" char1="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_l&lt;">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_l&lt;s" char=">" char1="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=">"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_l{">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_l{s" char="}" char1="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="}"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_l(">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_l(s" char=")" char1="("/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=")"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_lx">+        <RegExpr attribute="Parameter Expansion Operator" context="#pop!VarFlag_lxs" String="(%1)%1" dynamic="1"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="1" dynamic="1"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_l[s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char="]" char1="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_l&lt;s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char=">" char1="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=">"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_l{s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char="}" char1="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="}"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_l(s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char=")" char1="("/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=")"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_lxs">+        <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="%1%1" dynamic="1"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="1" dynamic="1"/>+      </context>++      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarFlag_ps">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_ps[" char="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_ps&lt;" char="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_ps{" char="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_ps(" char="("/>+        <RegExpr attribute="Parameter Expansion Operator" context="#pop!VarFlag_psx" String="(.)"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_ps[">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>+        <RegExpr attribute="Variable" context="#stay" String="\$(&varname;|[0-9]+)(?=\])"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_ps&lt;">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=">"/>+        <RegExpr attribute="Variable" context="#stay" String="\$(&varname;|[0-9]+)(?=>)"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_ps{">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="}"/>+        <RegExpr attribute="Variable" context="#stay" String="\$(&varname;|[0-9]+)(?=})"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_ps(">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=")"/>+        <RegExpr attribute="Variable" context="#stay" String="\$(&varname;|[0-9]+)(?=\))"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_psx">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="1" dynamic="1"/>+        <RegExpr attribute="Variable" context="#stay" String="\$(?!%1)(?:[A-Za-z_](?:(?!%1)[A-Za-z0-9_])*+|(?:(?!%1)[0-9])++)(?=%1)" dynamic="1"/>+        <RegExpr attribute="String SingleQ" context="#stay" String="[^%1]+" dynamic="1"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_pl">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl[" char="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl&lt;" char="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl{" char="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl(" char="("/>+        <RegExpr attribute="Parameter Expansion Operator" context="#pop!VarFlag_plx" String="(.)"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_pl[">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl[s" char="]" char1="["/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_pl&lt;">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl&lt;s" char=">" char1="&lt;"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=">"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_pl{">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl{s" char="}" char1="{"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="}"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_pl(">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!VarFlag_pl(s" char=")" char1="("/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=")"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="VarFlag_plx">+        <RegExpr attribute="Parameter Expansion Operator" context="#pop!VarFlag_plxs" String="(%1)%1" dynamic="1"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="1" dynamic="1"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_pl[s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char="]" char1="["/>+        <IncludeRules context="VarFlag_ps["/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_pl&lt;s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char=">" char1="&lt;"/>+        <IncludeRules context="VarFlag_ps&lt;"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_pl{s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char="}" char1="{"/>+        <IncludeRules context="VarFlag_ps{"/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_pl(s">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#stay" char=")" char1="("/>+        <IncludeRules context="VarFlag_ps("/>+      </context>+      <context attribute="String SingleQ" lineEndContext="#stay" name="VarFlag_plxs">+        <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="%1%1" dynamic="1"/>+        <IncludeRules context="VarFlag_psx"/>+      </context>++      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion">+        <DetectChar attribute="Escape" context="#pop!BraceExpansion2" char="{"/>+      </context>+      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion2">+        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Escape" context="#pop" char="}"/>+        <DetectChar context="EscapeMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>+        <DetectChar context="BraceExpansionVariables" char="$" lookAhead="1"/>+        <IncludeRules context="FindStrings"/>+        <IncludeRules context="FindPattern"/>+      </context>+      <context attribute="Escape" lineEndContext="#pop" name="EscapeMaybeBraceExpansion">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="Escape" context="#pop!BraceExpansion2" char="{"/>+      </context>+      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansionVariables">+        <IncludeRules context="DispatchVariables"/>+        <DetectChar attribute="Escape" context="#pop" char="$"/>+      </context>++      <context attribute="Escape" lineEndContext="#pop" name="PathBraceExpansion">+        <DetectChar attribute="Escape" context="#pop!PathBraceExpansion2" char="{"/>+      </context>+      <context attribute="Path" lineEndContext="#pop" name="PathBraceExpansion2">+        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Escape" context="#pop" char="}"/>+        <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindPattern"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="SequenceExpression">+        <AnyChar attribute="Number" context="#stay" String="0123456789-"/>+        <IncludeRules context="FindWord"/>+        <Detect2Chars attribute="Escape" context="#stay" char="." char1="."/>+        <DetectChar attribute="Escape" context="#pop" char="}"/>+      </context>++<!-- ====== These are the contexts that can be branched to ======= -->++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenOrSubShell">+        <RegExpr attribute="Keyword" context="#pop!SubShell" String="\((?=&arithmetic_as_subshell;)|" beginRegion="subshell"/>+        <Detect2Chars attribute="Keyword" context="#pop!ExprDblParen" char="(" char1="(" beginRegion="expression"/>+      </context>+      <!-- ExprDblParen consumes an expression started in command mode till )) -->+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression"/>+        <IncludeRules context="FindExprDblParen"/>+        <!-- ((cmd+              ) # jump to SubShell context -->+        <DetectChar attribute="Keyword" context="#pop!SubShell" char=")" endRegion="expression" beginRegion="subshell"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="FindExprDblParen">+        <Detect2Chars attribute="Control" context="#stay" char="&amp;" char1="&amp;"/>+        <Detect2Chars attribute="Control" context="#stay" char="|" char1="|"/>+        <AnyChar attribute="Operator" context="#stay" String="+-!~*/%&lt;>=&amp;^|?:"/>+        <DetectChar attribute="Control" context="#stay" char=","/>+        <DetectChar attribute="Normal Text" context="ExprSubDblParen" char="("/>+        <AnyChar context="Number" String="0123456789." lookAhead="1"/>+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>+        <IncludeRules context="FindWord"/>+        <DetectChar context="MaybeArithmeticBrace" char="{" lookAhead="1"/>+        <Detect2Chars attribute="BaseN" context="NoPrefix" char="#" char1="#"/>+        <DetectChar attribute="Error" context="#stay" char="#"/>+        <DetectIdentifier attribute="Variable" context="#stay"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubDblParen">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>+        <IncludeRules context="FindExprDblParen"/>+      </context>+      <context attribute="Error" lineEndContext="#pop" name="MaybeArithmeticBrace">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="Error" context="#pop" char="{"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="NoPrefix" fallthroughContext="#pop">+        <DetectChar context="AssumeEscape" char="\"/>+        <RegExpr attribute="Number" context="#pop" String="[^][()]"/>+      </context>++      <context attribute="Number" lineEndContext="#pop" name="Number">+        <Detect2Chars attribute="Hex" context="#pop!Hex" char="0" char1="x"/>+        <Detect2Chars attribute="Hex" context="#pop!Hex" char="0" char1="X"/>+        <RegExpr attribute="Base" context="#pop!BaseN" String="[1-9][0-9_]*+#"/>+        <RegExpr attribute="Number" context="#pop" String="&int;(\.(&int;&exp;?+|&exp;)?|&exp;)?|\.&int;&exp;?"/>+        <DetectChar attribute="Operator" context="#pop" char="."/>+      </context>+      <context attribute="Hex" lineEndContext="#pop" name="Hex" fallthroughContext="#pop">+        <RegExpr attribute="Hex" context="#pop" String="[0-9a-fA-F_]+"/>+      </context>+      <context attribute="BaseN" lineEndContext="#pop" name="BaseN" fallthroughContext="#pop">+        <RegExpr attribute="BaseN" context="#pop" String="[0-9a-zA-Z@_]+"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubstOrSubstCommand">+        <RegExpr attribute="Parameter Expansion" context="#pop!SubstCommand" String="\$\((?=&arithmetic_as_subshell;)|" beginRegion="subshell"/>+        <StringDetect attribute="Parameter Expansion" context="#pop!ExprDblParenSubst" String="$((" beginRegion="expression"/>+      </context>+      <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression"/>+        <IncludeRules context="FindExprDblParen"/>+        <!-- $((cmd+              ) # jump to SubstCommand context -->+        <DetectChar attribute="Parameter Expansion" context="#pop!SubstCommand" char=")" endRegion="expression" beginRegion="subshell"/>+      </context>++      <!-- ExprBracket consumes an expression till ] -->+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket" fallthroughContext="#pop!ExprBracketNot">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <IncludeRules context="FindExprBracketEnd"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketNot" fallthroughContext="#pop!ExprBracketParam1">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam1"/>+        <Detect2Chars attribute="Expression" context="ExprBracketTestMaybeNot" char="!" char1=" " lookAhead="1"/>+        <Detect2Chars attribute="Expression" context="ExprBracketTestMaybeNot" char="!" char1="&tab;" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketTestMaybeNot">+        <DetectChar attribute="Expression" context="#pop" char="!"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam1" fallthroughContext="ExprBracketValue">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam2"/>+        <DetectChar context="TestMaybeUnary" char="-" lookAhead="1"/>+        <IncludeRules context="FindExprBracketEnd"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketValue">+        <AnyChar context="#pop" String=" &tab;" lookAhead="1"/>+        <AnyChar attribute="Error" context="#stay" String="&symbolseps;"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindGlobAny"/>+        <IncludeRules context="FindPathThenPop"/>+        <DetectChar context="ExprBracketValueMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketValueRecBrace">+        <AnyChar context="#pop#pop" String=" &tab;" lookAhead="1"/>+        <AnyChar attribute="Error" context="#stay" String="&symbolseps;"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindGlobAny"/>+        <DetectChar context="ExprBracketValueMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar attribute="Normal Text" context="#pop" char="}"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketValueMaybeBraceExpansion">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="Normal Text" context="#pop!ExprBracketValueRecBrace" char="{"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="ExprBracketValue">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam3"/>+        <AnyChar context="TestMaybeBinary" String="-=!" lookAhead="1"/>+        <IncludeRules context="FindExprBracketEnd"/>+      </context>++      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3" fallthroughContext="ExprBracketValue">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketFinal"/>+        <IncludeRules context="FindExprBracketEnd"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketFinal" fallthroughContext="ExprBracketValue">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <IncludeRules context="FindExprBracketEnd"/>+        <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\][^ &tab;])++" endRegion="expression"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="FindExprBracketEnd">+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[ &tab;;|&amp;&lt;>)]))" endRegion="expression"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary" fallthroughContext="#pop!ExprBracketValue">+        <RegExpr attribute="Expression" context="#pop" String="-[abcdefghknoprstuvwxzLOGNS](?=[ &tab;])"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary" fallthroughContext="#pop!ExprBracketValue">+        <RegExpr attribute="Expression" context="#pop" String="(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=[ &tab;])"/>+      </context>+++      <!-- ExprDblBracket consumes an expression till ]] -->+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <IncludeRules context="FindExprDblBracketEnd"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketNot" fallthroughContext="#pop!ExprDblBracketParam1">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam1"/>+        <DetectChar context="ExprDblBracketTestMaybeNot" char="!" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketTestMaybeNot" fallthroughContext="#pop#pop!ExprDblBracketParam1">+        <RegExpr attribute="Expression" context="#pop" String="!(?=$|[ &tab;(])"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1" fallthroughContext="ExprDblBracketValue">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam2"/>+        <DetectChar context="TestMaybeUnary" char="-" lookAhead="1"/>+        <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>+        <DetectChar context="ExprDblBracketSubValue" char="(" lookAhead="1"/>+        <IncludeRules context="FindExprDblBracketEnd"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketSubValue" fallthroughContext="#pop">+        <DetectChar attribute="Operator" context="ExprDblBracketNot" char="("/>+        <DetectChar attribute="Operator" context="#pop" char=")"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValue">+        <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>+        <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="|" char1="|"/>+        <AnyChar attribute="Error" context="#stay" String="&amp;;|"/>+        <AnyChar context="#pop" String=" &tab;)" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSingleGlob"/>+        <IncludeRules context="FindGlobAny"/>+        <IncludeRules context="FindGroupPattern"/>+        <DetectChar context="MaybeGlobRangeOrPop" char="&lt;" lookAhead="1"/>+        <DetectChar context="#pop" char="&gt;" lookAhead="1"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="ExprDblBracketValue">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>+        <AnyChar context="TestMaybeBinary2" String="-=!" lookAhead="1"/>+        <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>+        <IncludeRules context="FindExprDblBracketEnd"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary2" fallthroughContext="#pop!ExprDblBracketValue">+        <IncludeRules context="TestMaybeBinary"/>+        <RegExpr attribute="Expression" context="#pop#pop!ExprDblBracketRegex" String="=~(?=[ &tab;(])"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3Spe" fallthroughContext="#pop!ExprDblBracketParam3">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>+      </context>++      <context attribute="Normal Text" lineEndContext="ExprDblBracketFinal" name="ExprDblBracketParam3" fallthroughContext="ExprDblBracketValue">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>+        <IncludeRules context="FindExprDblBracketEnd"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValue">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <IncludeRules context="FindExprDblBracketEnd"/>+        <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\](?:[^]]|\][^ &tab;]))++" endRegion="expression"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="FindExprDblBracketEnd">+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar context="#pop" char=")" lookAhead="1"/>+        <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>+        <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="|" char1="|"/>+        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[ &tab;;|&amp;)]))" endRegion="expression"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex">+        <DetectSpaces attribute="Normal Text" context="#pop!Regex"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="Regex">+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>+        <DetectChar attribute="Error" context="#stay" char=")"/>+        <Detect2Chars attribute="Operator" context="RegexChar" char="[" char1="^"/>+        <DetectChar attribute="Operator" context="RegexChar" char="["/>+        <IncludeRules context="FindRegex"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="ExprDblBracketSubRegex">+        <DetectSpaces attribute="Pattern" context="#stay"/>+        <DetectChar attribute="Operator" context="#pop" char=")"/>+        <Detect2Chars attribute="Operator" context="RegexSubChar" char="[" char1="^"/>+        <DetectChar attribute="Operator" context="RegexSubChar" char="["/>+        <IncludeRules context="FindRegex"/>+      </context>++      <context attribute="Pattern" lineEndContext="#stay" name="FindRegex">+        <DetectChar attribute="Operator" context="ExprDblBracketSubRegex" char="("/>+        <DetectChar attribute="Escape" context="RegexEscape" char="\"/>+        <DetectChar attribute="Parameter Expansion" context="RegexDup" char="{"/>+        <AnyChar attribute="Glob" context="#stay" String="^?+*.|"/>+        <IncludeRules context="FindStrings"/>+        <DetectChar context="RegexDispatchVariables" char="$" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="RegexDispatchVariables">+        <IncludeRules context="DispatchVariables"/>+        <DetectChar attribute="Operator" context="#pop" char="$"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="RegexEscape">+        <RegExpr attribute="Escape" context="#pop" String="x[0-9a-fA-F]{1,2}|[0-7]{1,3}|."/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="RegexDup">+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=","/>+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+      </context>++      <context attribute="Pattern" lineEndContext="#pop" name="RegexSubChar" fallthroughContext="#pop!RegexSubInChar">+        <AnyChar attribute="Pattern" context="#pop!RegexSubInChar" String="-]"/>+      </context>+      <context attribute="Pattern" lineEndContext="#pop" name="RegexSubInChar">+        <DetectSpaces attribute="Pattern" context="#stay"/>+        <IncludeRules context="RegexInChar"/>+      </context>++      <context attribute="Pattern" lineEndContext="#pop" name="RegexChar" fallthroughContext="#pop!RegexInChar">+        <AnyChar attribute="Pattern" context="#pop!RegexInChar" String="-]"/>+      </context>+      <context attribute="Pattern" lineEndContext="#pop" name="RegexInChar">+        <Detect2Chars context="RegexInCharEnd" char="-" char1="]" lookAhead="1"/>+        <DetectChar attribute="Operator" context="#stay" char="-"/>+        <DetectChar attribute="Escape" context="RegexEscape" char="\"/>+        <DetectChar context="RegexCharClassSelect" char="[" lookAhead="1"/>+        <DetectChar attribute="Operator" context="#pop" char="]"/>+        <AnyChar context="#pop" String="() &tab;" lookAhead="1"/>+      </context>+      <context attribute="Operator" lineEndContext="#stay" name="RegexInCharEnd">+        <DetectChar attribute="Pattern" context="#stay" char="-"/>+        <DetectChar attribute="Operator" context="#pop#pop" char="]"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCharClassSelect">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!RegexCharClass" char="[" char1=":"/>+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!RegexCollatingSymbols" char="[" char1="."/>+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!RegexEquivalenceClass" char="[" char1="="/>+        <DetectChar attribute="Pattern" context="#pop" char="["/>+      </context>++      <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCharClass">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char=":" char1="]"/>+        <DetectChar attribute="Error" context="#pop" char="]"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCollatingSymbols">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="." char1="]"/>+        <DetectChar attribute="Error" context="#pop" char="]"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexEquivalenceClass">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="=" char1="]"/>+        <DetectChar attribute="Error" context="#pop" char="]"/>+      </context>++      <!-- SubShell consumes shell input till ) -->+      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell" fallthroughContext="Command">+        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell"/>+        <IncludeRules context="Start"/>+      </context>++      <!-- Assign consumes an expression till EOL or whitespace -->+      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthroughContext="#pop!RegularAssign">+        <DetectChar attribute="Variable" context="#pop!AssignArray" char="("/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="RegularAssign" fallthroughContext="#pop">+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+        <IncludeRules context="NormalOption"/>+      </context>++      <!-- AssignArray consumes everything till ), marking assignments -->+      <context attribute="Normal Text" lineEndContext="#stay" name="AssignArray" fallthroughContext="NormalOption">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Comment" context="Comment" char="#"/>+        <DetectChar attribute="Variable" context="#pop" char=")"/>+        <DetectChar context="AssignArrayKey" char="[" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="AssignArrayBackq" char="`"/>+        <AnyChar attribute="Error" context="#stay" String="&symbolseps;"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArrayKey" fallthroughContext="#pop">+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>+        <DetectChar attribute="Variable" context="#pop" char="="/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="AssignArrayBackq" fallthroughContext="Command">+        <DetectChar attribute="Backquote" context="#pop!NormalOption" char="`"/>+        <DetectChar attribute="Comment" context="CommentBackq" char="#"/>+        <IncludeRules context="Start"/>+      </context>++      <!-- Subscript consumes anything till ], marks as Variable -->+      <context attribute="Normal Text" lineEndContext="#stay" name="Subscript" fallthroughContext="Subscript2">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>+        <AnyChar attribute="Number" context="#stay" String="0123456789-"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="Subscript2">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop#pop" char="]"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=","/>+        <IncludeRules context="FindGroupPattern"/>+        <IncludeRules context="FindStrings"/>+        <DetectChar context="VariableOrSubscriptPos" char="$" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <AnyChar attribute="Operator" context="#pop" String="@+-!~*/%&lt;>=&amp;^|?:"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableOrSubscriptPos">+        <IncludeRules context="DispatchVariables"/>+        <DetectChar attribute="Number" context="#pop" char="$"/>+      </context>++      <!-- FunctionDef consumes a name, possibly with (), marks as Function -->+      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthroughContext="#pop">+        <Detect2Chars attribute="Operator" context="#pop" char="(" char1=")"/>+        <DetectSpaces attribute="Normal Text" context="FunctionNameStart"/>+      </context>+      <context attribute="Function" lineEndContext="#pop" name="FunctionNameStart" fallthroughContext="#pop!FunctionName">+        <AnyChar context="#pop#pop" String="&symbolseps;#" lookAhead="1"/>+        <DetectChar context="FunctionNameStartMaybeBraceExpansion" char="{" lookAhead="1"/>+      </context>+      <context attribute="Function" lineEndContext="#pop" name="FunctionName">+        <AnyChar context="#pop" String=" &tab;(" lookAhead="1"/>+        <IncludeRules context="FindWord"/>+        <DetectChar context="FunctionNameMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>+      </context>+      <context attribute="Function" lineEndContext="#pop" name="FunctionNameRecBrace" fallthroughContext="#pop">+        <IncludeRules context="FindWord"/>+        <DetectChar context="FunctionNameMaybeBraceExpansion" char="{" lookAhead="1"/>+        <DetectChar attribute="Function" context="#pop" char="}"/>+      </context>+      <context attribute="Function" lineEndContext="#pop" name="FunctionNameStartMaybeBraceExpansion">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="Keyword" context="#pop#pop#pop!Group" char="{"/>+      </context>+      <context attribute="Function" lineEndContext="#pop" name="FunctionNameMaybeBraceExpansion">+        <IncludeRules context="DispatchBraceExpansion"/>+        <DetectChar attribute="Function" context="#pop!FunctionNameRecBrace" char="{"/>+      </context>++      <!-- Case is called after the case keyword is encoutered. We handle this because of+           the lonely closing parentheses that would otherwise disturb the expr matching -->+      <context attribute="Normal Text" lineEndContext="#stay" name="Case">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Keyword" context="#pop!CaseAlt" char="{"/>+        <WordDetect attribute="Keyword" context="#pop!CaseIn" String="in"/>+        <IncludeRules context="FindWord"/>+        <DetectIdentifier attribute="Normal Text" context="#stay"/>+      </context>++      <!-- CaseIn is called when the construct 'case ... in' has been found. -->+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseIn" fallthroughContext="CasePattern">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Keyword" context="CaseClosedPattern" char="("/>+        <DetectChar attribute="Comment" context="Comment" char="#"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="CasePattern">+        <WordDetect attribute="Control Flow" context="#pop#pop" String="esac" endRegion="case"/>+        <IncludeRules context="CaseClosedPattern"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="CaseClosedPattern">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Keyword" context="#pop!CaseExpr" char=")" beginRegion="caseexpr"/>+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>+        <DetectChar attribute="Keyword" context="#stay" char="|"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindPattern"/>+        <DetectIdentifier attribute="Pattern" context="#stay"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#stay" name="CaseAlt" fallthroughContext="CasePattern">+        <DetectSpaces attribute="Normal Text" context="#stay"/>+        <DetectChar attribute="Keyword" context="CasePattern" char="("/>+        <DetectChar attribute="Keyword" context="#pop!CaseAltEnd" char="}" endRegion="caseexpr" lookAhead="1"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseAltEnd">+        <DetectChar attribute="Keyword" context="#pop" char="}" endRegion="case"/>+      </context>++      <!-- CaseExpr eats shell input till ;; / ;& / ;| -->+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseExpr" fallthroughContext="Command">+        <Detect2Chars attribute="Control Flow" context="#pop" char=";" char1="|" endRegion="caseexpr"/>+        <Detect2Chars attribute="Control Flow" context="#pop" char=";" char1=";" endRegion="caseexpr"/>+        <Detect2Chars attribute="Control Flow" context="#pop" char=";" char1="&amp;" endRegion="caseexpr"/>+        <WordDetect context="#pop" String="esac" endRegion="caseexpr" lookAhead="1"/>+        <DetectChar context="#pop" char="}" lookAhead="1"/>+        <IncludeRules context="Start"/>+      </context>++      <!-- ExprGlobParen is called after a ( is encountered in a argument -->+      <context attribute="Glob Flag" lineEndContext="#pop" name="ExprGlobParen" fallthroughContext="#pop">+        <Detect2Chars attribute="Glob Flag" context="#pop!GlobPatFlag" char="(" char1="#"/>+        <RegExpr attribute="Glob" context="#pop!ExtGlobPattern" String="\((?=&ispattern;)"/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier" char="("/>+      </context>+      <context attribute="Glob Flag" lineEndContext="#pop" name="ExprGlobParenThenPath" fallthroughContext="#pop">+        <Detect2Chars attribute="Glob Flag" context="#pop!GlobPatFlagThenPath" char="(" char1="#"/>+        <RegExpr attribute="Glob" context="#pop!ExtGlobPatternThenPath" String="\((?=&ispattern;)"/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier" char="("/>+      </context>+      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier">+        <AnyChar attribute="Glob Flag" context="#stay" String="/F.@=p*%bcrwxAIERWXsStUG^-MTNDn"/>+        <AnyChar attribute="Glob Flag" context="GlobQualifier_e" String="eP"/>+        <AnyChar attribute="Glob Flag" context="GlobQualifier_u" String="ug"/>+        <AnyChar attribute="Glob Flag" context="GlobQualifier_a" String="amc"/>+        <AnyChar attribute="Glob Flag" context="GlobQualifier_o" String="oO"/>+        <DetectChar attribute="Glob Flag" context="GlobQualifier_f" char="f"/>+        <DetectChar attribute="Glob Flag" context="GlobQualifier_+" char="+"/>+        <DetectChar attribute="Glob Flag" context="GlobQualifier_d" char="d"/>+        <DetectChar attribute="Glob Flag" context="GlobQualifier_L" char="L"/>+        <DetectChar attribute="Glob Flag" context="GlobQualifier_Y" char="Y"/>+        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>++        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!GlobModifier" char=":"/>+        <DetectChar attribute="Glob Flag" context="#pop" char=")"/>+      </context>++      <context attribute="Normal Text" lineEndContext="#pop" name="GlobQualifier_o" fallthroughContext="#pop">+        <AnyChar attribute="Normal Text" context="#stay" String="nLlamcdN"/>+      </context>++      <context attribute="Number" lineEndContext="#pop" name="GlobQualifier_Y" fallthroughContext="#pop">+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier_L" fallthroughContext="#pop">+        <AnyChar attribute="Normal Text" context="#stay" String="kKmMpPgGtT"/>+        <AnyChar attribute="Number" context="#pop!GlobQualifier_Y" String="-+0123456789"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier_a" fallthroughContext="#pop">+        <AnyChar attribute="Normal Text" context="#stay" String="Mwhmsd"/>+        <AnyChar attribute="Number" context="#pop!GlobQualifier_Y" String="-+0123456789"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier_+" fallthroughContext="#pop">+        <RegExpr attribute="Function" context="#pop" String="[^&_fragpathseps;=,\[]+"/>+      </context>++      <context attribute="Path" lineEndContext="#pop" name="GlobQualifier_d">+        <AnyChar context="#pop" String=")," lookAhead="1"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier_u">+        <AnyChar attribute="Number" context="#pop!GlobQualifier_Y" String="0123456789"/>+        <IncludeRules context="GlobQualifier_e"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier_f" fallthroughContext="#pop">+        <AnyChar attribute="Number" context="#pop!GlobQualifier_fo" String="0123456789=+-"/>+        <DetectChar attribute="Glob" context="#pop!GlobQualifier_fo" char="?"/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier_f[" char="["/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier_f&lt;" char="&lt;"/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier_f{" char="{"/>+        <RegExpr attribute="Glob Flag" context="#pop!GlobQualifier_fx" String="(.)"/>+      </context>+      <context attribute="Number" lineEndContext="#pop" name="GlobQualifier_fo" fallthroughContext="#pop">+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+        <DetectChar attribute="Glob" context="#stay" char="?"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_f[">+        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Glob Flag" context="#pop" char="]"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_f&lt;">+        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Glob Flag" context="#pop" char=">"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_f{">+        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Glob Flag" context="#pop" char="}"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_fx">+        <DetectChar attribute="Operator" context="#stay" char=","/>+        <DetectChar attribute="Glob Flag" context="#pop" char="1" dynamic="1"/>+      </context>++      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobQualifier_e" fallthroughContext="#pop">+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier_e[" char="["/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier_e&lt;" char="&lt;"/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier_e{" char="{"/>+        <RegExpr attribute="Glob Flag" context="#pop!GlobQualifier_ex" String="(.)"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="IncGlobQualifier_e">+        <IncludeRules context="FindStrings"/>+        <DetectChar context="RegularVariable" char="$" lookAhead="1"/>+        <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_e[">+        <DetectChar attribute="Glob Flag" context="#pop" char="]"/>+        <IncludeRules context="IncGlobQualifier_e"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_e&lt;">+        <DetectChar attribute="Glob Flag" context="#pop" char=">"/>+        <IncludeRules context="IncGlobQualifier_e"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_e{">+        <DetectChar attribute="Glob Flag" context="#pop" char="}"/>+        <IncludeRules context="IncGlobQualifier_e"/>+      </context>+      <context attribute="Normal Text" lineEndContext="#stay" name="GlobQualifier_ex">+        <DetectChar attribute="Glob Flag" context="#pop" char="1" dynamic="1"/>+        <IncludeRules context="IncGlobQualifier_e"/>+      </context>++      <!-- GlobPatFlag is called after a (# is encountered -->+      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobPatFlag" fallthroughContext="#pop">+        <IncludeRules context="IncGlobPatFlag"/>+        <DetectChar attribute="Glob Flag" context="#pop" char=")"/>+      </context>+      <context attribute="Glob Flag" lineEndContext="#pop" name="GlobPatFlagThenPath" fallthroughContext="#pop">+        <IncludeRules context="IncGlobPatFlag"/>+        <DetectChar attribute="Glob Flag" context="#pop!PathThenPop" char=")"/>+      </context>+      <context attribute="Glob Flag" lineEndContext="#pop" name="IncGlobPatFlag" fallthroughContext="#pop">+        <AnyChar attribute="Glob Flag" context="#stay" String="ilIbBcmMaseuU,"/>+        <AnyChar attribute="Number" context="#stay" String="0123456789"/>+        <DetectChar attribute="Glob Flag" context="#pop!GlobQualifier" char="q"/>+      </context>++      <!-- GlobModifier is called after a : is encountered in a GlobQualifier -->+      <context attribute="Parameter Expansion" lineEndContext="#pop" name="GlobModifier">+        <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=":"/>+        <AnyChar attribute="Parameter Expansion" context="VarBraceModifier_h" String="ht"/>+        <DetectChar attribute="Parameter Expansion" context="GlobModifier_s" char="s"/>+        <Detect2Chars attribute="Parameter Expansion" context="GlobModifier_s" char="g" char1="s"/>+        <DetectChar attribute="Glob Flag" context="#pop" char=")"/>+      </context>+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="GlobModifier_s" fallthroughContext="#pop">+        <DetectChar attribute="Error" context="#pop#pop" char=")"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!GlobModifier_s_PatPrefix" char="/"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="GlobModifier_s_PatPrefix" fallthroughContext="#pop!GlobModifier_s_Pat">+        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!GlobModifier_s_Pat" char="#" char1="%"/>+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!GlobModifier_s_Pat" String="#%"/>+      </context>+      <context attribute="Pattern" lineEndContext="#stay" name="GlobModifier_s_Pat">+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!GlobModifier_s_Rep" char="/"/>+        <IncludeRules context="FindWord"/>+        <IncludeRules context="FindSubPattern"/>+        <DetectChar attribute="Error" context="#pop#pop" char=")"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#stay" name="GlobModifier_s_Rep">+        <DetectChar attribute="Glob Flag" context="#pop#pop" char=")"/>+        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="/"/>+        <DetectChar attribute="String DoubleQ" context="GlobModifier_s_RecursiveRep" char="("/>+        <IncludeRules context="FindWord"/>+      </context>+      <context attribute="String DoubleQ" lineEndContext="#stay" name="GlobModifier_s_RecursiveRep">+        <DetectChar attribute="String DoubleQ" context="#pop" char=")"/>+        <DetectChar attribute="String DoubleQ" context="GlobModifier_s_RecursiveRep" char="("/>+        <IncludeRules context="FindWord"/>+      </context>++    </contexts>++    <itemDatas>+      <itemData name="Normal Text"    defStyleNum="dsNormal"/>+      <itemData name="Comment"        defStyleNum="dsComment"/>+      <itemData name="Keyword"        defStyleNum="dsKeyword"/>+      <itemData name="Control"        defStyleNum="dsKeyword"/>+      <itemData name="Control Flow"   defStyleNum="dsControlFlow"/>+      <itemData name="Builtin"        defStyleNum="dsBuiltIn"/>+      <itemData name="Command"        defStyleNum="dsFunction"/>+      <itemData name="OtherCommand"   defStyleNum="dsExtension"/>+      <itemData name="Redirection"    defStyleNum="dsOperator"/>+      <itemData name="Escape"         defStyleNum="dsDataType"/>+      <itemData name="String SingleQ" defStyleNum="dsString"/>+      <itemData name="String DoubleQ" defStyleNum="dsString"/>+      <itemData name="Here Doc"       defStyleNum="dsString"/>+      <itemData name="Backquote"      defStyleNum="dsKeyword"/>+      <itemData name="String Transl." defStyleNum="dsString"/>+      <itemData name="String Escape"  defStyleNum="dsDataType"/>+      <itemData name="Variable"       defStyleNum="dsVariable"/>+      <itemData name="Expression"     defStyleNum="dsOthers"/>+      <itemData name="Function"       defStyleNum="dsFunction"/>+      <itemData name="Pattern"        defStyleNum="dsSpecialString"/>+      <itemData name="Path"           defStyleNum="dsNormal"/>+      <itemData name="Glob"           defStyleNum="dsPreprocessor"/>+      <itemData name="Glob Flag"      defStyleNum="dsOperator"/>+      <itemData name="Option"         defStyleNum="dsAttribute"/>+      <itemData name="Hex"            defStyleNum="dsBaseN"/>+      <itemData name="Number"         defStyleNum="dsDecVal"/>+      <itemData name="Base"           defStyleNum="dsDataType"/>+      <itemData name="BaseN"          defStyleNum="dsBaseN"/>+      <itemData name="File Descriptor" defStyleNum="dsDecVal"/>+      <itemData name="Parameter Expansion" defStyleNum="dsVariable"/>+      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator"/>+      <itemData name="Operator"       defStyleNum="dsOperator"/>+      <itemData name="Error"          defStyleNum="dsError"/>+    </itemDatas>+  </highlighting>+  <general>+    <comments>+      <comment name="singleLine" start="#"/>+    </comments>+    <keywords casesensitive="1" weakDeliminator="^%#[]$._:-/" additionalDeliminator="`"/>   </general> </language> <!-- kate: replace-tabs on; indent-width 2; -->