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; -->