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