Warning, /frameworks/syntax-highlighting/data/syntax/jam.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language 0003 [ 0004 <!ENTITY ident "([^\t $"\\]+|\$(?!\()|\\.)+"> 0005 ]> 0006 <!-- 0007 Documentation: 0008 https://www.bfgroup.xyz/b2/manual/release/index.html 0009 --> 0010 0011 <!-- 0012 Copyright (C) 2006 Mildred <silkensedai@online.fr>. 0013 0014 Permission is hereby granted, free of charge, to any person obtaining a copy 0015 of this software and associated documentation files (the "Software"), to 0016 deal in the Software without restriction, including without limitation the 0017 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 0018 sell copies of the Software, and to permit persons to whom the Software is 0019 furnished to do so, subject to the following conditions: 0020 0021 The above copyright notice and this permission notice shall be included in 0022 all copies or substantial portions of the Software. 0023 0024 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0025 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0026 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 0027 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 0028 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 0029 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 0030 IN THE SOFTWARE. 0031 --> 0032 <language name="Jam" version="13" kateversion="5.79" section="Other" extensions="Jam*;*.jam" mimetype="text/x-jam;text/x-Jamfile;text/x-Jamrules;text/x-Jambase" author="Mildred (silkensedai@online.fr)" license="MIT"> 0033 <!-- 0034 Changelog 0035 0.2 0036 * now tokens like [ ] { } ( ) : ; are not detected if there is no whitespace before and after 0037 * Jam* files are handled (example Jamrules or Jambase) 0038 * different colors 0039 * Subvariables are handled (example : $(varname[$(v)]) 0040 * Include bash highlighting inside actions blocks 0041 * rules names are found in rules definitions 0042 * highlight the variable reference in rule definitions after 'bind' 0043 0.3 0044 * because weakDelimiter isn't supported, it is not possible to just have some locals delimiters for the tokens and globals delimiters as default. So it's not possible to have our usual double click to select. 0045 * 'actions action_name bind var' instead of 'actions bind var action_name' 0046 * bun in syntax 'rule Rulename : param param ...' ':' is not recognized. fixed 0047 * fixed some bugs found when looking at Jambase (peacemeal -> piecemeal, ...) 0048 * variables recognized in strings 0049 * named parameters for rules ... the syntax has changed : 'rule rulename param : param : param {' 0050 * changed section from Scripts to Other 0051 Feature request to Kate dev. 0052 * returnContext attribute 0053 * ability to enter a new context after a #pop 0054 * when you include rules from foreign contexts (here Bash), having the ability to prepend some rules to all foreign contexts for example to terminate the included context before it naturally ends. 0055 0056 0.4 0057 * fix `x=`: is a rule named `x=`, not a variable 0058 * fix `exe onxxxxx`: is a rule call, not a variable 0059 * fix `ifxxx`, `rulexxx`, etc: not keywords 0060 * fix `variable default = xxx ;` 0061 * fix keywords and operators in a condition: they must be separated by spaces 0062 * fix `on target` 0063 * fix `switch` 0064 * fix `class` and `module` 0065 * fix `for local x` 0066 * new styles: Feature and FeatureOperator for `<xxx>`, `-<xxx>`, `<xxx>abc:<yyy>abc`, `<xxx>abc/<yyy>abc`, `<xxx>abc&&def` 0067 * don't use black color in Rule 0068 0069 v5 0070 * fix `local x ;`, `x` is a variable not a rule 0071 * highlight subrule: `exe x : [ glob *.cpp ]` 0072 --> 0073 <highlighting> 0074 <list name="keywords"> 0075 <item>break</item> 0076 <item>continue</item> 0077 <item>else</item> 0078 </list> 0079 <list name="keywordIf"> 0080 <item>if</item> 0081 <item>while</item> 0082 </list> 0083 <list name="keywordAcceptRule"> 0084 <item>include</item> 0085 <item>return</item> 0086 </list> 0087 <list name="keywordClass"><item>class</item></list> 0088 <list name="keywordModule"><item>module</item></list> 0089 <list name="keywordSwitch"><item>switch</item></list> 0090 <list name="keywordActions"><item>actions</item></list> 0091 <list name="keywordRule"><item>rule</item></list> 0092 <list name="keywordFor"><item>for</item></list> 0093 <list name="keywordOn"><item>on</item></list> 0094 <list name="keywordReturn"><item>return</item></list> 0095 <list name="keywordIn"><item>in</item></list> 0096 <list name="keywordCase"><item>case</item></list> 0097 <list name="keywordLocal"><item>local</item></list> 0098 0099 <list name="actionAttribute"> 0100 <item>existing</item> 0101 <item>ignore</item> 0102 <item>piecemeal</item> 0103 <item>quietly</item> 0104 <item>together</item> 0105 <item>updated</item> 0106 </list> 0107 <list name="actionAttributeBind"> 0108 <item>bind</item> 0109 </list> 0110 0111 <list name="onTarget"><item>target</item></list> 0112 0113 <list name="features"> 0114 <item><address-model></item> 0115 <item><address-sanitizer></item> 0116 <item><allow-system-cflags></item> 0117 <item><allow-system-libs></item> 0118 <item><architecture></item> 0119 <item><archiver></item> 0120 <item><asciidoctor-attribute></item> 0121 <item><asciidoctor-backend></item> 0122 <item><asciidoctor-doctype></item> 0123 <item><assembler></item> 0124 <item><boostbook></item> 0125 <item><build></item> 0126 <item><build-name></item> 0127 <item><c++-template-depth></item> 0128 <item><catalog></item> 0129 <item><cflags></item> 0130 <item><compileflags></item> 0131 <item><compiler></item> 0132 <item><compiler-filter></item> 0133 <item><cxxflags></item> 0134 <item><debug-symbols></item> 0135 <item><def-file></item> 0136 <item><define></item> 0137 <item><dll-path></item> 0138 <item><doxygen:param></item> 0139 <item><doxygen:xml-imagedir></item> 0140 <item><embed-manifest></item> 0141 <item><embed-manifest-file></item> 0142 <item><file></item> 0143 <item><format></item> 0144 <item><hardcode-dll-paths></item> 0145 <item><idl-compiler></item> 0146 <item><implicit-dependency></item> 0147 <item><import></item> 0148 <item><include></item> 0149 <item><includes></item> 0150 <item><inlining></item> 0151 <item><install-dependencies></item> 0152 <item><install-source-root></item> 0153 <item><install-type></item> 0154 <item><instruction-set></item> 0155 <item><libdir></item> 0156 <item><library></item> 0157 <item><link></item> 0158 <item><linker></item> 0159 <item><linkflags></item> 0160 <item><local-visibility></item> 0161 <item><location></item> 0162 <item><location-prefix></item> 0163 <item><mc-compiler></item> 0164 <item><name></item> 0165 <item><optimization></item> 0166 <item><parallelism></item> 0167 <item><path></item> 0168 <item><pkg-config></item> 0169 <item><pkg-config-define></item> 0170 <item><prefix></item> 0171 <item><profiling></item> 0172 <item><ranlib></item> 0173 <item><rc></item> 0174 <item><rc-type></item> 0175 <item><reftitle></item> 0176 <item><relevant></item> 0177 <item><resource-compiler></item> 0178 <item><root></item> 0179 <item><runtime-debugging></item> 0180 <item><runtime-link></item> 0181 <item><sass-line-numbers></item> 0182 <item><sass-style></item> 0183 <item><search></item> 0184 <item><setup></item> 0185 <item><setup-amd64></item> 0186 <item><setup-i386></item> 0187 <item><setup-ia64></item> 0188 <item><source></item> 0189 <item><sysroot></item> 0190 <item><target-os></item> 0191 <item><testing.arg></item> 0192 <item><testing.launcher></item> 0193 <item><thread-sanitizer></item> 0194 <item><threading></item> 0195 <item><toolset></item> 0196 <item><undefined-sanitizer></item> 0197 <item><use></item> 0198 <item><variable></item> 0199 <item><variant></item> 0200 <item><verbatim-options></item> 0201 <item><version></item> 0202 <item><visibility></item> 0203 <item><warnings></item> 0204 <item><warnings-as-errors></item> 0205 <item><xsl:param></item> 0206 <item><xsl:path></item> 0207 <item><xslt></item> 0208 <item><xslt-dir></item> 0209 </list> 0210 0211 <contexts> 0212 0213 <context attribute="Normal" lineEndContext="#stay" name="Normal"> 0214 <IncludeRules context="Preprocess"/> 0215 <WordDetect attribute="Error" context="#stay" String="}" endRegion="block"/> 0216 <IncludeRules context="Statement"/> 0217 </context> 0218 0219 <context attribute="Normal" lineEndContext="#stay" name="Block"> 0220 <IncludeRules context="Preprocess"/> 0221 <WordDetect attribute="Operator" context="#pop" String="}" endRegion="block"/> 0222 <IncludeRules context="Statement"/> 0223 </context> 0224 0225 <context attribute="Normal" lineEndContext="#stay" name="Statement"> 0226 <IncludeRules context="Preprocess"/> 0227 <keyword attribute="Keyword" context="ActionDefinition" String="keywordActions"/> 0228 <keyword attribute="Keyword" context="RuleDefinition" String="keywordRule"/> 0229 <keyword attribute="Keyword" context="ForStatement" String="keywordFor"/> 0230 <keyword attribute="Keyword" context="IfStatement" String="keywordIf"/> 0231 <keyword attribute="Keyword" context="Rule" String="keywordAcceptRule"/> 0232 <keyword attribute="Keyword" context="OnPreStment" String="keywordOn"/> 0233 <keyword attribute="Keyword" context="SwitchStatement" String="keywordSwitch"/> 0234 <keyword attribute="Keyword" context="ClassStatement" String="keywordClass"/> 0235 <keyword attribute="Keyword" context="ModuleStatement" String="keywordModule"/> 0236 <keyword attribute="Keyword" context="#stay" String="keywords"/> 0237 <keyword attribute="Keyword" context="Local" String="keywordLocal"/> 0238 <WordDetect attribute="Operator" context="Block" String="{" beginRegion="block"/> 0239 <RegExpr attribute="VarAssign" context="Assignment" String="[^\t ]+[\t ]+(?=([+?]?=|on|default)([\t ]|$))" /> 0240 <RegExpr attribute="Rule" context="Rule" String="([^\t ][^\t ]+|[^{}\t ])"/> 0241 </context> 0242 0243 <context attribute="Normal" lineEndContext="#stay" name="FindBlank"> 0244 <DetectSpaces attribute="Normal"/> 0245 <Detect2Chars attribute="CommentTitle" context="CommentTitle" char="#" char1="#"/> 0246 <Detect2Chars attribute="Comment" context="CommentBlock" char="#" char1="|"/> 0247 <DetectChar attribute="Comment" context="Comment" char="#"/> 0248 </context> 0249 0250 <!-- General instructions --> 0251 0252 <context attribute="Normal" lineEndContext="#stay" name="Rule"> 0253 <IncludeRules context="Preprocess"/> 0254 <WordDetect attribute="Operator" context="#stay" String=":"/> 0255 <WordDetect attribute="Operator" context="#pop" String=";"/> 0256 <IncludeRules context="ValueIdentifier"/> 0257 </context> 0258 0259 <context attribute="Normal" lineEndContext="#stay" name="ValueIdentifier"> 0260 <DetectChar attribute="Feature" context="Feature" char="<"/> 0261 <RegExpr attribute="FeatureOperator" context="#stay" String="-(?=<)"/> 0262 <RegExpr attribute="Normal" context="#stay" String="([^\t $&"\\]+|\$(?!\()|&(?!&)|\\.)+"/> 0263 <!-- auto-completion only --> 0264 <keyword attribute="Feature" context="#stay" String="features"/> 0265 </context> 0266 0267 <context attribute="Normal" lineEndContext="#pop" name="Feature" fallthroughContext="#pop"> 0268 <AnyChar attribute="Error" context="#pop" String="	 " /> 0269 <DetectChar attribute="Feature" context="#pop!Property" char=">"/> 0270 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0271 <DetectChar attribute="String" context="String" char="""/> 0272 <RegExpr attribute="Feature" context="#stay" String="([^\t $>"#\\]+|\$(?!\()|\\.)+"/> 0273 </context> 0274 0275 <context attribute="Normal" lineEndContext="#pop" name="Property" fallthroughContext="#pop"> 0276 <AnyChar attribute="Normal" context="#pop" String="	 " /> 0277 <Detect2Chars attribute="FeatureOperator" context="#pop" char="&" char1="&"/> 0278 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0279 <DetectChar attribute="String" context="String" char="""/> 0280 <RegExpr attribute="FeatureOperator" context="#pop!PropertyFeature" String="[:/,](?=[<\t ]|$)"/> 0281 <RegExpr attribute="Normal" context="#stay" String="([^\t $:&":/,#\\]+|\$(?!\()|&(?!&)|[:/,](?!<)|\\.)+"/> 0282 </context> 0283 0284 <context attribute="Normal" lineEndContext="#pop" name="PropertyFeature" fallthroughContext="#pop"> 0285 <DetectChar attribute="Feature" context="#pop!Feature" char="<"/> 0286 </context> 0287 0288 <context attribute="Normal" lineEndContext="#stay" name="OnPreStment" fallthroughContext="#pop"> 0289 <DetectSpaces/> 0290 <keyword attribute="Keyword" context="OnTargetPreStment" String="onTarget"/> 0291 </context> 0292 0293 <context attribute="Normal" lineEndContext="#stay" name="OnTargetPreStment" fallthroughContext="#pop"> 0294 <IncludeRules context="Preprocess"/> 0295 <WordDetect attribute="Operator" context="#stay" String=":"/> 0296 <WordDetect attribute="Operator" context="#pop#pop" String=";"/> 0297 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0298 </context> 0299 0300 <context attribute="Normal" lineEndContext="#stay" name="ClassStatement"> 0301 <IncludeRules context="Preprocess"/> 0302 <WordDetect attribute="Operator" context="#pop!ClassStatement2" String="{" beginRegion="block"/> 0303 <WordDetect attribute="Operator" context="#stay" String=":"/> 0304 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0305 </context> 0306 0307 <context attribute="Normal" lineEndContext="#stay" name="ModuleStatement"> 0308 <DetectSpaces/> 0309 <RegExpr attribute="Normal" context="#pop" String="&ident;"/> 0310 </context> 0311 0312 <context attribute="Normal" lineEndContext="#stay" name="ClassStatement2"> 0313 <IncludeRules context="FindBlank"/> 0314 <WordDetect attribute="Operator" context="#pop" String="}" endRegion="block"/> 0315 <keyword attribute="Keyword" context="MethodDefinition" String="keywordRule"/> 0316 <RegExpr attribute="Error" context="#stay" String="&ident;"/> 0317 </context> 0318 0319 <context attribute="Normal" lineEndContext="#stay" name="MethodDefinition"> 0320 <IncludeRules context="Preprocess"/> 0321 <WordDetect attribute="Error" context="#stay" String=":"/> 0322 <WordDetect attribute="Operator" context="MethodDefinition2" String="{" beginRegion="block"/> 0323 <RegExpr attribute="Rule" context="VarnameList" String="&ident;"/> 0324 </context> 0325 0326 <context attribute="Normal" lineEndContext="#stay" name="MethodDefinition2"> 0327 <DetectSpaces/> 0328 <WordDetect attribute="Operator" context="#pop#pop" String="}" endRegion="block"/> 0329 <IncludeRules context="Statement"/> 0330 </context> 0331 0332 <!-- Assignment --> 0333 0334 <context attribute="Normal" lineEndContext="#stay" name="Assignment"> 0335 <DetectChar attribute="Operator" context="Assignment2" char="="/> 0336 <Detect2Chars attribute="Operator" context="Assignment2" char="+" char1="="/> 0337 <Detect2Chars attribute="Operator" context="Assignment2" char="?" char1="="/> 0338 <Detect2Chars attribute="Operator" context="AssignmentOn" char="o" char1="n"/> 0339 <StringDetect attribute="Keyword" context="AssignmentDefault" String="default"/> 0340 </context> 0341 0342 <context attribute="Normal" lineEndContext="#stay" name="Assignment2"> 0343 <IncludeRules context="Preprocess"/> 0344 <WordDetect attribute="Operator" context="#pop#pop" String=";"/> 0345 <IncludeRules context="ValueIdentifier"/> 0346 </context> 0347 0348 <context attribute="Normal" lineEndContext="#stay" name="AssignmentOn"> 0349 <IncludeRules context="Preprocess"/> 0350 <DetectChar attribute="Operator" context="#pop!Assignment2" char="="/> 0351 <Detect2Chars attribute="Operator" context="#pop!Assignment2" char="+" char1="="/> 0352 <Detect2Chars attribute="Operator" context="#pop!Assignment2" char="?" char1="="/> 0353 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0354 </context> 0355 0356 <context attribute="Error" lineEndContext="#stay" name="AssignmentDefault"> 0357 <DetectSpaces attribute="Normal"/> 0358 <DetectChar attribute="Operator" context="#pop!Assignment2" char="="/> 0359 </context> 0360 0361 <!-- Sub statements --> 0362 0363 <context attribute="Normal" lineEndContext="#stay" name="SubStatement" fallthroughContext="SubRule"> 0364 <DetectSpaces/> 0365 <Detect2Chars attribute="Keyword" context="OnSubStatement" char="o" char1="n"/> 0366 </context> 0367 0368 <context attribute="Normal" lineEndContext="#stay" name="OnSubStatement" fallthroughContext="OnSubStatement2"> 0369 <DetectSpaces/> 0370 <keyword attribute="Keyword" context="#pop!SubRule" String="onTarget"/> 0371 </context> 0372 0373 <context attribute="Normal" lineEndContext="#stay" name="OnSubStatement2"> 0374 <IncludeRules context="Preprocess"/> 0375 <keyword attribute="Keyword" context="#stay" String="keywordReturn"/> 0376 <WordDetect attribute="Operator" context="#stay" String=":"/> 0377 <WordDetect attribute="Operator" context="#pop#pop#pop" String="]"/> 0378 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0379 </context> 0380 0381 <context attribute="Normal" lineEndContext="#stay" name="SubRule" fallthroughContext="#pop!SubRuleParam"> 0382 <DetectSpaces/> 0383 <RegExpr attribute="Rule" context="#pop!SubRuleParam" String="&ident;"/> 0384 </context> 0385 0386 <context attribute="Normal" lineEndContext="#stay" name="SubRuleParam"> 0387 <IncludeRules context="Preprocess"/> 0388 <WordDetect attribute="Operator" context="#stay" String=":"/> 0389 <WordDetect attribute="Operator" context="#pop#pop" String="]"/> 0390 <RegExpr attribute="Feature" context="Property" String="<[^\t >]+>"/> 0391 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0392 <!-- auto-completion only --> 0393 <keyword attribute="Feature" context="#stay" String="features"/> 0394 </context> 0395 0396 <!-- Actions, Rules definitions --> 0397 0398 <context attribute="Normal" lineEndContext="#stay" name="ActionDefinition"> 0399 <IncludeRules context="Preprocess"/> 0400 <keyword attribute="Error" context="#stay" String="actionAttributeBind"/> 0401 <keyword attribute="actionAttribute" context="#stay" String="actionAttribute"/> 0402 <WordDetect attribute="Operator" context="ActionBody" String="{" beginRegion="block"/> 0403 <RegExpr attribute="Action" context="ActionDefinitionFull" String="&ident;"/> 0404 </context> 0405 0406 <context attribute="Error" lineEndContext="#stay" name="ActionDefinitionFull"> 0407 <IncludeRules context="Preprocess"/> 0408 <WordDetect attribute="Operator" context="#pop" String="{" lookAhead="true"/> 0409 <keyword attribute="actionAttribute" context="ActionDefinitionBind" String="actionAttributeBind"/> 0410 </context> 0411 0412 <context attribute="Normal" lineEndContext="#stay" name="ActionDefinitionBind"> 0413 <IncludeRules context="Preprocess"/> 0414 <WordDetect attribute="Operator" context="#pop" String="{" lookAhead="true"/> 0415 <RegExpr attribute="Varname" context="#stay" String="&ident;"/> 0416 </context> 0417 0418 <context attribute="Normal" lineEndContext="#stay" name="ActionBody" fallthroughContext="Command##Bash"> 0419 <WordDetect attribute="Operator" context="#pop#pop" String="}" endRegion="block"/> 0420 <IncludeRules context="##Bash"/> 0421 </context> 0422 0423 <context attribute="Normal" lineEndContext="#stay" name="RuleDefinition"> 0424 <IncludeRules context="Preprocess"/> 0425 <WordDetect attribute="Error" context="#stay" String=":"/> 0426 <WordDetect attribute="Operator" context="#pop" String="{" lookAhead="true"/> 0427 <RegExpr attribute="Rule" context="VarnameList" String="&ident;"/> 0428 </context> 0429 0430 <context attribute="Normal" lineEndContext="#stay" name="VarnameList"> 0431 <IncludeRules context="Preprocess"/> 0432 <WordDetect attribute="Operator" context="VarnameList" String=":"/> 0433 <WordDetect attribute="Operator" context="#pop" String="{" lookAhead="true"/> 0434 <AnyChar attribute="VariableAttribute" context="#stay" String="?+*"/> 0435 <RegExpr attribute="Varname" context="#stay" String="&ident;"/> 0436 </context> 0437 0438 <!-- for, while, if, switch --> 0439 0440 <context attribute="Normal" lineEndContext="#stay" name="ForStatement" fallthroughContext="#pop!ForStatement2"> 0441 <DetectSpaces/> 0442 <keyword attribute="Keyword" context="#pop!ForStatement2" String="keywordLocal"/> 0443 </context> 0444 0445 <context attribute="Normal" lineEndContext="#stay" name="ForStatement2"> 0446 <IncludeRules context="Preprocess"/> 0447 <keyword attribute="Operator" context="ForList" String="keywordIn"/> 0448 <RegExpr attribute="Varname" context="#stay" String="&ident;"/> 0449 </context> 0450 0451 <context attribute="Normal" lineEndContext="#stay" name="ForList"> 0452 <IncludeRules context="Preprocess"/> 0453 <WordDetect attribute="Operator" context="#pop#pop" String="{" lookAhead="true"/> 0454 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0455 </context> 0456 0457 <context attribute="Normal" lineEndContext="#stay" name="IfStatement"> 0458 <IncludeRules context="Preprocess"/> 0459 <RegExpr attribute="Operator" context="#stay" String="([=<>!]?=|[<>!()]|&&|\|\||in)(?=[ \t]|$)"/> 0460 <WordDetect attribute="Operator" context="#pop" String="{" lookAhead="true"/> 0461 <RegExpr attribute="Feature" context="Property" String="<[^\t >]+>"/> 0462 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0463 <!-- auto-completion only --> 0464 <keyword attribute="Feature" context="#stay" String="features"/> 0465 </context> 0466 0467 <context attribute="Normal" lineEndContext="#stay" name="SwitchStatement"> 0468 <IncludeRules context="Preprocess"/> 0469 <WordDetect attribute="Operator" context="#pop!SwitchStatement2" String="{" beginRegion="block"/> 0470 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0471 </context> 0472 0473 <context attribute="Normal" lineEndContext="#stay" name="SwitchStatement2"> 0474 <IncludeRules context="FindBlank"/> 0475 <WordDetect attribute="Operator" context="#pop" String="}" endRegion="block"/> 0476 <keyword attribute="Operator" context="CaseCond" String="keywordCase"/> 0477 <RegExpr attribute="Error" context="#stay" String="&ident;"/> 0478 </context> 0479 0480 <context attribute="Normal" lineEndContext="#stay" name="CaseCond"> 0481 <IncludeRules context="FindBlank"/> 0482 <WordDetect attribute="Operator" context="#pop!CaseStatement" String=":"/> 0483 <WordDetect attribute="Error" context="#pop" String=";"/> 0484 <RegExpr attribute="Normal" context="#stay" String="&ident;"/> 0485 </context> 0486 0487 <context attribute="Normal" lineEndContext="#stay" name="CaseStatement"> 0488 <IncludeRules context="Preprocess"/> 0489 <WordDetect attribute="Operator" context="#stay" String=":"/> 0490 <WordDetect attribute="Operator" context="#pop" String=";"/> 0491 <IncludeRules context="ValueIdentifier"/> 0492 </context> 0493 0494 <!-- local --> 0495 0496 <context attribute="Variable" lineEndContext="#stay" name="Local"> 0497 <DetectSpaces attribute="Normal"/> 0498 <keyword attribute="Keyword" context="#pop!RuleDefinition" String="keywordRule"/> 0499 <RegExpr attribute="VarAssign" context="#pop!LocalInit" String="&ident;"/> 0500 <WordDetect attribute="Operator" context="#pop" String=";"/> 0501 </context> 0502 0503 <context attribute="Normal" lineEndContext="#stay" name="LocalInit" fallthroughContext="#pop"> 0504 <DetectSpaces attribute="Normal"/> 0505 <DetectChar attribute="Operator" context="Assignment2" char="="/> 0506 <WordDetect attribute="Operator" context="#pop" String=";"/> 0507 </context> 0508 0509 <!-- Variables, Strings, Comments --> 0510 0511 <context attribute="Normal" lineEndContext="#stay" name="Preprocess"> 0512 <IncludeRules context="FindBlank"/> 0513 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0514 <DetectChar attribute="String" context="String" char="""/> 0515 <WordDetect attribute="Operator" context="SubStatement" String="["/> 0516 </context> 0517 0518 <context attribute="Variable" lineEndContext="Error" name="Variable"> 0519 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0520 <DetectChar attribute="VariableDelimiter" context="#pop" char=")"/> 0521 <DetectChar attribute="VariableAttribute" context="VariableRange" char="["/> 0522 <DetectChar attribute="VariableAttribute" context="VariableAttribute" char=":"/> 0523 </context> 0524 0525 <context attribute="VariableAttribute" lineEndContext="Error" name="VariableRange"> 0526 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0527 <DetectChar attribute="VariableAttribute" context="#pop" char="]"/> 0528 </context> 0529 0530 <context attribute="VariableAttribute" lineEndContext="Error" name="VariableAttribute"> 0531 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0532 <DetectChar attribute="Variable" context="#pop" char=")" lookAhead="true"/> 0533 </context> 0534 0535 <context attribute="Comment" lineEndContext="#pop" name="Comment"> 0536 <DetectSpaces/> 0537 <IncludeRules context="##Comments" /> 0538 <DetectIdentifier/> 0539 </context> 0540 0541 <context attribute="Comment" lineEndContext="#stay" name="CommentBlock"> 0542 <Detect2Chars attribute="Comment" context="#pop" char="|" char1="#"/> 0543 <IncludeRules context="Comment"/> 0544 </context> 0545 0546 <context attribute="CommentTitle" lineEndContext="#pop" name="CommentTitle"> 0547 <IncludeRules context="Comment"/> 0548 </context> 0549 0550 <context attribute="String" lineEndContext="#stay" name="String"> 0551 <Detect2Chars attribute="VariableDelimiter" context="Variable" char="$" char1="("/> 0552 <Detect2Chars attribute="EscapeSeq" context="#stay" char="\" char1="""/> 0553 <DetectChar attribute="EscapeSeq" context="#stay" char="\"/> 0554 <DetectChar attribute="String" context="#pop" char="""/> 0555 </context> 0556 0557 <!-- Error --> 0558 0559 <context attribute="Error" lineEndContext="#stay" name="Error"/> 0560 0561 </contexts> 0562 <itemDatas> 0563 <!-- action definition (shell script) --> 0564 <itemData name="actionAttribute" defStyleNum="dsAttribute"/> 0565 <!-- rule / action call --> 0566 <itemData name="Rule" defStyleNum="dsFunction"/> 0567 <itemData name="Action" defStyleNum="dsNormal"/> 0568 <!-- variables with attributes --> 0569 <itemData name="Variable" defStyleNum="dsVariable"/> 0570 <itemData name="VariableDelimiter" defStyleNum="dsOperator"/> 0571 <itemData name="VariableAttribute" defStyleNum="dsAttribute"/> 0572 <itemData name="VarAssign" defStyleNum="dsVariable"/> 0573 <itemData name="Varname" defStyleNum="dsVariable"/> 0574 <!-- common --> 0575 <itemData name="Normal" defStyleNum="dsNormal"/> 0576 <itemData name="Feature" defStyleNum="dsBuiltIn"/> 0577 <itemData name="FeatureOperator" defStyleNum="dsOperator" bold="1"/> 0578 <itemData name="Operator" defStyleNum="dsOperator" bold="1"/> 0579 <itemData name="Keyword" defStyleNum="dsKeyword"/> 0580 <itemData name="Comment" defStyleNum="dsComment"/> 0581 <itemData name="CommentTitle" defStyleNum="dsComment" bold="1"/> 0582 <itemData name="String" defStyleNum="dsString"/> 0583 <itemData name="EscapeSeq" defStyleNum="dsSpecialChar"/> 0584 <itemData name="Error" defStyleNum="dsError"/> 0585 </itemDatas> 0586 </highlighting> 0587 <general> 0588 <comments> 0589 <comment name="singleLine" start="#"/> 0590 </comments> 0591 <keywords weakDeliminator=":;{}()[].!+,-<=>%&/?^|~\*,"/> 0592 </general> 0593 </language> 0594 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->