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 rangealnum "_\p{L}\p{N}"> 0011 <!ENTITY alnum "[_\p{L}\p{N}]"> 0012 <!ENTITY _ident "&alnum;*+(?:[-']&alnum;*+)*+"> 0013 <!ENTITY ident "(?:[_\p{L}]&_ident;)"> 0014 <!ENTITY datatype "(?:[_\p{Lu}\p{Lt}]&_ident;)"> 0015 0016 <!-- 0 to 0x10FFFF --> 0017 <!ENTITY unicode_hex_point "(?:0*+(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5}+)|0++)"> 0018 <!-- 0 to 1114111 --> 0019 <!ENTITY unicode_dec_point "(?:0*+(?:1(?:0[0-9]{5}|1(?:0[0-9]{4}|(?:1[0-3][0-9]{3}|4(?:0[0-9]{2}|1(?:0[0-9]|1[01]))))))|[0-9]{1,6}+|0++)"> 0020 <!-- 0 to 0o4177777 --> 0021 <!ENTITY unicode_oct_point "(?:0*+(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}+|0++)"> 0022 0023 <!ENTITY prefixdollarvarname "(?:[_\p{L}0-9/!]|\(\))"> 0024 <!ENTITY dollarvarname "(?:&ident;|[0-9]+|[/!]|\(\))"> 0025 <!ENTITY twigils "*?!.^:=~"> 0026 0027 <!ENTITY twigil_variable "[%&](?=[?*][_\p{L}])|[$@](?=[&twigils;][_\p{L}])"> 0028 <!ENTITY variable "[%@]?\$/|\$!|\$[0-9]+|[\\@%&$]&ident;"> 0029 0030 <!ENTITY podfmt "BCEIKLMNPRTUVXZ"> 0031 <!ENTITY allnopodfmt "(?:[^&podfmt;]+|[&podfmt;](?![<«]))+"> 0032 <!ENTITY allnopodfmt1 "(?:[^&podfmt;<>]+|[&podfmt;](<(?:<*(?=<))|(?![<«])))+"> 0033 <!ENTITY allnopodfmt2 "(?:[^&podfmt;«»]+|[&podfmt;](?![<«]))+"> 0034 <!ENTITY allnopodfmt3 "(?:[^&podfmt;<>]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"> 0035 0036 <!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)*)"> 0037 <!ENTITY quotingform_q_assert "(?:\s+(?=\()|\s*(?=[^()>」\]}a-zA-Z0-9]|$))"> 0038 <!ENTITY quotingconstruct "q"ingform_q;"ingform_q_assert;"> 0039 0040 <!ENTITY int10 "(?:[0-9]++(?:_[0-9]++)*+)"> 0041 <!ENTITY exp "(?:[eE][+-]?&int10;)"> 0042 <!ENTITY intN "(?:[0-9a-zA-Z]++(?:_[0-9a-zA-Z]++)*+)"> 0043 0044 <!-- https://docs.raku.org/language/operators --> 0045 0046 <!-- 0047 42.&f; 0048 ~~ access 0049 expr.&?BLOCK 0050 ~ access 0051 ~~~~~~~~ variable 0052 --> 0053 <!ENTITY method_ops "\.([=^?+*:]|&(?![?][_\p{L}]))?"> 0054 0055 <!ENTITY postfix_ops "⚛?(\+\+|\-\-)"> 0056 0057 <!ENTITY prefix_unary_ops "(\+\+⚛?|\-\-⚛?|//|[+~?]\^|[-+~|?!^⚛]|\b(not|so)\b)"> 0058 0059 <!ENTITY _infix_simple_ops "\*\*|%%|[+~][&<>|^]|\?[&^|]|=>|==>|<==|::?=|//|\^\^|\([-+&.|]\)|\^?…\^?|\^?\.\.\.\^?|[-+*/%~∘&∩⊍|∪⊎^⊖=]|\b(div|mod|gcd|lcm|xx?|min|max|minmax|andthen|notandthen|orelse|o)\b"> 0060 <!ENTITY _infix_chaining_ops "\((elem|cont|[=<>]=|[<>])\)|\.\.[\^]?|\^\.\.\^?|<=>|===|=:=|=~=|~~|[=<>]=|[⩵≠≤≥⩶∈∉≡≢∋∌⊂⊄⊆⊈⊃⊅⊇⊉]|<(?!<)|>(?!>)|&&|\|\||\b(eq|ne|gt|ge|lt|le|before|after|eqv|and|or|xor)\b"> 0061 <!-- "does" is an operator, but also a trait (separate treatment) --> 0062 <!ENTITY _infix_structural "\b(but|cmp|coll|unicmp|leg)\b"> 0063 <!ENTITY _infix_other_ops "\^fff?\b|\bfff?\^|\bfff?\b|!!|\?\?"> 0064 <!ENTITY _infix_ops1 "(\b[RXZS]+)?((&_infix_simple_ops;)=?|⚛[-+]?=|\\(?=\s|$)|&_infix_structural;)"> 0065 <!ENTITY _infix_ops2 "\b[RXZS]+does"> 0066 <!ENTITY _infix_ops3 "((\b[RXZS]|!)[RXZS!]*+)?(&_infix_chaining_ops;|=)|[XZ]+"> 0067 <!ENTITY _infix_ops "&_infix_ops1;|&_infix_ops2;|&_infix_ops3;"> 0068 <!ENTITY infix_ops "(&_infix_ops;|&_infix_other_ops;|->)"> 0069 0070 <!ENTITY list_ops "!!!|\?\?\?|\.\.\."> 0071 0072 <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> --> 0073 <!ENTITY regadverb "(?!\()\s*(?=[^\p{L}\p{N}\s])"> 0074 ]> 0075 <language name="Raku" version="9" kateversion="5.62" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT"> 0076 <highlighting> 0077 0078 <!-- https://docs.raku.org/routines --> 0079 0080 <list name="pod"> 0081 <item>begin</item> 0082 <item>end</item> 0083 <item>finish</item> 0084 <item>for</item> 0085 <include>podtypename</include> 0086 </list> 0087 0088 <list name="podblocktypename"> 0089 <item>pod</item> 0090 <include>podtypename</include> 0091 </list> 0092 0093 <list name="pod values"> 0094 <item>True</item> 0095 <item>False</item> 0096 </list> 0097 0098 <list name="podtypename"> 0099 <item>head1</item> 0100 <item>head2</item> 0101 <item>head3</item> 0102 <item>head4</item> 0103 <item>head5</item> 0104 <item>head6</item> 0105 <item>item</item> 0106 <item>item1</item> 0107 <item>item2</item> 0108 <item>item3</item> 0109 <item>item4</item> 0110 <item>item5</item> 0111 <item>item6</item> 0112 <item>para</item> 0113 <item>code</item> 0114 <item>defn</item> 0115 <item>comment</item> 0116 <item>table</item> 0117 <item>input</item> 0118 <item>output</item> 0119 </list> 0120 0121 <list name="quoting"> 0122 <item>exec</item> 0123 <item>words</item> 0124 <item>quotewords</item> 0125 <item>scalar</item> 0126 <item>array</item> 0127 <item>hash</item> 0128 <item>function</item> 0129 <item>closure</item> 0130 <item>backslash</item> 0131 <item>heredoc</item> 0132 <item>val</item> 0133 </list> 0134 0135 <list name="declare routine"> 0136 <item>macro</item> 0137 <item>sub</item> 0138 <item>submethod</item> 0139 <item>method</item> 0140 <item>multi</item> 0141 <item>proto</item> 0142 <item>only</item> 0143 <item>category</item> 0144 </list> 0145 0146 <!-- https://docs.raku.org/syntax/token --> 0147 <list name="regex keywords"> 0148 <item>rule</item> 0149 <item>token</item> 0150 <item>regex</item> 0151 </list> 0152 0153 <list name="values"> 0154 <include>pod values</include> 0155 <item>self</item> 0156 </list> 0157 0158 <list name="variable storages"> 0159 <item>my</item> 0160 <item>our</item> 0161 <item>has</item> 0162 <item>state</item> 0163 <item>anon</item> 0164 <item>augment</item> 0165 <item>supersede</item> 0166 <item>let</item> 0167 <item>temp</item> 0168 <item>constant</item> 0169 </list> 0170 0171 <!-- https://docs.raku.org/language/control --> 0172 <list name="control flow"> 0173 <!-- conditional --> 0174 <item>if</item> 0175 <item>else</item> 0176 <item>elsif</item> 0177 <item>unless</item> 0178 <item>when</item> 0179 <item>with</item> 0180 <item>orwith</item> 0181 <item>without</item> 0182 <item>given</item> 0183 <item>default</item> 0184 <!-- repeat --> 0185 <item>for</item> 0186 <item>loop</item> 0187 <item>repeat</item> 0188 <item>while</item> 0189 <item>until</item> 0190 <!-- control flow --> 0191 <item>once</item> 0192 <item>take</item> 0193 <item>next</item> 0194 <item>last</item> 0195 <item>redo</item> 0196 <item>return</item> 0197 <item>return-rw</item> 0198 <item>exit</item> 0199 <item>goto</item> 0200 <!-- exception --> 0201 <item>die</item> 0202 <item>fail</item> 0203 <item>try</item> 0204 <item>warn</item> 0205 <!-- concurrency --> 0206 <item>react</item> 0207 <item>gather</item> 0208 <item>proceed</item> 0209 <item>succeed</item> 0210 <item>whenever</item> 0211 <item>supply</item> 0212 <!-- asynchronous --> 0213 <item>async</item> 0214 <item>await</item> 0215 <item>start</item> 0216 <!-- phasers --> 0217 <item>BEGIN</item> 0218 <item>CHECK</item> 0219 <item>QUIT</item> 0220 <item>CLOSE</item> 0221 <item>INIT</item> 0222 <item>FIRST</item> 0223 <item>ENTER</item> 0224 <item>LEAVE</item> 0225 <item>KEEP</item> 0226 <item>UNDO</item> 0227 <item>NEXT</item> 0228 <item>LAST</item> 0229 <item>END</item> 0230 <item>CATCH</item> 0231 <item>CONTROL</item> 0232 </list> 0233 0234 <list name="keywords"> 0235 <item>do</item> 0236 <item>no</item> 0237 <item>use</item> 0238 <item>require</item> 0239 <!-- typeConstraint --> 0240 <item>as</item> 0241 <item>does</item> 0242 <item>handles</item> 0243 <item>is</item> 0244 <item>of</item> 0245 <item>trusts</item> 0246 <item>where</item> 0247 <!-- module --> 0248 <item>module</item> 0249 <item>class</item> 0250 <item>role</item> 0251 <item>package</item> 0252 <item>enum</item> 0253 <item>grammar</item> 0254 <item>slang</item> 0255 <item>subset</item> 0256 <!-- phasers --> 0257 <item>PRE</item> 0258 <item>POST</item> 0259 <item>COMPOSE</item> 0260 <item>DOC</item> 0261 </list> 0262 0263 <list name="properties"> 0264 <item>DEPRECATED</item> 0265 <item>assoc</item> 0266 <item>binary</item> 0267 <item>built</item> 0268 <item>cached</item> 0269 <item>copy</item> 0270 <item>deep</item> 0271 <item>default</item> 0272 <item>defequiv</item> 0273 <item>dynamic</item> 0274 <item>equiv</item> 0275 <item>export</item> 0276 <item>hidden-from-backtrace</item> 0277 <item>inline</item> 0278 <item>irs</item> 0279 <item>looser</item> 0280 <item>ofs</item> 0281 <item>ors</item> 0282 <item>parsed</item> 0283 <item>prec</item> 0284 <item>pure</item> 0285 <item>raw</item> 0286 <item>readonly</item> 0287 <item>ref</item> 0288 <item>reparsed</item> 0289 <item>required</item> 0290 <item>rw</item> 0291 <item>test-assertion</item> 0292 <item>tighter</item> 0293 <item>unary</item> 0294 <item>will</item> 0295 </list> 0296 0297 <list name="number"> 0298 <item>NaN</item> 0299 <item>Inf</item> 0300 </list> 0301 0302 <list name="types"> 0303 <item>Any</item> 0304 <item>Array</item> 0305 <item>Associative</item> 0306 <item>Bag</item> 0307 <item>Blob</item> 0308 <item>Block</item> 0309 <item>Bool</item> 0310 <item>Buf</item> 0311 <item>Callable</item> 0312 <item>Capture</item> 0313 <item>Char</item> 0314 <item>Class</item> 0315 <item>Code</item> 0316 <item>Complex</item> 0317 <item>Cool</item> 0318 <item>Exception</item> 0319 <item>Failure</item> 0320 <item>False</item> 0321 <item>Grammar</item> 0322 <item>Hash</item> 0323 <item>IO</item> 0324 <item>Int</item> 0325 <item>Junction</item> 0326 <item>Bag</item> 0327 <item>List</item> 0328 <item>Macro</item> 0329 <item>Match</item> 0330 <item>Method</item> 0331 <item>Mu</item> 0332 <item>Num</item> 0333 <item>Numeric</item> 0334 <item>Order</item> 0335 <item>Pair</item> 0336 <item>Positional</item> 0337 <item>Proxy</item> 0338 <item>Range</item> 0339 <item>Rat</item> 0340 <item>Rational</item> 0341 <item>Real</item> 0342 <item>Regex</item> 0343 <item>Routine</item> 0344 <item>Scalar</item> 0345 <item>Seq</item> 0346 <item>Set</item> 0347 <item>Signature</item> 0348 <item>Str</item> 0349 <item>Sub</item> 0350 <item>Submethod</item> 0351 <item>True</item> 0352 <item>UInt</item> 0353 <item>Version</item> 0354 <item>Whatever</item> 0355 <item>buf8</item> 0356 <item>buf16</item> 0357 <item>buf32</item> 0358 <item>buf64</item> 0359 <item>int</item> 0360 <item>int8</item> 0361 <item>int16</item> 0362 <item>int32</item> 0363 <item>int64</item> 0364 <item>num</item> 0365 <item>uint</item> 0366 <item>uint8</item> 0367 <item>uint16</item> 0368 <item>uint32</item> 0369 <item>uint64</item> 0370 <item>uint</item> 0371 <item>utf8</item> 0372 <item>utf16</item> 0373 <item>utf32</item> 0374 </list> 0375 0376 <list name="function operators"> 0377 <item>print</item> 0378 <item>push</item> 0379 <item>say</item> 0380 <item>map</item> 0381 <item>substr</item> 0382 <item>die</item> 0383 <item>any</item> 0384 </list> 0385 0386 <list name="operators"> 0387 <item>X</item> 0388 <item>gcd</item> 0389 <item>ge</item> 0390 <item>gt</item> 0391 <item>lcm</item> 0392 <item>le</item> 0393 <item>leg</item> 0394 <item>lt</item> 0395 <item>max</item> 0396 <item>min</item> 0397 <item>minmax</item> 0398 <item>mod</item> 0399 <item>ne</item> 0400 <item>not</item> 0401 <item>notandthen</item> 0402 <item>o</item> 0403 <item>or</item> 0404 <item>orelse</item> 0405 <item>so</item> 0406 <item>unicmp</item> 0407 <item>x</item> 0408 <item>xor</item> 0409 <item>xx</item> 0410 <item>Z</item> 0411 <item>and</item> 0412 <item>andthen</item> 0413 <item>but</item> 0414 <item>cmp</item> 0415 <item>coll</item> 0416 <item>div</item> 0417 <item>does</item> 0418 <item>eq</item> 0419 <item>eqv</item> 0420 <item>ff</item> 0421 <item>fff</item> 0422 </list> 0423 0424 <list name="unicode general categories"> 0425 <item>L</item> <item>Letter</item> 0426 <item>LC</item> <item>Cased_Letter</item> 0427 <item>Lu</item> <item>Uppercase_Letter</item> 0428 <item>Ll</item> <item>Lowercase_Letter</item> 0429 <item>Lt</item> <item>Titlecase_Letter</item> 0430 <item>Lm</item> <item>Modifier_Letter</item> 0431 <item>Lo</item> <item>Other_Letter</item> 0432 <item>M</item> <item>Mark</item> 0433 <item>Mn</item> <item>Nonspacing_Mark</item> 0434 <item>Mc</item> <item>Spacing_Mark</item> 0435 <item>Me</item> <item>Enclosing_Mark</item> 0436 <item>N</item> <item>Number</item> 0437 <item>Nd</item> <item>Decimal_Number</item> <item>digit</item> 0438 <item>Nl</item> <item>Letter_Number</item> 0439 <item>No</item> <item>Other_Number</item> 0440 <item>P</item> <item>Punctuation</item> <item>punct</item> 0441 <item>Pc</item> <item>Connector_Punctuation</item> 0442 <item>Pd</item> <item>Dash_Punctuation</item> 0443 <item>Ps</item> <item>Open_Punctuation</item> 0444 <item>Pe</item> <item>Close_Punctuation</item> 0445 <item>Pi</item> <item>Initial_Punctuation</item> 0446 <item>Pf</item> <item>Final_Punctuation</item> 0447 <item>Po</item> <item>Other_Punctuation</item> 0448 <item>S</item> <item>Symbol</item> 0449 <item>Sm</item> <item>Math_Symbol</item> 0450 <item>Sc</item> <item>Currency_Symbol</item> 0451 <item>Sk</item> <item>Modifier_Symbol</item> 0452 <item>So</item> <item>Other_Symbol</item> 0453 <item>Z</item> <item>Separator</item> 0454 <item>Zs</item> <item>Space_Separator</item> 0455 <item>Zl</item> <item>Line_Separator</item> 0456 <item>Zp</item> <item>Paragraph_Separator</item> 0457 <item>C</item> <item>Other</item> 0458 <item>Cc</item> <item>Control</item> <item>cntrl</item> 0459 <item>Cf</item> <item>Format</item> 0460 <item>Cs</item> <item>Surrogate</item> 0461 <item>Co</item> <item>Private_Use</item> 0462 <item>Cn</item> <item>Unassigned</item> 0463 </list> 0464 0465 <list name="assertion"> 0466 <item>before</item> 0467 <item>after</item> 0468 </list> 0469 0470 <contexts> 0471 0472 <context name="Shebang" attribute="Comment" lineEndContext="#pop!base" fallthroughContext="#pop!base"> 0473 <RegExpr attribute="Keyword" context="#pop!base" String="^#!\/.*" column="0"/> 0474 </context> 0475 0476 <context name="base" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term"> 0477 <DetectSpaces/> 0478 <AnyChar String="{(" attribute="Symbol" beginRegion="block"/> 0479 <AnyChar String="])" context="postfix_op" attribute="Symbol" endRegion="block"/> 0480 <AnyChar String=",;" attribute="Separator Symbol"/> 0481 <DetectChar char="}" endRegion="block" attribute="Symbol"/> 0482 <DetectChar char="#" context="StartComment" attribute="Comment"/> 0483 <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/> 0484 <IncludeRules context="find_boxed_op"/> 0485 <RegExpr String="&prefix_unary_ops;(\s*&prefix_unary_ops;)*+|&list_ops;" context="postfix_hyper_op" attribute="Operator"/> 0486 </context> 0487 0488 <context name="find_boxed_op" attribute="Normal Text" lineEndContext="#pop"> 0489 <DetectChar char="[" context="boxed_op" attribute="Symbol" beginRegion="block"/> 0490 <RegExpr String="(\b[RXZS]+)?(?=\\?\[)" context="start_boxed_op" attribute="Operator"/> 0491 </context> 0492 <context name="start_boxed_op" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!boxed_op"> 0493 <DetectChar char="[" context="#pop!boxed_op" attribute="Symbol" beginRegion="block"/> 0494 <DetectChar char="\" context="boxed_op"/> 0495 </context> 0496 0497 <context name="boxed_op" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!boxed_op2"> 0498 <RegExpr String="<(?![\]<])" context="boxed_op_string" attribute="String Delimiter" beginRegion="block"/> 0499 </context> 0500 <context name="boxed_op2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop"> 0501 <DetectChar char="]" context="#pop" attribute="Symbol" endRegion="block"/> 0502 <IncludeRules context="boxed_op_elem"/> 0503 </context> 0504 <!-- [<...>] --> 0505 <context name="boxed_op_string" attribute="Normal Text" lineEndContext="#stay"> 0506 <DetectChar char=">" context="#pop#pop!postfix_op" attribute="String Delimiter"/> 0507 <IncludeRules context="q_String<_common"/> 0508 </context> 0509 0510 <context name="boxed_op_elem_before" attribute="Normal Text" lineEndContext="#pop"> 0511 <IncludeRules context="find_boxed_op"/> 0512 <RegExpr String="(\b[RXZS]+)?(<<|>>|«|»)" context="hyper_op_dispatch" lookAhead="1"/> 0513 <RegExpr String="[\\&]&ident;" attribute="Variable"/> 0514 </context> 0515 <context name="boxed_op_elem" attribute="Normal Text" lineEndContext="#pop"> 0516 <IncludeRules context="boxed_op_elem_before"/> 0517 <RegExpr String="\bdoes\b|&infix_ops;" attribute="Operator"/> 0518 <IncludeRules context="boxed_op_elem_after"/> 0519 </context> 0520 <context name="boxed_op_elem_after" attribute="Normal Text" lineEndContext="#pop"> 0521 <RegExpr String="&ident;"/> 0522 </context> 0523 0524 <context name="postfix_hyper_op" attribute="Normal Text" lineEndContext="#pop!term" fallthroughContext="#pop!term"> 0525 <StringDetect String="<<" context="#pop!term" attribute="Hyper Operator"/> 0526 <StringDetect String="«" context="#pop!term" attribute="Hyper Operator"/> 0527 </context> 0528 0529 <context name="postfix_op" attribute="Normal Text" lineEndContext="#pop!infix_op" fallthroughContext="#pop!infix_op"> 0530 <StringDetect String="[" context="#pop" attribute="Symbol" beginRegion="block"/> 0531 <StringDetect String="!" context="#pop" attribute="Member Operator"/> 0532 <StringDetect String="<<" context="#pop" attribute="Hyper Operator"/> 0533 <StringDetect String="«" context="#pop" attribute="Hyper Operator"/> 0534 <StringDetect String="<" context="#pop!q_String<_term" attribute="String Delimiter"/> 0535 <RegExpr String="&postfix_ops;" attribute="Operator"/> 0536 </context> 0537 0538 <context name="infix_op" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop"> 0539 <DetectSpaces/> 0540 <DetectChar char="#" context="StartComment" attribute="Comment"/> 0541 <WordDetect String="does" context="#pop" attribute="Keyword"/> 0542 <IncludeRules context="infix_regular_op"/> 0543 </context> 0544 <context name="infix_regular_op" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop"> 0545 <RegExpr String="&infix_ops;(\s*&prefix_unary_ops;)*+" context="#pop!infix_postfix_hyper_op" attribute="Operator"/> 0546 <RegExpr String="&method_ops;" context="#pop" attribute="Member Operator"/> 0547 <RegExpr String="(\b[RXZS]+)?(<<|>>|«|»)" context="#pop!hyper_op_dispatch" lookAhead="1"/> 0548 </context> 0549 0550 <!-- if infix operator is followed by hyper operator, then it is a postfix operator --> 0551 <context name="infix_postfix_hyper_op" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop"> 0552 <IncludeRules context="postfix_hyper_op"/> 0553 </context> 0554 0555 <context name="hyper_op_dispatch" attribute="Normal Text" lineEndContext="#pop"> 0556 <AnyChar String="RXZS" attribute="Operator"/> 0557 <StringDetect String="<<" context="#pop!hyper_op1" attribute="Hyper Operator"/> 0558 <StringDetect String=">>" context="#pop!hyper_op1" attribute="Hyper Operator"/> 0559 <AnyChar String="«»" context="#pop!hyper_op2" attribute="Hyper Operator"/> 0560 </context> 0561 <context name="hyper_op1" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop"> 0562 <StringDetect String="<<" context="#pop" attribute="Hyper Operator"/> 0563 <StringDetect String=">>" context="#pop" attribute="Hyper Operator"/> 0564 <IncludeRules context="boxed_op_elem_before"/> 0565 <!-- ignore > after infix operator --> 0566 <RegExpr String="(\b[RXZS]+)?([+~][&>|^]?|[-=])=?|\bdoes\b|&infix_ops;" attribute="Operator"/> 0567 <IncludeRules context="boxed_op_elem_after"/> 0568 </context> 0569 <context name="hyper_op2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop"> 0570 <AnyChar String="«»" context="#pop" attribute="Hyper Operator"/> 0571 <IncludeRules context="boxed_op_elem"/> 0572 </context> 0573 0574 <context name="term" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop"> 0575 <DetectSpaces/> 0576 <AnyChar String="{([])},;" context="#pop" lookAhead="1"/> 0577 <DetectChar char="#" context="StartComment" attribute="Comment"/> 0578 <DetectChar char=""" context="qq_RawString_term" attribute="String Delimiter"/> 0579 <DetectChar char="'" context="q_RawString_term" attribute="String Delimiter"/> 0580 <DetectChar char="«" context="qq_String«_term" attribute="String Delimiter"/> 0581 <StringDetect String="<<" context="qq_String<<_term" attribute="String Delimiter"/> 0582 <DetectChar char="<" context="q_String<_term" attribute="String Delimiter"/> 0583 <DetectChar char="「" context="Q_String「_term" attribute="String Delimiter"/> 0584 <DetectChar char="/" context="Pattern/" attribute="Pattern Delimiter" beginRegion="regex"/> 0585 <DetectChar char=":" context="MaybeAttribute" attribute="Separator Symbol"/> 0586 0587 <RegExpr String="\b(?:s|S|tr|TR)®adverb;" context="RegexSubstitution" attribute="Pattern Delimiter"/> 0588 <RegExpr String="\b(?:rx|m)®adverb;" context="Regex" attribute="Pattern Delimiter"/> 0589 0590 <RegExpr String="&twigil_variable;" context="Twigil_term" attribute="Variable"/> 0591 <!-- '*' -> Whatever variable: (* + *)(1, 2) == 3 --> 0592 <RegExpr String="&variable;|\$(<&ident;>)+|[$@](\(\))?|[*]" context="#pop!postfix_op" attribute="Variable"/> 0593 0594 <RegExpr String="\bQ(\s++(?=['(_]|$)|\s*+(?=[^()>」\]}'&rangealnum;]|$))" context="Q_String" attribute="String"/> 0595 0596 <RegExpr String="\.?\p{N}" context="Number" lookAhead="1" minimal="1"/> 0597 0598 <RegExpr attribute="Operator" context="q_QuotingForm" String="\bq(?="ingform_q;"ingform_q_assert;)"/> 0599 0600 <IncludeRules context="infix_regular_op"/> 0601 0602 <RegExpr String="(?<=[.])(unless|when|with|without|given|default|for|loop|repeat|while|until|once|next|last|redo|goto|proceed|succeed|start|proceed|succeed)\b" context="#pop" attribute="Normal Text"/> 0603 0604 <keyword String="control flow" context="#pop" attribute="Control Flow"/> 0605 <keyword String="variable storages" context="#stay" attribute="Variable Storage"/> 0606 <WordDetect String="is" context="Is" attribute="Keyword"/> 0607 <keyword String="keywords" context="#pop" attribute="Keyword"/> 0608 <keyword String="function operators" context="#pop" attribute="Function"/> 0609 <keyword String="declare routine" context="#stay" attribute="Declare Routine"/> 0610 <keyword String="regex keywords" context="RegexKeyword" attribute="Keyword"/> 0611 <keyword String="values" context="#pop!postfix_op" attribute="Keyword Value"/> 0612 <keyword String="number" context="#pop!postfix_op" attribute="Float"/> 0613 <RegExpr String="\b(u?int(8|16|32|64)?|utf(8|16|32)|buf(8|16|32|64)|num|&datatype;)\b" context="#pop" attribute="Data Type"/> 0614 <!-- <RegExpr String="&ident;\s*+(?=\()" context="#pop" attribute="Function"/> --> 0615 <RegExpr String="!?&ident;" context="#pop" attribute="Normal Text"/> 0616 0617 <DetectChar char="\"/> 0618 0619 <RegExpr String="." context="#pop" attribute="Normal Text"/> 0620 </context> 0621 0622 0623 <context name="Is" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!postfix_op"> 0624 <DetectSpaces/> 0625 <keyword String="properties" context="#pop#pop!postfix_op" attribute="Property"/> 0626 </context> 0627 0628 <context name="Interpolation" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term"> 0629 <DetectChar char="}" context="#pop" attribute="Symbol" endRegion="block"/> 0630 <IncludeRules context="base"/> 0631 </context> 0632 0633 <context name="SubExpression(" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term"> 0634 <DetectChar char=")" context="#pop" attribute="Symbol" endRegion="block"/> 0635 <IncludeRules context="base"/> 0636 </context> 0637 0638 <context name="Twigil" attribute="Variable" lineEndContext="#pop"> 0639 <AnyChar String="&twigils;" attribute="Twigil"/> 0640 <RegExpr String="&ident;" context="#pop#pop" attribute="Variable"/> 0641 </context> 0642 0643 <context name="Twigil_term" attribute="Variable" lineEndContext="#pop"> 0644 <AnyChar String="&twigils;" attribute="Twigil"/> 0645 <RegExpr String="&ident;" context="#pop#pop!postfix_op" attribute="Variable"/> 0646 </context> 0647 0648 <context name="RegexKeyword" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop"> 0649 <DetectSpaces/> 0650 <DetectChar char="{" context="#pop!RegexKeyword-Pattern{" attribute="Symbol" beginRegion="regex"/> 0651 <DetectChar char="#" context="StartComment" attribute="Comment"/> 0652 <RegExpr String="&ident;"/> 0653 </context> 0654 <context name="RegexKeyword-Pattern{" attribute="Pattern" lineEndContext="#stay"> 0655 <DetectChar char="}" context="#pop" attribute="Symbol" endRegion="regex"/> 0656 <IncludeRules context="find_Pattern"/> 0657 </context> 0658 0659 0660 <!-- Regex Substitution --> 0661 0662 <context name="RegexSubstitution" attribute="Pattern Delimiter" lineEndContext="#stay"> 0663 <DetectChar char="/" context="PatternSubstitution/" attribute="Pattern Delimiter" beginRegion="regex"/> 0664 <IncludeRules context="find_RegexClosure"/> 0665 <RegExpr String="([^\w\s])" context="PatternSubstitution" attribute="Pattern Delimiter" beginRegion="regex"/> 0666 </context> 0667 0668 <context name="PatternSubstitution/" attribute="Pattern" lineEndContext="#stay"> 0669 <DetectChar char="/" context="SubstitutionString/" attribute="Pattern Delimiter" endRegion="regex" beginRegion="substitution"/> 0670 <IncludeRules context="find_Pattern"/> 0671 </context> 0672 0673 <context name="PatternSubstitution" attribute="Pattern" lineEndContext="#stay"> 0674 <RegExpr String="(%1)" dynamic="1" context="SubstitutionString" attribute="Pattern Delimiter" endRegion="regex" beginRegion="substitution"/> 0675 <IncludeRules context="find_Pattern"/> 0676 </context> 0677 0678 <context name="SubstitutionString/" attribute="String" lineEndContext="#stay"> 0679 <StringDetect String="/" context="#pop#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="substitution"/> 0680 <StringDetect String="\/" attribute="String Special Character"/> 0681 <RegExpr String="([^/\\]++|\\[^/])++" attribute="String"/> 0682 </context> 0683 0684 <context name="SubstitutionString" attribute="String" lineEndContext="#stay"> 0685 <DetectChar char="1" dynamic="1" context="#pop#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="substitution"/> 0686 <StringDetect String="\%1" dynamic="1" attribute="String Special Character"/> 0687 <RegExpr String="([^%1\\]++|\\[^%1])++" dynamic="1" attribute="String"/> 0688 </context> 0689 0690 0691 <!-- Regex --> 0692 0693 <context name="Regex" attribute="Pattern" lineEndContext="#stay" fallthroughContext="#pop"> 0694 <DetectChar char="/" context="Pattern/" attribute="Pattern Delimiter" beginRegion="regex"/> 0695 <IncludeRules context="find_RegexClosure"/> 0696 <RegExpr String="([^\w\s])" context="Pattern" attribute="Pattern Delimiter" beginRegion="regex"/> 0697 </context> 0698 0699 <context name="find_RegexClosure" attribute="Pattern Delimiter" lineEndContext="#stay"> 0700 <DetectChar char=":" context="RegexModifier" attribute="Pattern Modifier"/> 0701 <StringDetect String="[[" context="Pattern[[" attribute="Pattern Delimiter" beginRegion="regex"/> 0702 <StringDetect String="{{" context="Pattern{{" attribute="Pattern Delimiter" beginRegion="regex"/> 0703 <StringDetect String="<<" context="Pattern<<" attribute="Pattern Delimiter" beginRegion="regex"/> 0704 <DetectChar char="[" context="Pattern[" attribute="Pattern Delimiter" beginRegion="regex"/> 0705 <DetectChar char="{" context="Pattern{" attribute="Pattern Delimiter" beginRegion="regex"/> 0706 <DetectChar char="<" context="Pattern<" attribute="Pattern Delimiter" beginRegion="regex"/> 0707 <DetectChar char="(" context="Pattern(" attribute="Pattern Delimiter" beginRegion="regex"/> 0708 <!-- some pairs are missing: https://github.com/Raku/roast/blob/aa4994a7f6b3f6b450a9d231bebd5fba172439b0/S02-literals/quoting-unicode.t#L49-L65 --> 0709 <DetectSpaces/> 0710 </context> 0711 0712 <context name="RegexModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthroughContext="#pop"> 0713 <StringDetect String="P5" context="RegexPerl5" attribute="Pattern Modifier"/> 0714 <StringDetect String="Perl5" context="RegexPerl5" attribute="Pattern Modifier"/> 0715 <DetectIdentifier context="RegexModifierCall" attribute="Pattern Modifier"/> 0716 </context> 0717 0718 <!-- ':' adverb '(' expr ')' '('...')' 0719 ^ pattern delimiter 0720 --> 0721 <context name="RegexModifierCall" attribute="Pattern Modifier" fallthroughContext="#pop#pop"> 0722 <DetectSpaces/> 0723 <DetectChar char="(" context="RegexModifier(" attribute="Symbol" beginRegion="block"/> 0724 </context> 0725 <context name="RegexModifier(" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term"> 0726 <DetectChar char=")" context="RegexModifierPattern(" attribute="Symbol" endRegion="block"/> 0727 <IncludeRules context="base"/> 0728 </context> 0729 <context name="RegexModifierPattern(" attribute="Pattern Delimiter" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop"> 0730 <DetectSpaces/> 0731 <StringDetect String="((" context="#pop#pop#pop#pop!Pattern((" attribute="Pattern Delimiter" beginRegion="regex"/> 0732 <DetectChar char="(" context="#pop#pop#pop#pop!Pattern(" attribute="Pattern Delimiter" beginRegion="regex"/> 0733 </context> 0734 0735 <context name="RegexPerl5" attribute="Pattern Modifier" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop!IsRegexPerl5"> 0736 <DetectSpaces/> 0737 </context> 0738 0739 <context name="IsRegexPerl5" attribute="Pattern" lineEndContext="#stay"> 0740 <IncludeRules context="find_pattern##Perl"/> 0741 </context> 0742 0743 <context name="Pattern/" attribute="Pattern" lineEndContext="#stay"> 0744 <DetectChar char="/" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0745 <IncludeRules context="find_Pattern"/> 0746 </context> 0747 0748 <context name="Pattern{" attribute="Pattern" lineEndContext="#stay"> 0749 <DetectChar char="}" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0750 <IncludeRules context="find_Pattern"/> 0751 </context> 0752 0753 <context name="Pattern{{" attribute="Pattern" lineEndContext="#stay"> 0754 <StringDetect String="}}" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0755 <IncludeRules context="find_Pattern"/> 0756 </context> 0757 0758 <context name="Pattern[" attribute="Pattern" lineEndContext="#stay"> 0759 <DetectChar char="[" context="PatternSub[" attribute="Symbol" beginRegion="block"/> 0760 <DetectChar char="]" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0761 <IncludeRules context="find_Pattern"/> 0762 </context> 0763 <context name="PatternSub[" attribute="Pattern" lineEndContext="#stay"> 0764 <DetectChar char="]" context="#pop" attribute="Symbol" endRegion="regex"/> 0765 <DetectChar char="[" context="PatternSub[" attribute="Symbol" beginRegion="block"/> 0766 <IncludeRules context="find_Pattern"/> 0767 </context> 0768 0769 <context name="Pattern[[" attribute="Pattern" lineEndContext="#stay"> 0770 <DetectChar char="[" context="PatternSub[" attribute="Symbol" beginRegion="block"/> 0771 <StringDetect String="]]" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0772 <IncludeRules context="find_Pattern"/> 0773 </context> 0774 0775 <context name="Pattern(" attribute="Pattern" lineEndContext="#stay"> 0776 <DetectChar char="(" context="PatternSub(" attribute="Symbol" beginRegion="block"/> 0777 <DetectChar char=")" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0778 <IncludeRules context="find_Pattern"/> 0779 </context> 0780 <context name="PatternSub(" attribute="Pattern" lineEndContext="#stay"> 0781 <DetectChar char=")" context="#pop" attribute="Symbol" endRegion="regex"/> 0782 <DetectChar char="(" context="PatternSub(" attribute="Symbol" beginRegion="block"/> 0783 <IncludeRules context="find_Pattern"/> 0784 </context> 0785 0786 <context name="Pattern((" attribute="Pattern" lineEndContext="#stay"> 0787 <DetectChar char="(" context="PatternSub(" attribute="Symbol" beginRegion="block"/> 0788 <StringDetect String="))" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0789 <IncludeRules context="find_Pattern"/> 0790 </context> 0791 0792 <context name="Pattern<" attribute="Pattern" lineEndContext="#stay"> 0793 <DetectChar char=">" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0794 <IncludeRules context="find_Pattern"/> 0795 </context> 0796 0797 <context name="Pattern<<" attribute="Pattern" lineEndContext="#stay"> 0798 <StringDetect String=">>" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0799 <IncludeRules context="find_Pattern"/> 0800 </context> 0801 0802 <context name="Pattern" attribute="Pattern" lineEndContext="#stay"> 0803 <DetectChar char="1" dynamic="1" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/> 0804 <IncludeRules context="find_Pattern"/> 0805 </context> 0806 0807 <context name="find_Pattern" attribute="Pattern" lineEndContext="#stay"> 0808 <DetectSpaces/> 0809 <DetectChar char="." context="#stay" attribute="Pattern Special Character"/> 0810 <DetectChar char=""" attribute="String Delimiter" context="qq_RawString"/> 0811 <DetectChar char="'" attribute="String Delimiter" context="q_RawString"/> 0812 <DetectChar char="\" context="PatternMetaChar" lookAhead="1"/> 0813 <DetectChar char=":" context="PatternModifier" attribute="Pattern Modifier"/> 0814 <DetectChar char="#" context="StartComment" attribute="Comment"/> 0815 <DetectChar char="{" context="Interpolation" attribute="Symbol" beginRegion="block"/> 0816 <StringDetect String="<<" attribute="Operator"/> 0817 <StringDetect String=">>" attribute="Operator"/> 0818 <StringDetect String="<(" context="PatternCaptureMarker" attribute="Pattern Meta Character"/> 0819 <DetectChar char="<" context="RegexClass" attribute="Pattern Meta Character"/> 0820 <StringDetect String="**" context="PatternRangeQuantifier" attribute="Pattern Quantifier"/> 0821 <AnyChar String="?*+" context="PatternAfterQuantifier" attribute="Pattern Quantifier"/> 0822 <AnyChar String="([" attribute="Symbol" beginRegion="block"/> 0823 <AnyChar String=")]" attribute="Symbol" endRegion="block"/> 0824 <StringDetect String="$(" context="PatternVariable(" attribute="Pattern Meta Character" beginRegion="block"/> 0825 <StringDetect String="@(" context="PatternVariable(" attribute="Pattern Meta Character" beginRegion="block"/> 0826 <AnyChar String="«»~" attribute="Operator"/> 0827 <RegExpr String="&twigil_variable;" context="Twigil" attribute="Variable"/> 0828 <RegExpr String="&variable;|@" attribute="Variable"/> 0829 <RegExpr String="\$<&ident;>?" attribute="Pattern Named Capture"/> 0830 <AnyChar String="&|^$" attribute="Pattern Control Flow"/> 0831 <RegExpr String="[&alnum;\s]+" attribute="Pattern"/> 0832 <AnyChar String=">)]" attribute="Error"/> 0833 </context> 0834 0835 <context name="PatternVariable(" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term"> 0836 <DetectChar char=")" context="#pop" attribute="Pattern Meta Character" endRegion="block"/> 0837 <IncludeRules context="base"/> 0838 </context> 0839 0840 0841 <!-- Pattern :... --> 0842 0843 <context name="PatternModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthroughContext="#pop"> 0844 <DetectIdentifier context="#pop" attribute="Pattern Modifier"/> 0845 </context> 0846 0847 0848 <!-- Pattern \... --> 0849 0850 <context name="PatternMetaChar" attribute="Pattern" lineEndContext="#pop"> 0851 <RegExpr String="\\[nthvsdwNTHVSDW]|\\[xX](&unicode_hex_point;(?![0-9a-fA-F])|\[\s*&unicode_hex_point;\s*\])|\\[cC](&unicode_dec_point;(?![0-9])|\[[0-9a-zA-Z\s]+\])|[oO](&unicode_oct_point;(?![0-7])|\[\s*&unicode_oct_point;\s*\])" context="#pop" attribute="Pattern Character Class"/> 0852 <RegExpr String="\\[^\p{L}\p{N}]" context="#pop" attribute="Pattern Character"/> 0853 0854 <StringDetect String="\x[" context="PatternMetaCharX" attribute="Pattern Character Class" insensitive="1"/> 0855 <StringDetect String="\c[" context="PatternMetaCharC" attribute="Pattern Character Class" insensitive="1"/> 0856 <StringDetect String="\o[" context="PatternMetaCharO" attribute="Pattern Character Class" insensitive="1"/> 0857 0858 <!-- error or incomplete --> 0859 <RegExpr String="\\[xX]&unicode_hex_point;|\\[oO]&unicode_oct_point;|\\[cC]&unicode_dec_point;" context="PatternMetaCharError" attribute="Pattern Character Class"/> 0860 <RegExpr String="\\[xXcCoO]?" context="#pop" attribute="Error"/> 0861 </context> 0862 0863 <context name="PatternMetaCharError" attribute="Pattern" fallthroughContext="#pop#pop"> 0864 <RegExpr String=",?\s+\]?|&alnum;*(\s*,)?\s*\]?" context="#pop#pop" attribute="Error"/> 0865 </context> 0866 0867 <context name="X[]" attribute="Pattern"> 0868 <RegExpr String="\s*\b&unicode_hex_point;\s*"/> 0869 </context> 0870 0871 <context name="O[]" attribute="Pattern"> 0872 <RegExpr String="\s*\b&unicode_oct_point;\s*"/> 0873 </context> 0874 0875 <context name="C[]" attribute="Pattern"> 0876 <RegExpr String="\s*(\b[0-9a-zA-Z]+\s*)+"/> 0877 </context> 0878 0879 <context name="PatternMetaCharMultipleCommon" attribute="Pattern"> 0880 <DetectChar char="]" context="#pop#pop" attribute="Pattern Character Class"/> 0881 <DetectChar char="," attribute="Separator Symbol"/> 0882 </context> 0883 0884 <context name="PatternMetaCharX" attribute="Pattern Character Class"> 0885 <IncludeRules context="PatternMetaCharMultipleCommon"/> 0886 <IncludeRules context="X[]"/> 0887 <RegExpr String="[^0-9a-fA-F\],\s]+|[0-9a-fA-F]+|." attribute="Error"/> 0888 </context> 0889 0890 <context name="PatternMetaCharO" attribute="Pattern Character Class"> 0891 <IncludeRules context="PatternMetaCharMultipleCommon"/> 0892 <IncludeRules context="O[]"/> 0893 <RegExpr String="[^0-7\],\s]+|[0-7]+|." attribute="Error"/> 0894 </context> 0895 0896 <context name="PatternMetaCharC" attribute="Pattern Character Class"> 0897 <IncludeRules context="PatternMetaCharMultipleCommon"/> 0898 <IncludeRules context="C[]"/> 0899 <RegExpr String="[^0-9a-zA-Z\],\s]+|[0-9a-zA-Z]+|." attribute="Error"/> 0900 </context> 0901 0902 0903 <!-- Pattern Capture Markers: <(...)> --> 0904 0905 <context name="PatternCaptureMarker" attribute="Pattern"> 0906 <StringDetect String=")>" context="#pop" attribute="Pattern Meta Character"/> 0907 <IncludeRules context="find_Pattern"/> 0908 </context> 0909 0910 0911 <!-- Pattern Character Classes : <...> --> 0912 0913 <context name="RegexClass" attribute="Pattern Unicode Property" lineEndContext="#stay"> 0914 <DetectChar char=">" context="#pop" attribute="Pattern Meta Character"/> 0915 <AnyChar String=".:" attribute="Pattern Meta Character"/> 0916 <AnyChar String="|+-" attribute="Pattern Quantifier"/> 0917 <AnyChar String="!?" attribute="Pattern Control Flow" context="PatternAssertion"/> 0918 <DetectIdentifier attribute="Pattern Unicode Property"/> 0919 <DetectChar char="[" context="RegexClassRange" attribute="Pattern Bracket"/> 0920 <DetectChar char="<" context="q_String<" attribute="String Delimiter"/> 0921 <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/> 0922 <DetectChar char="{" context="Interpolation" attribute="Symbol" beginRegion="block"/> 0923 <DetectChar char="(" context="SubExpression(" attribute="Symbol" beginRegion="block"/> 0924 <DetectChar char="\" context="PatternMetaChar" lookAhead="1"/> 0925 </context> 0926 0927 <!-- after <? or <! --> 0928 <context name="PatternAssertion" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="PatternAssertionCond"> 0929 <DetectChar char=">" attribute="Pattern Meta Character" context="#pop#pop"/> 0930 <WordDetect String="after" attribute="Pattern Meta Character" context="PatternAssertionCond"/> 0931 <WordDetect String="before" attribute="Pattern Meta Character" context="PatternAssertionCond"/> 0932 </context> 0933 <context name="PatternAssertionCond" attribute="Pattern" lineEndContext="#stay"> 0934 <DetectChar char=">" attribute="Pattern Meta Character" context="#pop#pop#pop"/> 0935 <IncludeRules context="find_Pattern"/> 0936 </context> 0937 0938 <!-- Pattern <[...]> --> 0939 <context name="RegexClassRange" attribute="Pattern Character" lineEndContext="#stay"> 0940 <DetectIdentifier/> 0941 <DetectSpaces/> 0942 <StringDetect String="]" context="#pop" attribute="Pattern Bracket"/> 0943 <StringDetect String="\" context="PatternMetaChar" lookAhead="1"/> 0944 <StringDetect String=".." attribute="Pattern Quantifier"/> 0945 </context> 0946 0947 0948 <context name="PatternAfterQuantifier" attribute="Pattern" lineEndContext="#stay" fallthroughContext="PatternModifierQuantifier"> 0949 <StringDetect String=":" context="PatternModifierQuantifier" attribute="Pattern Modifier"/> 0950 <DetectSpaces context="PatternModifierQuantifier"/> 0951 </context> 0952 <context name="PatternModifierQuantifier" attribute="Pattern" lineEndContext="#stay" fallthroughContext="#pop#pop"> 0953 <DetectSpaces/> 0954 <StringDetect String="%%" context="#pop#pop" attribute="Pattern Quantifier"/> 0955 <StringDetect String="%" context="#pop#pop" attribute="Pattern Quantifier"/> 0956 </context> 0957 0958 0959 <!-- General quantifier: ** min..max --> 0960 0961 <context name="PatternRangeQuantifier" attribute="Pattern" lineEndContext="#stay" fallthroughContext="#pop"> 0962 <DetectSpaces/> 0963 <Int context="#pop!PatternRangeQuantifierRng" attribute="Pattern"/> 0964 <DetectChar char="^" context="PatternRangeQuantifierInt" attribute="Operator"/> 0965 <AnyChar String=":!?" attribute="Pattern Quantifier"/> 0966 </context> 0967 0968 <context name="PatternRangeQuantifierRng" attribute="Pattern" lineEndContext="#pop" fallthroughContext="#pop"> 0969 <StringDetect String="..^" context="PatternRangeQuantifierInt" attribute="Operator"/> 0970 <StringDetect String=".." context="PatternRangeQuantifierInt" attribute="Operator"/> 0971 <StringDetect String="^..^" context="PatternRangeQuantifierInt" attribute="Operator"/> 0972 <StringDetect String="^.." context="PatternRangeQuantifierInt" attribute="Operator"/> 0973 </context> 0974 0975 <context name="PatternRangeQuantifierInt" attribute="Pattern" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 0976 <DetectSpaces/> 0977 <Int context="#pop#pop" attribute="Pattern"/> 0978 </context> 0979 0980 0981 <!-- Number --> 0982 0983 <context name="Number" attribute="Decimal" lineEndContext="#stay" fallthroughContext="#pop#pop!postfix_op"> 0984 <RegExpr String="&int10;(?:\.&int10;&exp;?|&exp;)|\.&int10;&exp;?" context="NumberSuffix" attribute="Float"/> 0985 <Detect2Chars char="0" char1="x" context="HexNumber" attribute="Hex"/> 0986 <Detect2Chars char="0" char1="o" context="OctalNumber" attribute="Octal"/> 0987 <RegExpr String="\p{N}++(?:_\p{N}++)*+" context="NumberSuffix" attribute="Decimal"/> 0988 </context> 0989 0990 <context name="HexNumber" attribute="Hex" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="NumberCheckError"> 0991 <RegExpr String="[a-fA-F0-9]++(?:_[a-fA-F0-9]++)*+" context="#pop!NumberSuffix" attribute="Hex"/> 0992 </context> 0993 0994 <context name="OctalNumber" attribute="Octal" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="NumberCheckError"> 0995 <RegExpr String="[0-7]++(?:_[0-7]++)*+" context="#pop!NumberSuffix" attribute="Octal"/> 0996 </context> 0997 0998 <context name="NumberSuffix" attribute="Decimal" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="#pop#pop#pop!postfix_op"> 0999 <DetectChar char="i" context="#pop!NumberCheckError" attribute="Number Suffix"/> 1000 <IncludeRules context="NumberCheckError"/> 1001 </context> 1002 <context name="NumberCheckError" attribute="Decimal" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="#pop#pop#pop!postfix_op"> 1003 <RegExpr String="&alnum;+" context="#pop#pop#pop!postfix_op" attribute="Error"/> 1004 </context> 1005 1006 1007 <!-- Attribute or Key --> 1008 1009 <!-- 1010 :11a 1011 :!false 1012 :attr 1013 --> 1014 <context name="MaybeAttribute" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop"> 1015 <StringDetect String=":?" context="#pop" attribute="Separator Symbol"/> 1016 <DetectChar char=":" attribute="Separator Symbol"/> 1017 <DetectChar char="!" context="#pop" attribute="Operator"/> 1018 <Int context="MaybeAttribute2" attribute="Decimal"/> 1019 <RegExpr String="&datatype;" context="#pop" attribute="Data Type"/> 1020 <RegExpr String="\\?&ident;" context="#pop#pop!postfix_op" attribute="Attribute"/> 1021 </context> 1022 1023 <context name="MaybeAttribute2" attribute="Decimal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop#pop!postfix_op"> 1024 <DetectChar char="<" context="NumberWithRadix" attribute="String Delimiter"/> 1025 </context> 1026 1027 1028 <!-- ':base<NNN>' --> 1029 1030 <context name="NumberWithRadix" attribute="Decimal" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop!postfix_op"> 1031 <DetectChar char=">" context="#pop#pop#pop#pop!postfix_op" attribute="Error"/> 1032 <DetectSpaces context="#pop#pop#pop#pop!postfix_op" attribute="Error"/> 1033 <RegExpr String="&intN;\.&intN;|\.&intN;" context="NumberWithRadixClose" attribute="Float"/> 1034 <RegExpr String="&intN;" context="NumberWithRadixClose" attribute="Decimal"/> 1035 </context> 1036 <context name="NumberWithRadixClose" attribute="Decimal" 1037 lineEndContext="#pop#pop#pop#pop#pop!postfix_op" 1038 fallthroughContext="#pop#pop#pop#pop#pop!postfix_op"> 1039 <DetectChar char=">" context="NumberWithRadixSuffix" attribute="String Delimiter"/> 1040 <RegExpr String=" +|&alnum;+" context="#pop#pop#pop#pop#pop!postfix_op" attribute="Error"/> 1041 </context> 1042 <context name="NumberWithRadixSuffix" attribute="Decimal" 1043 lineEndContext="#pop#pop#pop#pop#pop#pop!postfix_op" 1044 fallthroughContext="#pop#pop#pop#pop#pop#pop!postfix_op"> 1045 <WordDetect String="i" context="#pop#pop#pop#pop#pop#pop!postfix_op" attribute="Number Suffix"/> 1046 </context> 1047 1048 1049 <!-- Pod --> 1050 1051 <context name="StartPod" attribute="Pod Typename" lineEndContext="#pop" fallthroughContext="#pop"> 1052 <WordDetect String="begin" context="PodBegin" attribute="Pod Block"/> 1053 <WordDetect String="for" context="PodFor" attribute="Pod Typename"/> 1054 <keyword String="pod" context="PodTypenameValue" attribute="Pod Typename"/> 1055 <RegExpr String="[_A-Z][-_A-Z0-9]*\b" context="PodTypenameValue" attribute="Pod Typename"/> 1056 <RegExpr String="&ident;" context="PodTypenameValue" attribute="Pod Unknown"/> 1057 </context> 1058 1059 <context name="PodTypenameValue" attribute="Pod Typename Value" lineEndContext="PodTypenameValueNextLine" fallthroughContext="PodFormat"> 1060 <RegExpr attribute="Pod Typename Value" context="#stay" String="&allnopodfmt;"/> 1061 </context> 1062 1063 <context name="PodTypenameValueNextLine" attribute="Pod Typename Value" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop" fallthroughContext="#pop"> 1064 <DetectSpaces attribute="Normal Text" context="PodTypenameValueOrEmpty"/> 1065 <DetectChar attribute="Pod" context="#pop#pop#pop" char="=" lookAhead="true"/> 1066 </context> 1067 1068 <context name="PodTypenameValueOrEmpty" attribute="Pod Typename Value" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop"> 1069 <DetectChar attribute="Pod" context="#pop#pop#pop#pop" char="=" lookAhead="true"/> 1070 </context> 1071 1072 1073 <!-- Pod formatting --> 1074 1075 <context name="PodFormat" attribute="Pod Typename Value" lineEndContext="#stay"> 1076 <Detect2Chars char="B" char1="<" attribute="Pod Bold" context="#pop!PodFormatB"/> 1077 <Detect2Chars char="B" char1="«" attribute="Pod Bold" context="#pop!PodFormatB2"/> 1078 <Detect2Chars char="I" char1="<" attribute="Pod Italic" context="#pop!PodFormatI"/> 1079 <Detect2Chars char="I" char1="«" attribute="Pod Italic" context="#pop!PodFormatI2"/> 1080 <Detect2Chars char="L" char1="<" attribute="Pod Link" context="#pop!PodFormatL"/> 1081 <Detect2Chars char="L" char1="«" attribute="Pod Link" context="#pop!PodFormatL2"/> 1082 <Detect2Chars char="N" char1="<" attribute="Pod Note" context="#pop!PodFormatN"/> 1083 <Detect2Chars char="N" char1="«" attribute="Pod Note" context="#pop!PodFormatN2"/> 1084 <Detect2Chars char="P" char1="<" attribute="Pod Link" context="#pop!PodFormatL"/> 1085 <Detect2Chars char="P" char1="«" attribute="Pod Link" context="#pop!PodFormatL2"/> 1086 <Detect2Chars char="Z" char1="<" attribute="Pod Comment" context="#pop!PodFormatZ"/> 1087 <Detect2Chars char="Z" char1="«" attribute="Pod Comment" context="#pop!PodFormatZ2"/> 1088 <Detect2Chars char="U" char1="<" attribute="Pod Underline" context="#pop!PodFormatU"/> 1089 <Detect2Chars char="U" char1="«" attribute="Pod Underline" context="#pop!PodFormatU2"/> 1090 <Detect2Chars char="C" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 1091 <Detect2Chars char="C" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 1092 <Detect2Chars char="E" char1="<" attribute="Pod Unicode" context="#pop!PodFormatE"/> 1093 <Detect2Chars char="E" char1="«" attribute="Pod Unicode" context="#pop!PodFormatE2"/> 1094 <Detect2Chars char="K" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 1095 <Detect2Chars char="K" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 1096 <Detect2Chars char="R" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 1097 <Detect2Chars char="R" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 1098 <Detect2Chars char="T" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 1099 <Detect2Chars char="T" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 1100 <Detect2Chars char="V" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatV"/> 1101 <Detect2Chars char="V" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatV2"/> 1102 <Detect2Chars char="X" char1="<" attribute="Pod Indexed Terms" context="#pop!PodFormatX"/> 1103 <Detect2Chars char="X" char1="«" attribute="Pod Indexed Terms" context="#pop!PodFormatX2"/> 1104 <Detect2Chars char="M" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/> 1105 <Detect2Chars char="M" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/> 1106 </context> 1107 1108 <context name="PodFormatB" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="#pop!PodFormatB1"> 1109 <DetectChar char="<" attribute="Pod Bold" context="#pop!PodFormatB3"/> 1110 </context> 1111 <context name="PodFormatB1" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="PodFormat"> 1112 <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt1;"/> 1113 <DetectChar char="<" attribute="Pod Bold" context="PodFormatB1"/> 1114 <DetectChar char=">" attribute="Pod Bold" context="#pop"/> 1115 </context> 1116 <context name="PodFormatB2" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="PodFormat"> 1117 <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt2;"/> 1118 <DetectChar char="«" attribute="Pod Bold" context="PodFormatB2"/> 1119 <DetectChar char="»" attribute="Pod Bold" context="#pop"/> 1120 </context> 1121 <context name="PodFormatB3" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="PodFormat"> 1122 <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt3;"/> 1123 <Detect2Chars char="<" char1="<" attribute="Pod Bold" context="PodFormatB3"/> 1124 <Detect2Chars char=">" char1=">" attribute="Pod Bold" context="#pop"/> 1125 </context> 1126 1127 <context name="PodFormatE" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="#pop!PodFormatE1"> 1128 <DetectChar char="<" attribute="Pod Unicode" context="#pop!PodFormatE3"/> 1129 </context> 1130 <context name="PodFormatE1" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="PodFormat"> 1131 <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt1;"/> 1132 <DetectChar char="<" attribute="Pod Unicode" context="PodFormatE1"/> 1133 <DetectChar char=">" attribute="Pod Unicode" context="#pop"/> 1134 </context> 1135 <context name="PodFormatE2" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="PodFormat"> 1136 <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt2;"/> 1137 <DetectChar char="«" attribute="Pod Unicode" context="PodFormatE2"/> 1138 <DetectChar char="»" attribute="Pod Unicode" context="#pop"/> 1139 </context> 1140 <context name="PodFormatE3" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="PodFormat"> 1141 <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt3;"/> 1142 <Detect2Chars char="<" char1="<" attribute="Pod Unicode" context="PodFormatE3"/> 1143 <Detect2Chars char=">" char1=">" attribute="Pod Unicode" context="#pop"/> 1144 </context> 1145 1146 <context name="PodFormatI" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="#pop!PodFormatI1"> 1147 <DetectChar char="<" attribute="Pod Italic" context="#pop!PodFormatI3"/> 1148 </context> 1149 <context name="PodFormatI1" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="PodFormat"> 1150 <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt1;"/> 1151 <DetectChar char="<" attribute="Pod Italic" context="PodFormatI1"/> 1152 <DetectChar char=">" attribute="Pod Italic" context="#pop"/> 1153 </context> 1154 <context name="PodFormatI2" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="PodFormat"> 1155 <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt2;"/> 1156 <DetectChar char="«" attribute="Pod Italic" context="PodFormatI2"/> 1157 <DetectChar char="»" attribute="Pod Italic" context="#pop"/> 1158 </context> 1159 <context name="PodFormatI3" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="PodFormat"> 1160 <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt3;"/> 1161 <Detect2Chars char="<" char1="<" attribute="Pod Italic" context="PodFormatI3"/> 1162 <Detect2Chars char=">" char1=">" attribute="Pod Italic" context="#pop"/> 1163 </context> 1164 1165 <context name="PodFormatL" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="#pop!PodFormatL1"> 1166 <DetectChar char="<" attribute="Pod Link" context="#pop!PodFormatL3"/> 1167 </context> 1168 <context name="PodFormatL1" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="PodFormat"> 1169 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|]+|[&podfmt;](?![<«]))+"/> 1170 <DetectChar char="|" attribute="Pod Operator" context="#stay"/> 1171 <DetectChar char=">" attribute="Pod Link" context="#pop"/> 1172 </context> 1173 <context name="PodFormatL2" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="PodFormat"> 1174 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|]+|[&podfmt;](?![<«]))+"/> 1175 <DetectChar char="|" attribute="Pod Operator" context="#stay"/> 1176 <DetectChar char="»" attribute="Pod Link" context="#pop"/> 1177 </context> 1178 <context name="PodFormatL3" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="PodFormat"> 1179 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"/> 1180 <DetectChar char="|" attribute="Pod Operator" context="#stay"/> 1181 <Detect2Chars char=">" char1=">" attribute="Pod Link" context="#pop"/> 1182 </context> 1183 1184 <context name="PodFormatN" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="#pop!PodFormatN1"> 1185 <DetectChar char="<" attribute="Pod Note" context="#pop!PodFormatN3"/> 1186 </context> 1187 <context name="PodFormatN1" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="PodFormat"> 1188 <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt1;"/> 1189 <DetectChar char="<" attribute="Pod Note" context="PodFormatN1"/> 1190 <DetectChar char=">" attribute="Pod Note" context="#pop"/> 1191 </context> 1192 <context name="PodFormatN2" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="PodFormat"> 1193 <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt2;"/> 1194 <DetectChar char="«" attribute="Pod Note" context="PodFormatN2"/> 1195 <DetectChar char="»" attribute="Pod Note" context="#pop"/> 1196 </context> 1197 <context name="PodFormatN3" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="PodFormat"> 1198 <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt3;"/> 1199 <Detect2Chars char="<" char1="<" attribute="Pod Note" context="PodFormatN3"/> 1200 <Detect2Chars char=">" char1=">" attribute="Pod Note" context="#pop"/> 1201 </context> 1202 1203 <context name="PodFormatU" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="#pop!PodFormatU1"> 1204 <DetectChar char="<" attribute="Pod Underline" context="#pop!PodFormatU3"/> 1205 </context> 1206 <context name="PodFormatU1" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="PodFormat"> 1207 <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt1;"/> 1208 <DetectChar char="<" attribute="Pod Underline" context="PodFormatU1"/> 1209 <DetectChar char=">" attribute="Pod Underline" context="#pop"/> 1210 </context> 1211 <context name="PodFormatU2" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="PodFormat"> 1212 <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt2;"/> 1213 <DetectChar char="«" attribute="Pod Underline" context="PodFormatU2"/> 1214 <DetectChar char="»" attribute="Pod Underline" context="#pop"/> 1215 </context> 1216 <context name="PodFormatU3" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="PodFormat"> 1217 <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt3;"/> 1218 <Detect2Chars char="<" char1="<" attribute="Pod Underline" context="PodFormatU3"/> 1219 <Detect2Chars char=">" char1=">" attribute="Pod Underline" context="#pop"/> 1220 </context> 1221 1222 <context name="PodFormatV" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="#pop!PodFormatV1"> 1223 <DetectChar char="<" attribute="Pod Verbatim" context="#pop!PodFormatV3"/> 1224 </context> 1225 <context name="PodFormatV1" attribute="Pod Verbatim" lineEndContext="#stay"> 1226 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/> 1227 <DetectChar char="<" attribute="Pod Verbatim" context="PodFormatV1"/> 1228 <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/> 1229 </context> 1230 <context name="PodFormatV2" attribute="Pod Verbatim" lineEndContext="#stay"> 1231 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/> 1232 <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatV2"/> 1233 <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/> 1234 </context> 1235 <context name="PodFormatV3" attribute="Pod Verbatim" lineEndContext="#stay"> 1236 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/> 1237 <Detect2Chars char="<" char1="<" attribute="Pod Verbatim" context="PodFormatV3"/> 1238 <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/> 1239 </context> 1240 1241 <context name="PodFormatVT" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="#pop!PodFormatVT1"> 1242 <DetectChar char="<" attribute="Pod Verbatim" context="#pop!PodFormatVT3"/> 1243 </context> 1244 <context name="PodFormatVT1" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodFormat"> 1245 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/> 1246 <DetectChar char="<" attribute="Pod Verbatim" context="PodFormatVT1"/> 1247 <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/> 1248 </context> 1249 <context name="PodFormatVT2" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodFormat"> 1250 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/> 1251 <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatVT2"/> 1252 <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/> 1253 </context> 1254 <context name="PodFormatVT3" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodFormat"> 1255 <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/> 1256 <Detect2Chars char="<" char1="<" attribute="Pod Verbatim" context="PodFormatVT3"/> 1257 <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/> 1258 </context> 1259 1260 <context name="PodFormatZ" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="#pop!PodFormatZ1"> 1261 <DetectChar char="<" attribute="Pod Comment" context="#pop!PodFormatZ3"/> 1262 </context> 1263 <context name="PodFormatZ1" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="PodFormat"> 1264 <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt1;"/> 1265 <DetectChar char="<" attribute="Pod Comment" context="PodFormatZ1"/> 1266 <DetectChar char=">" attribute="Pod Comment" context="#pop"/> 1267 </context> 1268 <context name="PodFormatZ2" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="PodFormat"> 1269 <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt2;"/> 1270 <DetectChar char="«" attribute="Pod Comment" context="PodFormatZ2"/> 1271 <DetectChar char="»" attribute="Pod Comment" context="#pop"/> 1272 </context> 1273 <context name="PodFormatZ3" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="PodFormat"> 1274 <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt3;"/> 1275 <Detect2Chars char="<" char1="<" attribute="Pod Comment" context="PodFormatZ3"/> 1276 <Detect2Chars char=">" char1=">" attribute="Pod Comment" context="#pop"/> 1277 </context> 1278 1279 <context name="PodFormatX" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="#pop!PodFormatX1"> 1280 <DetectChar char="<" attribute="Pod Indexed Terms" context="#pop!PodFormatX3"/> 1281 </context> 1282 <context name="PodFormatX1" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="PodFormat"> 1283 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|;,]+|[&podfmt;](?![<«]))+"/> 1284 <AnyChar String="|;," attribute="Pod Operator" context="#stay"/> 1285 <DetectChar char=">" attribute="Pod Indexed Terms" context="#pop"/> 1286 </context> 1287 <context name="PodFormatX2" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="PodFormat"> 1288 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|;,]+|[&podfmt;](?![<«]))+"/> 1289 <AnyChar String="|;," attribute="Pod Operator" context="#stay"/> 1290 <DetectChar char="«" attribute="Pod Indexed Terms" context="PodFormatX2"/> 1291 <DetectChar char="»" attribute="Pod Indexed Terms" context="#pop"/> 1292 </context> 1293 <context name="PodFormatX3" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="PodFormat"> 1294 <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|;,]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"/> 1295 <AnyChar String="|;," attribute="Pod Operator" context="#stay"/> 1296 <Detect2Chars char="<" char1="<" attribute="Pod Indexed Terms" context="PodFormatX3"/> 1297 <Detect2Chars char=">" char1=">" attribute="Pod Indexed Terms" context="#pop"/> 1298 </context> 1299 1300 <!-- Pod =begin --> 1301 1302 <context name="PodBegin" attribute="Pod Typename Value" lineEndContext="#pop#pop!Error"> 1303 <DetectSpaces attribute="Normal Text"/> 1304 <WordDetect String="code" context="PodBeginCode" attribute="Pod Typename Value" beginRegion="pod"/> 1305 <WordDetect String="comment" context="PodBeginComment" attribute="Pod Typename Value" beginRegion="pod"/> 1306 <RegExpr String="(&ident;)" context="PodBeginTypename" attribute="Pod Typename Value" beginRegion="pod"/> 1307 </context> 1308 1309 <context name="PodBeginCode" attribute="Error" lineEndContext="PodInnerCode"> 1310 <DetectSpaces attribute="Normal Text"/> 1311 <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/> 1312 <DetectChar char="=" context="PodEndCode" attribute="Pod" firstNonSpace="1"/> 1313 </context> 1314 1315 <context name="PodInnerCode" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodCode"> 1316 <RegExpr String="^\s*=end\s+code\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/> 1317 </context> 1318 <context name="PodCode" attribute="Pod Verbatim" lineEndContext="#pop"/> 1319 1320 <context name="PodEndCode" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1321 <StringDetect String="end" context="PodEndCodeName" attribute="Pod Block" endRegion="pod"/> 1322 </context> 1323 <context name="PodEndCodeName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop#pop#pop!Error"> 1324 <DetectSpaces attribute="Normal Text"/> 1325 <StringDetect String="code" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/> 1326 </context> 1327 1328 1329 <context name="PodBeginComment" attribute="Error" lineEndContext="PodInnerComment"> 1330 <DetectSpaces attribute="Normal Text"/> 1331 <DetectChar char="=" context="PodEndComment" attribute="Pod" firstNonSpace="1"/> 1332 </context> 1333 1334 <context name="PodInnerComment" attribute="Comment" lineEndContext="#stay" fallthroughContext="PodComment"> 1335 <RegExpr String="^\s*=end\s+comment\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/> 1336 </context> 1337 <context name="PodComment" attribute="Comment" lineEndContext="#pop"/> 1338 1339 <context name="PodEndComment" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1340 <StringDetect String="end" context="PodEndCommentName" attribute="Pod Block" endRegion="pod"/> 1341 </context> 1342 <context name="PodEndCommentName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop#pop#pop!Error"> 1343 <DetectSpaces attribute="Normal Text"/> 1344 <StringDetect String="comment" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/> 1345 </context> 1346 1347 1348 <context name="PodBeginTypename" attribute="Error" lineEndContext="PodInnerBlock"> 1349 <RegExpr String="^\s*=end\s+%1\b" dynamic="1" context="PodEnd" attribute="Pod" column="0" lookAhead="1"/> 1350 <DetectSpaces attribute="Normal Text"/> 1351 <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/> 1352 <DetectChar char="=" context="PodEndError" attribute="Pod" firstNonSpace="1"/> 1353 </context> 1354 1355 <context name="PodInnerBlock" attribute="Pod Paragraph" lineEndContext="#stay" fallthroughContext="PodInnerBlockFormat"> 1356 <RegExpr String="^\s*=end\b" context="#pop" attribute="Pod" column="0" lookAhead="1"/> 1357 <DetectSpaces/> 1358 <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/> 1359 <RegExpr attribute="Pod Paragraph" context="#stay" String="&allnopodfmt;"/> 1360 </context> 1361 1362 <context name="PodInnerBlockFormat" attribute="Pod Paragraph" lineEndContext="#stay"> 1363 <IncludeRules context="PodFormat"/> 1364 </context> 1365 1366 <context name="PodEnd" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1367 <DetectSpaces attribute="Normal Text"/> 1368 <DetectChar char="=" context="#stay" attribute="Pod"/> 1369 <StringDetect String="end" context="PodEndName" attribute="Pod Block" endRegion="pod"/> 1370 </context> 1371 <context name="PodEndName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop"> 1372 <DetectSpaces attribute="Normal Text"/> 1373 <RegExpr String="&ident;" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/> 1374 </context> 1375 1376 <context name="PodEndError" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop"> 1377 <StringDetect String="end" attribute="Pod Block" context="#pop#pop#pop!Error" endRegion="pod"/> 1378 </context> 1379 1380 <!-- Pod configuration for =begin --> 1381 1382 <context name="PodBlockConfigError" attribute="Error" lineEndContext="#pop#pop!PodInnerBlock"/> 1383 1384 <context name="PodBlockConfigKey" attribute="Pod Key" lineEndContext="#pop!PodInnerBlock" fallthroughContext="PodBlockConfigError"> 1385 <DetectChar char="!" context="#pop!PodBlockConfigKeyName" attribute="Pod Operator"/> 1386 <Int context="PodBlockConfigKeyIntName" attribute="Decimal"/> 1387 <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/> 1388 </context> 1389 1390 <context name="PodBlockConfigKeyName" attribute="Pod Key" lineEndContext="#pop!PodTypenameValue" fallthroughContext="PodBlockConfigError"> 1391 <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/> 1392 </context> 1393 1394 <context name="PodBlockConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop!PodBlockConfigError" fallthroughContext="#pop!PodBlockConfigError"> 1395 <DetectIdentifier context="#pop#pop" attribute="Pod Key"/> 1396 </context> 1397 1398 <context name="PodBlockConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop" fallthroughContext="#pop"> 1399 <DetectChar char="<" context="PodParamSequence" attribute="Pod Operator"/> 1400 <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/> 1401 <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/> 1402 </context> 1403 1404 1405 <!-- Pod =for --> 1406 1407 <context name="PodFor" attribute="Pod Typename" lineEndContext="#pop#pop!Error" fallthroughContext="#pop#pop!Error"> 1408 <DetectSpaces attribute="Normal Text"/> 1409 <keyword String="podtypename" context="#pop!PodConfig" attribute="Pod Typename"/> 1410 </context> 1411 1412 <!-- Pod configuration for =for --> 1413 1414 <context name="PodConfigError" attribute="Error" lineEndContext="#pop#pop!PodTypenameValue"/> 1415 1416 <context name="PodConfig" attribute="Normal Text" lineEndContext="#pop!PodTypenameValue" fallthroughContext="PodConfigError"> 1417 <DetectSpaces/> 1418 <DetectChar char=":" context="PodConfigKey" attribute="Pod Operator"/> 1419 </context> 1420 1421 <context name="PodConfigKey" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthroughContext="#pop!PodConfigError"> 1422 <DetectChar char="!" context="#pop!PodConfigKeyName" attribute="Pod Operator"/> 1423 <Int context="PodConfigKeyIntName" attribute="Decimal"/> 1424 <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/> 1425 </context> 1426 1427 <context name="PodConfigKeyName" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthroughContext="#pop!PodConfigError"> 1428 <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/> 1429 </context> 1430 1431 <context name="PodConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop#pop!PodConfigError" fallthroughContext="#pop#pop!PodConfigError"> 1432 <DetectIdentifier context="#pop#pop" attribute="Pod Key"/> 1433 </context> 1434 1435 <context name="PodConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop"> 1436 <DetectChar char="<" context="PodParamSequence" attribute="Pod Operator"/> 1437 <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/> 1438 <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/> 1439 </context> 1440 1441 <context name="find_PodNumber" attribute="Pod Config" lineEndContext="#stay"> 1442 <RegExpr String="\.?\p{N}" context="PodNumber" lookAhead="1" minimal="1"/> 1443 </context> 1444 1445 <context name="PodParamSequence" attribute="Pod Config" lineEndContext="#stay"> 1446 <DetectSpaces/> 1447 <keyword String="pod values" context="#stay" attribute="Data Type"/> 1448 <DetectIdentifier/> 1449 <IncludeRules context="find_PodNumber"/> 1450 <DetectChar char=">" context="#pop#pop#pop" attribute="Pod Operator"/> 1451 <DetectChar char="'" context="PodSQString" attribute="String"/> 1452 <DetectChar char=""" context="PodQString" attribute="String"/> 1453 </context> 1454 1455 <context name="PodParamHash" attribute="Pod Config" lineEndContext="#stay"> 1456 <DetectSpaces/> 1457 <Detect2Chars char="=" char1=">" context="#stay" attribute="Pod Operator"/> 1458 <DetectChar char="," context="#stay" attribute="Pod Operator"/> 1459 <keyword String="pod values" context="#stay" attribute="Data Type"/> 1460 <DetectIdentifier/> 1461 <DetectChar char="'" context="PodSQString" attribute="String"/> 1462 <DetectChar char=""" context="PodQString" attribute="String"/> 1463 <IncludeRules context="find_PodNumber"/> 1464 <DetectChar char="}" context="#pop#pop#pop" attribute="Pod Operator"/> 1465 </context> 1466 1467 <context name="PodParamList" attribute="Pod Config" lineEndContext="#stay"> 1468 <DetectSpaces/> 1469 <DetectChar char="," context="#stay" attribute="Pod Operator"/> 1470 <keyword String="pod values" context="#stay" attribute="Data Type"/> 1471 <DetectIdentifier/> 1472 <DetectChar char="'" context="PodSQString" attribute="String"/> 1473 <DetectChar char=""" context="PodQString" attribute="String"/> 1474 <IncludeRules context="find_PodNumber"/> 1475 <AnyChar String="])" context="#pop#pop#pop" attribute="Pod Operator"/> 1476 </context> 1477 1478 1479 <!-- Pod Number (same as Number with different context pop) --> 1480 1481 <context name="PodNumber" attribute="Decimal" lineEndContext="#stay" fallthroughContext="#pop"> 1482 <RegExpr String="&int10;(?:\.&int10;&exp;?|&exp;)|\.&int10;&exp;?" context="PodNumberSuffix" attribute="Float"/> 1483 <Detect2Chars char="0" char1="x" context="HexPodNumber" attribute="Hex"/> 1484 <Detect2Chars char="0" char1="o" context="OctalPodNumber" attribute="Octal"/> 1485 <RegExpr String="\p{N}++(?:_\p{N}++)*+" context="PodNumberSuffix" attribute="Decimal"/> 1486 </context> 1487 1488 <context name="HexPodNumber" attribute="Hex" lineEndContext="#pop#pop" fallthroughContext="PodNumberCheckError"> 1489 <RegExpr String="[a-fA-F0-9]++(?:_[a-fA-F0-9]++)*+" context="#pop!PodNumberSuffix" attribute="Hex"/> 1490 </context> 1491 1492 <context name="OctalPodNumber" attribute="Octal" lineEndContext="#pop#pop" fallthroughContext="PodNumberCheckError"> 1493 <RegExpr String="[0-7]++(?:_[0-7]++)*+" context="#pop!PodNumberSuffix" attribute="Octal"/> 1494 </context> 1495 1496 <context name="PodNumberSuffix" attribute="Decimal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 1497 <DetectChar char="i" context="#pop!PodNumberCheckError" attribute="Number Suffix"/> 1498 <IncludeRules context="PodNumberCheckError"/> 1499 </context> 1500 <context name="PodNumberCheckError" attribute="Decimal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 1501 <RegExpr String="&alnum;+" context="#pop#pop" attribute="Error"/> 1502 </context> 1503 1504 1505 <!-- Pod String --> 1506 1507 <context name="PodSQString" attribute="String" lineEndContext="#stay"> 1508 <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/> 1509 <DetectChar char="'" context="#pop" attribute="String Delimiter"/> 1510 <RegExpr String="(?:[^\\']*|\\[^']|\\$)*" context="#stay" attribute="String"/> 1511 </context> 1512 1513 <context name="PodQString" attribute="String" lineEndContext="#stay"> 1514 <DetectChar char=""" context="#pop" attribute="String Delimiter"/> 1515 <DetectChar char="\" context="SpecialChar" attribute="String Special Character"/> 1516 <RegExpr String="(?:[^"\\]*|\\$)*" context="#stay" attribute="String"/> 1517 </context> 1518 1519 <context name="SpecialCharPre" attribute="String Special Character" lineEndContext="#pop"> 1520 <RegExpr String="[abefnrtv]|x(&unicode_hex_point;(?![0-9a-fA-F])|\[\s*&unicode_hex_point;\s*\])|c(&unicode_dec_point;(?![0-9])|\[[a-zA-Z\s]+\])|o(&unicode_oct_point;(?![0-7])|\[\s*&unicode_oct_point;\s*\])" context="#pop" attribute="String Special Character"/> 1521 </context> 1522 <context name="SpecialChar" attribute="String Special Character" lineEndContext="#pop" fallthroughContext="#pop"> 1523 <IncludeRules context="SpecialCharPre"/> 1524 <RegExpr String="[^xco]" context="#pop" attribute="String"/> 1525 <IncludeRules context="SpecialCharPost"/> 1526 </context> 1527 <context name="SpecialCharPost" attribute="String Special Character" lineEndContext="#pop"> 1528 <StringDetect String="x[" context="SpecialCharX" attribute="String Special Character"/> 1529 <StringDetect String="c[" context="SpecialCharC" attribute="String Special Character"/> 1530 <StringDetect String="o[" context="SpecialCharO" attribute="String Special Character"/> 1531 1532 <RegExpr String="x&unicode_hex_point;|c&unicode_dec_point;|o&unicode_oct_point;" context="SpecialCharError" attribute="String Special Character"/> 1533 1534 <AnyChar String="xco" context="#pop" attribute="Error"/> 1535 </context> 1536 1537 <context name="SpecialCharError" attribute="String Special Character" fallthroughContext="#pop#pop"> 1538 <AnyChar String="0123456789abcdefABCDEF" context="#pop#pop" attribute="Error"/> 1539 </context> 1540 1541 <context name="SpecialCharPreCommon" attribute="String Special Character"> 1542 <DetectChar char="]" context="#pop#pop" attribute="String Special Character"/> 1543 <DetectChar char="," attribute="Separator Symbol"/> 1544 <DetectChar char=""" context="#pop#pop#pop" attribute="Error"/> 1545 </context> 1546 1547 <context name="SpecialCharX" attribute="String Special Character"> 1548 <IncludeRules context="SpecialCharPreCommon"/> 1549 <IncludeRules context="X[]"/> 1550 <RegExpr String="[^0-9a-fA-F\],\s"]+|[0-9a-fA-F]+|." attribute="Error"/> 1551 </context> 1552 1553 <context name="SpecialCharO" attribute="String Special Character"> 1554 <IncludeRules context="SpecialCharPreCommon"/> 1555 <IncludeRules context="O[]"/> 1556 <RegExpr String="[^0-7\],\s"]+|[0-7]+|." attribute="Error"/> 1557 </context> 1558 1559 <context name="SpecialCharC" attribute="String Special Character"> 1560 <IncludeRules context="SpecialCharPreCommon"/> 1561 <IncludeRules context="C[]"/> 1562 <RegExpr String="[^0-9a-zA-Z\],\s"]+|[0-9a-zA-Z]+|." attribute="Error"/> 1563 </context> 1564 1565 1566 <!-- Q String --> 1567 1568 <context name="Q_String" attribute="String" lineEndContext="#stay" fallthroughContext="#pop"> 1569 <DetectSpaces attribute="String"/> 1570 <DetectChar char=":" context="#pop!Q_StringModifier" attribute="Operator"/> 1571 <DetectChar char="(" context="#pop!Q_String(" attribute="String Delimiter"/> 1572 <DetectChar char="[" context="#pop!Q_String[" attribute="String Delimiter"/> 1573 <DetectChar char="{" context="#pop!Q_String{" attribute="String Delimiter"/> 1574 <DetectChar char="「" context="#pop!Q_String「" attribute="String Delimiter"/> 1575 <DetectChar char="<" context="#pop!Q_String<" attribute="String Delimiter"/> 1576 <RegExpr String="([^()>」\]}'&rangealnum;])" context="#pop!Q_StringAny" attribute="String Delimiter"/> 1577 </context> 1578 1579 <context name="Q_String(" attribute="String" lineEndContext="#stay"> 1580 <DetectChar char=")" context="#pop" attribute="String Delimiter"/> 1581 <DetectChar char="(" context="Q_String(" attribute="String Delimiter"/> 1582 <RegExpr String="[^()]*" context="#stay" attribute="String"/> 1583 </context> 1584 1585 <context name="Q_String[" attribute="String" lineEndContext="#stay"> 1586 <DetectChar char="]" context="#pop" attribute="String Delimiter"/> 1587 <DetectChar char="[" context="Q_String[" attribute="String Delimiter"/> 1588 <RegExpr String="[^\[\]]*" context="#stay" attribute="String"/> 1589 </context> 1590 1591 <context name="Q_String{" attribute="String" lineEndContext="#stay"> 1592 <DetectChar char="}" context="#pop" attribute="String Delimiter"/> 1593 <DetectChar char="{" context="Q_String{" attribute="String Delimiter"/> 1594 <RegExpr String="[^{}]*" context="#stay" attribute="String"/> 1595 </context> 1596 1597 <context name="Q_String「" attribute="String" lineEndContext="#stay"> 1598 <DetectChar char="」" context="#pop" attribute="String Delimiter"/> 1599 <IncludeRules context="Q_String「_common"/> 1600 </context> 1601 <context name="Q_String「_term" attribute="String" lineEndContext="#stay"> 1602 <DetectChar char="」" context="#pop!postfix_op" attribute="String Delimiter"/> 1603 <IncludeRules context="Q_String「_common"/> 1604 </context> 1605 <context name="Q_String「_common" attribute="String" lineEndContext="#stay"> 1606 <DetectChar char="「" context="Q_String「" attribute="String Delimiter"/> 1607 <RegExpr String="[^「」]*" context="#stay" attribute="String"/> 1608 </context> 1609 1610 <context name="Q_String<" attribute="String" lineEndContext="#stay"> 1611 <DetectChar char=">" context="#pop" attribute="String Delimiter"/> 1612 <DetectChar char="<" context="Q_String<" attribute="String Delimiter"/> 1613 <RegExpr String="[^<>]*" context="#stay" attribute="String"/> 1614 </context> 1615 1616 <context name="Q_StringAny" attribute="String" lineEndContext="#stay"> 1617 <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/> 1618 <RegExpr String="[^%1]*" dynamic="1" context="#stay" attribute="String"/> 1619 </context> 1620 1621 <context name="q_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthroughContext="#pop#pop!q_String"> 1622 <DetectChar char=":" context="#pop#pop!q_QuotingForm2" attribute="Operator"/> 1623 </context> 1624 1625 <context name="qq_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthroughContext="#pop#pop!qq_String"> 1626 <DetectChar char=":" context="#pop!qq_QuotingForm" attribute="Operator"/> 1627 </context> 1628 1629 <context name="Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthroughContext="#pop!q_QuotingForm2"> 1630 <DetectChar char="q" context="#pop!q_QuotingForm" attribute="Operator"/> 1631 <DetectChar char="'" context="q_Q_StringModifier" attribute="Operator"/> 1632 <DetectChar char=""" context="qq_Q_StringModifier" attribute="Operator"/> 1633 </context> 1634 1635 <context name="q_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthroughContext="#pop!q_QuotingForm2"> 1636 <DetectChar char="q" context="#pop!qq_QuotingForm" attribute="Operator"/> 1637 <DetectChar char=":" context="#pop!q_QuotingForm2" attribute="Operator"/> 1638 </context> 1639 <context name="q_QuotingForm2" attribute="Operator" lineEndContext="#pop" fallthroughContext="q_String"> 1640 <WordDetect String="heredoc" context="q_Heredoc" attribute="Operator"/> 1641 <keyword String="quoting" context="#stay" attribute="Operator"/> 1642 <AnyChar String="wvx:sahfb" context="#stay" attribute="Operator"/> 1643 <!-- :closure as qq --> 1644 <DetectChar char="c" context="#pop!qq_QuotingForm" attribute="Operator"/> 1645 <Detect2Chars char="t" char1="o" context="q_Heredoc" attribute="Operator"/> 1646 </context> 1647 1648 <context name="qq_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthroughContext="qq_String"> 1649 <WordDetect String="heredoc" context="qq_Heredoc" attribute="Operator"/> 1650 <keyword String="quoting" context="#stay" attribute="Operator"/> 1651 <AnyChar String="wvx:sahfcb" context="#stay" attribute="Operator"/> 1652 <Detect2Chars char="t" char1="o" context="qq_Heredoc" attribute="Operator"/> 1653 </context> 1654 1655 1656 <!-- q and qq Heredoc --> 1657 1658 <context name="q_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 1659 <RegExpr String="/([^/]+)/" context="q_HeredocTerminator" attribute="String Delimiter"/> 1660 </context> 1661 <context name="q_HeredocTerminator" attribute="String" lineEndContext="#stay"> 1662 <DetectSpaces/> 1663 <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/> 1664 <RegExpr String="(?:[^\\]*|\\(?![\\%1]|"ingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/> 1665 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1666 </context> 1667 1668 <context name="qq_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 1669 <RegExpr String="/([^/]+)/" context="qq_HeredocTerminator" attribute="String Delimiter"/> 1670 </context> 1671 <context name="qq_HeredocTerminator" attribute="String" lineEndContext="#stay"> 1672 <DetectSpaces/> 1673 <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/> 1674 <IncludeRules context="find_qq_StringCommon"/> 1675 <RegExpr String="[^\\${@&]*" context="#stay" attribute="String"/> 1676 </context> 1677 1678 1679 <!-- q String --> 1680 1681 <context name="q_String" attribute="String" lineEndContext="#stay" fallthroughContext="#pop#pop"> 1682 <DetectSpaces/> 1683 <DetectChar char="(" context="#pop#pop!q_String(" attribute="String Delimiter"/> 1684 <DetectChar char="[" context="#pop#pop!q_String[" attribute="String Delimiter"/> 1685 <DetectChar char="{" context="#pop#pop!q_String{" attribute="String Delimiter"/> 1686 <DetectChar char="<" context="#pop#pop!q_String<" attribute="String Delimiter"/> 1687 <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!q_StringAny" attribute="String Delimiter"/> 1688 </context> 1689 1690 <context name="q_String(" attribute="String" lineEndContext="#stay"> 1691 <DetectChar char=")" context="#pop" attribute="String Delimiter"/> 1692 <DetectChar char="(" context="q_String(" attribute="String Delimiter"/> 1693 <Detect2Chars char="\" char1="(" context="#stay" attribute="String Special Character"/> 1694 <Detect2Chars char="\" char1=")" context="#stay" attribute="String Special Character"/> 1695 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1696 <RegExpr String="(?:[^()\\]*|\\(?![()\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1697 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1698 </context> 1699 1700 <context name="q_String[" attribute="String" lineEndContext="#stay"> 1701 <DetectChar char="]" context="#pop" attribute="String Delimiter"/> 1702 <DetectChar char="[" context="q_String[" attribute="String Delimiter"/> 1703 <Detect2Chars char="\" char1="[" context="#stay" attribute="String Special Character"/> 1704 <Detect2Chars char="\" char1="]" context="#stay" attribute="String Special Character"/> 1705 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1706 <RegExpr String="(?:[^\[\]\\]*|\\(?![\[\]\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1707 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1708 </context> 1709 1710 <context name="q_String{" attribute="String" lineEndContext="#stay"> 1711 <DetectChar char="}" context="#pop" attribute="String Delimiter"/> 1712 <DetectChar char="{" context="q_String{" attribute="String Delimiter"/> 1713 <Detect2Chars char="\" char1="{" context="#stay" attribute="String Special Character"/> 1714 <Detect2Chars char="\" char1="}" context="#stay" attribute="String Special Character"/> 1715 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1716 <RegExpr String="(?:[^{}\\]*|\\(?![{}\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1717 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1718 </context> 1719 1720 <context name="q_String<" attribute="String" lineEndContext="#stay"> 1721 <DetectChar char=">" context="#pop" attribute="String Delimiter"/> 1722 <IncludeRules context="q_String<_common"/> 1723 </context> 1724 <context name="q_String<_term" attribute="String" lineEndContext="#stay"> 1725 <DetectChar char=">" context="#pop!postfix_op" attribute="String Delimiter"/> 1726 <IncludeRules context="q_String<_common"/> 1727 </context> 1728 <context name="q_String<_common" attribute="String" lineEndContext="#stay"> 1729 <DetectChar char="<" context="q_String<" attribute="String Delimiter"/> 1730 <Detect2Chars char="\" char1="<" context="#stay" attribute="String Special Character"/> 1731 <Detect2Chars char="\" char1=">" context="#stay" attribute="String Special Character"/> 1732 <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/> 1733 <RegExpr String="(?:[^<>\\]*|\\(?![<>\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1734 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1735 </context> 1736 1737 <context name="q_StringAny" attribute="String" lineEndContext="#stay"> 1738 <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/> 1739 <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/> 1740 <RegExpr String="(?:[^\\%1]*|\\(?![\\%1]|"ingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/> 1741 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1742 </context> 1743 1744 <context name="q_RawString" attribute="String" lineEndContext="#stay"> 1745 <DetectChar char="'" context="#pop" attribute="String Delimiter"/> 1746 <IncludeRules context="q_RawString_common"/> 1747 </context> 1748 <context name="q_RawString_term" attribute="String" lineEndContext="#stay"> 1749 <DetectChar char="'" context="#pop!postfix_op" attribute="String Delimiter"/> 1750 <IncludeRules context="q_RawString_common"/> 1751 </context> 1752 <context name="q_RawString_common" attribute="String" lineEndContext="#stay"> 1753 <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/> 1754 <RegExpr String="(?:[^\\']*|\\(?![\\']|"ingconstruct;|$))*" context="#stay" attribute="String"/> 1755 <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/> 1756 </context> 1757 1758 <!-- qq String --> 1759 1760 <context name="qq_String" attribute="String" lineEndContext="#stay" fallthroughContext="#pop#pop"> 1761 <DetectSpaces/> 1762 <DetectChar char="(" context="#pop#pop!qq_String(" attribute="String Delimiter"/> 1763 <DetectChar char="[" context="#pop#pop!qq_String[" attribute="String Delimiter"/> 1764 <DetectChar char="{" context="#pop#pop!qq_String{" attribute="String Delimiter"/> 1765 <DetectChar char="<" context="#pop#pop!qq_String<" attribute="String Delimiter"/> 1766 <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!qq_StringAny" attribute="String Delimiter"/> 1767 </context> 1768 1769 <context name="qq_String(" attribute="String" lineEndContext="#stay"> 1770 <DetectChar char=")" context="#pop" attribute="String Delimiter"/> 1771 <DetectChar char="(" context="qq_String(" attribute="String Delimiter"/> 1772 <IncludeRules context="find_qq_StringCommon"/> 1773 <RegExpr String="[^()\\${@&]*" context="#stay" attribute="String"/> 1774 </context> 1775 1776 <context name="qq_String[" attribute="String" lineEndContext="#stay"> 1777 <DetectChar char="]" context="#pop" attribute="String Delimiter"/> 1778 <DetectChar char="[" context="qq_String[" attribute="String Delimiter"/> 1779 <IncludeRules context="find_qq_StringCommon"/> 1780 <RegExpr String="[^\[\]\\${@&]*" context="#stay" attribute="String"/> 1781 </context> 1782 1783 <context name="qq_String{" attribute="String" lineEndContext="#stay"> 1784 <DetectChar char="}" context="#pop" attribute="String Delimiter"/> 1785 <DetectChar char="{" context="qq_String{" attribute="String Delimiter"/> 1786 <IncludeRules context="find_qq_StringCommon"/> 1787 <RegExpr String="[^{}\\$@&]*" context="#stay" attribute="String"/> 1788 </context> 1789 1790 <context name="qq_String<" attribute="String" lineEndContext="#stay"> 1791 <DetectChar char=">" context="#pop" attribute="String Delimiter"/> 1792 <DetectChar char="<" context="qq_String<" attribute="String Delimiter"/> 1793 <IncludeRules context="find_qq_StringCommon"/> 1794 <RegExpr String="[^<>\\${@&]*" context="#stay" attribute="String"/> 1795 </context> 1796 1797 <context name="qq_String«" attribute="String" lineEndContext="#stay"> 1798 <DetectChar char="»" context="#pop" attribute="String Delimiter"/> 1799 <IncludeRules context="qq_String«_common"/> 1800 </context> 1801 <context name="qq_String«_term" attribute="String" lineEndContext="#stay"> 1802 <DetectChar char="»" context="#pop!postfix_op" attribute="String Delimiter"/> 1803 <IncludeRules context="qq_String«_common"/> 1804 </context> 1805 <context name="qq_String«_common" attribute="String" lineEndContext="#stay"> 1806 <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/> 1807 <IncludeRules context="find_qq_StringCommon"/> 1808 <RegExpr String="[^«»\\${@&]*" context="#stay" attribute="String"/> 1809 </context> 1810 1811 <context name="qq_String<<" attribute="String" lineEndContext="#stay"> 1812 <Detect2Chars char=">" char1=">" context="#pop" attribute="String Delimiter"/> 1813 <IncludeRules context="qq_String<<_common"/> 1814 </context> 1815 <context name="qq_String<<_term" attribute="String" lineEndContext="#stay"> 1816 <Detect2Chars char=">" char1=">" context="#pop!postfix_op" attribute="String Delimiter"/> 1817 <IncludeRules context="qq_String<<_common"/> 1818 </context> 1819 <context name="qq_String<<_common" attribute="String" lineEndContext="#stay"> 1820 <Detect2Chars char="<" char1="<" context="qq_String<<" attribute="String Delimiter"/> 1821 <IncludeRules context="find_qq_StringCommon"/> 1822 <RegExpr String="([^<>\\${@&]*|<(?!<)|>(?!>))" context="#stay" attribute="String"/> 1823 </context> 1824 1825 <context name="qq_StringAny" attribute="String" lineEndContext="#stay"> 1826 <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/> 1827 <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/> 1828 <IncludeRules context="find_qq_StringCommon"/> 1829 <RegExpr String="[^%1\\${@&]*" dynamic="1" context="#stay" attribute="String"/> 1830 </context> 1831 1832 <context name="qq_RawString" attribute="String" lineEndContext="#stay"> 1833 <DetectChar char=""" context="#pop" attribute="String Delimiter"/> 1834 <IncludeRules context="qq_RawString_common"/> 1835 </context> 1836 <context name="qq_RawString_term" attribute="String" lineEndContext="#stay"> 1837 <DetectChar char=""" context="#pop!postfix_op" attribute="String Delimiter"/> 1838 <IncludeRules context="qq_RawString_common"/> 1839 </context> 1840 <context name="qq_RawString_common" attribute="String" lineEndContext="#stay"> 1841 <IncludeRules context="find_qq_StringCommon"/> 1842 <RegExpr String="[^\\"${@&]*" context="#stay" attribute="String"/> 1843 </context> 1844 1845 <context name="find_qq_StringCommon" attribute="String" lineEndContext="#stay"> 1846 <DetectChar char="\" context="qq_StringEscape" attribute="Operator" lookAhead="1"/> 1847 <DetectChar char="{" context="qq_Interpolation" attribute="String (interpolated)"/> 1848 <DetectChar char="$" context="qq_StringMaybeVar$" attribute="String" lookAhead="1"/> 1849 <AnyChar String="@%" context="qq_StringMaybeVar" attribute="String" lookAhead="1"/> 1850 <DetectChar char="&" context="qq_StringSigil" attribute="String" lookAhead="1"/> 1851 </context> 1852 1853 <context name="qq_StringEscape" attribute="String Special Character" lineEndContext="#pop"> 1854 <Detect2Chars char="\" char1="q" context="#pop!q_QuotingForm" attribute="Operator"/> 1855 <DetectChar char="\" context="#pop!qq_StringSpecialChar" attribute="String Special Character"/> 1856 </context> 1857 <context name="qq_StringSpecialChar" attribute="String Special Character" lineEndContext="#pop"> 1858 <IncludeRules context="SpecialCharPre"/> 1859 <RegExpr String="[^xco]" context="#pop" attribute="String Special Character"/> 1860 <IncludeRules context="SpecialCharPost"/> 1861 </context> 1862 1863 <context name="qq_Interpolation" attribute="String (interpolated)" lineEndContext="#stay" fallthroughContext="term"> 1864 <DetectChar char="}" context="#pop" attribute="String (interpolated)"/> 1865 <IncludeRules context="base"/> 1866 </context> 1867 1868 <context name="qq_StringSigil" attribute="Function" lineEndContext="#stay"> 1869 <RegExpr String="&&ident;\(" context="#pop!FunctionParameters" attribute="Function"/> 1870 <DetectChar char="&" context="#pop" attribute="String"/> 1871 </context> 1872 1873 <context name="qq_StringMaybeVar$" attribute="String" lineEndContext="#stay"> 1874 <RegExpr String="\$(?=[&twigils;]?&prefixdollarvarname;)" context="qq_InterpolationVar" attribute="Variable"/> 1875 <DetectChar char="$" context="#pop" attribute="String"/> 1876 </context> 1877 1878 <context name="qq_StringMaybeVar" attribute="String" lineEndContext="#stay"> 1879 <RegExpr String="@\(\)|[%@]\$/|[@%]&ident;" context="qq_Interpolation1" attribute="Variable"/> 1880 <AnyChar String="@%" context="#pop" attribute="String"/> 1881 </context> 1882 1883 <context name="qq_InterpolationVar" attribute="String" lineEndContext="#stay"> 1884 <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/> 1885 <RegExpr String="&dollarvarname;" context="#pop!qq_Interpolation1" attribute="Variable"/> 1886 </context> 1887 1888 <context name="qq_Interpolation1" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 1889 <DetectChar char="[" context="qq_InterpolationIndex" attribute="Function"/> 1890 <DetectChar char="." context="qq_InterpolationFunction" attribute="Function" lookAhead="1"/> 1891 </context> 1892 1893 <context name="qq_InterpolationIndex" attribute="String" lineEndContext="#stay" fallthroughContext="term"> 1894 <DetectChar char="]" context="#pop#pop#pop" attribute="Function"/> 1895 <IncludeRules context="base"/> 1896 </context> 1897 1898 <context name="qq_InterpolationFunction" attribute="String" lineEndContext="#stay"> 1899 <RegExpr String="(?:\.&ident;)*\.&ident;\(" context="#pop#pop#pop!FunctionParameters" attribute="Function"/> 1900 <DetectChar char="." context="#pop#pop#pop" attribute="String"/> 1901 </context> 1902 1903 <context name="FunctionParameters" attribute="String" lineEndContext="#stay" fallthroughContext="term"> 1904 <DetectChar char=")" context="#pop" attribute="Function"/> 1905 <DetectChar char="(" context="FunctionParameters" attribute="Function"/> 1906 <IncludeRules context="base"/> 1907 </context> 1908 1909 1910 <!-- Comment --> 1911 1912 <context name="StartComment" attribute="Comment" lineEndContext="#pop" fallthroughContext="SingleLineComment"> 1913 <DetectChar attribute="Comment" context="MultilineComment" char="`"/> 1914 <AnyChar attribute="Pod Operator" context="MultilineComment" String="=|"/> 1915 </context> 1916 1917 <context name="MultilineComment" attribute="Comment" lineEndContext="#pop#pop" fallthroughContext="#pop!SingleLineComment"> 1918 <!-- TODO a new rule is needed to find the corresponding closures --> 1919 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment(((" String="(((" beginRegion="comment"/> 1920 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment[[[" String="[[[" beginRegion="comment"/> 1921 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment{{{" String="{{{" beginRegion="comment"/> 1922 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment«««" String="«««" beginRegion="comment"/> 1923 <StringDetect attribute="Comment" context="#pop#pop!MultilineComment<<<" String="<<<" beginRegion="comment"/> 1924 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment((" char="(" char1="(" beginRegion="comment"/> 1925 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment[[" char="[" char1="[" beginRegion="comment"/> 1926 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment{{" char="{" char1="{" beginRegion="comment"/> 1927 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment««" char="«" char1="«" beginRegion="comment"/> 1928 <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment<<" char="<" char1="<" beginRegion="comment"/> 1929 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment(" char="(" beginRegion="comment"/> 1930 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment[" char="[" beginRegion="comment"/> 1931 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment{" char="{" beginRegion="comment"/> 1932 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment«" char="«" beginRegion="comment"/> 1933 <DetectChar attribute="Comment" context="#pop#pop!MultilineComment<" char="<" beginRegion="comment"/> 1934 <!-- etc --> 1935 </context> 1936 1937 <context name="MultilineComment(((" attribute="Comment" lineEndContext="#stay"> 1938 <IncludeRules context="SingleLineComment"/> 1939 <StringDetect String=")))" attribute="Comment" context="#pop" endRegion="comment"/> 1940 <StringDetect String="(((" attribute="Comment" context="MultilineComment(((" beginRegion="comment"/> 1941 </context> 1942 <context name="MultilineComment[[[" attribute="Comment" lineEndContext="#stay"> 1943 <IncludeRules context="SingleLineComment"/> 1944 <StringDetect String="]]]" attribute="Comment" context="#pop" endRegion="comment"/> 1945 <StringDetect String="[[[" attribute="Comment" context="MultilineComment[[[" beginRegion="comment"/> 1946 </context> 1947 <context name="MultilineComment{{{" attribute="Comment" lineEndContext="#stay"> 1948 <StringDetect String="}}}" attribute="Comment" context="#pop" endRegion="comment"/> 1949 <StringDetect String="{{{" attribute="Comment" context="MultilineComment{{{" beginRegion="comment"/> 1950 <IncludeRules context="SingleLineComment"/> 1951 </context> 1952 <context name="MultilineComment«««" attribute="Comment" lineEndContext="#stay"> 1953 <IncludeRules context="SingleLineComment"/> 1954 <StringDetect String="»»»" attribute="Comment" context="#pop" endRegion="comment"/> 1955 <StringDetect String="«««" attribute="Comment" context="MultilineComment«««" beginRegion="comment"/> 1956 </context> 1957 <context name="MultilineComment<<<" attribute="Comment" lineEndContext="#stay"> 1958 <IncludeRules context="SingleLineComment"/> 1959 <StringDetect String=">>>" attribute="Comment" context="#pop" endRegion="comment"/> 1960 <StringDetect String="<<<" attribute="Comment" context="MultilineComment<<<" beginRegion="comment"/> 1961 </context> 1962 1963 <context name="MultilineComment((" attribute="Comment" lineEndContext="#stay"> 1964 <IncludeRules context="SingleLineComment"/> 1965 <Detect2Chars char=")" char1=")" attribute="Comment" context="#pop" endRegion="comment"/> 1966 <Detect2Chars char="(" char1="(" attribute="Comment" context="MultilineComment((" beginRegion="comment"/> 1967 </context> 1968 <context name="MultilineComment[[" attribute="Comment" lineEndContext="#stay"> 1969 <IncludeRules context="SingleLineComment"/> 1970 <Detect2Chars char="]" char1="]" attribute="Comment" context="#pop" endRegion="comment"/> 1971 <Detect2Chars char="[" char1="[" attribute="Comment" context="MultilineComment[[" beginRegion="comment"/> 1972 </context> 1973 <context name="MultilineComment{{" attribute="Comment" lineEndContext="#stay"> 1974 <IncludeRules context="SingleLineComment"/> 1975 <Detect2Chars char="}" char1="}" attribute="Comment" context="#pop" endRegion="comment"/> 1976 <Detect2Chars char="{" char1="{" attribute="Comment" context="MultilineComment{{" beginRegion="comment"/> 1977 </context> 1978 <context name="MultilineComment««" attribute="Comment" lineEndContext="#stay"> 1979 <IncludeRules context="SingleLineComment"/> 1980 <Detect2Chars char="»" char1="»" attribute="Comment" context="#pop" endRegion="comment"/> 1981 <Detect2Chars char="«" char1="«" attribute="Comment" context="MultilineComment««" beginRegion="comment"/> 1982 </context> 1983 <context name="MultilineComment<<" attribute="Comment" lineEndContext="#stay"> 1984 <IncludeRules context="SingleLineComment"/> 1985 <Detect2Chars char=">" char1=">" attribute="Comment" context="#pop" endRegion="comment"/> 1986 <Detect2Chars char="<" char1="<" attribute="Comment" context="MultilineComment<<" beginRegion="comment"/> 1987 </context> 1988 1989 <context name="MultilineComment(" attribute="Comment" lineEndContext="#stay"> 1990 <IncludeRules context="SingleLineComment"/> 1991 <DetectChar char=")" attribute="Comment" context="#pop" endRegion="comment"/> 1992 <DetectChar char="(" attribute="Comment" context="MultilineComment(" beginRegion="comment"/> 1993 </context> 1994 <context name="MultilineComment[" attribute="Comment" lineEndContext="#stay"> 1995 <IncludeRules context="SingleLineComment"/> 1996 <DetectChar char="]" attribute="Comment" context="#pop" endRegion="comment"/> 1997 <DetectChar char="[" attribute="Comment" context="MultilineComment[" beginRegion="comment"/> 1998 </context> 1999 <context name="MultilineComment{" attribute="Comment" lineEndContext="#stay"> 2000 <IncludeRules context="SingleLineComment"/> 2001 <DetectChar char="}" attribute="Comment" context="#pop" endRegion="comment"/> 2002 <DetectChar char="{" attribute="Comment" context="MultilineComment{" beginRegion="comment"/> 2003 </context> 2004 <context name="MultilineComment«" attribute="Comment" lineEndContext="#stay"> 2005 <IncludeRules context="SingleLineComment"/> 2006 <DetectChar char="»" attribute="Comment" context="#pop" endRegion="comment"/> 2007 <DetectChar char="«" attribute="Comment" context="MultilineComment«" beginRegion="comment"/> 2008 </context> 2009 <context name="MultilineComment<" attribute="Comment" lineEndContext="#stay"> 2010 <IncludeRules context="SingleLineComment"/> 2011 <DetectChar char=">" attribute="Comment" context="#pop" endRegion="comment"/> 2012 <DetectChar char="<" attribute="Comment" context="MultilineComment<" beginRegion="comment"/> 2013 </context> 2014 2015 <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop#pop"> 2016 <DetectSpaces/> 2017 <IncludeRules context="##Comments"/> 2018 <DetectIdentifier/> 2019 </context> 2020 2021 2022 <!-- Error --> 2023 2024 <context name="Error" attribute="Error" lineEndContext="#pop"/> 2025 2026 </contexts> 2027 2028 <itemDatas> 2029 <itemData name="Normal Text" defStyleNum="dsNormal"/> 2030 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 2031 <itemData name="Keyword Value" defStyleNum="dsKeyword" spellChecking="false"/> 2032 <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/> 2033 <itemData name="Twigil" defStyleNum="dsAttribute" spellChecking="false"/> 2034 <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/> 2035 <itemData name="Variable Storage" defStyleNum="dsKeyword" spellChecking="false" bold="1"/> 2036 <itemData name="Property" defStyleNum="dsBuiltIn" spellChecking="false" italic="1"/> 2037 <itemData name="Declare Routine" defStyleNum="dsBuiltIn" spellChecking="false"/> 2038 <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/> 2039 <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/> 2040 <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/> 2041 <itemData name="Member Operator" defStyleNum="dsOperator" spellChecking="false"/> 2042 <itemData name="Hyper Operator" defStyleNum="dsNormal" spellChecking="false"/> 2043 <itemData name="Separator Symbol" defStyleNum="dsNormal" spellChecking="false"/> 2044 <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/> 2045 <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/> 2046 <itemData name="Number Suffix" defStyleNum="dsAttribute" spellChecking="false"/> 2047 <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/> 2048 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/> 2049 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> 2050 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> 2051 <itemData name="String" defStyleNum="dsString"/> 2052 <itemData name="String Delimiter" defStyleNum="dsChar" spellChecking="false"/> 2053 <itemData name="String (interpolated)" defStyleNum="dsString"/> 2054 <itemData name="String Special Character" defStyleNum="dsChar"/> 2055 <itemData name="Pattern" defStyleNum="dsOthers" spellChecking="false"/> 2056 <itemData name="Pattern Delimiter" defStyleNum="dsVerbatimString" spellChecking="false"/> 2057 <itemData name="Pattern Bracket" defStyleNum="dsExtension" spellChecking="false"/> 2058 <itemData name="Pattern Meta Character" defStyleNum="dsChar" spellChecking="false"/> 2059 <itemData name="Pattern Character Class" defStyleNum="dsBaseN" spellChecking="false"/> 2060 <itemData name="Pattern Unicode Property" defStyleNum="dsBaseN" spellChecking="false"/> 2061 <itemData name="Pattern Character" defStyleNum="dsSpecialString" spellChecking="false"/> 2062 <itemData name="Pattern Modifier" defStyleNum="dsKeyword" spellChecking="false"/> 2063 <itemData name="Pattern Quantifier" defStyleNum="dsControlFlow" spellChecking="false"/> 2064 <itemData name="Pattern Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/> 2065 <itemData name="Pattern Special Character" defStyleNum="dsBuiltIn" spellChecking="false"/> 2066 <itemData name="Pattern Named Capture" defStyleNum="dsAnnotation" spellChecking="false"/> 2067 <itemData name="Comment" defStyleNum="dsComment"/> 2068 <itemData name="Error" defStyleNum="dsError" spellChecking="false"/> 2069 <itemData name="Pod" defStyleNum="dsDocumentation" spellChecking="false"/> 2070 <itemData name="Pod Paragraph" defStyleNum="dsDocumentation"/> 2071 <itemData name="Pod Block" defStyleNum="dsRegionMarker" spellChecking="false"/> 2072 <itemData name="Pod Typename" defStyleNum="dsAnnotation" spellChecking="false"/> 2073 <itemData name="Pod Typename Value" defStyleNum="dsCommentVar" spellChecking="false"/> 2074 <itemData name="Pod Unknown" defStyleNum="dsError" spellChecking="false"/> 2075 <itemData name="Pod Operator" defStyleNum="dsOperator" spellChecking="false"/> 2076 <itemData name="Pod Key" defStyleNum="dsAttribute" spellChecking="false"/> 2077 <itemData name="Pod Config" defStyleNum="dsCommentVar" spellChecking="false"/> 2078 <itemData name="Pod Bold" defStyleNum="dsDocumentation" bold="1"/> 2079 <itemData name="Pod Italic" defStyleNum="dsDocumentation" italic="1"/> 2080 <itemData name="Pod Underline" defStyleNum="dsDocumentation" underline="1"/> 2081 <itemData name="Pod Link" defStyleNum="dsOthers" underline="1"/> 2082 <itemData name="Pod Note" defStyleNum="dsInformation"/> 2083 <itemData name="Pod Comment" defStyleNum="dsComment"/> 2084 <itemData name="Pod Verbatim" defStyleNum="dsInformation" spellChecking="false"/> 2085 <itemData name="Pod Unicode" defStyleNum="dsChar" spellChecking="false"/> 2086 <itemData name="Pod Indexed Terms" defStyleNum="dsOthers" spellChecking="false"/> 2087 </itemDatas> 2088 </highlighting> 2089 <general> 2090 <comments> 2091 <comment name="singleLine" start="#"/> 2092 </comments> 2093 <keywords casesensitive="1" weakDeliminator="-'"/> 2094 </general> 2095 </language> 2096 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->