Warning, /frameworks/syntax-highlighting/data/syntax/kconfig.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 n "[A-Za-z0-9_-]">
0005 <!ENTITY n1 "[A-Za-z0-9_/.-]">
0006 <!ENTITY tristateConst "[nmy](?!(&n;|\$))">
0007 <!ENTITY badCom "[^ \t#$A-Za-z0-9_"']">
0008 <!ENTITY badParam "[^ \t$#A-Za-z0-9_/."'&<>\|\(\)!=-]">
0009 <!ENTITY tab "( ? ? ? ? ? ? ?\t| )">
0010 ]>
0011
0012 <!--
0013 Kate Kconfig highlighting definition
0014
0015 This is for Kconfig files of LKC (LinuxKernelConf), the configuration system
0016 that is in use by and maintained with the Linux Kernel since release 2.5.45,
0017 i.e. in particular throughout all 2.6 release series and the 5.x releases so far
0018 (up to 5.14 as of this writing).
0019
0020 There have been several minor syntax modifications since Linux Kernel 2.5.45,
0021 and it is likely that there will be more in the future.
0022
0023 When it comes to details, the language of LKC is extremely complicated. At the
0024 same time this definition aims to be precise. As a result it is rather long and
0025 you may notice increased CPU usage when opening large files, depending on
0026 your hardware.
0027
0028 There are other projects that use the same configuration system:
0029 busybox (http://busybox.net/), uClibc (http://www.uclibc.org/),
0030 OpenWrt (https://openwrt.org/) and many more. Of course you can use this
0031 definition also for those configuration files, but be aware that the versions of
0032 LKC in those projects may be highly outdated. Sporadically you can even find
0033 project specific syntax modifications that have never been part of upstream LKC.
0034
0035 If you are interested in the standalone configuration system (e.g. for your own
0036 project) stripped from the Linux kernel, take a look at kconfig-frontends
0037 (https://gitlab.com/ymorin/kconfig-frontends).
0038
0039 Newer changes in the configuration language:
0040
0041 2.6.18:
0042 - add "option" for config blocks (first options: "modules" and "defconfig_list")
0043 2.6.24:
0044 - remove "requires" (synonymous for "depends on", hardly ever used)
0045 - remove "depends" (without "on", also synonymous for "depends on", was rare)
0046 - remove "def_boolean" (synonymous for "def_bool", hardly ever used)
0047 2.6.25:
0048 - add option "env=..." to import values of environment variables
0049 - remove "enable" property (you have probably never seen this one)
0050 2.6.26
0051 - add named choice groups like "choice FOO" (hardly ever seen, buggy, avoid it)
0052 2.6.37:
0053 - reduce "mainmenu" to occur only as first statement
0054 - add "visible if" property to menus
0055 3.15:
0056 - add option "allnoconfig_yes"
0057 4.2:
0058 - add <=, >=, <, > operators
0059 4.10:
0060 - add "imply"
0061 4.16:
0062 - remove "boolean" type in favor of "bool" only (deprecated here)
0063 4.18:
0064 - remove option "env" (deprecated here)
0065 - add Makefile style environment variables to quoted strings and symbols
0066 - add Makefile style function calls to quoted strings and symbols
0067 5.0:
0068 - prohibit dot "." and slash "/" in unquoted strings (deprecated here)
0069 - limit symbol options per option property to one (never seen more - dropped)
0070 - restrict choice options to the types bool and tristate, i.e. remove string,
0071 int and hex (they do not make much sense for choice, deprecated here)
0072 5.6:
0073 - remove all unquoted strings except for symbols (deprecated here)
0074 5.8:
0075 - reduce the permitted statements in choice blocks to config, comment
0076 and if (deprecated here)
0077 5.9:
0078 - remove triple-dash enclosed "help" property (deprecated here)
0079 5.13:
0080 - remove "allnoconfig_yes" option introduced in 3.15 (deprecated here)
0081 - remove "defconfig_list" option introduced in 2.6.18 (deprecated here)
0082 - promote "modules" option to a standalone property
0083 - remove "option" keyword introduced in 2.6.18 (deprecated here)
0084 -->
0085
0086 <language name="Kconfig" section="Configuration" extensions="Kconfig*;Config.*" version="12" kateversion="5.74" casesensitive="true" priority="-9" author="Martin Walch (walch.martin@web.de)" license="GPLv3">
0087
0088 <highlighting>
0089 <list name="choice_type">
0090 <item>bool</item>
0091 <item>tristate</item>
0092 </list>
0093
0094 <list name="choice_type_deprecated">
0095 <item>boolean</item>
0096 </list>
0097
0098 <list name="choice_bad_type">
0099 <item>string</item>
0100 <item>int</item>
0101 <item>hex</item>
0102 </list>
0103
0104 <list name="def_type">
0105 <item>def_bool</item>
0106 <item>def_tristate</item>
0107 </list>
0108
0109 <list name="type">
0110 <item>bool</item>
0111 <item>tristate</item>
0112 <item>string</item>
0113 <item>int</item>
0114 <item>hex</item>
0115 </list>
0116
0117 <list name="type_deprecated">
0118 <item>boolean</item>
0119 </list>
0120
0121 <list name="config">
0122 <item>config</item>
0123 <item>menuconfig</item>
0124 </list>
0125
0126 <list name="entry">
0127 <item>if</item>
0128 <item>comment</item>
0129 <item>config</item>
0130 <item>menuconfig</item>
0131 <item>source</item>
0132 </list>
0133
0134 <list name="keyword">
0135 <item>bool</item>
0136 <item>choice</item>
0137 <item>comment</item>
0138 <item>config</item>
0139 <item>def_bool</item>
0140 <item>def_tristate</item>
0141 <item>default</item>
0142 <item>depends</item>
0143 <item>endchoice</item>
0144 <item>endif</item>
0145 <item>endmenu</item>
0146 <item>help</item>
0147 <item>hex</item>
0148 <item>if</item>
0149 <item>imply</item>
0150 <item>int</item>
0151 <item>mainmenu</item>
0152 <item>menu</item>
0153 <item>menuconfig</item>
0154 <item>modules</item>
0155 <item>on</item>
0156 <item>optional</item>
0157 <item>prompt</item>
0158 <item>range</item>
0159 <item>select</item>
0160 <item>source</item>
0161 <item>string</item>
0162 <item>tristate</item>
0163 <item>visible</item>
0164 </list>
0165
0166 <list name="entry_keyword">
0167 <item>choice</item>
0168 <item>comment</item>
0169 <item>config</item>
0170 <item>endchoice</item>
0171 <item>endif</item>
0172 <item>endmenu</item>
0173 <item>if</item>
0174 <item>menu</item>
0175 <item>menuconfig</item>
0176 <item>source</item>
0177 </list>
0178
0179 <list name="option">
0180 <item>modules</item>
0181 </list>
0182
0183 <list name="option_deprecated">
0184 <item>allnoconfig_y</item>
0185 <item>defconfig_list</item>
0186 </list>
0187
0188 <list name="tristate_const">
0189 <item>n</item>
0190 <item>m</item>
0191 <item>y</item>
0192 </list>
0193
0194 <list name="builtin_function">
0195 <item>error-if</item>
0196 <item>filename</item>
0197 <item>info</item>
0198 <item>lineno</item>
0199 <item>shell</item>
0200 <item>warning-if</item>
0201 </list>
0202
0203 <list name="questionable_identifier">
0204 <item>allnoconfig_y</item>
0205 <item>boolean</item>
0206 <item>defconfig_list</item>
0207 <item>option</item>
0208 </list>
0209
0210 <contexts>
0211 <context name="input" attribute="Plain" lineEndContext="#stay" fallthroughContext="#pop!stmt_list">
0212 <IncludeRules context="wsOrComment" />
0213 <WordDetect String="mainmenu" attribute="Keyword" context="mainmenuPrompt" />
0214 </context>
0215
0216 <context name="mainmenuPrompt" attribute="Plain" lineEndContext="#pop!stmt_list.error" fallthroughContext="#pop!stmt_list.error">
0217 <IncludeRules context="wsOrComment" />
0218 <DetectChar char="'" attribute="Quoted Mainmenu Prompt" context="#pop!stmt_list.nl.SQMainmenuPrompt" />
0219 <DetectChar char=""" attribute="Quoted Mainmenu Prompt" context="#pop!stmt_list.nl.DQMainmenuPrompt" />
0220 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Mainmenu Prompt" context="#pop!stmt_list.nl" />
0221 </context>
0222
0223 <context name="stmt_list.nl.SQMainmenuPrompt" attribute="Quoted Mainmenu Prompt" lineEndContext="#pop!stmt_list.error">
0224 <IncludeRules context="expansionAndEscape" />
0225 <DetectChar char="'" attribute="Quoted Mainmenu Prompt" context="#pop!stmt_list.nl" />
0226 <RegExpr String="\$&n;+" attribute="Deprecated Expansion" context="#stay" />
0227 </context>
0228
0229 <context name="stmt_list.nl.DQMainmenuPrompt" attribute="Quoted Mainmenu Prompt" lineEndContext="#pop!stmt_list.error">
0230 <DetectChar char=""" attribute="Quoted Mainmenu Prompt" context="#pop!stmt_list.nl" />
0231 <IncludeRules context="expansionAndEscape" />
0232 <RegExpr String="\$&n;+" attribute="Deprecated Expansion" context="#stay" />
0233 </context>
0234
0235 <context name="stmt_list.nl" attribute="Plain" lineEndContext="#pop!stmt_list" fallthroughContext="#pop!stmt_list.error">
0236 <IncludeRules context="wsOrComment" />
0237 <IncludeRules context="ignoreBadParamChars" />
0238 </context>
0239
0240 <!-- Mainmenu over -->
0241
0242 <context name="source_stmt" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0243 <IncludeRules context="wsOrComment" />
0244 <DetectChar char="'" attribute="Quoted Source String" context="#pop!nl.SQStringSource" />
0245 <DetectChar char=""" attribute="Quoted Source String" context="#pop!nl.DQStringSource" />
0246 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Source String" context="#pop" />
0247 </context>
0248
0249 <context name="nl.SQStringSource" attribute="Quoted Source String" lineEndContext="stmt_list.error">
0250 <DetectChar char="'" attribute="Quoted Source String" context="#pop!nl" />
0251 <IncludeRules context="expansionAndEscape" />
0252 <RegExpr String="\$&n;+" attribute="Deprecated Expansion" context="#stay" />
0253 </context>
0254
0255 <context name="nl.DQStringSource" attribute="Quoted Source String" lineEndContext="stmt_list.error">
0256 <DetectChar char=""" attribute="Quoted Source String" context="#pop!nl" />
0257 <IncludeRules context="expansionAndEscape" />
0258 <RegExpr String="\$&n;+" attribute="Deprecated Expansion" context="#stay" />
0259 </context>
0260
0261 <context name="choice_entry" attribute="Plain" lineEndContext="#pop!choice_option_list" fallthroughContext="#pop!error">
0262 <IncludeRules context="wsOrComment" />
0263 <RegExpr String="(&n;|\$)+(?!&n1;)" lookAhead="true" context="#pop!choice_option_list.nl.expandableIdentifier" />
0264 <RegExpr String="&n1;+" attribute="Deprecated Variable Symbol" context="#pop!choice_option_list.nl" />
0265 </context>
0266
0267 <context name="choice_option_list.nl.expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop!choice_option_list" fallthroughContext="#pop!error">
0268 <IncludeRules context="expandableIdentifier" />
0269 </context>
0270
0271 <context name="choice_option_list.nl" attribute="Plain" lineEndContext="#pop!choice_option_list" fallthroughContext="#pop!choice_option_list.error">
0272 <IncludeRules context="wsOrComment" />
0273 <IncludeRules context="ignoreBadParamChars" />
0274 </context>
0275
0276 <context name="choice_option_list" attribute="Plain" lineEndContext="#stay" fallthroughContext="error">
0277 <IncludeRules context="wsOrComment" />
0278 <WordDetect String="prompt" attribute="Property" context="ifOpt.prompt" />
0279 <keyword String="choice_type" attribute="Type" context="ifOpt.prompt_stmt_opt" />
0280 <keyword String="choice_type_deprecated" attribute="Deprecated Type" context="ifOpt.prompt_stmt_opt" />
0281 <keyword String="choice_bad_type" attribute="Deprecated Bad Choice Type" context="ifOpt.prompt_stmt_opt" />
0282 <WordDetect String="optional" attribute="Property" context="nl" />
0283 <WordDetect String="default" attribute="Property" context="ifOpt.symbolVar" />
0284 <WordDetect String="depends" attribute="Property" context="depends" />
0285 <WordDetect String="help" attribute="Property" beginRegion="help" context="helpEntry" />
0286 <StringDetect String="---help---" attribute="Deprecated Property" beginRegion="help" context="helpEntry" />
0287 <keyword String="entry" lookAhead="true" context="#pop!choice_block" />
0288 <WordDetect String="endchoice" attribute="Keyword" endRegion="choice_stmt" context="#pop!nl" />
0289 <IncludeRules context="ignoreBadComChars" />
0290 </context>
0291
0292 <context name="choice_block" attribute="Plain" lineEndContext="#stay" fallthroughContext="#pop!error">
0293 <IncludeRules context="wsOrComment" />
0294 <IncludeRules context="common_stmt" />
0295 <WordDetect String="endchoice" attribute="Keyword" endRegion="choice_stmt" context="#pop!nl" />
0296 <IncludeRules context="ignoreBadComChars" />
0297 </context>
0298
0299 <context name="depends" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0300 <IncludeRules context="wsOrComment" />
0301 <LineContinue context="#stay" />
0302 <WordDetect String="on" attribute="Property" context="#pop!nl.expr" />
0303 <IncludeRules context="ignoreBadParamChars" />
0304 </context>
0305
0306 <context name="ifOpt.prompt_stmt_opt" attribute="Plain" lineEndContext="#pop">
0307 <IncludeRules context="wsOrComment" />
0308 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!ifOpt.SQPrompt" />
0309 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!ifOpt.DQPrompt" />
0310 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Prompt" context="#pop!ifOpt" />
0311 </context>
0312
0313 <context name="ifOpt" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!error">
0314 <IncludeRules context="wsOrComment" />
0315 <LineContinue context="#stay" />
0316 <WordDetect String="if" attribute="Keyword" context="#pop!nl.expr" />
0317 <IncludeRules context="ignoreBadParamChars" />
0318 </context>
0319
0320 <context name="nl" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!error">
0321 <IncludeRules context="wsOrComment" />
0322 <IncludeRules context="ignoreBadParamChars" />
0323 </context>
0324
0325 <context name="ifOpt.prompt" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0326 <IncludeRules context="wsOrComment" />
0327 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!ifOpt.SQPrompt" />
0328 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!ifOpt.DQPrompt" />
0329 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Prompt" context="#pop!ifOpt" />
0330 </context>
0331
0332 <context name="ifOpt.SQPrompt" attribute="Quoted Prompt" lineEndContext="#pop!error">
0333 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!ifOpt" />
0334 <IncludeRules context="expansionAndEscape" />
0335 </context>
0336
0337 <context name="ifOpt.DQPrompt" attribute="Quoted Prompt" lineEndContext="#pop!error">
0338 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!ifOpt" />
0339 <IncludeRules context="expansionAndEscape" />
0340 </context>
0341
0342 <context name="menu_visList.nl.SQPrompt" attribute="Quoted Prompt" lineEndContext="#pop!error">
0343 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!menu_visList.nl" />
0344 <IncludeRules context="expansionAndEscape" />
0345 </context>
0346
0347 <context name="menu_visList.nl.DQPrompt" attribute="Quoted Prompt" lineEndContext="#pop!error">
0348 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!menu_visList.nl" />
0349 <IncludeRules context="expansionAndEscape" />
0350 </context>
0351
0352 <context name="comment_stmt.nl.prompt" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0353 <IncludeRules context="wsOrComment" />
0354 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!comment_stmt.nl.SQPrompt" />
0355 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!comment_stmt.nl.DQPrompt" />
0356 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Prompt" context="#pop!comment_stmt.nl" />
0357 </context>
0358
0359 <context name="comment_stmt.nl.SQPrompt" attribute="Quoted Prompt" lineEndContext="#pop!error">
0360 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!comment_stmt.nl" />
0361 <IncludeRules context="expansionAndEscape" />
0362 </context>
0363
0364 <context name="comment_stmt.nl.DQPrompt" attribute="Quoted Prompt" lineEndContext="#pop!error">
0365 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!comment_stmt.nl" />
0366 <IncludeRules context="expansionAndEscape" />
0367 </context>
0368
0369 <context name="comment_stmt.nl" attribute="Plain" lineEndContext="#pop!comment_stmt" fallthroughContext="error">
0370 <IncludeRules context="wsOrComment" />
0371 <IncludeRules context="ignoreBadParamChars" />
0372 </context>
0373
0374 <context name="comment_stmt" attribute="Plain" lineEndContext="#stay" fallthroughContext="error">
0375 <IncludeRules context="wsOrComment" />
0376 <WordDetect String="depends" attribute="Property" context="depends" />
0377 <keyword String="entry_keyword" lookAhead="true" endRegion="comment_stmt" context="#pop" />
0378 <IncludeRules context="ignoreBadComChars" />
0379 <RegExpr String="." lookAhead="true" endRegion="config_stmt" context="#pop" />
0380 </context>
0381
0382 <context name="config_entry_start" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0383 <IncludeRules context="wsOrComment" />
0384 <RegExpr String="(&n;|\$)+(?!&n1;)" lookAhead="true" context="#pop!config_option_list.nl.expandableIdentifier" />
0385 <RegExpr String="&n1;+" attribute="Deprecated Variable Symbol" context="#pop!config_option_list.nl" />
0386 </context>
0387
0388 <context name="config_option_list.nl.expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop!config_option_list" fallthroughContext="#pop!config_option_list.nl">
0389 <IncludeRules context="expandableIdentifier" />
0390 </context>
0391
0392 <context name="config_option_list.nl" attribute="Plain" lineEndContext="#pop!config_option_list" fallthroughContext="#pop!config_option_list.error">
0393 <IncludeRules context="wsOrComment" />
0394 <IncludeRules context="ignoreBadParamChars" />
0395 </context>
0396
0397 <context name="config_option_list" attribute="Plain" lineEndContext="#stay">
0398 <IncludeRules context="wsOrComment" />
0399 <WordDetect String="prompt" attribute="Property" context="ifOpt.prompt" />
0400 <keyword String="type" attribute="Type" context="ifOpt.prompt_stmt_opt" />
0401 <keyword String="type_deprecated" attribute="Deprecated Type" context="ifOpt.prompt_stmt_opt" />
0402 <WordDetect String="default" attribute="Property" context="ifOpt.expr" />
0403 <keyword String="def_type" lookAhead="true" context="ifOpt.expr.type" />
0404 <WordDetect String="depends" attribute="Property" context="depends" />
0405 <WordDetect String="select" attribute="Property" context="ifOpt.symbolVar" />
0406 <WordDetect String="imply" attribute="Property" context="ifOpt.symbolVar" />
0407 <WordDetect String="range" attribute="Property" context="range" />
0408 <WordDetect String="help" attribute="Property" beginRegion="help" context="helpEntry" />
0409 <StringDetect String="---help---" attribute="Deprecated Property" beginRegion="help" context="helpEntry" />
0410 <WordDetect String="option" attribute="Deprecated Keyword" context="option" />
0411 <WordDetect String="modules" attribute="Property" context="nl" />
0412 <keyword String="entry_keyword" lookAhead="true" endRegion="config_stmt" context="#pop" />
0413 <IncludeRules context="ignoreBadComChars" />
0414 <RegExpr String="." lookAhead="true" endRegion="config_stmt" context="#pop" />
0415 </context>
0416
0417 <context name="ifOpt.expr.type" attribute="Plain" lineEndContext="#pop!error">
0418 <StringDetect String="def_" attribute="Property" context="#stay" />
0419 <StringDetect String="bool" attribute="Type" context="#pop!ifOpt.expr" />
0420 <StringDetect String="tristate" attribute="Type" context="#pop!ifOpt.expr" />
0421 </context>
0422
0423 <context name="option" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!error">
0424 <IncludeRules context="wsOrComment" />
0425 <keyword String="option" attribute="Option" context="optionWithoutValue" />
0426 <keyword String="option_deprecated" attribute="Deprecated Option" context="optionWithoutValue" />
0427 <WordDetect String="env" attribute="Deprecated Option" context="optionValue.eq" />
0428 <RegExpr String="&n;+(?!&n1;)" attribute="Unknown Option" context="optionValue.eq" />
0429 <RegExpr String="&n1;+" attribute="Deprecated Unknown Option String" context="optionValue.eq" />
0430 </context>
0431
0432 <context name="optionValue.eq" attribute="Deprecated Option" lineEndContext="#pop" fallthroughContext="#pop!error">
0433 <IncludeRules context="wsOrComment" />
0434 <DetectChar char="=" attribute="Deprecated Option: Equals Sign" context="#pop!optionValue" />
0435 </context>
0436
0437 <context name="optionWithoutValue" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!error">
0438 <DetectSpaces />
0439 </context>
0440
0441 <context name="SQStringOptionValue" attribute="Deprecated Quoted Option Value" lineEndContext="#pop!error">
0442 <DetectChar char="'" attribute="Deprecated Quoted Option Value" context="#pop" />
0443 <DetectChar char="\" lookAhead="true" context="escapeInDeprecatedString" />
0444 </context>
0445
0446 <context name="DQStringOptionValue" attribute="Deprecated Quoted Option Value" lineEndContext="#pop!error">
0447 <DetectChar char=""" attribute="Deprecated Quoted Option Value" context="#pop" />
0448 <DetectChar char="\" lookAhead="true" context="escapeInDeprecatedString" />
0449 </context>
0450
0451 <context name="optionValue" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!error">
0452 <IncludeRules context="wsOrComment" />
0453 <DetectChar char="'" attribute="Deprecated Quoted Option Value" context="#pop!SQStringOptionValue" />
0454 <DetectChar char=""" attribute="Deprecated Quoted Option Value" context="#pop!DQStringOptionValue" />
0455 <RegExpr String="&n;+(?!&n1;)" attribute="Deprecated Unquoted Option Value" context="#pop" />
0456 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Option Value String" context="#pop" />
0457 </context>
0458
0459 <context name="ifOpt.expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop" fallthroughContext="#pop!ifOpt">
0460 <IncludeRules context="expandableIdentifier" />
0461 </context>
0462
0463 <context name="ifOpt.symbolVar" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0464 <IncludeRules context="wsOrComment" />
0465 <RegExpr String="&tristateConst;" attribute="Bad Tristate Constant" context="#pop!ifOpt.binOpOrEnd" />
0466 <RegExpr String="(&n;|\$)" lookAhead="true" context="#pop!ifOpt.expandableIdentifier" />
0467 </context>
0468
0469 <context name="range" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0470 <IncludeRules context="wsOrComment" />
0471 <DetectChar char="'" attribute="Constant Symbol" context="#pop!ifOpt.sym.SQSymbolConst" />
0472 <DetectChar char=""" attribute="Constant Symbol" context="#pop!ifOpt.sym.DQSymbolConst" />
0473 <RegExpr String="&n;+(?!&n1;)" attribute="Variable Symbol" context="#pop!ifOpt.sym" />
0474 <RegExpr String="&n1;+" attribute="Deprecated Variable Symbol" context="#pop!ifOpt.sym" />
0475 </context>
0476
0477 <context name="ifOpt.sym" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0478 <IncludeRules context="wsOrComment" />
0479 <DetectChar char="'" attribute="Constant Symbol" context="#pop!ifOpt.SQSymbolConst" />
0480 <DetectChar char=""" attribute="Constant Symbol" context="#pop!ifOpt.DQSymbolConst" />
0481 <RegExpr String="&n;+(?!&n1;)" attribute="Variable Symbol" context="#pop!ifOpt" />
0482 <RegExpr String="&n1;+" attribute="Deprecated Variable Symbol" context="#pop!ifOpt" />
0483 </context>
0484
0485 <context name="ifOpt.sym.SQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0486 <DetectChar char="'" attribute="Constant Symbol" context="#pop!ifOpt.sym" />
0487 <IncludeRules context="expansionAndEscape" />
0488 </context>
0489
0490 <context name="ifOpt.sym.DQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0491 <DetectChar char=""" attribute="Constant Symbol" context="#pop!ifOpt.sym" />
0492 <IncludeRules context="expansionAndEscape" />
0493 </context>
0494
0495 <context name="ifOpt.SQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0496 <DetectChar char="'" attribute="Constant Symbol" context="#pop!ifOpt" />
0497 <IncludeRules context="expansionAndEscape" />
0498 </context>
0499
0500 <context name="ifOpt.DQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0501 <DetectChar char=""" attribute="Constant Symbol" context="#pop!ifOpt" />
0502 <IncludeRules context="expansionAndEscape" />
0503 </context>
0504
0505 <context name="menu_entry" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0506 <IncludeRules context="wsOrComment" />
0507 <DetectChar char="'" attribute="Quoted Prompt" context="#pop!menu_visList.nl.SQPrompt" />
0508 <DetectChar char=""" attribute="Quoted Prompt" context="#pop!menu_visList.nl.DQPrompt" />
0509 <RegExpr String="&n1;+" attribute="Deprecated Unquoted Prompt" context="#pop!menu_visList.nl" />
0510 </context>
0511
0512 <context name="menu_visList.nl" attribute="Plain" lineEndContext="#pop!menu_visList" fallthroughContext="#pop!error">
0513 <IncludeRules context="wsOrComment" />
0514 <IncludeRules context="ignoreBadParamChars" />
0515 </context>
0516
0517 <context name="menu_visList" attribute="Plain" lineEndContext="#stay" fallthroughContext="#pop!menu_depList">
0518 <IncludeRules context="wsOrComment" />
0519 <WordDetect String="visible" attribute="Property" context="visible" />
0520 <IncludeRules context="ignoreBadComChars" />
0521 </context>
0522
0523 <context name="visible" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0524 <IncludeRules context="wsOrComment" />
0525 <WordDetect String="if" attribute="Property" context="#pop!nl.expr" />
0526 <IncludeRules context="ignoreBadParamChars" />
0527 </context>
0528
0529 <context name="menu_depList" attribute="Plain" lineEndContext="#stay" fallthroughContext="#pop!menu_stmt">
0530 <IncludeRules context="wsOrComment" />
0531 <WordDetect String="depends" attribute="Property" context="depends" />
0532 <IncludeRules context="ignoreBadComChars" />
0533 </context>
0534
0535 <context name="menu_stmt" attribute="Plain" lineEndContext="#stay" fallthroughContext="error">
0536 <WordDetect String="endmenu" attribute="Keyword" endRegion="menu_stmt" context="#pop!nl" />
0537 <IncludeRules context="stmt_list" />
0538 </context>
0539
0540 <context name="if_stmt" attribute="Plain" lineEndContext="#stay">
0541 <IncludeRules context="wsOrComment" />
0542 <WordDetect String="endif" attribute="Keyword" endRegion="if_stmt" context="#pop" />
0543 <IncludeRules context="stmt_list" />
0544 </context>
0545
0546 <context name="nl.assign_val" attribute="Assignment Value" lineEndContext="#pop">
0547 <IncludeRules context="expansion" />
0548 <RegExpr String="(&n;|(\$(?!\()))+" context="#stay" />
0549 </context>
0550
0551 <context name="nl.assign_val.wsOpt" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!nl.assign_val">
0552 <DetectSpaces />
0553 </context>
0554
0555 <context name="nl.assign_val.wsOpt.assign_op" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0556 <IncludeRules context="wsOrComment" />
0557 <RegExpr String="[+:]?=" attribute="Assignment Operator" context="#pop!nl.assign_val.wsOpt" />
0558 </context>
0559
0560 <context name="assignment" attribute="Variable" lineEndContext="#pop" fallthroughContext="#pop!nl.assign_val.wsOpt.assign_op">
0561 <keyword String="questionable_identifier" attribute="Deprecated Identifier" context="#pop!nl.assign_val.wsOpt.assign_op" />
0562 <IncludeRules context="expandableIdentifier" includeAttrib="false" />
0563 </context>
0564
0565 <context name="stmt_list" attribute="Plain" lineEndContext="#stay" fallthroughContext="error">
0566 <IncludeRules context="common_stmt" />
0567 <WordDetect String="choice" attribute="Keyword" beginRegion="choice_stmt" context="choice_entry" />
0568 <WordDetect String="menu" attribute="Keyword" beginRegion="menu_stmt" context="menu_entry" />
0569 <keyword String="keyword" context="error" />
0570 <IncludeRules context="ignoreBadComChars" />
0571 <RegExpr String="(&n;|\$)" lookAhead="true" context="assignment" />
0572 </context>
0573
0574 <context name="choice_option_list.error" attribute="Error" lineEndContext="#pop!choice_option_list" />
0575 <context name="config_option_list.error" attribute="Error" lineEndContext="#pop!config_option_list" />
0576 <context name="stmt_list.error" attribute="Error" lineEndContext="#pop!stmt_list" />
0577 <context name="error" attribute="Error" lineEndContext="#pop" />
0578
0579 <!-- expressions -->
0580 <context name="nl.expr" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0581 <IncludeRules context="wsOrComment" />
0582 <LineContinue context="#stay" />
0583 <Detect2Chars char="(" char1=")" lookAhead="true" context="#pop!nl.emptyParenthesesInstance" />
0584 <DetectChar char="(" attribute="Expression Operator" beginRegion="parentheses" context="#pop!nl.parenthesesInstance" />
0585 <DetectChar char="!" attribute="Expression Operator" context="#stay" />
0586 <DetectChar char="'" attribute="Constant Symbol" context="#pop!nl.binOpOrEnd.SQSymbolConst" />
0587 <DetectChar char=""" attribute="Constant Symbol" context="#pop!nl.binOpOrEnd.DQSymbolConst" />
0588 <keyword String="keyword" context="#pop!error" />
0589 <keyword String="tristate_const" attribute="Tristate Constant" context="#pop!nl.binOpOrEnd" />
0590 <RegExpr String="(&n;|\$)+(?!&n1;)" lookAhead="true" context="#pop!nl.binOpOrEnd.expandableIdentifier" />
0591 <RegExpr String="&n1;+" attribute="Deprecated Variable Symbol" context="#pop!nl.binOpOrEnd" />
0592 </context>
0593
0594 <context name="nl.binOpOrEnd.expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop" fallthroughContext="#pop!nl.binOpOrEnd">
0595 <IncludeRules context="expandableIdentifier" />
0596 </context>
0597
0598 <context name="nl.emptyParenthesesInstance" attribute="Plain" lineEndContext="#stay">
0599 <DetectChar char="(" attribute="Expression Operator" context="#pop!error" />
0600 </context>
0601
0602 <context name="nl.binOpOrEnd" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!error">
0603 <IncludeRules context="wsOrComment" />
0604 <LineContinue context="#stay" />
0605 <DetectChar char=")" lookAhead="true" context="#pop" />
0606 <Detect2Chars char="&" char1="&" attribute="Expression Operator" context="#pop!nl.expr" />
0607 <Detect2Chars char="|" char1="|" attribute="Expression Operator" context="#pop!nl.expr" />
0608 <Detect2Chars char="!" char1="=" attribute="Expression Operator" context="#pop!nl.expr" />
0609 <Detect2Chars char="<" char1="=" attribute="Expression Operator" context="#pop!nl.expr" />
0610 <Detect2Chars char=">" char1="=" attribute="Expression Operator" context="#pop!nl.expr" />
0611 <AnyChar String="=<>" attribute="Expression Operator" context="#pop!nl.expr" />
0612 <IncludeRules context="ignoreBadParamChars" />
0613 </context>
0614
0615 <context name="nl.binOpOrEnd.SQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0616 <DetectChar char="'" attribute="Constant Symbol" context="#pop!nl.binOpOrEnd" />
0617 <IncludeRules context="expansionAndEscape" />
0618 </context>
0619
0620 <context name="nl.binOpOrEnd.DQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0621 <DetectChar char=""" attribute="Constant Symbol" context="#pop!nl.binOpOrEnd" />
0622 <IncludeRules context="expansionAndEscape" />
0623 </context>
0624
0625 <context name="ifOpt.expr" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0626 <IncludeRules context="wsOrComment" />
0627 <LineContinue context="#stay" />
0628 <Detect2Chars char="(" char1=")" lookAhead="true" context="#pop!nl.emptyParenthesesInstance" />
0629 <DetectChar char="(" attribute="Expression Operator" beginRegion="parentheses" context="#pop!ifOpt.parenthesesInstance" />
0630 <DetectChar char="!" context="#stay" />
0631 <DetectChar char="'" attribute="Constant Symbol" context="#pop!ifOpt.binOpOrEnd.SQSymbolConst" />
0632 <DetectChar char=""" attribute="Constant Symbol" context="#pop!ifOpt.binOpOrEnd.DQSymbolConst" />
0633 <keyword String="keyword" attribute="Error" context="#pop!error" />
0634 <RegExpr String="&tristateConst;" attribute="Tristate Constant" context="#pop!ifOpt.binOpOrEnd" />
0635 <RegExpr String="(&n;|\$)" lookAhead="true" context="#pop!ifOpt.binOpOrEnd.expandableIdentifier" />
0636 </context>
0637
0638 <context name="ifOpt.binOpOrEnd.expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop" fallthroughContext="#pop!ifOpt.binOpOrEnd">
0639 <IncludeRules context="expandableIdentifier" />
0640 </context>
0641
0642 <context name="ifOpt.binOpOrEnd" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop!ifOpt">
0643 <IncludeRules context="wsOrComment" />
0644 <LineContinue context="#stay" />
0645 <DetectChar char=")" lookAhead="true" context="#pop" />
0646 <Detect2Chars char="&" char1="&" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0647 <Detect2Chars char="|" char1="|" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0648 <Detect2Chars char="!" char1="=" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0649 <Detect2Chars char="<" char1="=" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0650 <Detect2Chars char=">" char1="=" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0651 <AnyChar String="=<>" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0652 <IncludeRules context="ignoreBadParamChars" />
0653 </context>
0654
0655 <context name="ifOpt.binOpOrEnd.SQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0656 <DetectChar char="'" attribute="Constant Symbol" context="#pop!ifOpt.binOpOrEnd" />
0657 <IncludeRules context="expansionAndEscape" />
0658 </context>
0659
0660 <context name="ifOpt.binOpOrEnd.DQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0661 <DetectChar char=""" attribute="Constant Symbol" context="#pop!ifOpt.binOpOrEnd" />
0662 <IncludeRules context="expansionAndEscape" />
0663 </context>
0664
0665 <context name="if_stmt.nl.expr" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop!error">
0666 <IncludeRules context="wsOrComment" />
0667 <LineContinue context="#stay" />
0668 <Detect2Chars char="(" char1=")" lookAhead="true" context="#pop!nl.emptyParenthesesInstance" />
0669 <DetectChar char="(" attribute="Expression Operator" beginRegion="parentheses" context="#pop!if_stmt.nl.parenthesesInstance" />
0670 <DetectChar char="!" context="#stay" />
0671 <DetectChar char="'" attribute="Constant Symbol" context="#pop!if_stmt.nl.binOpOrEnd.SQSymbolConst" />
0672 <DetectChar char=""" attribute="Constant Symbol" context="#pop!if_stmt.nl.binOpOrEnd.DQSymbolConst" />
0673 <keyword String="keyword" context="#pop!error" />
0674 <RegExpr String="&tristateConst;" attribute="Tristate Constant" context="#pop!if_stmt.nl.binOpOrEnd" />
0675 <RegExpr String="(&n;|\$)" lookAhead="true" context="#pop!if_stmt.nl.binOpOrEnd.expandableIdentifier" />
0676 </context>
0677
0678 <context name="if_stmt.nl.binOpOrEnd.expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop!if_stmt" fallthroughContext="#pop!if_stmt.nl.binOpOrEnd">
0679 <IncludeRules context="expandableIdentifier" />
0680 </context>
0681
0682 <context name="if_stmt.nl.binOpOrEnd" attribute="Plain" lineEndContext="#pop!if_stmt" fallthroughContext="#pop!nl">
0683 <IncludeRules context="wsOrComment" />
0684 <LineContinue context="#stay" />
0685 <DetectChar char=")" lookAhead="true" context="#pop" />
0686 <Detect2Chars char="&" char1="&" attribute="Expression Operator" context="#pop!if_stmt.nl.expr" />
0687 <Detect2Chars char="|" char1="|" attribute="Expression Operator" context="#pop!if_stmt.nl.expr" />
0688 <DetectChar char="=" attribute="Expression Operator" context="#pop!if_stmt.nl.expr" />
0689 <Detect2Chars char="!" char1="=" attribute="Expression Operator" context="#pop!if_stmt.nl.expr" />
0690 <IncludeRules context="ignoreBadParamChars" />
0691 </context>
0692
0693 <context name="escapeInDeprecatedString" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop">
0694 <RegExpr String="\\." attribute="Deprecated Escaped Character" context="#pop" />
0695 </context>
0696
0697 <context name="escape" attribute="Plain" lineEndContext="#pop" fallthroughContext="#pop">
0698 <RegExpr String="\\." attribute="Escaped Character" context="#pop" />
0699 </context>
0700
0701 <context name="if_stmt.nl.binOpOrEnd.SQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0702 <DetectChar char="'" attribute="Constant Symbol" context="#pop!if_stmt.nl.binOpOrEnd" />
0703 <IncludeRules context="expansionAndEscape" />
0704 </context>
0705
0706 <context name="if_stmt.nl.binOpOrEnd.DQSymbolConst" attribute="Constant Symbol" lineEndContext="#pop!error">
0707 <DetectChar char=""" attribute="Constant Symbol" context="#pop!if_stmt.nl.binOpOrEnd" />
0708 <IncludeRules context="expansionAndEscape" />
0709 </context>
0710
0711 <context name="nl.parenthesesInstance" attribute="Plain" lineEndContext="#stay" fallthroughContext="nl.expr">
0712 <DetectChar char=")" attribute="Expression Operator" endRegion="parentheses" context="#pop!nl.binOpOrEnd" />
0713 </context>
0714
0715 <context name="ifOpt.parenthesesInstance" attribute="Plain" lineEndContext="#stay" fallthroughContext="ifOpt.expr">
0716 <DetectChar char=")" attribute="Expression Operator" endRegion="parentheses" context="#pop!ifOpt.binOpOrEnd" />
0717 </context>
0718
0719 <context name="if_stmt.nl.parenthesesInstance" attribute="Plain" lineEndContext="#stay" fallthroughContext="nl.expr">
0720 <DetectChar char=")" attribute="Expression Operator" endRegion="parentheses" context="#pop!if_stmt.nl.binOpOrEnd" />
0721 </context>
0722
0723 <context name="parenthesesInExpansion" attribute="Expansion" lineEndContext="#pop">
0724 <IncludeRules context="expansion" />
0725 <DetectChar char="(" attribute="Expansion" context="parenthesesInExpansion" />
0726 <DetectChar char=")" attribute="Expansion" context="#pop" />
0727 </context>
0728
0729 <context name="expansionArgumentsAndEnd" attribute="Expansion" lineEndContext="#pop!error">
0730 <IncludeRules context="expansion" />
0731 <DetectChar char="(" attribute="Expansion" context="parenthesesInExpansion" />
0732 <DetectChar char="," attribute="Argument Separator" context="#stay" />
0733 <DetectChar char=")" attribute="Expansion Delimiter" context="#pop" />
0734 </context>
0735
0736 <context name="expansionArgumentsAndEnd.functionOrVariableName" attribute="Expansion" lineEndContext="#pop!error" fallthroughContext="#pop!expansionArgumentsAndEnd">
0737 <keyword String="builtin_function" attribute="Builtin Function" context="#pop!expansionArgumentsAndEnd" />
0738 <IncludeRules context="expansion" />
0739 <RegExpr String="(&n;|(\$(?!\()))+" context="#pop!expansionArgumentsAndEnd" />
0740 </context>
0741
0742 <!-- help texts
0743 This is ugly: indentation may be a mixture of
0744 tabs and spaces. There is a minimum indentation
0745 for the non-blank lines (i.e. lines that do not
0746 contain only tabs and spaces) of a help text. If
0747 a non-blank line falls below that minimum, that
0748 line does not belong to the help text and the
0749 help text ends.
0750 This minimum is set by the first non-blank line
0751 after "help". If the first line immediately
0752 after the "help" line is non-blank, but not
0753 indented, then the second non-blank line is
0754 considered to determine indentation. If that
0755 line also has no indentation, the help text
0756 ends on that second line.
0757
0758 One tab corresponds to eight spaces.
0759
0760 As indentation may arbitrarily switch between
0761 tabs and spaces it is perfectly OK to have e.g.
0762 - first line: 8 spaces
0763 - second line: 1 tab
0764 - third line: 4 spaces, 1 tab
0765
0766 Tabs are aligned, so this is valid, too:
0767 - first line: 6 spaces, 1 tab
0768 - second line: 1 tab
0769
0770 Storing the reference indentation length is
0771 hardly possible. The "dynamic" attribute does
0772 not fit here, because each line may have a
0773 different combination of tabs and spaces.
0774 Instead just be pragmatic and add contexts for
0775 any indentation length from 1 to 80.
0776
0777 80 should cover even any exotic useful case:
0778 In the field, we hardly encounter more initial
0779 indentation than 2 tabs (i.e. 16 spaces).
0780 The Linux kernel has a line length policy that
0781 can be summarized as
0782 "do not exceed 80 chars without a good reason"
0783 -->
0784 <context name="helpEntry" attribute="Help Text" lineEndContext="#pop!helpTextFirstLine" fallthroughContext="#pop!error">
0785 <IncludeRules context="wsOrComment" />
0786 <IncludeRules context="ignoreBadParamChars" />
0787 </context>
0788
0789 <context name="helpTextFirstLine" attribute="Help Text" lineEmptyContext="#pop!helpDetectIndentation" lineEndContext="#stay" fallthroughContext="#pop!error">
0790 <RegExpr String="^([^ \t].*|[ \t]*)$" column="0" attribute="Help Text" context="#pop!helpDetectIndentation" />
0791 <IncludeRules context="helpDetectIndentation" />
0792 </context>
0793
0794 <context name="helpDetectIndentation" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0795 <RegExpr String="^[ \t]*$" column="0" context="#stay" />
0796 <RegExpr String="^(&tab;){10}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent80" />
0797 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent79" />
0798 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent78" />
0799 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent77" />
0800 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent76" />
0801 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent75" />
0802 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent74" />
0803 <RegExpr String="^(&tab;){9} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent73" />
0804 <RegExpr String="^(&tab;){9}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent72" />
0805 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent71" />
0806 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent70" />
0807 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent69" />
0808 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent68" />
0809 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent67" />
0810 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent66" />
0811 <RegExpr String="^(&tab;){8} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent65" />
0812 <RegExpr String="^(&tab;){8}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent64" />
0813 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent63" />
0814 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent62" />
0815 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent61" />
0816 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent60" />
0817 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent59" />
0818 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent58" />
0819 <RegExpr String="^(&tab;){7} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent57" />
0820 <RegExpr String="^(&tab;){7}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent56" />
0821 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent55" />
0822 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent54" />
0823 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent53" />
0824 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent52" />
0825 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent51" />
0826 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent50" />
0827 <RegExpr String="^(&tab;){6} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent49" />
0828 <RegExpr String="^(&tab;){6}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent48" />
0829 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent47" />
0830 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent46" />
0831 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent45" />
0832 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent44" />
0833 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent43" />
0834 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent42" />
0835 <RegExpr String="^(&tab;){5} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent41" />
0836 <RegExpr String="^(&tab;){5}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent40" />
0837 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent39" />
0838 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent38" />
0839 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent37" />
0840 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent36" />
0841 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent35" />
0842 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent34" />
0843 <RegExpr String="^(&tab;){4} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent33" />
0844 <RegExpr String="^(&tab;){4}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent32" />
0845 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent31" />
0846 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent30" />
0847 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent29" />
0848 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent28" />
0849 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent27" />
0850 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent26" />
0851 <RegExpr String="^(&tab;){3} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent25" />
0852 <RegExpr String="^(&tab;){3}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent24" />
0853 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent23" />
0854 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent22" />
0855 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent21" />
0856 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent20" />
0857 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent19" />
0858 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent18" />
0859 <RegExpr String="^(&tab;){2} (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent17" />
0860 <RegExpr String="^(&tab;){2}(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent16" />
0861 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent15" />
0862 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent14" />
0863 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent13" />
0864 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent12" />
0865 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent11" />
0866 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent10" />
0867 <RegExpr String="^&tab; (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent9" />
0868 <RegExpr String="^&tab;(?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent8" />
0869 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent7" />
0870 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent6" />
0871 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent5" />
0872 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent4" />
0873 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent3" />
0874 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent2" />
0875 <RegExpr String="^ (?![ \t])" column="0" lookAhead="true" context="#pop!helpIndent1" />
0876 </context>
0877
0878 <context name="endHelp" attribute="Help Text" lineEndContext="#stay">
0879 <DetectSpaces attribute="Help Text" context="#stay" />
0880 <DetectChar char="#" lookAhead="true" endRegion="help" context="#pop!lineComment" />
0881 <keyword String="keyword" lookAhead="true" endRegion="help" context="#pop" />
0882 <RegExpr String="." lookAhead="true" endRegion="help" context="#pop!error" />
0883 </context>
0884
0885 <context name="helpText" attribute="Help Text" lineEndContext="#pop">
0886 <DetectChar char="<" attribute="Help Text" context="maybeLink" />
0887 </context>
0888
0889 <context name="maybeLink" attribute="Link" lineEndContext="#pop" fallthroughContext="#pop">
0890 <RegExpr String="[^>]+:[^>]+(?>)" attribute="Link" context="#pop" />
0891 </context>
0892
0893 <context name="helpEatWsLine" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop">
0894 <RegExpr String="^( |\t)*$" column="0" attribute="Help Text" context="#stay" />
0895 </context>
0896
0897 <context name="helpIndent1" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0898 <IncludeRules context="helpEatWsLine" />
0899 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0900 </context>
0901
0902 <context name="helpIndent2" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0903 <IncludeRules context="helpEatWsLine" />
0904 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0905 </context>
0906
0907 <context name="helpIndent3" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0908 <IncludeRules context="helpEatWsLine" />
0909 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0910 </context>
0911
0912 <context name="helpIndent4" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0913 <IncludeRules context="helpEatWsLine" />
0914 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0915 </context>
0916
0917 <context name="helpIndent5" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0918 <IncludeRules context="helpEatWsLine" />
0919 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0920 </context>
0921
0922 <context name="helpIndent6" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0923 <IncludeRules context="helpEatWsLine" />
0924 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0925 </context>
0926
0927 <context name="helpIndent7" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0928 <IncludeRules context="helpEatWsLine" />
0929 <RegExpr String="^( |\t)" column="0" attribute="Help Text" context="helpText" />
0930 </context>
0931
0932 <context name="helpIndent8" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0933 <IncludeRules context="helpEatWsLine" />
0934 <RegExpr String="^&tab;" column="0" attribute="Help Text" context="helpText" />
0935 </context>
0936
0937 <context name="helpIndent9" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0938 <IncludeRules context="helpEatWsLine" />
0939 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0940 </context>
0941
0942 <context name="helpIndent10" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0943 <IncludeRules context="helpEatWsLine" />
0944 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0945 </context>
0946
0947 <context name="helpIndent11" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0948 <IncludeRules context="helpEatWsLine" />
0949 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0950 </context>
0951
0952 <context name="helpIndent12" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0953 <IncludeRules context="helpEatWsLine" />
0954 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0955 </context>
0956
0957 <context name="helpIndent13" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0958 <IncludeRules context="helpEatWsLine" />
0959 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0960 </context>
0961
0962 <context name="helpIndent14" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0963 <IncludeRules context="helpEatWsLine" />
0964 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0965 </context>
0966
0967 <context name="helpIndent15" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0968 <IncludeRules context="helpEatWsLine" />
0969 <RegExpr String="^&tab;( |\t)" column="0" attribute="Help Text" context="helpText" />
0970 </context>
0971
0972 <context name="helpIndent16" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0973 <IncludeRules context="helpEatWsLine" />
0974 <RegExpr String="^(&tab;){2}" column="0" attribute="Help Text" context="helpText" />
0975 </context>
0976
0977 <context name="helpIndent17" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0978 <IncludeRules context="helpEatWsLine" />
0979 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
0980 </context>
0981
0982 <context name="helpIndent18" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0983 <IncludeRules context="helpEatWsLine" />
0984 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
0985 </context>
0986
0987 <context name="helpIndent19" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0988 <IncludeRules context="helpEatWsLine" />
0989 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
0990 </context>
0991
0992 <context name="helpIndent20" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0993 <IncludeRules context="helpEatWsLine" />
0994 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
0995 </context>
0996
0997 <context name="helpIndent21" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
0998 <IncludeRules context="helpEatWsLine" />
0999 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
1000 </context>
1001
1002 <context name="helpIndent22" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1003 <IncludeRules context="helpEatWsLine" />
1004 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
1005 </context>
1006
1007 <context name="helpIndent23" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1008 <IncludeRules context="helpEatWsLine" />
1009 <RegExpr String="^(&tab;){2}( |\t)" column="0" attribute="Help Text" context="helpText" />
1010 </context>
1011
1012 <context name="helpIndent24" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1013 <IncludeRules context="helpEatWsLine" />
1014 <RegExpr String="^(&tab;){3}" column="0" attribute="Help Text" context="helpText" />
1015 </context>
1016
1017 <context name="helpIndent25" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1018 <IncludeRules context="helpEatWsLine" />
1019 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1020 </context>
1021
1022 <context name="helpIndent26" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1023 <IncludeRules context="helpEatWsLine" />
1024 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1025 </context>
1026
1027 <context name="helpIndent27" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1028 <IncludeRules context="helpEatWsLine" />
1029 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1030 </context>
1031
1032 <context name="helpIndent28" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1033 <IncludeRules context="helpEatWsLine" />
1034 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1035 </context>
1036
1037 <context name="helpIndent29" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1038 <IncludeRules context="helpEatWsLine" />
1039 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1040 </context>
1041
1042 <context name="helpIndent30" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1043 <IncludeRules context="helpEatWsLine" />
1044 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1045 </context>
1046
1047 <context name="helpIndent31" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1048 <IncludeRules context="helpEatWsLine" />
1049 <RegExpr String="^(&tab;){3}( |\t)" column="0" attribute="Help Text" context="helpText" />
1050 </context>
1051
1052 <context name="helpIndent32" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1053 <IncludeRules context="helpEatWsLine" />
1054 <RegExpr String="^(&tab;){4}" column="0" attribute="Help Text" context="helpText" />
1055 </context>
1056
1057 <context name="helpIndent33" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1058 <IncludeRules context="helpEatWsLine" />
1059 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1060 </context>
1061
1062 <context name="helpIndent34" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1063 <IncludeRules context="helpEatWsLine" />
1064 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1065 </context>
1066
1067 <context name="helpIndent35" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1068 <IncludeRules context="helpEatWsLine" />
1069 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1070 </context>
1071
1072 <context name="helpIndent36" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1073 <IncludeRules context="helpEatWsLine" />
1074 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1075 </context>
1076
1077 <context name="helpIndent37" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1078 <IncludeRules context="helpEatWsLine" />
1079 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1080 </context>
1081
1082 <context name="helpIndent38" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1083 <IncludeRules context="helpEatWsLine" />
1084 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1085 </context>
1086
1087 <context name="helpIndent39" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1088 <IncludeRules context="helpEatWsLine" />
1089 <RegExpr String="^(&tab;){4}( |\t)" column="0" attribute="Help Text" context="helpText" />
1090 </context>
1091
1092 <context name="helpIndent40" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1093 <IncludeRules context="helpEatWsLine" />
1094 <RegExpr String="^(&tab;){5}" column="0" attribute="Help Text" context="helpText" />
1095 </context>
1096
1097 <context name="helpIndent41" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1098 <IncludeRules context="helpEatWsLine" />
1099 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1100 </context>
1101
1102 <context name="helpIndent42" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1103 <IncludeRules context="helpEatWsLine" />
1104 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1105 </context>
1106
1107 <context name="helpIndent43" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1108 <IncludeRules context="helpEatWsLine" />
1109 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1110 </context>
1111
1112 <context name="helpIndent44" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1113 <IncludeRules context="helpEatWsLine" />
1114 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1115 </context>
1116
1117 <context name="helpIndent45" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1118 <IncludeRules context="helpEatWsLine" />
1119 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1120 </context>
1121
1122 <context name="helpIndent46" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1123 <IncludeRules context="helpEatWsLine" />
1124 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1125 </context>
1126
1127 <context name="helpIndent47" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1128 <IncludeRules context="helpEatWsLine" />
1129 <RegExpr String="^(&tab;){5}( |\t)" column="0" attribute="Help Text" context="helpText" />
1130 </context>
1131
1132 <context name="helpIndent48" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1133 <IncludeRules context="helpEatWsLine" />
1134 <RegExpr String="^(&tab;){6}" column="0" attribute="Help Text" context="helpText" />
1135 </context>
1136
1137 <context name="helpIndent49" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1138 <IncludeRules context="helpEatWsLine" />
1139 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1140 </context>
1141
1142 <context name="helpIndent50" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1143 <IncludeRules context="helpEatWsLine" />
1144 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1145 </context>
1146
1147 <context name="helpIndent51" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1148 <IncludeRules context="helpEatWsLine" />
1149 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1150 </context>
1151
1152 <context name="helpIndent52" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1153 <IncludeRules context="helpEatWsLine" />
1154 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1155 </context>
1156
1157 <context name="helpIndent53" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1158 <IncludeRules context="helpEatWsLine" />
1159 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1160 </context>
1161
1162 <context name="helpIndent54" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1163 <IncludeRules context="helpEatWsLine" />
1164 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1165 </context>
1166
1167 <context name="helpIndent55" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1168 <IncludeRules context="helpEatWsLine" />
1169 <RegExpr String="^(&tab;){6}( |\t)" column="0" attribute="Help Text" context="helpText" />
1170 </context>
1171
1172 <context name="helpIndent56" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1173 <IncludeRules context="helpEatWsLine" />
1174 <RegExpr String="^(&tab;){7}" column="0" attribute="Help Text" context="helpText" />
1175 </context>
1176
1177 <context name="helpIndent57" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1178 <IncludeRules context="helpEatWsLine" />
1179 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1180 </context>
1181
1182 <context name="helpIndent58" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1183 <IncludeRules context="helpEatWsLine" />
1184 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1185 </context>
1186
1187 <context name="helpIndent59" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1188 <IncludeRules context="helpEatWsLine" />
1189 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1190 </context>
1191
1192 <context name="helpIndent60" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1193 <IncludeRules context="helpEatWsLine" />
1194 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1195 </context>
1196
1197 <context name="helpIndent61" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1198 <IncludeRules context="helpEatWsLine" />
1199 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1200 </context>
1201
1202 <context name="helpIndent62" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1203 <IncludeRules context="helpEatWsLine" />
1204 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1205 </context>
1206
1207 <context name="helpIndent63" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1208 <IncludeRules context="helpEatWsLine" />
1209 <RegExpr String="^(&tab;){7}( |\t)" column="0" attribute="Help Text" context="helpText" />
1210 </context>
1211
1212 <context name="helpIndent64" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1213 <IncludeRules context="helpEatWsLine" />
1214 <RegExpr String="^(&tab;){8}" column="0" attribute="Help Text" context="helpText" />
1215 </context>
1216
1217 <context name="helpIndent65" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1218 <IncludeRules context="helpEatWsLine" />
1219 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1220 </context>
1221
1222 <context name="helpIndent66" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1223 <IncludeRules context="helpEatWsLine" />
1224 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1225 </context>
1226
1227 <context name="helpIndent67" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1228 <IncludeRules context="helpEatWsLine" />
1229 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1230 </context>
1231
1232 <context name="helpIndent68" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1233 <IncludeRules context="helpEatWsLine" />
1234 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1235 </context>
1236
1237 <context name="helpIndent69" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1238 <IncludeRules context="helpEatWsLine" />
1239 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1240 </context>
1241
1242 <context name="helpIndent70" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1243 <IncludeRules context="helpEatWsLine" />
1244 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1245 </context>
1246
1247 <context name="helpIndent71" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1248 <IncludeRules context="helpEatWsLine" />
1249 <RegExpr String="^(&tab;){8}( |\t)" column="0" attribute="Help Text" context="helpText" />
1250 </context>
1251
1252 <context name="helpIndent72" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1253 <IncludeRules context="helpEatWsLine" />
1254 <RegExpr String="^(&tab;){9}" column="0" attribute="Help Text" context="helpText" />
1255 </context>
1256
1257 <context name="helpIndent73" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1258 <IncludeRules context="helpEatWsLine" />
1259 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1260 </context>
1261
1262 <context name="helpIndent74" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1263 <IncludeRules context="helpEatWsLine" />
1264 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1265 </context>
1266
1267 <context name="helpIndent75" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1268 <IncludeRules context="helpEatWsLine" />
1269 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1270 </context>
1271
1272 <context name="helpIndent76" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1273 <IncludeRules context="helpEatWsLine" />
1274 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1275 </context>
1276
1277 <context name="helpIndent77" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1278 <IncludeRules context="helpEatWsLine" />
1279 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1280 </context>
1281
1282 <context name="helpIndent78" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1283 <IncludeRules context="helpEatWsLine" />
1284 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1285 </context>
1286
1287 <context name="helpIndent79" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1288 <IncludeRules context="helpEatWsLine" />
1289 <RegExpr String="^(&tab;){9}( |\t)" column="0" attribute="Help Text" context="helpText" />
1290 </context>
1291
1292 <context name="helpIndent80" attribute="Help Text" lineEndContext="#stay" fallthroughContext="#pop!endHelp">
1293 <IncludeRules context="helpEatWsLine" />
1294 <RegExpr String="^(&tab;){10}" column="0" attribute="Help Text" context="helpText" />
1295 </context>
1296
1297 <!-- only as included rules -->
1298 <context name="common_stmt" attribute="Plain" lineEndContext="#pop!error" fallthroughContext="#pop">
1299 <IncludeRules context="wsOrComment" />
1300 <WordDetect String="if" attribute="Keyword" beginRegion="if_stmt" context="if_stmt.nl.expr" />
1301 <WordDetect String="comment" attribute="Keyword" beginRegion="comment_stmt" context="comment_stmt.nl.prompt" />
1302 <keyword String="config" attribute="Keyword" beginRegion="config_stmt" context="config_entry_start" />
1303 <WordDetect String="source" attribute="Source" context="source_stmt" />
1304 </context>
1305
1306 <context name="expandableIdentifier" attribute="Variable Symbol" lineEndContext="#pop" fallthroughContext="#pop">
1307 <IncludeRules context="expansion" />
1308 <RegExpr String="(&n;|(\$(?!\()))+" context="#stay" />
1309 </context>
1310
1311 <context name="expansion" attribute="Expansion" lineEndContext="#pop!error" fallthroughContext="#pop!error">
1312 <Detect2Chars char="$" char1="(" attribute="Expansion Delimiter" context="expansionArgumentsAndEnd.functionOrVariableName" />
1313 </context>
1314
1315 <context name="expansionAndEscape" attribute="Expansion" lineEndContext="#pop!error" fallthroughContext="#pop!error">
1316 <DetectChar char="\" lookAhead="true" context="escape" />
1317 <Detect2Chars char="$" char1="(" attribute="Expansion Delimiter" context="expansionArgumentsAndEnd.functionOrVariableName" />
1318 </context>
1319
1320 <context name="wsOrComment" attribute="Plain" lineEndContext="#stay">
1321 <DetectSpaces />
1322 <DetectChar char="#" lookAhead="true" context="lineComment" />
1323 </context>
1324
1325 <context name="ignoreBadComChars" attribute="Bad Character" lineEndContext="#stay">
1326 <RegExpr String="&badCom;+" attribute="Bad Character" context="#stay" />
1327 </context>
1328
1329 <context name="ignoreBadParamChars" attribute="Bad Character" lineEndContext="#stay">
1330 <RegExpr String="&badParam;+" attribute="Bad Character" context="#stay" />
1331 </context>
1332
1333 <context name="lineComment" attribute="Comment" lineEndContext="#pop">
1334 <DetectSpaces />
1335 <IncludeRules context="##Comments" />
1336 </context>
1337 </contexts>
1338 <itemDatas>
1339 <itemData name="Argument Separator" defStyleNum="dsKeyword" spellChecking="false" />
1340 <itemData name="Assignment Operator" defStyleNum="dsChar" spellChecking="false" />
1341 <itemData name="Assignment Value" defStyleNum="dsString" spellChecking="false" />
1342 <itemData name="Bad Character" defStyleNum="dsAlert" spellChecking="false" />
1343 <itemData name="Bad Tristate Constant" defStyleNum="dsAlert" spellChecking="false" />
1344 <itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false" />
1345 <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
1346 <itemData name="Constant Symbol" defStyleNum="dsString" spellChecking="false" />
1347 <itemData name="Deprecated Bad Choice Type" defStyleNum="dsAlert" spellChecking="false" strikeOut="true" />
1348 <itemData name="Deprecated Escaped Character" defStyleNum="dsSpecialChar" spellChecking="false" strikeOut="true" />
1349 <itemData name="Deprecated Expansion" defStyleNum="dsVariable" spellChecking="false" strikeOut="true" />
1350 <itemData name="Deprecated Identifier" defStyleNum="dsDataType" spellChecking="false" strikeOut="true" />
1351 <itemData name="Deprecated Keyword" defStyleNum="dsKeyword" spellChecking="false" strikeOut="true" />
1352 <itemData name="Deprecated Option" defStyleNum="dsOthers" spellChecking="false" strikeOut="true" />
1353 <itemData name="Deprecated Option: Equals Sign" defStyleNum="dsOperator" spellChecking="false" strikeOut="true" />
1354 <itemData name="Deprecated Property" defStyleNum="dsOthers" spellChecking="false" strikeOut="true" />
1355 <itemData name="Deprecated Quoted Option Value" defStyleNum="dsString" spellChecking="false" strikeOut="true" />
1356 <itemData name="Deprecated Type" defStyleNum="dsDataType" spellChecking="false" strikeOut="true" />
1357 <itemData name="Deprecated Unknown Option String" defStyleNum="dsAlert" italic="true" spellChecking="false" strikeOut="true" />
1358 <itemData name="Deprecated Unquoted Mainmenu Prompt" defStyleNum="dsString" spellChecking="false" strikeOut="true" />
1359 <itemData name="Deprecated Unquoted Option Value String" defStyleNum="dsString" spellChecking="false" strikeOut="true" />
1360 <itemData name="Deprecated Unquoted Option Value" defStyleNum="dsString" spellChecking="false" strikeOut="true" />
1361 <itemData name="Deprecated Unquoted Prompt" defStyleNum="dsNormal" spellChecking="true" strikeOut="true" />
1362 <itemData name="Deprecated Unquoted Source String" defStyleNum="dsString" spellChecking="false" strikeOut="true" />
1363 <itemData name="Deprecated Variable Symbol" defStyleNum="dsNormal" spellChecking="false" strikeOut="true" />
1364 <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
1365 <itemData name="Escaped Character" defStyleNum="dsSpecialChar" spellChecking="false" />
1366 <itemData name="Expansion Delimiter" defStyleNum="dsChar" spellChecking="false" />
1367 <itemData name="Expansion" defStyleNum="dsDataType" spellChecking="false" />
1368 <itemData name="Expression Operator" defStyleNum="dsOperator" spellChecking="false" />
1369 <itemData name="Help Text" defStyleNum="dsVerbatimString" spellChecking="true" />
1370 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
1371 <itemData name="Link" defStyleNum="dsOthers" spellChecking="false" underline="false" />
1372 <itemData name="Option" defStyleNum="dsOthers" spellChecking="false" />
1373 <itemData name="Plain" defStyleNum="dsNormal" spellChecking="true" />
1374 <itemData name="Property" defStyleNum="dsOthers" spellChecking="false" />
1375 <itemData name="Quoted Mainmenu Prompt" defStyleNum="dsString" spellChecking="true" />
1376 <itemData name="Quoted Prompt" defStyleNum="dsString" spellChecking="true" />
1377 <itemData name="Quoted Source String" defStyleNum="dsString" spellChecking="false" />
1378 <itemData name="Source" defStyleNum="dsPreprocessor" spellChecking="false" />
1379 <itemData name="Tristate Constant" defStyleNum="dsConstant" spellChecking="false" />
1380 <itemData name="Type" defStyleNum="dsDataType" spellChecking="false" />
1381 <itemData name="Unknown Option" defStyleNum="dsAlert" italic="true" spellChecking="false" />
1382 <itemData name="Variable Symbol" defStyleNum="dsNormal" spellChecking="false" />
1383 <itemData name="Variable" defStyleNum="dsDataType" spellChecking="false" />
1384 </itemDatas>
1385 </highlighting>
1386 <general>
1387 <comments>
1388 <comment name="singleLine" start="#" />
1389 </comments>
1390 <keywords weakDeliminator=".-" additionalDeliminator="'"" />
1391 </general>
1392 </language>
1393 <!-- kate: replace-tabs off; -->