skylighting-core 0.10.5.2 → 0.11
raw patch · 39 files changed
+5777/−1440 lines, 39 files
Files
- changelog.md +20/−0
- skylighting-core.cabal +1/−1
- src/Regex/KDE/Compile.hs +18/−3
- src/Regex/KDE/Match.hs +49/−32
- src/Regex/KDE/Regex.hs +2/−2
- src/Skylighting/Format/HTML.hs +1/−0
- test/expected/abc.julia.native +22/−13
- test/expected/archive.rhtml.native +9/−3
- test/test-skylighting.hs +10/−4
- xml/agda.xml +3/−3
- xml/bash.xml +100/−20
- xml/bibtex.xml +2/−2
- xml/cmake.xml +131/−3
- xml/d.xml +2/−2
- xml/doxygen.xml +2/−2
- xml/glsl.xml +276/−61
- xml/gnuassembler.xml +2293/−273
- xml/haskell.xml +33/−20
- xml/ini.xml +15/−4
- xml/isocpp.xml +35/−48
- xml/j.xml +2/−2
- xml/java.xml +3/−1
- xml/javascript.xml +19/−9
- xml/julia.xml +131/−30
- xml/latex.xml +2/−21
- xml/lex.xml +2/−2
- xml/markdown.xml +7/−7
- xml/perl.xml +10/−3
- xml/php.xml +45/−2
- xml/prolog.xml +1/−2
- xml/python.xml +218/−62
- xml/rhtml.xml +11/−16
- xml/roff.xml +2/−2
- xml/rust.xml +24/−20
- xml/sed.xml +1/−2
- xml/swift.xml +18/−3
- xml/xml.xml +10/−9
- xml/xslt.xml +233/−146
- xml/zsh.xml +2014/−605
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 "_;."(){}@"> <!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;<>|&;])">+ <!ENTITY eoexpr "(?=$|[ &tab;<>|&;)])"> <!ENTITY substseps "${'"`\\"> <!ENTITY symbolseps "<>|&;()"> <!-- 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;<>|&;{}\\`'"$"> <!ENTITY _brace_noexpansion "\{[^&_braceexpansion_spe;,]*+\}"> <!ENTITY _braceexpansion_var "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">@@ -28,9 +35,11 @@ <!ENTITY braceexpansion "{&_braceexpansion;"> <!ENTITY heredocq "(?|"([^"]+)"|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">++ <!ENTITY arithmetic_as_subshell "\(((?:[^`'"()$]++|\$\{[^`'"(){}$]+\}|\$(?=[^{`'"()])|`[^`]*+`|\((?1)(?:[)]|(?=['"])))++)(?:[)](?=$|[^)])|["'])"> ]> -<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="&" char1="&"/> <Detect2Chars attribute="Control" context="#stay" char="|" char1="|"/> <AnyChar attribute="Operator" context="#stay" String="+-!~*/%<>=&^|?:"/>+ <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="&" char1="&"/>@@ -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=""[^"]*""/>+ <RangeDetect attribute="String" context="#stay" char=""" char1="""/> <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="+-/*%<>[]()^|&~=!:;,?;" /> </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=""" />- <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="!#%&*()+,-<=>?/:[]^{|}~" />- </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=""" />- </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=""" />+ <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="!#%&*()+,-<=>?/:[]^{|}~" />+ </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=""" />+ </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 "\-!#\$%&\*\+/<=>\?\@\^\|~\.:"> ]>-<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="--[\-]*(?=[^!#\$%&\*\+\./<=>\?@\\^\|\-~:]|$)" />- <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="(::|=>|\->|<\-|=)(?![&symbolops;])|∷⇒→←∀∃" />+ <RegExpr attribute="Special" context="#stay" String="(::|=>|->|<-|=)(?![&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=""" />+ <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=""" /> <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; 	" />@@ -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∫(\.((∫&exp;?+|&exp;)[fFdD]?\b|[fFdD]\b)?|&exp;[fFdD]?\b|[fFdD]\b)|\.∫&exp;?[fFdD]?\b)"> <!ENTITY hexfloat "\b0[xX](&hex;\.?+&hex;?+|\.&hex;?)[pP][-+]?∫[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.,(){}\[\];:%'"&$=/?\|^#@">+ <!ENTITY function_disallowed_first_char "0-9!&function_disallowed_chars;">+ <!ENTITY function_begin_boundary "(?:(?<=[&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>π</item> <item>e</item>+ <item>ℯ</item> <item>catalan</item> <item>eulergamma</item>+ <item>ɣ</item> <item>golden</item>+ <item>φ</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=".>>>="/> <StringDetect context="#stay" attribute="Operator" String=">>>="/>+ <StringDetect context="#stay" attribute="Operator" String=".>>="/> <StringDetect context="#stay" attribute="Operator" String=">>="/>+ <StringDetect context="#stay" attribute="Operator" String=".<<="/> <StringDetect context="#stay" attribute="Operator" String="<<="/>+ <StringDetect context="#stay" attribute="Operator" String=".>>>"/> <StringDetect context="#stay" attribute="Operator" String=">>>"/>+ <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=".>="/> <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=".*="/> <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=".⊻="/>+ <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="!"/>+ <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=".÷="/>+ <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="≤"/>+ <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="/" 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="^" 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="⊻" char1="="/> + <!-- subtype operator -->+ <Detect2Chars context="type-annotation" attribute="Operator" char="<" 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="(∫(\.∫)?|\.∫)([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="*+-/\&|<>~$!^=,;:@"/>+ <AnyChar context="#stay" attribute="Operator" String="*+-/\&|<>~$!^=,;:@⊻%÷\≠≤≥"/> </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=",;()=:><&%*?[]^" 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=",;()=:><&%*?[]^" 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 "×"> <!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="•" 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="•" 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="<" beginRegion="Wordlist" />+ <RegExpr attribute="Operator" context="quote_word" String="([^a-zA-Z0-9_\s[\]{}()\<>])" 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=">" />+ <DetectChar attribute="Operator" context="#pop#pop#pop" char=">" 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=">" lookAhead="true" /> <AnyChar attribute="Other" context="#stay" String=";,?:" /> + <Detect2Chars attribute="Attribute" context="Attribute" char="#" char1="["/> <IncludeRules context="FindComment"/> <StringDetect attribute="Operator" context="#stay" String="<=>" />@@ -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])?(?::(?:[^}]?[<>=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}">++ <!ENTITY rawString "(?:ru|u?r|)(?:'(?:[^']++|\\')*+'|"(?:[^"]++|\\")*+")">+ <!ENTITY formatString "(?:r?f|fr?)(?:'(?:[^'{]++|\\'|\{\{|\{[^}]++\})*+'|"(?:[^"]++|\\"|\{\{|\{[^}]*+\})*+")">+ <!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="+*/%\|=;\!<>!^&~-@" context="#stay"/>+ <AnyChar attribute="Operator" String="+*/%\|=;<>!^&~-@" 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'"~]|\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)?['"]" 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?"""" 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?"" 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?"""" 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?"" 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"""" 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"" 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)"""" 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)"" 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"""" 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"" 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"""" 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"" 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)"""" 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)"" 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)"""" 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)"" 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"""" 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"" 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)"""" 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)"" 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?"""" 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?"" 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)"""" 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)"" insensitive="true" firstNonSpace="true" context="Single Q-comment"/>+ <!-- fast path -->+ <RegExpr String="(?:u|r|ur)?['"]" 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?)"""" 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?)"" 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=""""" 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=""" 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="\\[\\'"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="\\[\\'"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="\\[\\'"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])?(?::(?:[^}]?[<>=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}" context="#pop"/>+ <!-- format specifiers: [[fill]align][sign][#][0][minimumwidth][.precision][type] -->+ <RegExpr attribute="String Substitution" String="(?:![rsa])?(?::(?:[^}]?[<>=^])?[ +-]?#?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]++|\\(?=[^\\'"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=""""" 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="""/> <IncludeRules context="stringformat"/> <StringDetect attribute="Raw String" String=""""" 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=""""" 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="""/> <IncludeRules context="stringinterpolation"/> <StringDetect attribute="Raw F-String" String=""""" 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]++|\\(?=[^\\'"abfnrtvx0-7])|\\x(?![0-9a-fA-F]{2})|"(?!""))++"/>+ <IncludeRules context="bytesescape"/>+ <StringDetect attribute="B-String" String=""""" 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]++|\\.?|"(?!""))++"/>+ <StringDetect attribute="Raw B-String" String=""""" 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]++|\\(?=[^\\'"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=""" 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="""/> <IncludeRules context="stringformat"/> <DetectChar attribute="Raw String" char=""" 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=""" 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="""/> <IncludeRules context="stringinterpolation"/> <DetectChar attribute="Raw F-String" char=""" 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]++|\\(?=[^\\'"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 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=""" 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="/(?!>)" />- <RegExpr attribute="Value" context="#stay" String="[^/><"'\s]" />+ <RegExpr attribute="Value" context="#stay" String="/(?!>)|[^/><"'\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="&" char1="&" context="#stay"/> <Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>- <RegExpr attribute="Operator" String="\s[\?\:\%/]\s" context="#stay"/>- <RegExpr attribute="Operator" String="[|&<>\^\+*~\-=]+" 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|[|&<>\^\+*~\-=]+|\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="<" /> <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="<" />++ <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="<" />+ <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 "&(?:#[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="<(?=(&name;))" beginRegion="element" /> <StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" /> <StringDetect attribute="CDATA" context="CDATAStart" String="<![CDATA[" lookAhead="true" />- <RegExpr attribute="Doctype Symbols" context="DoctypeTagName" String="<!(?=DOCTYPE\s+)" beginRegion="doctype" />+ <RegExpr attribute="Doctype Symbols" context="DoctypeTagName" String="<!(?=DOCTYPE(\s|$))" beginRegion="doctype" /> <IncludeRules context="FindProcessingInstruction" />- <RegExpr attribute="Element Symbols" context="ElementTagName" String="<(?=(&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 "&(#[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="<!--" beginRegion="comment"/>- - <StringDetect attribute="CDATA" context="CDATA" String="<![CDATA[" beginRegion="cdata" />- <RegExpr attribute="Doctype" context="Doctype" String="<!DOCTYPE\s+" beginRegion="doctype" />- <RegExpr attribute="Processing Instruction" context="PI" String="<\?[\w:_-]*" beginRegion="pi" />+ <context name="normalText" attribute="Normal Text" lineEndContext="#stay">+ <DetectSpaces />+ <DetectIdentifier /> - <DetectChar attribute="Tag" context="tagname" char="<" />- <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />- </context>+ <Detect2Chars context="specialtag" char="<" char1="!" lookAhead="1"/>+ <Detect2Chars context="pitag" char="<" char1="?" lookAhead="1"/>+ <Detect2Chars attribute="Tag Symbols" context="ElementEndTagName" char="<" char1="/" endRegion="element" />+ <DetectChar attribute="Tag Symbols" context="ElementTagName" char="<" beginRegion="element" /> + <IncludeRules context="FindEntityRefs" />+ </context> - - <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">- <DetectSpaces />- <DetectIdentifier />- <StringDetect attribute="CDATA" context="#pop" String="]]>" endRegion="cdata" />- <StringDetect attribute="Entity Reference" context="#stay" String="]]&gt;" />- </context>- - <context name="PI" attribute="Normal Text" lineEndContext="#stay">- <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1=">" endRegion="pi" />- </context>- - <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">- <DetectChar attribute="Doctype" context="#pop" char=">" 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="<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />- <StringDetect attribute="Comment" context="comment" String="<!--" beginRegion="comment" />- <RegExpr attribute="Processing Instruction" context="PI" String="<\?[\w:_-]*" beginRegion="pi" />- <IncludeRules context="FindPEntityRefs" />- </context>- - <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">- <DetectChar attribute="Doctype" context="#pop" char=">" />- <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char=""" />- <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="'" />- </context>- - <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">- <DetectChar attribute="Value" context="#pop" char=""" />- <IncludeRules context="FindPEntityRefs" />- </context>- - <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">- <DetectChar attribute="Value" context="#pop" char="'" />- <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="&%" />- </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=">" />- </context>- - <context name="attributes" attribute="Attribute" lineEndContext="#stay">- <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1=">" />- <DetectChar attribute="Tag" context="#pop#pop" char=">" />- <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="<\?(?=([\w:_-]*))" beginRegion="pi" />+ <DetectChar attribute="Invalid" context="#pop" char="<"/>+ </context> - <context name="attrValue" attribute="Invalid" lineEndContext="#stay">- <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1=">" />- <DetectChar attribute="Invalid" context="#pop#pop#pop" char=">" />- <DetectChar attribute="Attribute Value" context="string" char=""" />- <DetectChar attribute="Attribute Value" context="sqstring" char="'" />- </context>+ <context name="specialtag" attribute="Normal Text" lineEndContext="#stay">+ <StringDetect attribute="Comment" context="#pop!comment" String="<!--" beginRegion="comment"/>+ <StringDetect attribute="CDATA" context="#pop!CDATAStart" String="<![CDATA[" lookAhead="1" />+ <RegExpr attribute="Doctype Symbols" context="#pop!DoctypeTagName" String="<!(?=DOCTYPE(\s|$))" beginRegion="doctype" />+ <DetectChar attribute="Invalid" context="#pop" char="<"/>+ </context> - <context name="xattributes" attribute="Attribute" lineEndContext="#stay">- <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1=">" />- <DetectChar attribute="Tag" context="#pop#pop" char=">" />- <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="&<" />+ </context> - <context name="xattrValue" attribute="Invalid" lineEndContext="#stay">- <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1=">" />- <DetectChar attribute="Invalid" context="#pop#pop#pop" char=">" />- <DetectChar attribute="XPath" context="xpath" char=""" />- <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=""" />- <IncludeRules context="detectEntRef" />- </context>+ <context name="CDATAStart" attribute="Normal Text" lineEndContext="#pop">+ <StringDetect attribute="CDATA Symbols" context="#stay" String="<![" 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="]]>" endRegion="cdata" />+ <StringDetect attribute="Entity Reference" context="#stay" String="]]&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="-->" endRegion="comment" />- <RegExpr attribute="Invalid" context="#stay" String="-(-(?!->))+" />- <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=">" 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=""" />- <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=""" />- <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=""" />- <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=">" 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="<!(?=(ELEMENT|ENTITY|ATTLIST|NOTATION)\b)" />+ <StringDetect attribute="Comment" context="comment" String="<!--" beginRegion="comment" />+ <RegExpr attribute="PI Symbols" context="PI TagName" String="<\?(?=([\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=">" />+ <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char=""" />+ <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="'" />+ </context>++ <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">+ <DetectChar attribute="Value" context="#pop" char=""" />+ <IncludeRules context="FindPEntityRefs" />+ </context>++ <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">+ <DetectChar attribute="Value" context="#pop" char="'" />+ <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="&%" />+ </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=">" />+ <DetectSpaces/>+ </context>++ <context name="attributes" attribute="Attribute" lineEndContext="#stay">+ <DetectSpaces attribute="Attribute" />+ <Detect2Chars attribute="Tag Symbols" context="#pop" char="/" char1=">" endRegion="element" />+ <DetectChar attribute="Tag Symbols" context="#pop" char=">" />+ <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=">" />+ <DetectChar attribute="Invalid" context="#pop#pop#pop" char=">" />+ <DetectChar attribute="Attribute Value" context="string" char=""" />+ <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=">" endRegion="element" />+ <DetectChar attribute="Tag Symbols" context="#pop#pop" char=">" />+ <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=">" />+ <DetectChar attribute="Invalid" context="#pop#pop#pop" char=">" />+ <DetectChar attribute="XPath" context="xpath" char=""" />+ <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=""" />+ <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="-->" endRegion="comment" />+ <RegExpr attribute="Invalid" context="#stay" String="-(-(?!->))+" />+ <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=""" />+ <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=""" />+ <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=""" />+ <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_:#%@-]*">- <!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">- <!ENTITY word "[^|&;()<>\s]+"> <!-- see man bash -->- <!ENTITY eos "(?=($|\s))"> <!-- eol or space following -->- <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->- <!ENTITY pathpart "([\w_@.%*?+-]|\\ )"> <!-- 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*<<<" />- <!-- handle here document -->- <Detect2Chars attribute="Redirection" context="HereDoc" char="<" char1="<" lookAhead="true" />- <!-- handle process subst -->- <Detect2Chars attribute="Redirection" context="ProcessSubst" char="<" char1="(" />- <Detect2Chars attribute="Redirection" context="ProcessSubst" char=">" char1="(" />- <!-- handle redirection -->- <RegExpr attribute="Redirection" context="#stay" String="([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)" />- <!-- handle &, &&, | and || -->- <RegExpr attribute="Control" context="#stay" String="([|&])\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="\\[][;\\$`{}()|&<>* ]" />- <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/):;$`'"]|$))" />- <!-- 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=""" />- <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />- <DetectChar attribute="String DoubleQ" context="StringDQ" char=""" />- <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />- <Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1=""" />- </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="$(<" />- <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="([!=]=?|[><])(?=\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;|&]))" endRegion="expression" />- <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[\s;|&]))" 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;|&]))" endRegion="expression" />- <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&]))" 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="[^]})|;`&><]" />- </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=""" />- <RegExpr attribute="String Escape" context="#stay" String="\\[`"\\$\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="(<<-\s*"(&word;)")" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocIQ" String="(<<-\s*'(&word;)')" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocIQ" String="(<<-\s*\\(&word;))" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocINQ" String="(<<-\s*(&word;))" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocQ" String="(<<\s*"(&word;)")" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocQ" String="(<<\s*'(&word;)')" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocQ" String="(<<\s*\\(&word;))" lookAhead="true" />- <RegExpr attribute="Redirection" context="HereDocNQ" String="(<<\s*(&word;))" lookAhead="true" />- <Detect2Chars attribute="Redirection" context="#pop" char="<" char1="<" /><!-- 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 "	">+ <!ENTITY funcname "[^&_fragpathseps;=]*+">+ <!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">+ <!ENTITY eos "(?=$|[ &tab;])"> <!-- eol or space following -->+ <!ENTITY eoexpr "(?=$|[ &tab;<>|&;)])">++ <!ENTITY substseps "${}'"`\\">+ <!ENTITY symbolseps "<>|&;()">+ <!ENTITY wordseps " &tab;&symbolseps;">+ <!ENTITY wordseps_or_extglog " &tab;>|&;)`"> <!-- 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;|(?=[*?#^~([]|<[0-9]*-[0-9]*>)">+ <!ENTITY pathpart "(?:~(?:/&path;|(?=[&wordseps;]|$))|&fragpath;(?:&assumepath;|(?=&fragpathesc;&assumepath;))|\.\.?(?=[&wordseps;]|$))">++ <!ENTITY _braceexpansion_spe " &tab;<>|&;{}\\`'"$">+ <!ENTITY _brace_noexpansion "\{[^&_braceexpansion_spe;,]*+\}">+ <!ENTITY _braceexpansion_var "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">+ <!ENTITY _braceexpansion_string "'[^']*'|"([^"\`]*+|`[^`]*`)*+"">+ <!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!#$%*+,-./:=?@^_~]|&_bracerangevar;|\\.|'[^'\\]'|"(\\.|[^"\\`])"|`[^`]*`)">+ <!ENTITY bracerangeexpansion "{(?=&_bracerangeoperand;\.\.&_bracerangeoperand;(\.\.-?([0-9]+|&_bracerangevar;))?})">++ <!ENTITY nobraceexpansion "(?:{([^&_braceexpansion_spe;/{},]++|(?R))+?})+">+ <!ENTITY nogroupend "(?:}+(?:[^&_fragpathseps;]|(?=[}$'"`\\])))">++ <!-- 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 ":(?:[^:'`"\\|()]*+(?:&_ispattern_q;)?)*(?::|(?=[|()]))">+ <!ENTITY _ispattern_ugeP_1 "\[(?:[^]'`"\\|()]*+(?:&_ispattern_q;)?)*(?:\](?=[|()]))">+ <!ENTITY _ispattern_ugeP_2 "{(?:[^}'`"\\|()]*+(?:&_ispattern_q;)?)*(?:}(?=[|()]))">+ <!ENTITY _ispattern_ugeP_3 "<(?:[^>'`"\\|()]*+(?:&_ispattern_q;)?)*(?:>|(?=[|()]))">+ <!ENTITY _ispattern_ugeP_4 "([^&wordseps;{}'"`\\])(?:(?:(?!\1)[^'`"\\\1|()])*+(?:&_ispattern_q;)?)*(?:\1|(?=[|()]))">+ <!ENTITY _ispattern_dq ""(?:[^"\\`]*+(?:`[^`]`|\\.)?)*"">+ <!ENTITY _ispattern_q "\\.|'[^']*'|`[^`]`|&_ispattern_dq;">+ <!ENTITY _ispattern_check "(?:\)(?:[^ &tab;}<>|&;)]|&nogroupend;)|[ &tab;|(]|$)">+ <!ENTITY ispattern "(?:[^ &tab;\\'"|()`ugeP]*+(?:&_ispattern_ugN;|&_ispattern_ugeP;|&_ispattern_q;)?)*&_ispattern_check;">++ <!ENTITY heredocq "(?|"([^"]+)"|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">++ <!ENTITY arithmetic_as_subshell "\(((?:[^`'"()$]++|\$\{[^`'"(){}$]+\}|\$(?=[^{`'"()])|`[^`]*+`|\((?1)(?:[)]|(?=['"])))++)(?:[)](?=$|[^)])|["'])">++ <!ENTITY int "(?:[0-9]++[_0-9]*+)">+ <!ENTITY exp "(?:[eE][-+]?∫)">+]>+<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&>" char="&" char1=">"/>+ <Detect2Chars attribute="Control" context="#stay" char="&" char1="!"/>++ <!-- handle branche conditions -->+ <Detect2Chars attribute="Control" context="#stay" char="&" char1="&"/>+ <Detect2Chars attribute="Control" context="#stay" char="|" char1="|"/>++ <!-- handle &, |, ; -->+ <AnyChar attribute="Control" context="#stay" String="&|;"/>++ <!-- 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="<>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="&" char1="&"/>+ <Detect2Chars attribute="Control" context="#pop" char="|" char1="|"/>+ <DetectChar attribute="Control" context="#pop" char="|"/>+ <AnyChar context="#pop" String=";)`" lookAhead="1"/>+ <AnyChar context="#pop!CommandArgs" String="&<>" 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="""/>+ </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="&"/>+ <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="""/>+ <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;<>|&;()" 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&>" char="&" char1=">"/>++ <!-- handle &, |, ;, ` -->+ <AnyChar context="#pop" String="&|;`" lookAhead="1"/>++ <!-- handle process subst -->+ <Detect2Chars attribute="Redirection" context="ProcessSubst" char="=" char1="("/>+ <!-- handle redirection -->+ <AnyChar context="CommandArgMaybeRedirection" String="><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="({}<" 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="<" 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="<" 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]++(?=[<>])"/>+ <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="<" 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="<(?=[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="<" lookAhead="1"/>+ </context>+ <context attribute="Glob" lineEndContext="#stay" name="GlobRangeOrError">+ <IncludeRules context="FindGlobRangeThenPop"/>+ <DetectChar attribute="Error" context="#pop" char="<"/>+ </context>++ <context attribute="Pattern" lineEndContext="#stay" name="FindSubPattern">+ <IncludeRules context="FindGlobPattern"/>+ <DetectChar context="GlobRangeOrPattern" char="<" lookAhead="1"/>+ </context>+ <context attribute="Pattern" lineEndContext="#stay" name="GlobRangeOrPattern">+ <IncludeRules context="FindGlobRangeThenPop"/>+ <DetectChar attribute="Pattern" context="#pop" char="<"/>+ </context>++ <context attribute="Pattern" lineEndContext="#stay" name="FindStringDQPattern">+ <IncludeRules context="FindGlobPattern"/>+ <DetectChar context="GlobRangeOrStringDQ" char="<" lookAhead="1"/>+ </context>+ <context attribute="String DoubleQ" lineEndContext="#stay" name="GlobRangeOrStringDQ">+ <IncludeRules context="FindGlobRangeThenPop"/>+ <DetectChar attribute="String DoubleQ" context="#pop" char="<"/>+ </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&>" 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=">>&|"/>+ <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">>&!"/>+ <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=">&|"/>+ <StringDetect attribute="Redirection" context="#pop!WordRedirection" String=">&!"/>+ <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char=">" char1="&"/>+ <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="<" char1="("/>+ <StringDetect attribute="Redirection" context="#pop!ProcessSubst" String="<<("/>+ <StringDetect attribute="Redirection" context="#pop!StringRedirection" String="<<<"/>+ <!-- handle here document -->+ <Detect2Chars context="#pop!HereDoc" char="<" char1="<" lookAhead="1"/>+ <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char="<" char1="&"/>+ <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char="<" char1=">"/>+ <IncludeRules context="FindGlobRangeThenPop"/>+ <DetectChar attribute="Redirection" context="#pop!WordRedirection" char="<"/>+ </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="<<-[ &tab;]*&heredocq;(?=[ &tab;]*$)"/>+ <RegExpr attribute="Redirection" context="HereDocINQ" String="<<-[ &tab;]*([^&wordseps;]+)(?=[ &tab;]*$)"/>+ <RegExpr attribute="Redirection" context="HereDocQ" String="<<[ &tab;]*&heredocq;(?=[ &tab;]*$)"/>+ <RegExpr attribute="Redirection" context="HereDocNQ" String="<<[ &tab;]*([^&wordseps;]+)(?=[ &tab;]*$)"/>++ <RegExpr context="HereDocIQCmd" String="(<<-[ &tab;]*&heredocq;)" lookAhead="1"/>+ <RegExpr context="HereDocINQCmd" String="(<<-[ &tab;]*([^&wordseps;]+))" lookAhead="1"/>+ <RegExpr context="HereDocQCmd" String="(<<[ &tab;]*&heredocq;)" lookAhead="1"/>+ <RegExpr context="HereDocNQCmd" String="(<<[ &tab;]*([^&wordseps;]+))" lookAhead="1"/>++ <Detect2Chars attribute="Redirection" context="#pop" char="<" char1="<"/><!-- 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="""/>+ <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="""/>+ <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="""/>+ </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&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="+-!~*/%<>=&^|"/>+ <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="""/>+ <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<" char="<"/>+ <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<">+ <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<" char="<"/>+ <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<">+ <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_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<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_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<" char="<"/>+ <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<">+ <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<" char="<"/>+ <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<">+ <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_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<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_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="&" char1="&"/>+ <Detect2Chars attribute="Control" context="#stay" char="|" char1="|"/>+ <AnyChar attribute="Operator" context="#stay" String="+-!~*/%<>=&^|?:"/>+ <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="∫(\.(∫&exp;?+|&exp;)?|&exp;)?|\.∫&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;;|&<>)]))" 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="<>"/>+ <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="&" char1="&"/>+ <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="|" char1="|"/>+ <AnyChar attribute="Error" context="#stay" String="&;|"/>+ <AnyChar context="#pop" String=" &tab;)" lookAhead="1"/>+ <IncludeRules context="FindWord"/>+ <IncludeRules context="FindSingleGlob"/>+ <IncludeRules context="FindGlobAny"/>+ <IncludeRules context="FindGroupPattern"/>+ <DetectChar context="MaybeGlobRangeOrPop" char="<" lookAhead="1"/>+ <DetectChar context="#pop" char=">" 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="<>"/>+ <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="&" char1="&"/>+ <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="|" char1="|"/>+ <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[ &tab;;|&)]))" 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="@+-!~*/%<>=&^|?:"/>+ </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="&" 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<" char="<"/>+ <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<">+ <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<" char="<"/>+ <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<">+ <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; -->