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_&quot;']">
0008         <!ENTITY badParam "[^ \t$#A-Za-z0-9_/.&quot;'&amp;&lt;&gt;\|\(\)!=-]">
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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&quot;" 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="&amp;" char1="&amp;" 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="&lt;" char1="=" attribute="Expression Operator" context="#pop!nl.expr" />
0610                                 <Detect2Chars char="&gt;" char1="=" attribute="Expression Operator" context="#pop!nl.expr" />
0611                                 <AnyChar String="=&lt;&gt;" 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="&quot;" 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="&quot;" 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="&amp;" char1="&amp;" 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="&lt;" char1="=" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0650                                 <Detect2Chars char="&gt;" char1="=" attribute="Expression Operator" context="#pop!ifOpt.expr" />
0651                                 <AnyChar String="=&lt;&gt;" 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="&quot;" 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="&quot;" 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="&amp;" char1="&amp;" 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="&quot;" 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="&lt;" attribute="Help Text" context="maybeLink" />
0887                         </context>
0888 
0889                         <context name="maybeLink" attribute="Link" lineEndContext="#pop" fallthroughContext="#pop">
0890                                 <RegExpr String="[^&gt;]+:[^&gt;]+(?&gt;)" 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="'&quot;" />
1391         </general>
1392 </language>
1393 <!-- kate: replace-tabs off; -->