Warning, /frameworks/syntax-highlighting/data/syntax/raku.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language 0003 [ 0004 <!-- 0005 identifier: 0006 Alphabetic characters include characters with the Unicode General Category value Letter (L), and the underscore _. 0007 Alphanumeric characters additionally include characters with the Unicode General Category value Number, Decimal Digit (Nd). 0008 --> 0009 <!-- Large values --> 0010 <!ENTITY _rangealphabetic "A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{2c1}\x{2C6}-\x{2D1}\x{2E0}-\x{2EE}\x{370}-\x{588}\x{5d0}-\x{17dc}\x{1820}-\x{1aa7}\x{1b05}-\x{2139}\x{2c00}-\x{31ff}\x{3400}\x{4db5}\x{4db5}\x{4e00}-\x{ac00}\x{d7a3}-\x{d7fb}\x{f900}-\x{FD3D}\x{FF64}\x{100fa}\x{10000}-\x{100fa}\x{10280}-\x{20000}\x{2a6d6}-\x{2fa1d}"> 0011 <!ENTITY rangealphabetic "_&_rangealphabetic;"> 0012 <!ENTITY rangenumeric "0-9"> 0013 <!ENTITY alphabetic "[&rangealphabetic;]"> 0014 <!ENTITY numeric "[&rangenumeric;]"> 0015 <!ENTITY alnum "[&rangealphabetic;&rangenumeric;]"> 0016 <!ENTITY ident "(?:&alphabetic;(?:&alnum;+|[-']&alphabetic;)*)"> 0017 0018 <!ENTITY prefixdollarvarname "(?:[&rangealphabetic;0-9/!]|\(\))"> 0019 <!ENTITY dollarvarname "(?:&ident;|[0-9]+|[/!]|\(\))"> 0020 <!ENTITY twigils "*?!.<^:=~"> 0021 0022 <!ENTITY podfmt "BCEIKLMNPRTUVXZ"> 0023 <!ENTITY allnopodfmt "(?:[^&podfmt;]+|[&podfmt;](?![<«]))+"> 0024 <!ENTITY allnopodfmt1 "(?:[^&podfmt;<>]+|[&podfmt;](<(?:<*(?=<))|(?![<«])))+"> 0025 <!ENTITY allnopodfmt2 "(?:[^&podfmt;«»]+|[&podfmt;](?![<«]))+"> 0026 <!ENTITY allnopodfmt3 "(?:[^&podfmt;<>]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"> 0027 0028 <!ENTITY quotingform_q "(?:q?(?::?[xsahfcb]|:?ww?|:(?:v|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)|)(?::[xsahfcbv]|ww?|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)*)"> 0029 <!ENTITY quotingform_q_assert "(?:\s+(?=\()|\s*(?=[^()>」\]}a-zA-Z0-9]|$))"> 0030 <!ENTITY quotingconstruct "q"ingform_q;"ingform_q_assert;"> 0031 0032 <!ENTITY int10 "(?:[0-9]+(?:_[0-9]+)*)"> 0033 <!ENTITY intN "(?:[0-9a-zA-Z]+(?:_[0-9a-zA-Z]+)*)"> 0034 0035 <!-- <!ENTITY operators "(?:\b(?:X[*~]|Z=|xx=)|\((?:[<>][+=]|[-&+.<>|^]|cont|elem)\)|\+[&+<=>^|]?|~[&<>^|~]?|\.(?::<[^>]+>|\.\.?\^?|[=?^*+.])?|\^(?:fff?\b|\.\.)?\^?|(?:[?…]|f?ff)\^|\[[*+]\]|=(?:==?|=>>?|>|~=)?|<(?:<==|=[=>]?)?|\*\*=?|\?[?|]?|!(?:[=]|eqv\b)?|%%?|&&?|//?|\|\|?|>=?|-[-=]?|::|[−∈∉∋∌∘∩∪≅≠≤≥≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖×÷∖*…])"> --> 0036 <!-- <!ENTITY hyperoperators "(?:[«»]|<<|>>)"> --> 0037 <!ENTITY safesymboloperators "−∈∉∋∌∘∩∪≅≠≤≥≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖×÷∖*…?.+-/=!~&|^%"> 0038 <!ENTITY unsafesymboloperators "<>«»"> 0039 <!ENTITY symboloperators "&safesymboloperators;&unsafesymboloperators;"> 0040 <!ENTITY bracehyperoperator "(?:\[[^\s]+\]|\([^\s]+\))"> 0041 <!ENTITY prefixoperator "R?(?:[XZ]|xx)?"> 0042 <!ENTITY extrasymboloperators "(?:\^fff?\b\^?|\bf?ff\^|\((?:[<>][+=]|[-&+.<>|^]|cont|elem)\))"> 0043 <!ENTITY hyperoperators1 "[«»]&prefixoperator;(?:&&ident;|[&safesymboloperators;<>]+|&bracehyperoperator;)[«»]"> 0044 <!ENTITY hyperoperators2 "(?:<<|>>)&prefixoperator;(?:&&ident;|[&safesymboloperators;«»]+|&bracehyperoperator;)(?:<<|>>)"> 0045 <!ENTITY hyperoperators "&hyperoperators1;|&hyperoperators2;"> 0046 <!ENTITY startstringasoperator "&prefixoperator;<[&symboloperators;]*(?=\s|$)"> 0047 <!ENTITY funcoperator "\[\[\&&ident;\]\]"> 0048 <!ENTITY reductionoperator "\[&prefixoperator;[&symboloperators;]+\]"> 0049 <!ENTITY innerbraceoperator "[&symboloperators;'"]+"> 0050 <!ENTITY operators "&prefixoperator;(?:(?:[&safesymboloperators;>]|&extrasymboloperators;)[&symboloperators;]*|\(&innerbraceoperator;\)|\[&innerbraceoperator;\]|<[&safesymboloperators;'"]+>)"> 0051 0052 <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> --> 0053 <!ENTITY regadverb "(?!\()\s*(?=[^\w\s])"> 0054 ]> 0055 <language name="Raku" version="8" kateversion="5.53" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT"> 0056 <highlighting> 0057 0058 <list name="pod"> 0059 <item>begin</item> 0060 <item>end</item> 0061 <item>finish</item> 0062 <item>for</item> 0063 <include>podtypename</include> 0064 </list> 0065 0066 <list name="podblocktypename"> 0067 <item>pod</item> 0068 <include>podtypename</include> 0069 </list> 0070 0071 <list name="podvalue"> 0072 <item>True</item> 0073 <item>False</item> 0074 </list> 0075 0076 <list name="podtypename"> 0077 <item>head1</item> 0078 <item>head2</item> 0079 <item>head3</item> 0080 <item>head4</item> 0081 <item>head5</item> 0082 <item>head6</item> 0083 <item>item</item> 0084 <item>item1</item> 0085 <item>item2</item> 0086 <item>item3</item> 0087 <item>item4</item> 0088 <item>item5</item> 0089 <item>item6</item> 0090 <item>para</item> 0091 <item>code</item> 0092 <item>defn</item> 0093 <item>comment</item> 0094 <item>table</item> 0095 <item>input</item> 0096 <item>output</item> 0097 </list> 0098 0099 <list name="quoting"> 0100 <item>exec</item> 0101 <item>words</item> 0102 <item>quotewords</item> 0103 <item>scalar</item> 0104 <item>array</item> 0105 <item>hash</item> 0106 <item>function</item> 0107 <item>closure</item> 0108 <item>backslash</item> 0109 <item>heredoc</item> 0110 <item>val</item> 0111 </list> 0112 0113 <list name="declareRoutine"> 0114 <item>macro</item> 0115 <item>sub</item> 0116 <item>submethod</item> 0117 <item>method</item> 0118 <item>multi</item> 0119 <item>proto</item> 0120 <item>only</item> 0121 <item>category</item> 0122 </list> 0123 0124 <list name="regexKeyword"> 0125 <item>rule</item> 0126 <item>token</item> 0127 <item>regex</item> 0128 </list> 0129 0130 <list name="value"> 0131 <include>podvalue</include> 0132 <item>self</item> 0133 </list> 0134 0135 <list name="varStorage"> 0136 <item>let</item> 0137 <item>my</item> 0138 <item>our</item> 0139 <item>state</item> 0140 <item>temp</item> 0141 <item>has</item> 0142 <item>constant</item> 0143 </list> 0144 0145 <list name="controlFlow"> 0146 <!-- conditional --> 0147 <item>if</item> 0148 <item>else</item> 0149 <item>elsif</item> 0150 <item>unless</item> 0151 <!-- repeat --> 0152 <item>for</item> 0153 <item>loop</item> 0154 <item>repeat</item> 0155 <item>while</item> 0156 <item>until</item> 0157 <item>gather</item> 0158 <item>given</item> 0159 <!-- control flow --> 0160 <item>take</item> 0161 <item>do</item> 0162 <item>when</item> 0163 <item>next</item> 0164 <item>last</item> 0165 <item>redo</item> 0166 <item>return</item> 0167 <item>contend</item> 0168 <item>maybe</item> 0169 <item>defer</item> 0170 <item>default</item> 0171 <item>exit</item> 0172 <item>make</item> 0173 <item>continue</item> 0174 <item>break</item> 0175 <item>goto</item> 0176 <item>leave</item> 0177 <item>async</item> 0178 <item>lift</item> 0179 <!-- exception --> 0180 <item>die</item> 0181 <item>fail</item> 0182 <item>try</item> 0183 <item>warn</item> 0184 </list> 0185 0186 <list name="keyword"> 0187 <!-- include --> 0188 <item>no</item> 0189 <item>use</item> 0190 <item>require</item> 0191 <!-- typeConstraint --> 0192 <item>is</item> 0193 <item>as</item> 0194 <item>but</item> 0195 <item>trusts</item> 0196 <item>of</item> 0197 <item>returns</item> 0198 <item>handles</item> 0199 <item>where</item> 0200 <item>augment</item> 0201 <item>supersede</item> 0202 <!-- module --> 0203 <item>module</item> 0204 <item>class</item> 0205 <item>role</item> 0206 <item>package</item> 0207 <item>enum</item> 0208 <item>grammar</item> 0209 <item>slang</item> 0210 <item>subset</item> 0211 <!-- closure trait --> 0212 <item>BEGIN</item> 0213 <item>CHECK</item> 0214 <item>INIT</item> 0215 <item>START</item> 0216 <item>FIRST</item> 0217 <item>ENTER</item> 0218 <item>LEAVE</item> 0219 <item>KEEP</item> 0220 <item>UNDO</item> 0221 <item>NEXT</item> 0222 <item>LAST</item> 0223 <item>PRE</item> 0224 <item>POST</item> 0225 <item>END</item> 0226 <item>CATCH</item> 0227 <item>CONTROL</item> 0228 <item>TEMP</item> 0229 </list> 0230 0231 <list name="property"> 0232 <item>prec</item> 0233 <item>irs</item> 0234 <item>ofs</item> 0235 <item>ors</item> 0236 <item>export</item> 0237 <item>deep</item> 0238 <item>binary</item> 0239 <item>unary</item> 0240 <item>reparsed</item> 0241 <item>rw</item> 0242 <item>parsed</item> 0243 <item>cached</item> 0244 <item>readonly</item> 0245 <item>defequiv</item> 0246 <item>will</item> 0247 <item>ref</item> 0248 <item>copy</item> 0249 <item>inline</item> 0250 <item>tighter</item> 0251 <item>looser</item> 0252 <item>equiv</item> 0253 <item>assoc</item> 0254 <item>required</item> 0255 </list> 0256 0257 <list name="isProperty"> 0258 <include>property</include> 0259 <item>signature</item> 0260 <item>context</item> 0261 <item>also</item> 0262 <item>shape</item> 0263 </list> 0264 0265 <list name="Number"> 0266 <item>NaN</item> 0267 <item>Inf</item> 0268 </list> 0269 0270 <list name="type"> 0271 <item>Object</item> 0272 <item>Any</item> 0273 <item>Junction</item> 0274 <item>Whatever</item> 0275 <item>Capture</item> 0276 <item>Match</item> 0277 <item>Signature</item> 0278 <item>Proxy</item> 0279 <item>Matcher</item> 0280 <item>Package</item> 0281 <item>Module</item> 0282 <item>Class</item> 0283 <item>Grammar</item> 0284 <item>Scalar</item> 0285 <item>Array</item> 0286 <item>Hash</item> 0287 <item>KeyHash</item> 0288 <item>KeySet</item> 0289 <item>KeyBag</item> 0290 <item>Pair</item> 0291 <item>List</item> 0292 <item>Seq</item> 0293 <item>Range</item> 0294 <item>Set</item> 0295 <item>Bag</item> 0296 <item>Mapping</item> 0297 <item>Void</item> 0298 <item>Undef</item> 0299 <item>Failure</item> 0300 <item>Exception</item> 0301 <item>Code</item> 0302 <item>Block</item> 0303 <item>Routine</item> 0304 <item>Sub</item> 0305 <item>Macro</item> 0306 <item>Method</item> 0307 <item>Submethod</item> 0308 <item>Regex</item> 0309 <item>Str</item> 0310 <item>Blob</item> 0311 <item>Char</item> 0312 <item>Byte</item> 0313 <item>Codepoint</item> 0314 <item>Grapheme</item> 0315 <item>StrPos</item> 0316 <item>StrLen</item> 0317 <item>Version</item> 0318 <item>Num</item> 0319 <item>Complex</item> 0320 <item>num</item> 0321 <item>complex</item> 0322 <item>Bit</item> 0323 <item>bit</item> 0324 <item>bool</item> 0325 <item>True</item> 0326 <item>False</item> 0327 <item>Increasing</item> 0328 <item>Decreasing</item> 0329 <item>Ordered</item> 0330 <item>Callable</item> 0331 <item>AnyChar</item> 0332 <item>Positional</item> 0333 <item>Associative</item> 0334 <item>Ordering</item> 0335 <item>KeyExtractor</item> 0336 <item>Comparator</item> 0337 <item>OrderingPair</item> 0338 <item>IO</item> 0339 <item>KitchenSink</item> 0340 <item>Role</item> 0341 <item>Int</item> 0342 <item>int</item> 0343 <item>int1</item> 0344 <item>int2</item> 0345 <item>int4</item> 0346 <item>int8</item> 0347 <item>int16</item> 0348 <item>int32</item> 0349 <item>int64</item> 0350 <item>Rat</item> 0351 <item>rat</item> 0352 <item>rat1</item> 0353 <item>rat2</item> 0354 <item>rat4</item> 0355 <item>rat8</item> 0356 <item>rat16</item> 0357 <item>rat32</item> 0358 <item>rat64</item> 0359 <item>Buf</item> 0360 <item>buf</item> 0361 <item>buf1</item> 0362 <item>buf2</item> 0363 <item>buf4</item> 0364 <item>buf8</item> 0365 <item>buf16</item> 0366 <item>buf32</item> 0367 <item>buf64</item> 0368 <item>UInt</item> 0369 <item>uint</item> 0370 <item>uint1</item> 0371 <item>uint2</item> 0372 <item>uint4</item> 0373 <item>uint8</item> 0374 <item>uint16</item> 0375 <item>uint32</item> 0376 <item>uint64</item> 0377 <item>Abstraction</item> 0378 <item>utf8</item> 0379 <item>utf16</item> 0380 <item>utf32</item> 0381 </list> 0382 0383 <list name="operator"> 0384 <item>X</item> 0385 <item>gcd</item> 0386 <item>ge</item> 0387 <item>gt</item> 0388 <item>lcm</item> 0389 <item>le</item> 0390 <item>leg</item> 0391 <item>let</item> 0392 <item>lt</item> 0393 <item>map</item> 0394 <item>max</item> 0395 <item>min</item> 0396 <item>minmax</item> 0397 <item>mod</item> 0398 <item>ne</item> 0399 <item>not</item> 0400 <item>notandthen</item> 0401 <item>o</item> 0402 <item>or</item> 0403 <item>orelse</item> 0404 <item>print</item> 0405 <item>push</item> 0406 <item>say</item> 0407 <item>so</item> 0408 <item>substr</item> 0409 <item>temp</item> 0410 <item>unicmp</item> 0411 <item>x</item> 0412 <item>xor</item> 0413 <item>xx</item> 0414 <item>Xeqv</item> 0415 <item>Z</item> 0416 <item>and</item> 0417 <item>andthen</item> 0418 <item>any</item> 0419 <item>but</item> 0420 <item>cmp</item> 0421 <item>coll</item> 0422 <item>die</item> 0423 <item>div</item> 0424 <item>does</item> 0425 <item>eq</item> 0426 <item>eqv</item> 0427 <item>ff</item> 0428 <item>fff</item> 0429 </list> 0430 0431 <list name="unicodeGeneralCategories"> 0432 <item>L</item> <item>Letter</item> 0433 <item>LC</item> <item>Cased_Letter</item> 0434 <item>Lu</item> <item>Uppercase_Letter</item> 0435 <item>Ll</item> <item>Lowercase_Letter</item> 0436 <item>Lt</item> <item>Titlecase_Letter</item> 0437 <item>Lm</item> <item>Modifier_Letter</item> 0438 <item>Lo</item> <item>Other_Letter</item> 0439 <item>M</item> <item>Mark</item> 0440 <item>Mn</item> <item>Nonspacing_Mark</item> 0441 <item>Mc</item> <item>Spacing_Mark</item> 0442 <item>Me</item> <item>Enclosing_Mark</item> 0443 <item>N</item> <item>Number</item> 0444 <item>Nd</item> <item>Decimal_Number</item> <item>digit</item> 0445 <item>Nl</item> <item>Letter_Number</item> 0446 <item>No</item> <item>Other_Number</item> 0447 <item>P</item> <item>Punctuation</item> <item>punct</item> 0448 <item>Pc</item> <item>Connector_Punctuation</item> 0449 <item>Pd</item> <item>Dash_Punctuation</item> 0450 <item>Ps</item> <item>Open_Punctuation</item> 0451 <item>Pe</item> <item>Close_Punctuation</item> 0452 <item>Pi</item> <item>Initial_Punctuation</item> 0453 <item>Pf</item> <item>Final_Punctuation</item> 0454 <item>Po</item> <item>Other_Punctuation</item> 0455 <item>S</item> <item>Symbol</item> 0456 <item>Sm</item> <item>Math_Symbol</item> 0457 <item>Sc</item> <item>Currency_Symbol</item> 0458 <item>Sk</item> <item>Modifier_Symbol</item> 0459 <item>So</item> <item>Other_Symbol</item> 0460 <item>Z</item> <item>Separator</item> 0461 <item>Zs</item> <item>Space_Separator</item> 0462 <item>Zl</item> <item>Line_Separator</item> 0463 <item>Zp</item> <item>Paragraph_Separator</item> 0464 <item>C</item> <item>Other</item> 0465 <item>Cc</item> <item>Control</item> <item>cntrl</item> 0466 <item>Cf</item> <item>Format</item> 0467 <item>Cs</item> <item>Surrogate</item> 0468 <item>Co</item> <item>Private_Use</item> 0469 <item>Cn</item> <item>Unassigned</item> 0470 </list> 0471 0472 <list name="assertion"> 0473 <item>before</item> 0474 <item>after</item> 0475 </list> 0476 0477 <contexts> 0478 0479 <context name="Shebang" attribute="Comment" lineEndContext="#pop!base" fallthrough="1" fallthroughContext="#pop!base"> 0480 <RegExpr attribute="Keyword" context="#pop!base" String="^#!\/.*" column="0"/> 0481 </context> 0482 0483 <context name="base" attribute="Normal Text" lineEndContext="#stay"> 0484 <DetectSpaces/> 0485 <DetectChar attribute="Comment" context="StartComment" char="#"/> 0486 <!-- <DetectChar attribute="Unspace" context="#stay" char="\"/> --> 0487 <DetectChar attribute="String Delimiter" context="qq_RawString" char="""/> 0488 <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/> 0489 <DetectChar char="{" context="Interpolation" attribute="Operator" beginRegion="block"/> 0490 <RegExpr String="(?:s|tr|TR)®adverb;" context="RegexSubstitution" attribute="Operator"/> 0491 <RegExpr String="(?:rx|m)®adverb;" context="Regex" attribute="Operator"/> 0492 <IncludeRules context="find_Variable"/> 0493 <DetectChar attribute="Pod" context="StartPod" char="=" firstNonSpace="1"/> 0494 <RegExpr String="»\.|<<\.|&hyperoperators;|&startstringasoperator;|&funcoperator;|&reductionoperator;|&operators;" context="MaybeRegex" attribute="Operator"/> 0495 <DetectChar char="(" context="SubExpression(" attribute="Operator" beginRegion="block"/> 0496 <DetectChar char="[" context="SubExpression[" attribute="Operator" beginRegion="block"/> 0497 <AnyChar String=",;" context="#stay" attribute="Separator Symbol"/> 0498 <DetectChar attribute="String Delimiter" context="qq_String«" char="«"/> 0499 <Detect2Chars attribute="String Delimiter" context="qq_String<<" char="<" char1="<"/> 0500 <DetectChar attribute="String Delimiter" context="q_String<" char="<"/> 0501 <DetectChar attribute="String Delimiter" context="Q_String「" char="「"/> 0502 <RegExpr String="Q(\s++(?=['(_]|$)|\s*+(?=[^()>」\]}'&rangealphabetic;&rangenumeric;]|$))" context="Q_String" attribute="String"/> 0503 <DetectChar char=":" context="MaybeAttribute" attribute="Operator"/> 0504 <AnyChar String="0123456789." context="Number" lookAhead="1"/> 0505 <RegExpr attribute="Operator" context="q_QuotingForm" String="q(?="ingform_q;"ingform_q_assert;)"/> 0506 <keyword String="operator" context="#stay" attribute="Operator"/> 0507 <keyword String="varStorage" context="#stay" attribute="Variable Storage"/> 0508 <keyword String="type" context="#stay" attribute="Data Type"/> 0509 <keyword String="controlFlow" context="#stay" attribute="Control Flow"/> 0510 <WordDetect String="is" context="Is" attribute="Keyword"/> 0511 <keyword String="keyword" context="#stay" attribute="Keyword"/> 0512 <keyword String="declareRoutine" context="#stay" attribute="Declare Routine"/> 0513 <keyword String="property" context="#stay" attribute="Property"/> 0514 <keyword String="regexKeyword" context="RegexKeyword" attribute="Keyword"/> 0515 <keyword String="value" context="#stay" attribute="Keyword Value"/> 0516 <keyword String="Number" context="#stay" attribute="Float"/> 0517 <RegExpr String="[A-Z](?:[a-z]+[a-zA-Z0-9]*)+" context="#stay" attribute="Data Type"/> 0518 <RegExpr String="&ident;" context="#stay" attribute="Normal Text"/> 0519 </context> 0520 0521 <context name="Is" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0522 <DetectSpaces/> 0523 <keyword String="isProperty" context="#pop" attribute="Property"/> 0524 </context> 0525 0526 <context name="Interpolation" attribute="Normal Text" lineEndContext="#stay"> 0527 <DetectChar char="}" context="#pop" attribute="Operator" endRegion="block"/> 0528 <IncludeRules context="base"/> 0529 </context> 0530 0531 <context name="SubExpression(" attribute="Normal Text" lineEndContext="#stay"> 0532 <IncludeRules context="base"/> 0533 <DetectChar char=")" context="#pop" attribute="Operator" endRegion="block"/> 0534 </context> 0535 0536 <context name="SubExpression[" attribute="Normal Text" lineEndContext="#stay"> 0537 <IncludeRules context="base"/> 0538 <DetectChar char="]" context="#pop" attribute="Operator" endRegion="block"/> 0539 </context> 0540 0541 <context name="find_Variable" attribute="Normal Text" lineEndContext="#stay"> 0542 <RegExpr String="[%&](?=[?*]&alphabetic;)|(?:\$[&twigils;]|::\?)(?=&alphabetic;)" context="Twigil" attribute="Variable"/> 0543 <RegExpr String="[$@]\(\)|[%@]?\$/|\$!|\$[0-9]+|[\\@%&$]&ident;" context="#stay" attribute="Variable"/> 0544 </context> 0545 0546 <context name="MaybeRegex" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop"> 0547 <DetectSpaces/> 0548 <DetectChar char="/" context="#pop!Regex" attribute="Operator" lookAhead="1"/> 0549 </context> 0550 0551 <context name="Twigil" attribute="Variable" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0552 <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/> 0553 <RegExpr String="&ident;" context="#pop" attribute="Variable"/> 0554 </context> 0555 0556 <context name="RegexKeyword" attribute="Normal Text" lineEndContext="#pop"> 0557 <DetectChar char="{" context="#pop!RegexKeyword-Pattern{" attribute="Operator" beginRegion="regex"/> 0558 </context> 0559 <context name="RegexKeyword-Pattern{" attribute="Pattern" lineEndContext="#stay"> 0560 <DetectChar char="}" context="#pop" attribute="Operator" endRegion="regex"/> 0561 <IncludeRules context="find_Pattern"/> 0562 </context> 0563 0564 <!-- Regex --> 0565 0566 <context name="Regex" attribute="Pattern" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop"> 0567 <IncludeRules context="find_RegexClosure"/> 0568 <RegExpr String="([^\w\s])" context="Pattern" attribute="Operator" beginRegion="regex"/> 0569 </context> 0570 0571 <context name="find_RegexClosure" attribute="Pattern" lineEndContext="#stay"> 0572 <DetectChar char=":" context="RegexModifier" attribute="Pattern Modifier"/> 0573 <DetectChar char="{" context="Pattern{" attribute="Operator" beginRegion="regex"/> 0574 <DetectChar char="(" context="Pattern(" attribute="Operator" beginRegion="regex"/> 0575 <DetectChar char="[" context="Pattern[" attribute="Operator" beginRegion="regex"/> 0576 <DetectChar char="<" context="Pattern<" attribute="Operator" beginRegion="regex"/> 0577 <DetectSpaces/> 0578 </context> 0579 0580 <context name="RegexModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0581 <Detect2Chars char="P" char1="5" context="RegexPerl5" attribute="Pattern Modifier"/> 0582 <StringDetect String="Perl5" context="RegexPerl5" attribute="Pattern Modifier"/> 0583 <DetectIdentifier context="#pop" attribute="Pattern Modifier"/> 0584 </context> 0585 0586 <context name="RegexPerl5" attribute="Pattern Modifier" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop!IsRegexPerl5"> 0587 <DetectSpaces/> 0588 </context> 0589 0590 <context name="IsRegexPerl5" attribute="Pattern" lineEndContext="#stay"> 0591 <IncludeRules context="find_pattern##Perl"/> 0592 </context> 0593 0594 <context name="Pattern{" attribute="Pattern" lineEndContext="#stay"> 0595 <DetectChar char="}" context="#pop#pop" attribute="Operator" endRegion="regex"/> 0596 <IncludeRules context="find_Pattern"/> 0597 </context> 0598 0599 <context name="Pattern[" attribute="Pattern" lineEndContext="#stay"> 0600 <DetectChar char="]" context="#pop#pop" attribute="Operator" endRegion="regex"/> 0601 <IncludeRules context="find_Pattern"/> 0602 </context> 0603 0604 <context name="Pattern(" attribute="Pattern" lineEndContext="#stay"> 0605 <DetectChar char=")" context="#pop#pop" attribute="Operator" endRegion="regex"/> 0606 <IncludeRules context="find_Pattern"/> 0607 </context> 0608 0609 <context name="Pattern<" attribute="Pattern" lineEndContext="#stay"> 0610 <DetectChar char=">" context="#pop#pop" attribute="Operator" endRegion="regex"/> 0611 <IncludeRules context="find_Pattern"/> 0612 </context> 0613 0614 <context name="Pattern" attribute="Pattern" lineEndContext="#stay"> 0615 <DetectChar char="1" dynamic="1" context="#pop#pop" attribute="Operator" endRegion="regex"/> 0616 <IncludeRules context="find_Pattern"/> 0617 </context> 0618 0619 <context name="find_Pattern" attribute="Pattern" lineEndContext="#stay"> 0620 <DetectChar attribute="Operator" context="SubPattern" char="("/> 0621 <DetectChar char="\" context="PatternMetaChar" attribute="Pattern Character Class"/> 0622 <DetectChar attribute="String Delimiter" context="qq_RawString" char="""/> 0623 <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/> 0624 <DetectChar attribute="Pattern Modifier" context="PatternModifier" char=":" lookAhead="1"/> 0625 <DetectChar char="{" context="Interpolation" attribute="Operator" beginRegion="block"/> 0626 <Detect2Chars attribute="Operator" context="RecursivePattern" char="<" char1="("/> 0627 <Detect2Chars attribute="Operator" context="PatternAssertion" char="<" char1="?"/> 0628 <Detect2Chars attribute="Operator" context="PatternAssertion" char="<" char1="!"/> 0629 <Detect2Chars attribute="Operator" context="#stay" char="<" char1="<"/> 0630 <Detect2Chars attribute="Operator" context="#stay" char=">" char1=">"/> 0631 <DetectChar attribute="Pattern Meta Character" context="RegexClass" char="<"/> 0632 <AnyChar attribute="Pattern Quantifier" context="#stay" String="?*+%"/> 0633 <Detect2Chars attribute="Pattern Quantifier" context="#stay" char="." char1="."/> 0634 <AnyChar attribute="Operator" context="#stay" String="[]«»~"/> 0635 <DetectChar attribute="Pattern Special Character" context="#stay" char="."/> 0636 <Detect2Chars attribute="Variable" context="PatternVariable" char="$" char1="<"/> 0637 <AnyChar attribute="Pattern Control Flow" context="#stay" String="&|^$"/> 0638 <DetectChar attribute="Comment" context="StartComment" char="#"/> 0639 <IncludeRules context="find_Variable"/> 0640 <RegExpr String="[&rangealphabetic;&rangenumeric;\s]+" context="#stay" attribute="Pattern"/> 0641 </context> 0642 0643 <context name="SubPattern" attribute="Pattern" lineEndContext="#stay"> 0644 <DetectChar char=")" context="#pop" attribute="Operator"/> 0645 <IncludeRules context="find_Pattern"/> 0646 </context> 0647 0648 <context name="RecursivePattern" attribute="Variable" lineEndContext="#stay"> 0649 <Detect2Chars attribute="Operator" context="#pop" char=")" char1=">"/> 0650 <IncludeRules context="find_Pattern"/> 0651 </context> 0652 0653 <context name="PatternModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0654 <RegExpr context="#pop" attribute="Pattern Modifier" String=":\w+"/> 0655 <DetectChar attribute="Pattern Control Flow" context="#pop" char=":"/> 0656 </context> 0657 0658 <context name="PatternVariable" attribute="Variable" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0659 <RegExpr String="&ident;>?" context="#pop" attribute="Variable"/> 0660 </context> 0661 0662 <context name="PatternAssertion" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!RegexClass"> 0663 <DetectChar attribute="Operator" context="#pop" char=">"/> 0664 <DetectChar attribute="Operator" context="PatternAssertionCond" char="{"/> 0665 <keyword attribute="Keyword" String="assertion" context="SubPatternAssertion"/> 0666 </context> 0667 <context name="SubPatternAssertion" attribute="Pattern" lineEndContext="#stay"> 0668 <DetectChar char=">" context="#pop#pop" attribute="Operator"/> 0669 <IncludeRules context="find_Pattern"/> 0670 </context> 0671 0672 <context name="PatternAssertionCond" attribute="Normal Text" lineEndContext="#stay"> 0673 <Detect2Chars attribute="Operator" context="#pop#pop" char="}" char1=">"/> 0674 <IncludeRules context="base"/> 0675 </context> 0676 0677 <context name="PatternMetaChar" attribute="Pattern Meta Character" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!CharError"> 0678 <AnyChar attribute="Pattern Character Class" context="#pop" String="nthvsdwNTHVSDW"/> 0679 <RegExpr String="[^&rangealphabetic;&rangenumeric;]" context="#pop" attribute="Pattern Meta Character"/> 0680 </context> 0681 0682 0683 <!-- Pattern Character Classes --> 0684 0685 <context name="RegexClass" attribute="Pattern Meta Character" lineEndContext="#stay"> 0686 <DetectSpaces/> 0687 <AnyChar attribute="Operator" context="#stay" String="-!+()"/> 0688 <DetectChar attribute="Pattern Meta Character" context="RegexClassRange" char="["/> 0689 <DetectChar attribute="Pattern Unicode Property" context="RegexClassName" char=":"/> 0690 <DetectChar attribute="Pattern Meta Character" context="#pop" char=">"/> 0691 <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/> 0692 <DetectChar attribute="String Delimiter" context="qq_RawString" char="""/> 0693 <DetectChar attribute="String Delimiter" context="Q_String「" char="「"/> 0694 <DetectChar attribute="String Delimiter" context="q_String<" char="<"/> 0695 <DetectChar attribute="String Delimiter" context="qq_String«" char="«"/> 0696 <RegExpr attribute="String" context="#stay" String="[^-!+()?:<>'"「«]+"/> 0697 </context> 0698 0699 <context name="RegexClassName" attribute="Pattern Unicode Property" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop"> 0700 <RegExpr String="\w+" context="#pop" attribute="Pattern Unicode Property"/> 0701 <!-- auto-completion only --> 0702 <keyword attribute="Pattern Unicode Property" context="#pop" String="unicodeGeneralCategories"/> 0703 </context> 0704 0705 <context name="RegexClassRange" attribute="Pattern Character" lineEndContext="#stay"> 0706 <DetectSpaces/> 0707 <DetectChar char="\" context="RegexClassRangeMetaChar" attribute="Pattern Character Class"/> 0708 <Detect2Chars char="." char1="." context="#stay" attribute="Pattern Quantifier"/> 0709 <DetectChar attribute="Pattern Meta Character" context="#pop" char="]"/> 0710 </context> 0711 0712 <context name="RegexClassRangeMetaChar" attribute="Pattern Meta Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop"> 0713 <DetectSpaces/> 0714 <IncludeRules context="find_SpecialChar"/> 0715 <IncludeRules context="PatternMetaChar"/> 0716 </context> 0717 0718 0719 <!-- Regex Substitution --> 0720 0721 <context name="RegexSubstitution" attribute="Operator" lineEndContext="#stay"> 0722 <IncludeRules context="find_RegexClosure"/> 0723 <RegExpr String="([^\w\s])" context="RegexSubstitutionPattern" attribute="Operator" beginRegion="regex"/> 0724 </context> 0725 0726 <context name="RegexSubstitutionPattern" attribute="Pattern" lineEndContext="#stay"> 0727 <RegExpr String="(%1)" dynamic="1" context="RegexSubstitutionString" attribute="Operator" endRegion="regex"/> 0728 <IncludeRules context="find_Pattern"/> 0729 </context> 0730 0731 <context name="RegexSubstitutionString" attribute="String" lineEndContext="#stay"> 0732 <DetectChar char="1" dynamic="1" context="#pop#pop#pop" attribute="Operator"/> 0733 </context> 0734 0735 0736 <!-- Number --> 0737 0738 <context name="Number" attribute="Decimal" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!CharErrorIfNoSep"> 0739 <RegExpr String="&int10;(?:\.&int10;(?:[eE][+-]?&int10;)?|[eE][+-]?&int10;)i?|\.&int10;(?:[eE][+-]?&int10;)?i?" context="CheckNumberError" attribute="Float"/> 0740 <Detect2Chars char="0" char1="x" context="HexNumber" attribute="Hex"/> 0741 <Detect2Chars char="0" char1="o" context="OctalNumber" attribute="Octal"/> 0742 <RegExpr String="&int10;i?" context="CheckNumberError" attribute="Decimal"/> 0743 <DetectChar char="." context="#pop" attribute="Operator"/> 0744 </context> 0745 0746 <context name="HexNumber" attribute="Hex" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep"> 0747 <RegExpr String="[a-fA-F0-9]+(?:_[a-fA-F0-9]+)*i?" context="#pop!CheckNumberError" attribute="Hex"/> 0748 </context> 0749 0750 <context name="OctalNumber" attribute="Octal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep"> 0751 <RegExpr String="[0-7]+(?:_[0-7]+)*i?" context="#pop!CheckNumberError" attribute="Octal"/> 0752 </context> 0753 0754 <context name="BaseNumber" attribute="Decimal" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop!CharErrorIfNoSep"> 0755 <DetectChar char=">" context="#pop#pop#pop" attribute="Error"/> 0756 <RegExpr String="&intN;\.&intN;|\.&intN;" context="#pop#pop!BaseNumberClose" attribute="Float"/> 0757 <RegExpr String="&intN;" context="#pop#pop!BaseNumberClose" attribute="Decimal"/> 0758 </context> 0759 <context name="BaseNumberClose" attribute="Decimal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep"> 0760 <DetectChar char=">" context="#pop#pop" attribute="Operator"/> 0761 <IncludeRules context="CheckNumberError"/> 0762 </context> 0763 0764 <context name="CheckNumberError" attribute="Octal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 0765 <RegExpr String="&alnum;+" context="#pop#pop" attribute="Error"/> 0766 </context> 0767 0768 0769 <!-- Attribute or Key --> 0770 0771 <context name="MaybeAttribute" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0772 <Int context="MaybeAttribute2" attribute="Decimal"/> 0773 <DetectChar char="!" context="#pop" attribute="Operator"/> 0774 <RegExpr String="&ident;" context="#pop" attribute="Attribute"/> 0775 </context> 0776 0777 <context name="MaybeAttribute2" attribute="Decimal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 0778 <DetectChar char="<" context="BaseNumber" attribute="Operator"/> 0779 </context> 0780 0781 0782 <!-- Pod --> 0783 0784 <context name="StartPod" attribute="Pod Typename" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop"> 0785 <WordDetect String="begin" context="PodBegin" attribute="Pod Block"/> 0786 <WordDetect String="for" context="PodFor" attribute="Pod Typename"/> 0787 <keyword String="pod" context="PodTypenameValue" attribute="Pod Typename"/> 0788 <RegExpr String="[_A-Z][-_A-Z0-9]*\b" context="PodTypenameValue" attribute="Pod Typename"/> 0789 <RegExpr String="&ident;" context="PodTypenameValue" attribute="Pod Unknown"/> 0790 </context> 0791 0792 <context name="PodTypenameValue" attribute="Pod Typename Value" lineEndContext="PodTypenameValueNextLine" fallthrough="1" fallthroughContext="PodFormat"> 0793 <RegExpr attribute="Pod Typename Value" context="#stay" String="&allnopodfmt;"/> 0794 </context> 0795 0796 <context name="PodTypenameValueNextLine" attribute="Pod Typename Value" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop"> 0797 <DetectSpaces attribute="Normal Text" context="PodTypenameValueOrEmpty"/> 0798 <DetectChar attribute="Pod" context="#pop#pop#pop" char="=" lookAhead="true"/> 0799 </context> 0800 0801 <context name="PodTypenameValueOrEmpty" attribute="Pod Typename Value" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 0802 <DetectChar attribute="Pod" context="#pop#pop#pop#pop" char="=" lookAhead="true"/> 0803 </context> 0804 0805 0806 <!-- Pod formatting --> 0807 0808 <context name="PodFormat" attribute="Pod Typename Value" lineEndContext="#stay"> 0809 <Detect2Chars char="B" char1="<" attribute="Pod Bold" context="#pop!PodFormatB"/> 0810 <Detect2Chars char="B" char1="«" attribute="Pod Bold" context="#pop!PodFormatB2"/> 0811 <Detect2Chars char="I" char1="<" attribute="Pod Italic" context="#pop!PodFormatI"/> 0812 <Detect2Chars char="I" char1="«" attribute="Pod Italic" context="#pop!PodFormatI2"/> 0813 <Detect2Chars char="L" char1="<" attribute="Pod Link" context="#pop!PodFormatL"/> 0814 <Detect2Chars char="L" char1="«" attribute="Pod Link" context="#pop!PodFormatL2"/> 0815 <Detect2Chars char="N" char1="<" attribute="Pod Note" context="#pop!PodFormatN"/> 0816 <Detect2Chars char="N" char1="«" attribute="Pod Note" context="#pop!PodFormatN2"/> 0817 <Detect2Chars char="P" char1="<" attribute="Pod Link" context="#pop!PodFormatL"/> 0818 <Detect2Chars char="P" char1="«" attribute="Pod Link" context="#pop!PodFormatL2"/> 0819 <Detect2Chars char="Z" char1="<" attribute="Pod Comment" context="#pop!PodFormatZ"/> 0820 <Detect2Chars char="Z" char1="«" attribute="Pod Comment" context="#pop!PodFormatZ2"/> 0821 <Detect2Chars char="U" char1="<" attribute="Pod Underline" context="#pop!PodFormatU"/> 0822 <Detect2Chars char="U" char1="«" attribute="Pod Underline" context="#pop!PodFormatU2"/> 0823 <Detect2Chars char="C" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 0824 <Detect2Chars char="C" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 0825 <Detect2Chars char="E" char1="<" attribute="Pod Unicode" context="#pop!PodFormatE"/> 0826 <Detect2Chars char="E" char1="«" attribute="Pod Unicode" context="#pop!PodFormatE2"/> 0827 <Detect2Chars char="K" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 0828 <Detect2Chars char="K" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 0829 <Detect2Chars char="R" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 0830 <Detect2Chars char="R" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 0831 <Detect2Chars char="T" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 0832 <Detect2Chars char="T" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 0833 <Detect2Chars char="V" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatV"/> 0834 <Detect2Chars char="V" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatV2"/> 0835 <Detect2Chars char="X" char1="<" attribute="Pod Indexed Terms" context="#pop!PodFormatX"/> 0836 <Detect2Chars char="X" char1="«" attribute="Pod Indexed Terms" context="#pop!PodFormatX2"/> 0837 <Detect2Chars char="M" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 0838 <Detect2Chars char="M" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 0839 </context> 0840 0841 <context name="PodFormatB" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatB1"> 0842 <DetectChar char="<" attribute="Pod Bold" context="#pop!PodFormatB3"/> 0843 </context> 0844 <context name="PodFormatB1" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0845 <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt1;"/> 0846 <DetectChar char="<" attribute="Pod Bold" context="PodFormatB1"/> 0847 <DetectChar char=">" attribute="Pod Bold" context="#pop"/> 0848 </context> 0849 <context name="PodFormatB2" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0850 <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt2;"/> 0851 <DetectChar char="«" attribute="Pod Bold" context="PodFormatB2"/> 0852 <DetectChar char="»" attribute="Pod Bold" context="#pop"/> 0853 </context> 0854 <context name="PodFormatB3" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0855 <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt3;"/> 0856 <Detect2Chars char="<" char1="<" attribute="Pod Bold" context="PodFormatB3"/> 0857 <Detect2Chars char=">" char1=">" attribute="Pod Bold" context="#pop"/> 0858 </context> 0859 0860 <context name="PodFormatE" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatE1"> 0861 <DetectChar char="<" attribute="Pod Unicode" context="#pop!PodFormatE3"/> 0862 </context> 0863 <context name="PodFormatE1" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0864 <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt1;"/> 0865 <DetectChar char="<" attribute="Pod Unicode" context="PodFormatE1"/> 0866 <DetectChar char=">" attribute="Pod Unicode" context="#pop"/> 0867 </context> 0868 <context name="PodFormatE2" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0869 <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt2;"/> 0870 <DetectChar char="«" attribute="Pod Unicode" context="PodFormatE2"/> 0871 <DetectChar char="»" attribute="Pod Unicode" context="#pop"/> 0872 </context> 0873 <context name="PodFormatE3" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0874 <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt3;"/> 0875 <Detect2Chars char="<" char1="<" attribute="Pod Unicode" context="PodFormatE3"/> 0876 <Detect2Chars char=">" char1=">" attribute="Pod Unicode" context="#pop"/> 0877 </context> 0878 0879 <context name="PodFormatI" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatI1"> 0880 <DetectChar char="<" attribute="Pod Italic" context="#pop!PodFormatI3"/> 0881 </context> 0882 <context name="PodFormatI1" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0883 <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt1;"/> 0884 <DetectChar char="<" attribute="Pod Italic" context="PodFormatI1"/> 0885 <DetectChar char=">" attribute="Pod Italic" context="#pop"/> 0886 </context> 0887 <context name="PodFormatI2" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0888 <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt2;"/> 0889 <DetectChar char="«" attribute="Pod Italic" context="PodFormatI2"/> 0890 <DetectChar char="»" attribute="Pod Italic" context="#pop"/> 0891 </context> 0892 <context name="PodFormatI3" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0893 <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt3;"/> 0894 <Detect2Chars char="<" char1="<" attribute="Pod Italic" context="PodFormatI3"/> 0895 <Detect2Chars char=">" char1=">" attribute="Pod Italic" context="#pop"/> 0896 </context> 0897 0898 <context name="PodFormatL" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatL1"> 0899 <DetectChar char="<" attribute="Pod Link" context="#pop!PodFormatL3"/> 0900 </context> 0901 <context name="PodFormatL1" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0902 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|]+|[&podfmt;](?![<«]))+"/> 0903 <DetectChar char="|" attribute="Pod Operator" context="#stay"/> 0904 <DetectChar char=">" attribute="Pod Link" context="#pop"/> 0905 </context> 0906 <context name="PodFormatL2" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0907 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|]+|[&podfmt;](?![<«]))+"/> 0908 <DetectChar char="|" attribute="Pod Operator" context="#stay"/> 0909 <DetectChar char="»" attribute="Pod Link" context="#pop"/> 0910 </context> 0911 <context name="PodFormatL3" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0912 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"/> 0913 <DetectChar char="|" attribute="Pod Operator" context="#stay"/> 0914 <Detect2Chars char=">" char1=">" attribute="Pod Link" context="#pop"/> 0915 </context> 0916 0917 <context name="PodFormatN" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatN1"> 0918 <DetectChar char="<" attribute="Pod Note" context="#pop!PodFormatN3"/> 0919 </context> 0920 <context name="PodFormatN1" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0921 <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt1;"/> 0922 <DetectChar char="<" attribute="Pod Note" context="PodFormatN1"/> 0923 <DetectChar char=">" attribute="Pod Note" context="#pop"/> 0924 </context> 0925 <context name="PodFormatN2" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0926 <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt2;"/> 0927 <DetectChar char="«" attribute="Pod Note" context="PodFormatN2"/> 0928 <DetectChar char="»" attribute="Pod Note" context="#pop"/> 0929 </context> 0930 <context name="PodFormatN3" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0931 <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt3;"/> 0932 <Detect2Chars char="<" char1="<" attribute="Pod Note" context="PodFormatN3"/> 0933 <Detect2Chars char=">" char1=">" attribute="Pod Note" context="#pop"/> 0934 </context> 0935 0936 <context name="PodFormatU" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatU1"> 0937 <DetectChar char="<" attribute="Pod Underline" context="#pop!PodFormatU3"/> 0938 </context> 0939 <context name="PodFormatU1" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0940 <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt1;"/> 0941 <DetectChar char="<" attribute="Pod Underline" context="PodFormatU1"/> 0942 <DetectChar char=">" attribute="Pod Underline" context="#pop"/> 0943 </context> 0944 <context name="PodFormatU2" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0945 <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt2;"/> 0946 <DetectChar char="«" attribute="Pod Underline" context="PodFormatU2"/> 0947 <DetectChar char="»" attribute="Pod Underline" context="#pop"/> 0948 </context> 0949 <context name="PodFormatU3" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0950 <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt3;"/> 0951 <Detect2Chars char="<" char1="<" attribute="Pod Underline" context="PodFormatU3"/> 0952 <Detect2Chars char=">" char1=">" attribute="Pod Underline" context="#pop"/> 0953 </context> 0954 0955 <context name="PodFormatV" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatV1"> 0956 <DetectChar char="<" attribute="Pod Verbatim" context="#pop!PodFormatV3"/> 0957 </context> 0958 <context name="PodFormatV1" attribute="Pod Verbatim" lineEndContext="#stay"> 0959 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/> 0960 <DetectChar char="<" attribute="Pod Verbatim" context="PodFormatV1"/> 0961 <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/> 0962 </context> 0963 <context name="PodFormatV2" attribute="Pod Verbatim" lineEndContext="#stay"> 0964 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/> 0965 <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatV2"/> 0966 <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/> 0967 </context> 0968 <context name="PodFormatV3" attribute="Pod Verbatim" lineEndContext="#stay"> 0969 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/> 0970 <Detect2Chars char="<" char1="<" attribute="Pod Verbatim" context="PodFormatV3"/> 0971 <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/> 0972 </context> 0973 0974 <context name="PodFormatVT" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatVT1"> 0975 <DetectChar char="<" attribute="Pod Verbatim" context="#pop!PodFormatVT3"/> 0976 </context> 0977 <context name="PodFormatVT1" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0978 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/> 0979 <DetectChar char="<" attribute="Pod Verbatim" context="PodFormatVT1"/> 0980 <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/> 0981 </context> 0982 <context name="PodFormatVT2" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0983 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/> 0984 <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatVT2"/> 0985 <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/> 0986 </context> 0987 <context name="PodFormatVT3" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0988 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/> 0989 <Detect2Chars char="<" char1="<" attribute="Pod Verbatim" context="PodFormatVT3"/> 0990 <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/> 0991 </context> 0992 0993 <context name="PodFormatZ" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatZ1"> 0994 <DetectChar char="<" attribute="Pod Comment" context="#pop!PodFormatZ3"/> 0995 </context> 0996 <context name="PodFormatZ1" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 0997 <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt1;"/> 0998 <DetectChar char="<" attribute="Pod Comment" context="PodFormatZ1"/> 0999 <DetectChar char=">" attribute="Pod Comment" context="#pop"/> 1000 </context> 1001 <context name="PodFormatZ2" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 1002 <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt2;"/> 1003 <DetectChar char="«" attribute="Pod Comment" context="PodFormatZ2"/> 1004 <DetectChar char="»" attribute="Pod Comment" context="#pop"/> 1005 </context> 1006 <context name="PodFormatZ3" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 1007 <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt3;"/> 1008 <Detect2Chars char="<" char1="<" attribute="Pod Comment" context="PodFormatZ3"/> 1009 <Detect2Chars char=">" char1=">" attribute="Pod Comment" context="#pop"/> 1010 </context> 1011 1012 <context name="PodFormatX" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatX1"> 1013 <DetectChar char="<" attribute="Pod Indexed Terms" context="#pop!PodFormatX3"/> 1014 </context> 1015 <context name="PodFormatX1" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 1016 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|;,]+|[&podfmt;](?![<«]))+"/> 1017 <AnyChar String="|;," attribute="Pod Operator" context="#stay"/> 1018 <DetectChar char=">" attribute="Pod Indexed Terms" context="#pop"/> 1019 </context> 1020 <context name="PodFormatX2" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 1021 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|;,]+|[&podfmt;](?![<«]))+"/> 1022 <AnyChar String="|;," attribute="Pod Operator" context="#stay"/> 1023 <DetectChar char="«" attribute="Pod Indexed Terms" context="PodFormatX2"/> 1024 <DetectChar char="»" attribute="Pod Indexed Terms" context="#pop"/> 1025 </context> 1026 <context name="PodFormatX3" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat"> 1027 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|;,]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"/> 1028 <AnyChar String="|;," attribute="Pod Operator" context="#stay"/> 1029 <Detect2Chars char="<" char1="<" attribute="Pod Indexed Terms" context="PodFormatX3"/> 1030 <Detect2Chars char=">" char1=">" attribute="Pod Indexed Terms" context="#pop"/> 1031 </context> 1032 1033 <!-- Pod =begin --> 1034 1035 <context name="PodBegin" attribute="Pod Typename Value" lineEndContext="#pop#pop!Error"> 1036 <DetectSpaces attribute="Normal Text"/> 1037 <WordDetect String="code" context="PodBeginCode" attribute="Pod Typename Value" beginRegion="pod"/> 1038 <WordDetect String="comment" context="PodBeginComment" attribute="Pod Typename Value" beginRegion="pod"/> 1039 <RegExpr String="(&ident;)" context="PodBeginTypename" attribute="Pod Typename Value" beginRegion="pod"/> 1040 <!-- auto-completion only --> 1041 <keyword String="podblocktypename" context="#stay" attribute="Pod Typename Value"/> 1042 </context> 1043 1044 <context name="PodBeginCode" attribute="Error" lineEndContext="PodInnerCode"> 1045 <DetectSpaces attribute="Normal Text"/> 1046 <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/> 1047 <DetectChar char="=" context="PodEndCode" attribute="Pod" firstNonSpace="1"/> 1048 </context> 1049 1050 <context name="PodInnerCode" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodCode"> 1051 <RegExpr String="^\s*=end\s+code\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/> 1052 </context> 1053 <context name="PodCode" attribute="Pod Verbatim" lineEndContext="#pop"/> 1054 1055 <context name="PodEndCode" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1056 <StringDetect String="end" context="PodEndCodeName" attribute="Pod Block" endRegion="pod"/> 1057 </context> 1058 <context name="PodEndCodeName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop#pop!Error"> 1059 <DetectSpaces attribute="Normal Text"/> 1060 <StringDetect String="code" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/> 1061 </context> 1062 1063 1064 <context name="PodBeginComment" attribute="Error" lineEndContext="PodInnerComment"> 1065 <DetectSpaces attribute="Normal Text"/> 1066 <DetectChar char="=" context="PodEndComment" attribute="Pod" firstNonSpace="1"/> 1067 </context> 1068 1069 <context name="PodInnerComment" attribute="Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodComment"> 1070 <RegExpr String="^\s*=end\s+comment\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/> 1071 </context> 1072 <context name="PodComment" attribute="Comment" lineEndContext="#pop"/> 1073 1074 <context name="PodEndComment" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1075 <StringDetect String="end" context="PodEndCommentName" attribute="Pod Block" endRegion="pod"/> 1076 </context> 1077 <context name="PodEndCommentName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop#pop!Error"> 1078 <DetectSpaces attribute="Normal Text"/> 1079 <StringDetect String="comment" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/> 1080 </context> 1081 1082 1083 <context name="PodBeginTypename" attribute="Error" lineEndContext="PodInnerBlock"> 1084 <RegExpr String="^\s*=end\s+%1\b" dynamic="1" context="PodEnd" attribute="Pod" column="0" lookAhead="1"/> 1085 <DetectSpaces attribute="Normal Text"/> 1086 <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/> 1087 <DetectChar char="=" context="PodEndError" attribute="Pod" firstNonSpace="1"/> 1088 </context> 1089 1090 <context name="PodInnerBlock" attribute="Pod Paragraph" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodInnerBlockFormat"> 1091 <RegExpr String="^\s*=end\b" context="#pop" attribute="Pod" column="0" lookAhead="1"/> 1092 <DetectSpaces/> 1093 <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/> 1094 <RegExpr attribute="Pod Paragraph" context="#stay" String="&allnopodfmt;"/> 1095 </context> 1096 1097 <context name="PodInnerBlockFormat" attribute="Pod Paragraph" lineEndContext="#stay"> 1098 <IncludeRules context="PodFormat"/> 1099 </context> 1100 1101 <context name="PodEnd" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1102 <DetectSpaces attribute="Normal Text"/> 1103 <DetectChar char="=" context="#stay" attribute="Pod"/> 1104 <StringDetect String="end" context="PodEndName" attribute="Pod Block" endRegion="pod"/> 1105 </context> 1106 <context name="PodEndName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop"> 1107 <DetectSpaces attribute="Normal Text"/> 1108 <RegExpr String="&ident;" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/> 1109 </context> 1110 1111 <context name="PodEndError" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1112 <StringDetect String="end" attribute="Pod Block" context="#pop#pop#pop!Error" endRegion="pod"/> 1113 </context> 1114 1115 <!-- Pod configuration for =begin --> 1116 1117 <context name="PodBlockConfigError" attribute="Error" lineEndContext="#pop#pop!PodInnerBlock"/> 1118 1119 <context name="PodBlockConfigKey" attribute="Pod Key" lineEndContext="#pop!PodInnerBlock" fallthrough="1" fallthroughContext="PodBlockConfigError"> 1120 <DetectChar char="!" context="#pop!PodBlockConfigKeyName" attribute="Pod Operator"/> 1121 <Int context="PodBlockConfigKeyIntName" attribute="Decimal"/> 1122 <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/> 1123 </context> 1124 1125 <context name="PodBlockConfigKeyName" attribute="Pod Key" lineEndContext="#pop!PodTypenameValue" fallthrough="1" fallthroughContext="PodBlockConfigError"> 1126 <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/> 1127 </context> 1128 1129 <context name="PodBlockConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop!PodBlockConfigError" fallthrough="1" fallthroughContext="#pop!PodBlockConfigError"> 1130 <DetectIdentifier context="#pop#pop" attribute="Pod Key"/> 1131 </context> 1132 1133 <context name="PodBlockConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop"> 1134 <DetectChar char="<" context="PodParamSequence" attribute="Pod Operator"/> 1135 <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/> 1136 <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/> 1137 </context> 1138 1139 1140 <!-- Pod =for --> 1141 1142 <context name="PodFor" attribute="Pod Typename" lineEndContext="#pop#pop!Error" fallthrough="1" fallthroughContext="#pop#pop!Error"> 1143 <DetectSpaces attribute="Normal Text"/> 1144 <keyword String="podtypename" context="#pop!PodConfig" attribute="Pod Typename"/> 1145 </context> 1146 1147 <!-- Pod configuration for =for --> 1148 1149 <context name="PodConfigError" attribute="Error" lineEndContext="#pop#pop!PodTypenameValue"/> 1150 1151 <context name="PodConfig" attribute="Normal Text" lineEndContext="#pop!PodTypenameValue" fallthrough="1" fallthroughContext="PodConfigError"> 1152 <DetectSpaces/> 1153 <DetectChar char=":" context="PodConfigKey" attribute="Pod Operator"/> 1154 </context> 1155 1156 <context name="PodConfigKey" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthrough="1" fallthroughContext="#pop!PodConfigError"> 1157 <DetectChar char="!" context="#pop!PodConfigKeyName" attribute="Pod Operator"/> 1158 <Int context="PodConfigKeyIntName" attribute="Decimal"/> 1159 <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/> 1160 </context> 1161 1162 <context name="PodConfigKeyName" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthrough="1" fallthroughContext="#pop!PodConfigError"> 1163 <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/> 1164 </context> 1165 1166 <context name="PodConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop#pop!PodConfigError" fallthrough="1" fallthroughContext="#pop#pop!PodConfigError"> 1167 <DetectIdentifier context="#pop#pop" attribute="Pod Key"/> 1168 </context> 1169 1170 <context name="PodConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 1171 <DetectChar char="<" context="PodParamSequence" attribute="Pod Operator"/> 1172 <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/> 1173 <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/> 1174 </context> 1175 1176 <context name="PodParamSequence" attribute="Pod Config" lineEndContext="#stay"> 1177 <DetectSpaces/> 1178 <keyword String="podvalue" context="#stay" attribute="Data Type"/> 1179 <DetectIdentifier/> 1180 <AnyChar String="0123456789." context="Number" lookAhead="1"/> 1181 <DetectChar char=">" context="#pop#pop#pop" attribute="Pod Operator"/> 1182 <DetectChar char="'" context="PodSQString" attribute="String"/> 1183 <DetectChar char=""" context="PodQString" attribute="String"/> 1184 </context> 1185 1186 <context name="PodParamHash" attribute="Pod Config" lineEndContext="#stay"> 1187 <DetectSpaces/> 1188 <Detect2Chars char="=" char1=">" context="#stay" attribute="Pod Operator"/> 1189 <DetectChar char="," context="#stay" attribute="Pod Operator"/> 1190 <keyword String="podvalue" context="#stay" attribute="Data Type"/> 1191 <DetectIdentifier/> 1192 <DetectChar char="'" context="PodSQString" attribute="String"/> 1193 <DetectChar char=""" context="PodQString" attribute="String"/> 1194 <AnyChar String="0123456789." context="Number" lookAhead="1"/> 1195 <DetectChar char="}" context="#pop#pop#pop" attribute="Pod Operator"/> 1196 </context> 1197 1198 <context name="PodParamList" attribute="Pod Config" lineEndContext="#stay"> 1199 <DetectSpaces/> 1200 <DetectChar char="," context="#stay" attribute="Pod Operator"/> 1201 <keyword String="podvalue" context="#stay" attribute="Data Type"/> 1202 <DetectIdentifier/> 1203 <DetectChar char="'" context="PodSQString" attribute="String"/> 1204 <DetectChar char=""" context="PodQString" attribute="String"/> 1205 <AnyChar String="0123456789." context="Number" lookAhead="1"/> 1206 <AnyChar String="])" context="#pop#pop#pop" attribute="Pod Operator"/> 1207 </context> 1208 1209 1210 <!-- Pod String --> 1211 1212 <context name="PodSQString" attribute="String" lineEndContext="#stay"> 1213 <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/> 1214 <DetectChar char="'" context="#pop" attribute="String Delimiter"/> 1215 <RegExpr String="(?:[^\\']*|\\[^']|\\$)*" context="#stay" attribute="String"/> 1216 </context> 1217 1218 <context name="PodQString" attribute="String" lineEndContext="#stay"> 1219 <DetectChar char=""" context="#pop" attribute="String Delimiter"/> 1220 <DetectChar char="\" context="SpecialChar" attribute="String Special Character"/> 1221 <RegExpr String="(?:[^"\\]*|\\$)*" context="#stay" attribute="String"/> 1222 </context> 1223 1224 <context name="find_SpecialChar" attribute="String Special Character" lineEndContext="#stay"> 1225 <Detect2Chars char="c" char1="[" context="UnicodeCodepoint" attribute="String Special Character"/> 1226 <DetectChar char="c" context="UnicodeCodepointDecimal" attribute="String Special Character"/> 1227 <DetectChar char="x" context="HexaString" attribute="String Special Character"/> 1228 <DetectChar char="o" context="OctalString" attribute="String Special Character"/> 1229 </context> 1230 1231 <context name="SpecialChar" attribute="String Special Character" lineEndContext="#pop"> 1232 <IncludeRules context="find_SpecialChar"/> 1233 <RegExpr String="." context="#pop" attribute="String"/> 1234 </context> 1235 1236 <context name="UnicodeCodepoint" attribute="String Special Character" lineEndContext="#stay"> 1237 <DetectSpaces/> 1238 <DetectIdentifier/> 1239 <DetectChar char="]" context="#pop#pop" attribute="String Special Character"/> 1240 <DetectChar char="," context="#stay" attribute="Separator Symbol"/> 1241 </context> 1242 1243 <context name="UnicodeCodepointDecimal" attribute="String Special Character" lineEndContext="#pop#pop"> 1244 <!-- 0 to 1114111 --> 1245 <RegExpr String="0*(?:1(?:0\d{5}|1(?:O\d{4}|(?:1[0-3]\d{3}|4(?:0\d\d|1(?:0\d|1[01]))))))|\d{1,6}|0+" context="UnicodeCodepointDecimalCheck" attribute="String Special Character"/> 1246 <RegExpr String="[^"]" context="#pop" attribute="Error"/> 1247 </context> 1248 <context name="UnicodeCodepointDecimalCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop"> 1249 <AnyChar String="0123456789" context="#pop#pop#pop" attribute="Error"/> 1250 </context> 1251 1252 <context name="HexaString" attribute="String Special Character" lineEndContext="#pop#pop"> 1253 <DetectChar char="[" context="HexaStringBracket" attribute="String Special Character"/> 1254 <!-- 0 to 0x10FFFF --> 1255 <RegExpr String="0*(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})|0+" context="HexaStringCheck" attribute="String Special Character"/> 1256 <RegExpr String="[^"]" context="#pop#pop" attribute="Error"/> 1257 </context> 1258 <context name="HexaStringCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop"> 1259 <AnyChar String="0123456789abcdefABCDEF" context="#pop#pop#pop" attribute="Error"/> 1260 </context> 1261 <context name="HexaStringBracket" attribute="String Special Character" lineEndContext="#stay"> 1262 <DetectSpaces/> 1263 <DetectChar char="]" context="#pop#pop#pop" attribute="Error"/> 1264 <!-- 0 to 0x10FFFF --> 1265 <RegExpr String="0*(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})|0+" context="HexaStringBracketCheck" attribute="String Special Character"/> 1266 </context> 1267 <context name="HexaStringBracketCheck" attribute="String Special Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop#pop"> 1268 <DetectChar char="]" context="#pop#pop#pop#pop" attribute="String Special Character"/> 1269 <DetectChar char="," context="#pop" attribute="Separator Symbol"/> 1270 <RegExpr String="[^]"]" context="#stay" attribute="Error"/> 1271 </context> 1272 1273 <context name="OctalString" attribute="String Special Character" lineEndContext="#pop#pop"> 1274 <DetectChar char="[" context="OctalStringBracket" attribute="String Special Character"/> 1275 <!-- 0 to 0o4177777 --> 1276 <RegExpr String="0*(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}|0+" context="OctalStringCheck" attribute="String Special Character"/> 1277 <RegExpr String="[^"]" context="#stay" attribute="Error"/> 1278 </context> 1279 <context name="OctalStringCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop"> 1280 <AnyChar String="01234567" context="#pop#pop#pop" attribute="Error"/> 1281 </context> 1282 <context name="OctalStringBracket" attribute="String Special Character" lineEndContext="#stay"> 1283 <DetectChar char="]" context="#pop#pop#pop" attribute="Error"/> 1284 <!-- 0 to 0o4177777 --> 1285 <RegExpr String="0*(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}|0+" context="OctalStringBracketCheck" attribute="String Special Character"/> 1286 </context> 1287 <context name="OctalStringBracketCheck" attribute="String Special Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop#pop"> 1288 <DetectChar char="]" context="#pop#pop#pop#pop" attribute="String Special Character"/> 1289 <DetectChar char="," context="#pop" attribute="Separator Symbol"/> 1290 <RegExpr String="[^]"]" context="#stay" attribute="Error"/> 1291 </context> 1292 1293 1294 <!-- Q String --> 1295 1296 <context name="Q_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop"> 1297 <DetectSpaces attribute="String"/> 1298 <DetectChar char=":" context="#pop!Q_StringModifier" attribute="Operator"/> 1299 <DetectChar char="(" context="#pop!Q_String(" attribute="String Delimiter"/> 1300 <DetectChar char="[" context="#pop!Q_String[" attribute="String Delimiter"/> 1301 <DetectChar char="{" context="#pop!Q_String{" attribute="String Delimiter"/> 1302 <DetectChar char="「" context="#pop!Q_String「" attribute="String Delimiter"/> 1303 <DetectChar char="<" context="#pop!Q_String<" attribute="String Delimiter"/> 1304 <RegExpr String="([^()>」\]}'&_rangealphabetic;&rangenumeric;])" context="#pop!Q_StringAny" attribute="String Delimiter"/> 1305 </context> 1306 1307 <context name="Q_String(" attribute="String" lineEndContext="#stay"> 1308 <DetectChar char=")" context="#pop" attribute="String Delimiter"/> 1309 <DetectChar char="(" context="Q_String(" attribute="String Delimiter"/> 1310 <RegExpr String="[^()]*" context="#stay" attribute="String"/> 1311 </context> 1312 1313 <context name="Q_String[" attribute="String" lineEndContext="#stay"> 1314 <DetectChar char="]" context="#pop" attribute="String Delimiter"/> 1315 <DetectChar char="[" context="Q_String[" attribute="String Delimiter"/> 1316 <RegExpr String="[^\[\]]*" context="#stay" attribute="String"/> 1317 </context> 1318 1319 <context name="Q_String{" attribute="String" lineEndContext="#stay"> 1320 <DetectChar char="}" context="#pop" attribute="String Delimiter"/> 1321 <DetectChar char="{" context="Q_String{" attribute="String Delimiter"/> 1322 <RegExpr String="[^{}]*" context="#stay" attribute="String"/> 1323 </context> 1324 1325 <context name="Q_String「" attribute="String" lineEndContext="#stay"> 1326 <DetectChar char="」" context="#pop" attribute="String Delimiter"/> 1327 <DetectChar char="「" context="Q_String「" attribute="String Delimiter"/> 1328 <RegExpr String="[^「」]*" context="#stay" attribute="String"/> 1329 </context> 1330 1331 <context name="Q_String<" attribute="String" lineEndContext="#stay"> 1332 <DetectChar char=">" context="#pop" attribute="String Delimiter"/> 1333 <DetectChar char="<" context="Q_String<" attribute="String Delimiter"/> 1334 <RegExpr String="[^<>]*" context="#stay" attribute="String"/> 1335 </context> 1336 1337 <context name="Q_StringAny" attribute="String" lineEndContext="#stay"> 1338 <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/> 1339 <RegExpr String="[^%1]*" dynamic="1" context="#stay" attribute="String"/> 1340 </context> 1341 1342 <context name="q_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop!q_String"> 1343 <DetectChar char=":" context="#pop#pop!q_QuotingForm2" attribute="Operator"/> 1344 </context> 1345 1346 <context name="qq_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop!qq_String"> 1347 <DetectChar char=":" context="#pop!qq_QuotingForm" attribute="Operator"/> 1348 </context> 1349 1350 <context name="Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!q_QuotingForm2"> 1351 <DetectChar char="q" context="#pop!q_QuotingForm" attribute="Operator"/> 1352 <DetectChar char="'" context="q_Q_StringModifier" attribute="Operator"/> 1353 <DetectChar char=""" context="qq_Q_StringModifier" attribute="Operator"/> 1354 </context> 1355 1356 <context name="q_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!q_QuotingForm2"> 1357 <DetectChar char="q" context="#pop!qq_QuotingForm" attribute="Operator"/> 1358 <DetectChar char=":" context="#pop!q_QuotingForm2" attribute="Operator"/> 1359 </context> 1360 <context name="q_QuotingForm2" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="q_String"> 1361 <WordDetect String="heredoc" context="q_Heredoc" attribute="Operator"/> 1362 <keyword String="quoting" context="#stay" attribute="Operator"/> 1363 <AnyChar String="wvx:sahfb" context="#stay" attribute="Operator"/> 1364 <!-- :closure as qq --> 1365 <DetectChar char="c" context="#pop!qq_QuotingForm" attribute="Operator"/> 1366 <Detect2Chars char="t" char1="o" context="q_Heredoc" attribute="Operator"/> 1367 </context> 1368 1369 <context name="qq_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="qq_String"> 1370 <WordDetect String="heredoc" context="qq_Heredoc" attribute="Operator"/> 1371 <keyword String="quoting" context="#stay" attribute="Operator"/> 1372 <AnyChar String="wvx:sahfcb" context="#stay" attribute="Operator"/> 1373 <Detect2Chars char="t" char1="o" context="qq_Heredoc" attribute="Operator"/> 1374 </context> 1375 1376 1377 <!-- q and qq Heredoc --> 1378 1379 <context name="q_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 1380 <RegExpr String="/([^/]+)/" context="q_HeredocTerminator" attribute="String Delimiter"/> 1381 </context> 1382 <context name="q_HeredocTerminator" attribute="String" lineEndContext="#stay"> 1383 <DetectSpaces/> 1384 <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/> 1385 <RegExpr String="(?:[^\\]*|\\(?![\\%1]|"ingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/> 1386 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1387 </context> 1388 1389 <context name="qq_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 1390 <RegExpr String="/([^/]+)/" context="qq_HeredocTerminator" attribute="String Delimiter"/> 1391 </context> 1392 <context name="qq_HeredocTerminator" attribute="String" lineEndContext="#stay"> 1393 <DetectSpaces/> 1394 <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/> 1395 <IncludeRules context="find_qq_StringCommon"/> 1396 <RegExpr String="[^\\${@&]*" context="#stay" attribute="String"/> 1397 </context> 1398 1399 1400 <!-- q String --> 1401 1402 <context name="q_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop"> 1403 <DetectSpaces/> 1404 <DetectChar char="(" context="#pop#pop!q_String(" attribute="String Delimiter"/> 1405 <DetectChar char="[" context="#pop#pop!q_String[" attribute="String Delimiter"/> 1406 <DetectChar char="{" context="#pop#pop!q_String{" attribute="String Delimiter"/> 1407 <DetectChar char="<" context="#pop#pop!q_String<" attribute="String Delimiter"/> 1408 <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!q_StringAny" attribute="String Delimiter"/> 1409 </context> 1410 1411 <context name="q_String(" attribute="String" lineEndContext="#stay"> 1412 <DetectChar char=")" context="#pop" attribute="String Delimiter"/> 1413 <DetectChar char="(" context="q_String(" attribute="String Delimiter"/> 1414 <Detect2Chars char="\" char1="(" context="#stay" attribute="String Special Character"/> 1415 <Detect2Chars char="\" char1=")" context="#stay" attribute="String Special Character"/> 1416 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1417 <RegExpr String="(?:[^()\\]*|\\(?![()\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1418 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1419 </context> 1420 1421 <context name="q_String[" attribute="String" lineEndContext="#stay"> 1422 <DetectChar char="]" context="#pop" attribute="String Delimiter"/> 1423 <DetectChar char="[" context="q_String[" attribute="String Delimiter"/> 1424 <Detect2Chars char="\" char1="[" context="#stay" attribute="String Special Character"/> 1425 <Detect2Chars char="\" char1="]" context="#stay" attribute="String Special Character"/> 1426 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1427 <RegExpr String="(?:[^\[\]\\]*|\\(?![\[\]\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1428 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1429 </context> 1430 1431 <context name="q_String{" attribute="String" lineEndContext="#stay"> 1432 <DetectChar char="}" context="#pop" attribute="String Delimiter"/> 1433 <DetectChar char="{" context="q_String{" attribute="String Delimiter"/> 1434 <Detect2Chars char="\" char1="{" context="#stay" attribute="String Special Character"/> 1435 <Detect2Chars char="\" char1="}" context="#stay" attribute="String Special Character"/> 1436 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1437 <RegExpr String="(?:[^{}\\]*|\\(?![{}\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1438 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1439 </context> 1440 1441 <context name="q_String<" attribute="String" lineEndContext="#stay"> 1442 <DetectChar char=">" context="#pop" attribute="String Delimiter"/> 1443 <DetectChar char="<" context="q_String<" attribute="String Delimiter"/> 1444 <Detect2Chars char="\" char1="<" context="#stay" attribute="String Special Character"/> 1445 <Detect2Chars char="\" char1=">" context="#stay" attribute="String Special Character"/> 1446 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1447 <RegExpr String="(?:[^<>\\]*|\\(?![<>\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1448 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1449 </context> 1450 1451 <context name="q_StringAny" attribute="String" lineEndContext="#stay"> 1452 <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/> 1453 <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/> 1454 <RegExpr String="(?:[^\\%1]*|\\(?![\\%1]|"ingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/> 1455 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1456 </context> 1457 1458 <context name="q_RawString" attribute="String" lineEndContext="#stay"> 1459 <DetectChar char="'" context="#pop" attribute="String Delimiter"/> 1460 <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/> 1461 <RegExpr String="(?:[^\\']*|\\(?![\\']|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1462 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1463 </context> 1464 1465 <!-- qq String --> 1466 1467 <context name="qq_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop"> 1468 <DetectSpaces/> 1469 <DetectChar char="(" context="#pop#pop!qq_String(" attribute="String Delimiter"/> 1470 <DetectChar char="[" context="#pop#pop!qq_String[" attribute="String Delimiter"/> 1471 <DetectChar char="{" context="#pop#pop!qq_String{" attribute="String Delimiter"/> 1472 <DetectChar char="<" context="#pop#pop!qq_String<" attribute="String Delimiter"/> 1473 <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!qq_StringAny" attribute="String Delimiter"/> 1474 </context> 1475 1476 <context name="qq_String(" attribute="String" lineEndContext="#stay"> 1477 <DetectChar char=")" context="#pop" attribute="String Delimiter"/> 1478 <DetectChar char="(" context="qq_String(" attribute="String Delimiter"/> 1479 <IncludeRules context="find_qq_StringCommon"/> 1480 <RegExpr String="[^()\\${@&]*" context="#stay" attribute="String"/> 1481 </context> 1482 1483 <context name="qq_String[" attribute="String" lineEndContext="#stay"> 1484 <DetectChar char="]" context="#pop" attribute="String Delimiter"/> 1485 <DetectChar char="[" context="qq_String[" attribute="String Delimiter"/> 1486 <IncludeRules context="find_qq_StringCommon"/> 1487 <RegExpr String="[^\[\]\\${@&]*" context="#stay" attribute="String"/> 1488 </context> 1489 1490 <context name="qq_String{" attribute="String" lineEndContext="#stay"> 1491 <DetectChar char="}" context="#pop" attribute="String Delimiter"/> 1492 <DetectChar char="{" context="qq_String{" attribute="String Delimiter"/> 1493 <IncludeRules context="find_qq_StringCommon"/> 1494 <RegExpr String="[^{}\\$@&]*" context="#stay" attribute="String"/> 1495 </context> 1496 1497 <context name="qq_String<" attribute="String" lineEndContext="#stay"> 1498 <DetectChar char=">" context="#pop" attribute="String Delimiter"/> 1499 <DetectChar char="<" context="qq_String<" attribute="String Delimiter"/> 1500 <IncludeRules context="find_qq_StringCommon"/> 1501 <RegExpr String="[^<>\\${@&]*" context="#stay" attribute="String"/> 1502 </context> 1503 1504 <context name="qq_String«" attribute="String" lineEndContext="#stay"> 1505 <DetectChar char="»" context="#pop" attribute="String Delimiter"/> 1506 <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/> 1507 <IncludeRules context="find_qq_StringCommon"/> 1508 <RegExpr String="[^«»\\${@&]*" context="#stay" attribute="String"/> 1509 </context> 1510 1511 <context name="qq_String<<" attribute="String" lineEndContext="#stay"> 1512 <Detect2Chars char=">" char1=">" context="#pop" attribute="String Delimiter"/> 1513 <Detect2Chars char="<" char1="<" context="qq_String<<" attribute="String Delimiter"/> 1514 <IncludeRules context="find_qq_StringCommon"/> 1515 <RegExpr String="([^<>\\${@&]*|<(?!<)|>(?!>))" context="#stay" attribute="String"/> 1516 </context> 1517 1518 <context name="qq_StringAny" attribute="String" lineEndContext="#stay"> 1519 <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/> 1520 <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/> 1521 <IncludeRules context="find_qq_StringCommon"/> 1522 <RegExpr String="[^%1\\${@&]*" dynamic="1" context="#stay" attribute="String"/> 1523 </context> 1524 1525 <context name="qq_RawString" attribute="String" lineEndContext="#stay"> 1526 <DetectChar char=""" context="#pop" attribute="String Delimiter"/> 1527 <IncludeRules context="find_qq_StringCommon"/> 1528 <RegExpr String="[^\\"${@&]*" context="#stay" attribute="String"/> 1529 </context> 1530 1531 <context name="find_qq_StringCommon" attribute="String" lineEndContext="#stay"> 1532 <DetectChar char="\" context="qq_StringEscape" attribute="Operator" lookAhead="1"/> 1533 <DetectChar char="{" context="qq_Interpolation" attribute="String (interpolated)"/> 1534 <DetectChar char="$" context="qq_StringMaybeVar$" attribute="String" lookAhead="1"/> 1535 <AnyChar String="@%" context="qq_StringMaybeVar" attribute="String" lookAhead="1"/> 1536 <DetectChar char="&" context="qq_StringSigil" attribute="String" lookAhead="1"/> 1537 </context> 1538 1539 <context name="qq_StringEscape" attribute="String Special Character" lineEndContext="#pop"> 1540 <Detect2Chars char="\" char1="q" context="#pop!q_QuotingForm" attribute="Operator"/> 1541 <Detect2Chars char="\" char1="x" context="HexaString" attribute="String Special Character"/> 1542 <StringDetect String="\c[" context="UnicodeCodepoint" attribute="String Special Character"/> 1543 <Detect2Chars char="\" char1="c" context="UnicodeCodepointDecimal" attribute="String Special Character"/> 1544 <Detect2Chars char="\" char1="o" context="OctalString" attribute="String Special Character"/> 1545 <RegExpr String="\\.?" context="#pop" attribute="String Special Character"/> 1546 </context> 1547 1548 <context name="qq_Interpolation" attribute="String (interpolated)" lineEndContext="#stay"> 1549 <DetectChar char="}" context="#pop" attribute="String (interpolated)"/> 1550 <IncludeRules context="base"/> 1551 </context> 1552 1553 <context name="qq_StringSigil" attribute="Function" lineEndContext="#stay"> 1554 <RegExpr String="&&ident;\(" context="#pop!FunctionParameters" attribute="Function"/> 1555 <DetectChar char="&" context="#pop" attribute="String"/> 1556 </context> 1557 1558 <context name="qq_StringMaybeVar$" attribute="String" lineEndContext="#stay"> 1559 <RegExpr String="\$(?=[&twigils;]?&prefixdollarvarname;)" context="qq_InterpolationVar" attribute="Variable"/> 1560 <DetectChar char="$" context="#pop" attribute="String"/> 1561 </context> 1562 1563 <context name="qq_StringMaybeVar" attribute="String" lineEndContext="#stay"> 1564 <RegExpr String="@\(\)|[%@]\$/|[@%]&ident;" context="qq_Interpolation1" attribute="Variable"/> 1565 <AnyChar String="@%" context="#pop" attribute="String"/> 1566 </context> 1567 1568 <context name="qq_InterpolationVar" attribute="String" lineEndContext="#stay"> 1569 <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/> 1570 <RegExpr String="&dollarvarname;" context="#pop!qq_Interpolation1" attribute="Variable"/> 1571 </context> 1572 1573 <context name="qq_Interpolation1" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop"> 1574 <DetectChar char="[" context="qq_InterpolationIndex" attribute="Function"/> 1575 <DetectChar char="." context="qq_InterpolationFunction" attribute="Function" lookAhead="1"/> 1576 </context> 1577 1578 <context name="qq_InterpolationIndex" attribute="String" lineEndContext="#stay"> 1579 <DetectChar char="]" context="#pop#pop#pop" attribute="Function"/> 1580 <IncludeRules context="base"/> 1581 </context> 1582 1583 <context name="qq_InterpolationFunction" attribute="String" lineEndContext="#stay"> 1584 <RegExpr String="(?:\.&ident;)*\.&ident;\(" context="#pop#pop#pop!FunctionParameters" attribute="Function"/> 1585 <DetectChar char="." context="#pop#pop#pop" attribute="String"/> 1586 </context> 1587 1588 <context name="FunctionParameters" attribute="String" lineEndContext="#stay"> 1589 <DetectChar char=")" context="#pop" attribute="Function"/> 1590 <DetectChar char="(" context="FunctionParameters" attribute="Function"/> 1591 <IncludeRules context="base"/> 1592 </context> 1593 1594 1595 <!-- Comment --> 1596 1597 <context name="StartComment" attribute="Comment" lineEndContext="#pop" fallthrough="1" fallthroughContext="SingleLineComment"> 1598 <DetectChar attribute="Comment" context="MultilineComment" char="`"/> 1599 <AnyChar attribute="Pod Operator" context="MultilineComment" String="=|"/> 1600 </context> 1601 1602 <context name="MultilineComment" attribute="Comment" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop!SingleLineComment"> 1603 <!-- TODO a new rule is needed to find the corresponding closures --> 1604 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment(((" String="(((" beginRegion="comment"/> 1605 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment[[[" String="[[[" beginRegion="comment"/> 1606 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment{{{" String="{{{" beginRegion="comment"/> 1607 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment«««" String="«««" beginRegion="comment"/> 1608 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment<<<" String="<<<" beginRegion="comment"/> 1609 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment((" char="(" char1="(" beginRegion="comment"/> 1610 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment[[" char="[" char1="[" beginRegion="comment"/> 1611 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment{{" char="{" char1="{" beginRegion="comment"/> 1612 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment««" char="«" char1="«" beginRegion="comment"/> 1613 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment<<" char="<" char1="<" beginRegion="comment"/> 1614 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment(" char="(" beginRegion="comment"/> 1615 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment[" char="[" beginRegion="comment"/> 1616 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment{" char="{" beginRegion="comment"/> 1617 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment«" char="«" beginRegion="comment"/> 1618 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment<" char="<" beginRegion="comment"/> 1619 <!-- etc --> 1620 </context> 1621 1622 <context name="MultilineComment(((" attribute="Comment" lineEndContext="#stay"> 1623 <IncludeRules context="SingleLineComment"/> 1624 <StringDetect String=")))" attribute="Comment" context="#pop" endRegion="comment"/> 1625 <StringDetect String="(((" attribute="Comment" context="MultilineComment(((" beginRegion="comment"/> 1626 </context> 1627 <context name="MultilineComment[[[" attribute="Comment" lineEndContext="#stay"> 1628 <IncludeRules context="SingleLineComment"/> 1629 <StringDetect String="]]]" attribute="Comment" context="#pop" endRegion="comment"/> 1630 <StringDetect String="[[[" attribute="Comment" context="MultilineComment[[[" beginRegion="comment"/> 1631 </context> 1632 <context name="MultilineComment{{{" attribute="Comment" lineEndContext="#stay"> 1633 <StringDetect String="}}}" attribute="Comment" context="#pop" endRegion="comment"/> 1634 <StringDetect String="{{{" attribute="Comment" context="MultilineComment{{{" beginRegion="comment"/> 1635 <IncludeRules context="SingleLineComment"/> 1636 </context> 1637 <context name="MultilineComment«««" attribute="Comment" lineEndContext="#stay"> 1638 <IncludeRules context="SingleLineComment"/> 1639 <StringDetect String="»»»" attribute="Comment" context="#pop" endRegion="comment"/> 1640 <StringDetect String="«««" attribute="Comment" context="MultilineComment«««" beginRegion="comment"/> 1641 </context> 1642 <context name="MultilineComment<<<" attribute="Comment" lineEndContext="#stay"> 1643 <IncludeRules context="SingleLineComment"/> 1644 <StringDetect String=">>>" attribute="Comment" context="#pop" endRegion="comment"/> 1645 <StringDetect String="<<<" attribute="Comment" context="MultilineComment<<<" beginRegion="comment"/> 1646 </context> 1647 1648 <context name="MultilineComment((" attribute="Comment" lineEndContext="#stay"> 1649 <IncludeRules context="SingleLineComment"/> 1650 <Detect2Chars char=")" char1=")" attribute="Comment" context="#pop" endRegion="comment"/> 1651 <Detect2Chars char="(" char1="(" attribute="Comment" context="MultilineComment((" beginRegion="comment"/> 1652 </context> 1653 <context name="MultilineComment[[" attribute="Comment" lineEndContext="#stay"> 1654 <IncludeRules context="SingleLineComment"/> 1655 <Detect2Chars char="]" char1="]" attribute="Comment" context="#pop" endRegion="comment"/> 1656 <Detect2Chars char="[" char1="[" attribute="Comment" context="MultilineComment[[" beginRegion="comment"/> 1657 </context> 1658 <context name="MultilineComment{{" attribute="Comment" lineEndContext="#stay"> 1659 <IncludeRules context="SingleLineComment"/> 1660 <Detect2Chars char="}" char1="}" attribute="Comment" context="#pop" endRegion="comment"/> 1661 <Detect2Chars char="{" char1="{" attribute="Comment" context="MultilineComment{{" beginRegion="comment"/> 1662 </context> 1663 <context name="MultilineComment««" attribute="Comment" lineEndContext="#stay"> 1664 <IncludeRules context="SingleLineComment"/> 1665 <Detect2Chars char="»" char1="»" attribute="Comment" context="#pop" endRegion="comment"/> 1666 <Detect2Chars char="«" char1="«" attribute="Comment" context="MultilineComment««" beginRegion="comment"/> 1667 </context> 1668 <context name="MultilineComment<<" attribute="Comment" lineEndContext="#stay"> 1669 <IncludeRules context="SingleLineComment"/> 1670 <Detect2Chars char=">" char1=">" attribute="Comment" context="#pop" endRegion="comment"/> 1671 <Detect2Chars char="<" char1="<" attribute="Comment" context="MultilineComment<<" beginRegion="comment"/> 1672 </context> 1673 1674 <context name="MultilineComment(" attribute="Comment" lineEndContext="#stay"> 1675 <IncludeRules context="SingleLineComment"/> 1676 <DetectChar char=")" attribute="Comment" context="#pop" endRegion="comment"/> 1677 <DetectChar char="(" attribute="Comment" context="MultilineComment(" beginRegion="comment"/> 1678 </context> 1679 <context name="MultilineComment[" attribute="Comment" lineEndContext="#stay"> 1680 <IncludeRules context="SingleLineComment"/> 1681 <DetectChar char="]" attribute="Comment" context="#pop" endRegion="comment"/> 1682 <DetectChar char="[" attribute="Comment" context="MultilineComment[" beginRegion="comment"/> 1683 </context> 1684 <context name="MultilineComment{" attribute="Comment" lineEndContext="#stay"> 1685 <IncludeRules context="SingleLineComment"/> 1686 <DetectChar char="}" attribute="Comment" context="#pop" endRegion="comment"/> 1687 <DetectChar char="{" attribute="Comment" context="MultilineComment{" beginRegion="comment"/> 1688 </context> 1689 <context name="MultilineComment«" attribute="Comment" lineEndContext="#stay"> 1690 <IncludeRules context="SingleLineComment"/> 1691 <DetectChar char="»" attribute="Comment" context="#pop" endRegion="comment"/> 1692 <DetectChar char="«" attribute="Comment" context="MultilineComment«" beginRegion="comment"/> 1693 </context> 1694 <context name="MultilineComment<" attribute="Comment" lineEndContext="#stay"> 1695 <IncludeRules context="SingleLineComment"/> 1696 <DetectChar char=">" attribute="Comment" context="#pop" endRegion="comment"/> 1697 <DetectChar char="<" attribute="Comment" context="MultilineComment<" beginRegion="comment"/> 1698 </context> 1699 1700 <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop#pop"> 1701 <DetectSpaces/> 1702 <IncludeRules context="##Comments"/> 1703 <DetectIdentifier/> 1704 </context> 1705 1706 1707 <!-- Error --> 1708 1709 <context name="Error" attribute="Error" lineEndContext="#pop"/> 1710 1711 <context name="CharErrorIfNoSep" attribute="Error" lineEndContext="#pop"> 1712 <RegExpr String="[^;)]" context="#pop" attribute="Error"/> 1713 </context> 1714 1715 <context name="CharError" attribute="Error" lineEndContext="#pop"> 1716 <RegExpr String="." context="#pop" attribute="Error"/> 1717 </context> 1718 1719 </contexts> 1720 1721 <itemDatas> 1722 <itemData name="Normal Text" defStyleNum="dsNormal"/> 1723 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 1724 <itemData name="Keyword Value" defStyleNum="dsKeyword" spellChecking="false"/> 1725 <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/> 1726 <itemData name="Twigil" defStyleNum="dsAttribute" spellChecking="false"/> 1727 <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/> 1728 <itemData name="Variable Storage" defStyleNum="dsKeyword" spellChecking="false" bold="1"/> 1729 <itemData name="Property" defStyleNum="dsBuiltIn" spellChecking="false" italic="1"/> 1730 <itemData name="Declare Routine" defStyleNum="dsBuiltIn" spellChecking="false"/> 1731 <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/> 1732 <itemData name="Operator" defStyleNum="dsKeyword" spellChecking="false"/> 1733 <itemData name="Separator Symbol" defStyleNum="dsNormal" spellChecking="false"/> 1734 <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/> 1735 <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/> 1736 <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/> 1737 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/> 1738 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> 1739 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> 1740 <itemData name="String" defStyleNum="dsString"/> 1741 <itemData name="String Delimiter" defStyleNum="dsChar" spellChecking="false"/> 1742 <itemData name="String (interpolated)" defStyleNum="dsString"/> 1743 <itemData name="String Special Character" defStyleNum="dsChar"/> 1744 <itemData name="Pattern" defStyleNum="dsOthers" spellChecking="false"/> 1745 <itemData name="Pattern Meta Character" defStyleNum="dsChar" spellChecking="false"/> 1746 <itemData name="Pattern Character Class" defStyleNum="dsBaseN" spellChecking="false"/> 1747 <itemData name="Pattern Unicode Property" defStyleNum="dsBaseN" spellChecking="false"/> 1748 <itemData name="Pattern Character" defStyleNum="dsChar" spellChecking="false"/> 1749 <itemData name="Pattern Modifier" defStyleNum="dsKeyword" spellChecking="false"/> 1750 <itemData name="Pattern Quantifier" defStyleNum="dsControlFlow" spellChecking="false"/> 1751 <itemData name="Pattern Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/> 1752 <itemData name="Pattern Special Character" defStyleNum="dsBuiltIn" spellChecking="false"/> 1753 <itemData name="Comment" defStyleNum="dsComment"/> 1754 <itemData name="Error" defStyleNum="dsError" spellChecking="false"/> 1755 <itemData name="Pod" defStyleNum="dsDocumentation" spellChecking="false"/> 1756 <itemData name="Pod Paragraph" defStyleNum="dsDocumentation"/> 1757 <itemData name="Pod Block" defStyleNum="dsRegionMarker" spellChecking="false"/> 1758 <itemData name="Pod Typename" defStyleNum="dsAnnotation" spellChecking="false"/> 1759 <itemData name="Pod Typename Value" defStyleNum="dsCommentVar" spellChecking="false"/> 1760 <itemData name="Pod Unknown" defStyleNum="dsError" spellChecking="false"/> 1761 <itemData name="Pod Operator" defStyleNum="dsOperator" spellChecking="false"/> 1762 <itemData name="Pod Key" defStyleNum="dsAttribute" spellChecking="false"/> 1763 <itemData name="Pod Config" defStyleNum="dsCommentVar" spellChecking="false"/> 1764 <itemData name="Pod Bold" defStyleNum="dsDocumentation" bold="1"/> 1765 <itemData name="Pod Italic" defStyleNum="dsDocumentation" italic="1"/> 1766 <itemData name="Pod Underline" defStyleNum="dsDocumentation" underline="1"/> 1767 <itemData name="Pod Link" defStyleNum="dsOthers" underline="1"/> 1768 <itemData name="Pod Note" defStyleNum="dsInformation"/> 1769 <itemData name="Pod Comment" defStyleNum="dsComment"/> 1770 <itemData name="Pod Verbatim" defStyleNum="dsInformation" spellChecking="false"/> 1771 <itemData name="Pod Unicode" defStyleNum="dsChar" spellChecking="false"/> 1772 <itemData name="Pod Indexed Terms" defStyleNum="dsOthers" spellChecking="false"/> 1773 </itemDatas> 1774 </highlighting> 1775 <general> 1776 <comments> 1777 <comment name="singleLine" start="#"/> 1778 </comments> 1779 <keywords casesensitive="1" weakDeliminator="-'"/> 1780 </general> 1781 </language> 1782 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->