Created
September 19, 2018 18:14
-
-
Save stevan/33a4ef63dbc7ed075259e57f2c8e3bfb to your computer and use it in GitHub Desktop.
Slightly tweaked Perl and Modern Perl Sublime/TextMate Syntax files that handle syntax for decorators.pm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<!-- | |
This file was generated automatically by yaml2plist.pl from ModernPerl.tmLanguage.yaml.ep. | |
DO NOT edit this file directly. Instead, use yaml2plist.pl to generate it. | |
--> | |
<plist version="1.0"> | |
<dict> | |
<key>comment</key> | |
<string>Blaise Roth <[email protected]></string> | |
<key>fileTypes</key> | |
<array> | |
<string>pl</string> | |
<string>PL</string> | |
<string>pm</string> | |
<string>pod</string> | |
<string>t</string> | |
</array> | |
<key>firstLineMatch</key> | |
<string>^#!.*\bperl\b</string> | |
<key>name</key> | |
<string>ModernPerl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#line_comment</string> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>#pod</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>These would otherwise be highlighted as variables or regex, but they're more likely to be an operator (or two).</string> | |
<key>match</key> | |
<string><![CDATA[(?x) [&%*][!\-~=] | && | \*\* | //]]></string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>support.function.sigil.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.var.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
( & \g<identifier> ) | |
| | |
( | |
\$\# (?:\$\s*)* \g<normal_identifier> | |
| | |
(?: [@$] \s* | [%*] ) | |
(?<identifier> | |
(?:\$\s*)* | |
(?: | |
# digit variable like $2 | |
( | |
\d+ | |
| | |
(?:::)+ \d+ (?!\w|::|'[^\W\d]) | |
) | |
| | |
{ \s* \g<-1> \s* } | |
| | |
(?<normal_identifier> # normal variable like $foo::bar'baz | |
( | |
(?: | |
(?:::|'?[^\W\d]) \w* | |
)++ | |
) | |
| | |
{ \s* \g<-1> \s* } | |
) | |
| | |
# caret variable like $^W or ${^Word} | |
(\^ [^\W\d\p{Lower}]) | |
| | |
{ \s* \g<-1> \w* \s* } | |
| | |
# punctuation variable like $[ | |
([^[^!-~]{\w\s]) | |
| | |
{ \s* \g<-1> \s* } | |
| | |
# just highlight the sigil for something like ${ +arbitrary } | |
(?={) | |
) | |
) | |
| | |
# these characters aren't another operator, so always highlight them as sigils | |
[@$] \s* | |
) | |
]]></string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.string.perl</string> | |
</dict> | |
</dict> | |
<key>comment</key> | |
<string>Turns out this operator needs to be really high up. It always autoquotes word characters. It even autoquotes q=>=, making it almost impossible to have a literal > at position 0 of a q==! There is a way, though! CORE::q=>=. There's always a way!</string> | |
<key>match</key> | |
<string>(-?\b[^\W\d]\w*\??+)\s*+=></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
\b ( (?:CORE::)? qw? ) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
| | |
(') | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>8</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.quoted.single.perl</string> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)}) | |
| | |
([\7\8[&&]]) | |
) | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>meta.string.q.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
\b ( (?:CORE::)? qq ) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
| | |
(") | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>8</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.quoted.double.perl</string> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)}) | |
| | |
([\7\8[&&]]) | |
) | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>meta.string.qq.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
\b ( (?:CORE::)? qx ) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
| | |
(`) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>8</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.interpolated.perl</string> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)}) | |
| | |
([\7\8[&&]]) | |
) | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>meta.string.qx.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=')</string> | |
<key>end</key> | |
<string>(?=')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
\b ( (?:CORE::)? qr ) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.regexp.perl</string> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)}) | |
| | |
([\7[&&]]) | |
) | |
([adilmnopsux]*) (\w*) | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>meta.regexp.qr.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=')</string> | |
<key>end</key> | |
<string>(?=')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string><![CDATA[(?x) | |
\b ( (?:CORE::)? m ) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
| | |
# Guessing whether a / is a division or the start of a regex is pretty tricky! | |
(?=\s*/) # optimisation to fail faster | |
(?: | |
# punctuation to expect before a /regex/ | |
(?<=[^[^!-~]\w\s]) | |
(?: | |
(?<= | |
# binding operators - definitely a regex | |
[=!~]~ | |
| | |
# probably a regex | |
[,;!({\[] | => | && | \|\| | |
) | |
| | |
# assignment - but not a mutator, comparison, or variable | |
(?<= = ) | |
(?<! [*/%%%x+\-.=!<>&|^@$] = ) | |
) | |
| | |
# named operators you'd expect before a /regex/ | |
\b | |
(?: | |
# never gonna be perfect with the limitations of lookbehinds, but this is close | |
(?<= if | or ) | |
(?: (?<=CORE::.{2}) (?<![\w'@$&*%].{8}|::.{8}|->.{8}) | (?<![\w'@$&*%].{2}|::.{2}|->.{2}) ) | |
| | |
(?<= and | die | for | not | say | xor ) | |
(?: (?<=CORE::.{3}) (?<![\w'@$&*%].{9}|::.{9}|->.{9}) | (?<![\w'@$&*%].{3}|::.{3}|->.{3}) ) | |
| | |
(?<= exit | warn | when ) | |
(?: (?<=CORE::.{4}) (?<![\w'@$&*%].{10}|::.{10}|->.{10}) | (?<![\w'@$&*%].{4}|::.{4}|->.{4}) ) | |
| | |
(?<= print | split | until | while ) | |
(?: (?<=CORE::.{5}) (?<![\w'@$&*%].{11}|::.{11}|->.{11}) | (?<![\w'@$&*%].{5}|::.{5}|->.{5}) ) | |
| | |
(?<= return | unless ) | |
(?: (?<=CORE::.{6}) (?<![\w'@$&*%].{12}|::.{12}|->.{12}) | (?<![\w'@$&*%].{6}|::.{6}|->.{6}) ) | |
| | |
(?<= defined | foreach ) | |
(?: (?<=CORE::.{7}) (?<![\w'@$&*%].{13}|::.{13}|->.{13}) | (?<![\w'@$&*%].{7}|::.{7}|->.{7}) ) | |
) | |
) | |
\s*+ (\/) | |
| | |
# otherwise we can try for a single line /regex/ if it's after space | |
(\/) (?<=\s/|^/) | |
(?= | |
(?: | |
# something like / / is pretty common | |
\s+ | |
| | |
# this means no spaces at the start or end unless they're backslashed | |
# so /\ woo regex\ / works | |
(?!\s) | |
(?: [^\\/] | \\. )* | |
(?: [^\\/\s] | \\. ) | |
) | |
\/ | |
) | |
]]></string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>8</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>9</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.regexp.perl</string> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)}) | |
| | |
([\7\8\9[&&]]) | |
) | |
([acdgilmnopsux]*) (\w*) | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>name</key> | |
<string>meta.regexp.m.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=')</string> | |
<key>end</key> | |
<string>(?=')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) \b (?= ( (?:CORE::)? s ) \s* ([^[^!-~]\w\s]) )</string> | |
<key>end</key> | |
<string>(?!\b\1\s*\2)</string> | |
<key>name</key> | |
<string>meta.regexp.s.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \! )</string> | |
<key>end</key> | |
<string>(?x) (\!) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\!)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\!) | |
(?: | |
(?! \g<3> \! ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\!)</string> | |
<key>end</key> | |
<string>(?=\!)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \" )</string> | |
<key>end</key> | |
<string>(?x) (\") ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\")</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\") | |
(?: | |
(?! \g<3> \" ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\")</string> | |
<key>end</key> | |
<string>(?=\")</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \# )</string> | |
<key>end</key> | |
<string>(?x) (\#) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\#)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\#) | |
(?: | |
(?! \g<3> \# ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\#)</string> | |
<key>end</key> | |
<string>(?=\#)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \$ )</string> | |
<key>end</key> | |
<string>(?x) (\$) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\$)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\$) | |
(?: | |
(?! \g<3> \$ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\$)</string> | |
<key>end</key> | |
<string>(?=\$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \% )</string> | |
<key>end</key> | |
<string>(?x) (\%) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\%)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\%) | |
(?: | |
(?! \g<3> \% ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\%)</string> | |
<key>end</key> | |
<string>(?=\%)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \& )</string> | |
<key>end</key> | |
<string>(?x) (\&) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\&)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\&) | |
(?: | |
(?! \g<3> \& ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\&)</string> | |
<key>end</key> | |
<string>(?=\&)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \' )</string> | |
<key>end</key> | |
<string>(?x) (\') ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\')</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\') | |
(?: | |
(?! \g<3> \' ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\')</string> | |
<key>end</key> | |
<string>(?=\')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\()</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?<!\()(?!\)) | |
(?: | |
(?<!\)|^) | |
(?: | |
(?<![^\W[acdegilmnoprsux]]) | |
([acdegilmnoprsux]*) | |
)? | |
(\w*) | |
)? | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\)) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\)) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\)* | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\)) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\)) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\)* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\)</string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\()</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \) )</string> | |
<key>end</key> | |
<string>(?x) (\)) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\))</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\)) | |
(?: | |
(?! \g<3> \) ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\))</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \* )</string> | |
<key>end</key> | |
<string>(?x) (\*) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\*)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\*) | |
(?: | |
(?! \g<3> \* ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\*)</string> | |
<key>end</key> | |
<string>(?=\*)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \+ )</string> | |
<key>end</key> | |
<string>(?x) (\+) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\+)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\+) | |
(?: | |
(?! \g<3> \+ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\+)</string> | |
<key>end</key> | |
<string>(?=\+)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \, )</string> | |
<key>end</key> | |
<string>(?x) (\,) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\,)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\,) | |
(?: | |
(?! \g<3> \, ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\,)</string> | |
<key>end</key> | |
<string>(?=\,)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \- )</string> | |
<key>end</key> | |
<string>(?x) (\-) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\-)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\-) | |
(?: | |
(?! \g<3> \- ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\-)</string> | |
<key>end</key> | |
<string>(?=\-)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \. )</string> | |
<key>end</key> | |
<string>(?x) (\.) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\.)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\.) | |
(?: | |
(?! \g<3> \. ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\.)</string> | |
<key>end</key> | |
<string>(?=\.)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \/ )</string> | |
<key>end</key> | |
<string>(?x) (\/) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\/)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\/) | |
(?: | |
(?! \g<3> \/ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\/)</string> | |
<key>end</key> | |
<string>(?=\/)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \: )</string> | |
<key>end</key> | |
<string>(?x) (\:) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\:)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\:) | |
(?: | |
(?! \g<3> \: ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\:)</string> | |
<key>end</key> | |
<string>(?=\:)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \; )</string> | |
<key>end</key> | |
<string>(?x) (\;) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\;)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\;) | |
(?: | |
(?! \g<3> \; ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\;)</string> | |
<key>end</key> | |
<string>(?=\;)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\<)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?<!\<)(?!\>) | |
(?: | |
(?<!\>|^) | |
(?: | |
(?<![^\W[acdegilmnoprsux]]) | |
([acdegilmnoprsux]*) | |
)? | |
(\w*) | |
)? | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\>) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\>) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\>* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\>) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\>) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\>* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\></string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\<)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \= )</string> | |
<key>end</key> | |
<string>(?x) (\=) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\=)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\=) | |
(?: | |
(?! \g<3> \= ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\=)</string> | |
<key>end</key> | |
<string>(?=\=)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \> )</string> | |
<key>end</key> | |
<string>(?x) (\>) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\>)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\>) | |
(?: | |
(?! \g<3> \> ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\>)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \? )</string> | |
<key>end</key> | |
<string>(?x) (\?) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\?)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\?) | |
(?: | |
(?! \g<3> \? ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\?)</string> | |
<key>end</key> | |
<string>(?=\?)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \@ )</string> | |
<key>end</key> | |
<string>(?x) (\@) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\@)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\@) | |
(?: | |
(?! \g<3> \@ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\@)</string> | |
<key>end</key> | |
<string>(?=\@)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\[)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?<!\[)(?!\]) | |
(?: | |
(?<!\]|^) | |
(?: | |
(?<![^\W[acdegilmnoprsux]]) | |
([acdegilmnoprsux]*) | |
)? | |
(\w*) | |
)? | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\]) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\]) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\]* | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\]) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\]) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\]* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\]</string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\[)</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \\ )</string> | |
<key>end</key> | |
<string>(?x) (\\) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\\)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\\) | |
(?: | |
(?! \g<3> \\ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\\)</string> | |
<key>end</key> | |
<string>(?=\\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \] )</string> | |
<key>end</key> | |
<string>(?x) (\]) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\])</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\]) | |
(?: | |
(?! \g<3> \] ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\])</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \^ )</string> | |
<key>end</key> | |
<string>(?x) (\^) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\^)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\^) | |
(?: | |
(?! \g<3> \^ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\^)</string> | |
<key>end</key> | |
<string>(?=\^)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \` )</string> | |
<key>end</key> | |
<string>(?x) (\`) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\`)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\`) | |
(?: | |
(?! \g<3> \` ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\`)</string> | |
<key>end</key> | |
<string>(?=\`)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\{)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?<!\{)(?!\}) | |
(?: | |
(?<!\}|^) | |
(?: | |
(?<![^\W[acdegilmnoprsux]]) | |
([acdegilmnoprsux]*) | |
)? | |
(\w*) | |
)? | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\}) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\}) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\}* | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\}) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\}) | |
(?: ([acdegilmnoprsux]) | (\w) ) | |
)? | |
\}* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\}</string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\{)</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \| )</string> | |
<key>end</key> | |
<string>(?x) (\|) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\|)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\|) | |
(?: | |
(?! \g<3> \| ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\|)</string> | |
<key>end</key> | |
<string>(?=\|)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \} )</string> | |
<key>end</key> | |
<string>(?x) (\}) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\})</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\}) | |
(?: | |
(?! \g<3> \} ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\})</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \~ )</string> | |
<key>end</key> | |
<string>(?x) (\~) ([acdegilmnoprsux]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\~)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\~) | |
(?: | |
(?! \g<3> \~ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\~)</string> | |
<key>end</key> | |
<string>(?=\~)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) \b (?= ( (?:CORE::)? (?:tr|y) ) \s* ([^[^!-~]\w\s]) )</string> | |
<key>end</key> | |
<string>(?!\b\1\s*\2)</string> | |
<key>name</key> | |
<string>meta.tr.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \! )</string> | |
<key>end</key> | |
<string>(?x) (\!) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\!)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\!) | |
(?: | |
(?! \g<3> \! ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\!)</string> | |
<key>end</key> | |
<string>(?=\!)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \" )</string> | |
<key>end</key> | |
<string>(?x) (\") ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\")</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\") | |
(?: | |
(?! \g<3> \" ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\")</string> | |
<key>end</key> | |
<string>(?=\")</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \# )</string> | |
<key>end</key> | |
<string>(?x) (\#) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\#)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\#) | |
(?: | |
(?! \g<3> \# ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\#)</string> | |
<key>end</key> | |
<string>(?=\#)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \$ )</string> | |
<key>end</key> | |
<string>(?x) (\$) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\$)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\$) | |
(?: | |
(?! \g<3> \$ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\$)</string> | |
<key>end</key> | |
<string>(?=\$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \% )</string> | |
<key>end</key> | |
<string>(?x) (\%) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\%)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\%) | |
(?: | |
(?! \g<3> \% ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\%)</string> | |
<key>end</key> | |
<string>(?=\%)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \& )</string> | |
<key>end</key> | |
<string>(?x) (\&) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\&)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\&) | |
(?: | |
(?! \g<3> \& ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\&)</string> | |
<key>end</key> | |
<string>(?=\&)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \' )</string> | |
<key>end</key> | |
<string>(?x) (\') ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\')</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\') | |
(?: | |
(?! \g<3> \' ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\')</string> | |
<key>end</key> | |
<string>(?=\')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\()</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?<!\()(?!\)) | |
(?: | |
(?<!\)|^) | |
(?: | |
(?<![^\W[cdrs]]) | |
([cdrs]*) | |
)? | |
(\w*) | |
)? | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\)) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\)) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\)* | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\)) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\)) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\)* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\)</string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\()</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \) )</string> | |
<key>end</key> | |
<string>(?x) (\)) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\))</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\)) | |
(?: | |
(?! \g<3> \) ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\))</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \* )</string> | |
<key>end</key> | |
<string>(?x) (\*) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\*)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\*) | |
(?: | |
(?! \g<3> \* ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\*)</string> | |
<key>end</key> | |
<string>(?=\*)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \+ )</string> | |
<key>end</key> | |
<string>(?x) (\+) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\+)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\+) | |
(?: | |
(?! \g<3> \+ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\+)</string> | |
<key>end</key> | |
<string>(?=\+)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \, )</string> | |
<key>end</key> | |
<string>(?x) (\,) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\,)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\,) | |
(?: | |
(?! \g<3> \, ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\,)</string> | |
<key>end</key> | |
<string>(?=\,)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \- )</string> | |
<key>end</key> | |
<string>(?x) (\-) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\-)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\-) | |
(?: | |
(?! \g<3> \- ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\-)</string> | |
<key>end</key> | |
<string>(?=\-)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \. )</string> | |
<key>end</key> | |
<string>(?x) (\.) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\.)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\.) | |
(?: | |
(?! \g<3> \. ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\.)</string> | |
<key>end</key> | |
<string>(?=\.)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \/ )</string> | |
<key>end</key> | |
<string>(?x) (\/) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\/)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\/) | |
(?: | |
(?! \g<3> \/ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\/)</string> | |
<key>end</key> | |
<string>(?=\/)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \: )</string> | |
<key>end</key> | |
<string>(?x) (\:) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\:)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\:) | |
(?: | |
(?! \g<3> \: ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\:)</string> | |
<key>end</key> | |
<string>(?=\:)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \; )</string> | |
<key>end</key> | |
<string>(?x) (\;) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\;)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\;) | |
(?: | |
(?! \g<3> \; ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\;)</string> | |
<key>end</key> | |
<string>(?=\;)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\<)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?<!\<)(?!\>) | |
(?: | |
(?<!\>|^) | |
(?: | |
(?<![^\W[cdrs]]) | |
([cdrs]*) | |
)? | |
(\w*) | |
)? | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\>) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\>) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\>* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\>) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\>) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\>* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\></string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\<)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \= )</string> | |
<key>end</key> | |
<string>(?x) (\=) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\=)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\=) | |
(?: | |
(?! \g<3> \= ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\=)</string> | |
<key>end</key> | |
<string>(?=\=)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \> )</string> | |
<key>end</key> | |
<string>(?x) (\>) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\>)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\>) | |
(?: | |
(?! \g<3> \> ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\>)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \? )</string> | |
<key>end</key> | |
<string>(?x) (\?) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\?)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\?) | |
(?: | |
(?! \g<3> \? ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\?)</string> | |
<key>end</key> | |
<string>(?=\?)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \@ )</string> | |
<key>end</key> | |
<string>(?x) (\@) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\@)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\@) | |
(?: | |
(?! \g<3> \@ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\@)</string> | |
<key>end</key> | |
<string>(?=\@)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\[)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?<!\[)(?!\]) | |
(?: | |
(?<!\]|^) | |
(?: | |
(?<![^\W[cdrs]]) | |
([cdrs]*) | |
)? | |
(\w*) | |
)? | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\]) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\]) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\]* | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\]) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\]) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\]* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\]</string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\[)</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \\ )</string> | |
<key>end</key> | |
<string>(?x) (\\) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\\)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\\) | |
(?: | |
(?! \g<3> \\ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\\)</string> | |
<key>end</key> | |
<string>(?=\\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \] )</string> | |
<key>end</key> | |
<string>(?x) (\]) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\])</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\]) | |
(?: | |
(?! \g<3> \] ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\])</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \^ )</string> | |
<key>end</key> | |
<string>(?x) (\^) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\^)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\^) | |
(?: | |
(?! \g<3> \^ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\^)</string> | |
<key>end</key> | |
<string>(?=\^)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \` )</string> | |
<key>end</key> | |
<string>(?x) (\`) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\`)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\`) | |
(?: | |
(?! \g<3> \` ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\`)</string> | |
<key>end</key> | |
<string>(?=\`)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\{)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?<!\{)(?!\}) | |
(?: | |
(?<!\}|^) | |
(?: | |
(?<![^\W[cdrs]]) | |
([cdrs]*) | |
)? | |
(\w*) | |
)? | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (\}) (?: \s+ (\#.*) )? \s* \n</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?: | |
(?<=\S) | |
| | |
(?= ^ \s*+ [[^!-~]\w] ) | |
) | |
(?: | |
(?<=\}) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\}* | |
</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) ^ \s* (\#.*)? \n</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
^ \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>((?!\2)\)|(?!\3)>|(?!\4)\]|(?!\5)})|([\6[&&]])</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(\}) \s* | |
(?: | |
( (\() | (<) | (\[) | ({) ) | ([^[^!-~]\w\s]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(?: | |
((?!\3)\)|(?!\4)>|(?!\5)\]|(?!\6)})|([\7[&&]]) | |
) | |
(?: | |
(?<=\}) | |
(?: ([cdrs]) | (\w) ) | |
)? | |
\}* | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\}</string> | |
<key>name</key> | |
<string></string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\{)</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \| )</string> | |
<key>end</key> | |
<string>(?x) (\|) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\|)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\|) | |
(?: | |
(?! \g<3> \| ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\|)</string> | |
<key>end</key> | |
<string>(?=\|)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \} )</string> | |
<key>end</key> | |
<string>(?x) (\}) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\})</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\}) | |
(?: | |
(?! \g<3> \} ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\})</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) (?= (?:CORE::)?+ \w+ \s* \~ )</string> | |
<key>end</key> | |
<string>(?x) (\~) ([cdrs]*) (\w*)</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.operator.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>invalid.illegal.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) ( (?:CORE::)?+ \w+ ) \s* (\~)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
(\~) | |
(?: | |
(?! \g<3> \~ ) | |
| | |
(?<=')(\g<3>) | |
| | |
( \w+ \s* ) | |
) | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\~)</string> | |
<key>end</key> | |
<string>(?=\~)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_or_single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>include</key> | |
<string>#heredoc_1</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
< | |
(?<! <<) | |
(?! [\s=]) | |
( | |
(?: | |
\s* (?: [^<>=$\s\\]+ | \\. | [=$] (?! [>]) ) | |
)*+ | |
) | |
> | |
(?! [>=]) | |
]]></string> | |
<key>name</key> | |
<string>meta.string.glob</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.string.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) | |
{( | |
\s* (-?[^\W\d]\w*) | |
| | |
\g<-1> \s* | |
)} | |
</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
\b (?:CORE::)? __(?:END|DATA)__ (?!\w|::|'[^\W\d]) | |
| | |
[\cD\cZ] | |
) | |
[\d\D]* | |
</string> | |
<key>end</key> | |
<string>(?!) # the end has no end</string> | |
<key>name</key> | |
<string>comment.block.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#pod</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?__(?:END|DATA|FILE|LINE|PACKAGE|SUB)__(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>constant.language.token.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.label.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) | |
\b ( (?:CORE::)? (?:dump|goto|last|next|redo) ) | |
# | |
(?: | |
# open parens or space | |
(?: \s* (?:\(\s*)+ | \s+ ) | |
# | |
# LABEL | |
([^\W\d\p{Lower}][^\W\p{Lower}]*) | |
)? | |
# | |
(?!\w|::|'[^\W\d]) | |
</string> | |
<key>name</key> | |
<string>meta.control.labelled.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\belse\s+if(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>invalid.illegal.else_if.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?(?:break|continue|default|dump|else|elsif|for|foreach|given|goto|if|last|next|redo|return|unless|until|when|while)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>keyword.control.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?(?:local|my|our|state)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?(?:m|q|qq|qr|qw|qx|s|tr|y)\b</string> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?(?:and|cmp|or|xor|not|lt|gt|le|ge|eq|ne|x)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>keyword.other.operator.perl</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
\b ( (?:CORE::)? format ) | |
# | |
(?: | |
# format picture - copied from variable | |
(?: \s+ | |
((?!')(?:(?:::|'?[^\W\d])\w*)++) | |
(?= \s* (?:=\s*)? $ ) | |
) | |
| | |
(?!\w|::|'[^\W\d]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.filehandle.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?! \s* (?:=\s*)? $ ) | |
| | |
^\.\s*$ | |
</string> | |
<key>name</key> | |
<string>meta.format.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>=\s*</string> | |
<key>contentName</key> | |
<string>string.unquoted.perl</string> | |
<key>end</key> | |
<string>(?=^\.\s*$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#line_comment</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.package.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>entity.name.type.class.perl constant.language.string.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) | |
\b ( (?:CORE::)? package ) | |
(?: | |
\s+ ( | |
# package name - copied from variable | |
(?!')(?:(?:::|'?[^\W\d])\w*)+ | |
) | |
| | |
(?!\w|::|'[^\W\d]) | |
) | |
</string> | |
<key>name</key> | |
<string>meta.class.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.package.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.string.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(?x) | |
# autoquoting keywords | |
\b ( (?:CORE::)? (?:use|require|no) ) | |
(?: | |
\s+ ( | |
# not a version number | |
(?!v\d) | |
# package name - copied from variable | |
(?!')(?:(?:::|'?[^\W\d])\w*)+ | |
) | |
| | |
(?!\w|::|'[^\W\d]) | |
) | |
</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
\b (?: | |
( (?:CORE::)? sub ) | |
| | |
# non-standard sub definitions | |
(method|func|before|after|around) | |
) | |
# | |
# sub name - copied from variable | |
(?: | |
\s+ ( | |
(?!')(?:(?:::|'?[^\W\d])\w*)++ | |
) | |
| | |
(?!\w|::|'[^\W\d]) | |
) | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.control.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>support.function.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>entity.name.function.perl</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(?x) | |
(?! \s* [(] | \s* $ ) | |
| | |
(?<= [)] ) | |
</string> | |
<key>name</key> | |
<string>meta.function.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>\(</string> | |
<key>contentName</key> | |
<string>storage.type.method.perl</string> | |
<key>end</key> | |
<string>\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?(?:AUTOLOAD|BEGIN|CHECK|END|INIT|UNITCHECK)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>meta.function.perl entity.name.function.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.filehandle.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.filehandle.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>keyword.other.filetest.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.filehandle.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
# these functions can take two filehandles as arguments | |
\b ( (?:CORE::)? (?:accept|pipe|socketpair) ) \g<6> | |
(\g<7>) \s*,\s* (\g<7>) | |
| | |
(?: | |
( | |
# these functions take a filehandle as the first argument | |
\b (?:CORE::)? (?:accept|bind|binmode|chdir|close|closedir|connect|eof|fcntl|fileno|flock|formline|getc|getpeername|getsockname|getsockopt|ioctl|listen|lstat|open|opendir|pipe|print|printf|read|readdir|readline|recv|rewinddir|say|seek|seekdir|select|send|setsockopt|shutdown|socket|socketpair|stat|sysopen|sysread|sysseek|syswrite|tell|telldir|truncate|write) | |
) | |
| | |
( | |
# filetest operators also take a filehandle as a first argument | |
-[ABCMORSTWXbcdefgkloprstuwxz] (?<!\w..) | |
) | |
) | |
( | |
(?!\w|::|'[^\W\d]) | |
# open parens or space | |
(?: \s* (?:\(\s*)+ | \s+ ) | |
) | |
( | |
# filehandle name - uppercase only | |
(?!')(?:(?:::|'?[^\W\d\p{Lower}])[^\W\p{Lower}]*)++ | |
(?!\w|::|'[^\W\d]|\s*\() | |
) | |
]]></string> | |
<key>name</key> | |
<string>meta.function.filehandle.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>-[ABCMORSTWXbcdefgkloprstuwxz](?<!\w..)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>keyword.other.filetest.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b(?:CORE::)?(?:abs|accept|alarm|and|atan2|bind|binmode|bless|break|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|continue|cos|crypt|dbmclose|dbmopen|default|defined|delete|die|do|dump|each|else|elsif|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|evalbytes|exec|exists|exit|exp|fc|fcntl|fileno|flock|for|foreach|fork|format|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|given|glob|gmtime|goto|grep|gt|hex|if|index|int|ioctl|join|keys|kill|last|lc|lcfirst|le|length|link|listen|local|localtime|lock|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|ne|next|no|not|oct|open|opendir|or|ord|our|pack|package|pipe|pop|pos|print|printf|prototype|push|q|qq|qr|quotemeta|qw|qx|rand|read|readdir|readline|readlink|readpipe|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|state|study|sub|substr|symlink|syscall|sysopen|sysread|sysseek|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unless|unlink|unpack|unshift|untie|until|use|utime|values|vec|wait|waitpid|wantarray|warn|when|while|write|x|xor|y)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>keyword.other.function.perl</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>These aren't keywords, so CORE:: isn't applicable.</string> | |
<key>match</key> | |
<string>\b(?:ARGV|ARGVOUT|STDERR|STDIN|STDOUT|DATA)(?!\w|::|'[^\W\d])</string> | |
<key>name</key> | |
<string>constant.language.filehandle.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.language.string.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>support.function.method.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
# class name | |
(?: | |
(?=[^[^\w:]\d])(?<!\w) | |
(\g<2>) | |
)? | |
\s* -> \s* | |
# | |
# method name | |
(?!')((?:(?:::|'?[^\W\d])\w*)++) | |
]]></string> | |
<key>name</key> | |
<string>meta.operator.arrow.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?xi) | |
\b(?:0b[01_]*)(?!\w) | |
</string> | |
<key>name</key> | |
<string>punctuation.definition.number.binary.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?xi) | |
\b(?:0[0-7_]+)(?!\w) | |
</string> | |
<key>name</key> | |
<string>punctuation.definition.number.octal.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?xi) | |
\b(?:0x[\h_]*)(?!\w) | |
</string> | |
<key>name</key> | |
<string>punctuation.definition.number.hex.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
\b (?: | |
v (\d[\d_]*) (\.\d[\d_]*)* # v with 1 or more digit groups | |
| | |
(?!0[\d_]) \g<1> \g<2>{2,} # no v with 3 or more digit groups | |
) | |
(?!\w) | |
]]></string> | |
<key>name</key> | |
<string>string.other.version.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?xi) | |
(?: | |
(?: | |
# start with digit | |
\b (?!0[\d_]) \d[\d_]*+ \.? | |
| | |
# start with point | |
\B \. \d | |
) | |
[\d_]* | |
(?: e [+-]? [\d_]* )? # possible exponent | |
) | |
(?!\w) | |
</string> | |
<key>name</key> | |
<string>punctuation.definition.number.float.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?:\b\d|\B\.\d)\w*</string> | |
<key>name</key> | |
<string>invalid.illegal.number.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>\b[^\W\d\p{Lower}][^\W\p{Lower}]*+:(?!:)</string> | |
<key>name</key> | |
<string>constant.language.label.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?=[^[^\w:]\d])(?<!\w)(?:(?:::|'?[^\W\d])\w*)+</string> | |
<key>name</key> | |
<string>support.function.perl</string> | |
</dict> | |
</array> | |
<key>repository</key> | |
<dict> | |
<key>double</key> | |
<dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\!)</string> | |
<key>end</key> | |
<string>(?=\!)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\!] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\!] | |
| | |
[^}\!] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\")</string> | |
<key>end</key> | |
<string>(?=\")</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\"] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\"] | |
| | |
[^}\"] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\#)</string> | |
<key>end</key> | |
<string>(?=\#)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\#] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\#] | |
| | |
[^}\#] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\$)</string> | |
<key>end</key> | |
<string>(?=\$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\\\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\\\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\$] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\$] | |
| | |
[^}\$] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\%)</string> | |
<key>end</key> | |
<string>(?=\%)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\%] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\%] | |
| | |
[^}\%] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\&)</string> | |
<key>end</key> | |
<string>(?=\&)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\&] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\&] | |
| | |
[^}\&] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\')</string> | |
<key>end</key> | |
<string>(?=\')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\\\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\'] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\'] | |
| | |
[^}\'] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\()</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\)] | |
) | |
| | |
\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
\{ (?!__)[_\h]* \} | |
) | |
| | |
o \{ (?!__)[_0-7]* \} | |
| | |
[0-7]{1,3} | |
| | |
N \{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\)] | |
| | |
[^}\)] | |
)*+ | |
) \} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\(</string> | |
<key>end</key> | |
<string>\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\))</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\)] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\)] | |
| | |
[^}\)] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\*)</string> | |
<key>end</key> | |
<string>(?=\*)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\*] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\*] | |
| | |
[^}\*] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\+)</string> | |
<key>end</key> | |
<string>(?=\+)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\+] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\\\+ (?:_?\h+)++ | |
| | |
(?! U\\\+ ) | |
(?: | |
\\[\\\+] | |
| | |
[^}\+] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\,)</string> | |
<key>end</key> | |
<string>(?=\,)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\,] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\,] | |
| | |
[^}\,] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\-)</string> | |
<key>end</key> | |
<string>(?=\-)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\-] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\-] | |
| | |
[^}\-] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\.)</string> | |
<key>end</key> | |
<string>(?=\.)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\.] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\.] | |
| | |
[^}\.] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\/)</string> | |
<key>end</key> | |
<string>(?=\/)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\/] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\/] | |
| | |
[^}\/] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\:)</string> | |
<key>end</key> | |
<string>(?=\:)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\\\:\\\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\:] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\:] | |
| | |
[^}\:] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\;)</string> | |
<key>end</key> | |
<string>(?=\;)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\;] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\;] | |
| | |
[^}\;] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\<)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\>] | |
) | |
| | |
\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
\{ (?!__)[_\h]* \} | |
) | |
| | |
o \{ (?!__)[_0-7]* \} | |
| | |
[0-7]{1,3} | |
| | |
N \{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\>] | |
| | |
[^}\>] | |
)*+ | |
) \} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\<</string> | |
<key>end</key> | |
<string>\></string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\=)</string> | |
<key>end</key> | |
<string>(?=\=)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\=] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\=] | |
| | |
[^}\=] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\>)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\>] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\>] | |
| | |
[^}\>] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\?)</string> | |
<key>end</key> | |
<string>(?=\?)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\?] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\?] | |
| | |
[^}\?] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\@)</string> | |
<key>end</key> | |
<string>(?=\@)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\\\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\@] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\@] | |
| | |
[^}\@] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\[)</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\]] | |
) | |
| | |
\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
\{ (?!__)[_\h]* \} | |
) | |
| | |
o \{ (?!__)[_0-7]* \} | |
| | |
[0-7]{1,3} | |
| | |
N \{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\]] | |
| | |
[^}\]] | |
)*+ | |
) \} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\[</string> | |
<key>end</key> | |
<string>\]</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\\)</string> | |
<key>end</key> | |
<string>(?=\\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\\] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
[^}\\] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\])</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\]] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\]] | |
| | |
[^}\]] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\^)</string> | |
<key>end</key> | |
<string>(?=\^)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\\\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\^] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\^] | |
| | |
[^}\^] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\`)</string> | |
<key>end</key> | |
<string>(?=\`)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\`] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\`] | |
| | |
[^}\`] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\{)</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\}] | |
) | |
| | |
(\\?)\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\k<-1>\} | |
| | |
(?=\\\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
(\\?)\{ (?!__)[_\h]* \k<-1>\} | |
) | |
| | |
o (\\?)\{ (?!__)[_0-7]* \k<-1>\} | |
| | |
[0-7]{1,3} | |
| | |
N (\\?)\{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
[^}\}] | |
)*+ | |
) \k<-1>\} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
]]></string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\{</string> | |
<key>end</key> | |
<string>\}</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\|)</string> | |
<key>end</key> | |
<string>(?=\|)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\|] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\|] | |
| | |
[^}\|] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\})</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\}] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
[^}\}] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\~)</string> | |
<key>end</key> | |
<string>(?=\~)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\~] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\~] | |
| | |
[^}\~] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>^</string> | |
<key>end</key> | |
<string>\n|(?<=\n)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ \s* | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
)? | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\] | |
| | |
[^}] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<key>double_or_single</key> | |
<dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=')</string> | |
<key>contentName</key> | |
<string>string.quoted.single.perl</string> | |
<key>end</key> | |
<string>(?=')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=(\()|(<)|(\[)|({)|([^[^!-~]\w\s]))</string> | |
<key>contentName</key> | |
<string>string.quoted.double.perl</string> | |
<key>end</key> | |
<string>(?=(?!\1)\)|(?!\2)>|(?!\3)\]|(?!\4)}|[\5[&&]])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<key>double_or_single_regexp</key> | |
<dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=')</string> | |
<key>contentName</key> | |
<string>string.regexp.perl</string> | |
<key>end</key> | |
<string>(?=')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=(\()|(<)|(\[)|({)|([^[^!-~]\w\s]))</string> | |
<key>contentName</key> | |
<string>string.regexp.perl</string> | |
<key>end</key> | |
<string>(?=(?!\1)\)|(?!\2)>|(?!\3)\]|(?!\4)}|[\5[&&]])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<key>double_regexp</key> | |
<dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\!)</string> | |
<key>end</key> | |
<string>(?=\!)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\!] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\!] | |
| | |
[^}\!] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\")</string> | |
<key>end</key> | |
<string>(?=\")</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\"] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\"] | |
| | |
[^}\"] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\#)</string> | |
<key>end</key> | |
<string>(?=\#)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\#] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\#] | |
| | |
[^}\#] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\$)</string> | |
<key>end</key> | |
<string>(?=\$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\\\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\\\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\$] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\$] | |
| | |
[^}\$] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\%)</string> | |
<key>end</key> | |
<string>(?=\%)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\%] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\%] | |
| | |
[^}\%] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\&)</string> | |
<key>end</key> | |
<string>(?=\&)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\&] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\&] | |
| | |
[^}\&] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\')</string> | |
<key>end</key> | |
<string>(?=\')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\\\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\'] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\'] | |
| | |
[^}\'] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\()</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\)] | |
) | |
| | |
\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
\{ (?!__)[_\h]* \} | |
) | |
| | |
o \{ (?!__)[_0-7]* \} | |
| | |
[0-7]{1,3} | |
| | |
N \{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\)] | |
| | |
[^}\)] | |
)*+ | |
) \} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\(</string> | |
<key>end</key> | |
<string>\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\))</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\)] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\)] | |
| | |
[^}\)] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\*)</string> | |
<key>end</key> | |
<string>(?=\*)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\*] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\*] | |
| | |
[^}\*] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\+)</string> | |
<key>end</key> | |
<string>(?=\+)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\+] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\\\+ (?:_?\h+)++ | |
| | |
(?! U\\\+ ) | |
(?: | |
\\[\\\+] | |
| | |
[^}\+] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\,)</string> | |
<key>end</key> | |
<string>(?=\,)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\,] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\,] | |
| | |
[^}\,] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\-)</string> | |
<key>end</key> | |
<string>(?=\-)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\-] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\-] | |
| | |
[^}\-] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\.)</string> | |
<key>end</key> | |
<string>(?=\.)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\.] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\.] | |
| | |
[^}\.] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\/)</string> | |
<key>end</key> | |
<string>(?=\/)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\/] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\/] | |
| | |
[^}\/] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\:)</string> | |
<key>end</key> | |
<string>(?=\:)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\\\:\\\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\:] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\:] | |
| | |
[^}\:] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\;)</string> | |
<key>end</key> | |
<string>(?=\;)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\;] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\;] | |
| | |
[^}\;] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\<)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\>] | |
) | |
| | |
\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
\{ (?!__)[_\h]* \} | |
) | |
| | |
o \{ (?!__)[_0-7]* \} | |
| | |
[0-7]{1,3} | |
| | |
N \{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\>] | |
| | |
[^}\>] | |
)*+ | |
) \} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\<</string> | |
<key>end</key> | |
<string>\></string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\=)</string> | |
<key>end</key> | |
<string>(?=\=)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\=] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\=] | |
| | |
[^}\=] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\>)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\>] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\>] | |
| | |
[^}\>] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\?)</string> | |
<key>end</key> | |
<string>(?=\?)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\?] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\?] | |
| | |
[^}\?] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\@)</string> | |
<key>end</key> | |
<string>(?=\@)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\\\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\@] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\@] | |
| | |
[^}\@] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\[)</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\]] | |
) | |
| | |
\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
\{ (?!__)[_\h]* \} | |
) | |
| | |
o \{ (?!__)[_0-7]* \} | |
| | |
[0-7]{1,3} | |
| | |
N \{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\]] | |
| | |
[^}\]] | |
)*+ | |
) \} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\[</string> | |
<key>end</key> | |
<string>\]</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\\)</string> | |
<key>end</key> | |
<string>(?=\\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\\] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
[^}\\] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\])</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\]] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\]] | |
| | |
[^}\]] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\^)</string> | |
<key>end</key> | |
<string>(?=\^)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\\\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\^] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\^] | |
| | |
[^}\^] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\`)</string> | |
<key>end</key> | |
<string>(?=\`)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\`] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\`] | |
| | |
[^}\`] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\{)</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\}] | |
) | |
| | |
(\\?)\{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
\k<-1>\} | |
| | |
(?=\\\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
(\\?)\{ (?!__)[_\h]* \k<-1>\} | |
) | |
| | |
o (\\?)\{ (?!__)[_0-7]* \k<-1>\} | |
| | |
[0-7]{1,3} | |
| | |
N (\\?)\{ | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
[^}\}] | |
)*+ | |
) \k<-1>\} | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
]]></string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\{</string> | |
<key>end</key> | |
<string>\}</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double_regexp</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\|)</string> | |
<key>end</key> | |
<string>(?=\|)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\|] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\|] | |
| | |
[^}\|] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\})</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\}] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
[^}\}] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\~)</string> | |
<key>end</key> | |
<string>(?=\~)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string><![CDATA[(?x) | |
(?<variable> | |
\@ \g<scalar_identifier> | |
| | |
\$ | |
(?<scalar_identifier> | |
(?<scalar> | |
(?:\$)+ | |
(?<identifier> | |
(?<caret_id> | |
\^ [^\W\d\p{Lower}] | |
) | |
| | |
(?<normal_id> | |
\d+ | |
| | |
(?: | |
(?: (?:\:\:) | (?:\')?[^\W\d] ) \w* | |
)++ | |
# | | |
# [^[^!-~]{\w\s\~] | |
) | |
| | |
{ | |
\s* (?: | |
\g<variable> | \g<caret_id> \w* | \g<normal_id> | |
) \s* | |
} | |
| | |
(?=\{) | |
) | |
) | |
| | |
\g<identifier> | |
) | |
) | |
]]></string> | |
<key>name</key> | |
<string>keyword.other.storage.perl storage.modifier.perl variable.parameter.perl variable.other.readwrite.global.perl</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(?x) | |
\\ (?: | |
x (?: | |
\h{1,2} | |
| | |
{ (?!__)[_\h]* } | |
) | |
| | |
o { (?!__)[_0-7]* } | |
| | |
[0-7]{1,3} | |
| | |
N { | |
(?: | |
U\+ (?:_?\h+)++ | |
| | |
(?! U\+ ) | |
(?: | |
\\[\\\~] | |
| | |
[^}\~] | |
)*+ | |
) } | |
| | |
#c [^\P{ASCII}{] | |
#| | |
\p{Alnum} | |
) | |
</string> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\d\D]</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<key>heredoc_1</key> | |
<dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
<< (?= | |
[^\W\d]\w* | |
| | |
\d\w*[\p{Alpha}]\w*+ # word starting with digit but containing a non-digit | |
| | |
\\ \w* | |
| | |
\s* (['"`]) .*? \1 | |
) | |
</string> | |
<key>end</key> | |
<string>$</string> | |
<key>name</key> | |
<string>meta.heredoc.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
( (?:[^\W\p{Lower}]*_)? CSS ) \b | |
| | |
\s* (["`']) | |
(?: | |
((?<=") \s* (?: (?:[^\W\p{Lower}]*_)? CSS )) | |
| | |
((?<=`) \s* (?: (?:[^\W\p{Lower}]*_)? CSS )) | |
| | |
(\s* (?: (?:[^\W\p{Lower}]*_)? CSS )) | |
) | |
(\2) | |
| | |
\\ ( (?:[^\W\p{Lower}]*_)? CSS ) \b | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>source.css.embedded.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)(\5\7)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>source.css</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
( (?:[^\W\p{Lower}]*_)? HTML ) \b | |
| | |
\s* (["`']) | |
(?: | |
((?<=") \s* (?: (?:[^\W\p{Lower}]*_)? HTML )) | |
| | |
((?<=`) \s* (?: (?:[^\W\p{Lower}]*_)? HTML )) | |
| | |
(\s* (?: (?:[^\W\p{Lower}]*_)? HTML )) | |
) | |
(\2) | |
| | |
\\ ( (?:[^\W\p{Lower}]*_)? HTML ) \b | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>text.html.basic.embedded.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)(\5\7)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>text.html.basic</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
( (?:[^\W\p{Lower}]*_)? (?:JS|JAVASCRIPT) ) \b | |
| | |
\s* (["`']) | |
(?: | |
((?<=") \s* (?: (?:[^\W\p{Lower}]*_)? (?:JS|JAVASCRIPT) )) | |
| | |
((?<=`) \s* (?: (?:[^\W\p{Lower}]*_)? (?:JS|JAVASCRIPT) )) | |
| | |
(\s* (?: (?:[^\W\p{Lower}]*_)? (?:JS|JAVASCRIPT) )) | |
) | |
(\2) | |
| | |
\\ ( (?:[^\W\p{Lower}]*_)? (?:JS|JAVASCRIPT) ) \b | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>source.js.embedded.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)(\5\7)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>source.js</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
( (?:[^\W\p{Lower}]*_)? PERL ) \b | |
| | |
\s* (["`']) | |
(?: | |
((?<=") \s* (?: (?:[^\W\p{Lower}]*_)? PERL )) | |
| | |
((?<=`) \s* (?: (?:[^\W\p{Lower}]*_)? PERL )) | |
| | |
(\s* (?: (?:[^\W\p{Lower}]*_)? PERL )) | |
) | |
(\2) | |
| | |
\\ ( (?:[^\W\p{Lower}]*_)? PERL ) \b | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>source.perl.embedded.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)(\5\7)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>$self</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
( (?:[^\W\p{Lower}]*_)? SQL ) \b | |
| | |
\s* (["`']) | |
(?: | |
((?<=") \s* (?: (?:[^\W\p{Lower}]*_)? SQL )) | |
| | |
((?<=`) \s* (?: (?:[^\W\p{Lower}]*_)? SQL )) | |
| | |
(\s* (?: (?:[^\W\p{Lower}]*_)? SQL )) | |
) | |
(\2) | |
| | |
\\ ( (?:[^\W\p{Lower}]*_)? SQL ) \b | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>source.sql.embedded.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)(\5\7)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>source.sql</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
( (?:[^\W\p{Lower}]*_)? XML ) \b | |
| | |
\s* (["`']) | |
(?: | |
((?<=") \s* (?: (?:[^\W\p{Lower}]*_)? XML )) | |
| | |
((?<=`) \s* (?: (?:[^\W\p{Lower}]*_)? XML )) | |
| | |
(\s* (?: (?:[^\W\p{Lower}]*_)? XML )) | |
) | |
(\2) | |
| | |
\\ ( (?:[^\W\p{Lower}]*_)? XML ) \b | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>6</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
<key>7</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>text.xml.embedded.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)(\5\7)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>text.xml</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
(\w+) | |
| | |
\s* (["`]) | |
(?: | |
((?<=") .*?) | |
| | |
(.*?) | |
) | |
(\2) | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
<key>5</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.unquoted.perl</string> | |
<key>end</key> | |
<string>^(\1\3)(\4)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.double.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>string.interpolated.perl</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#double</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?: | |
\\ (\w+) | |
| | |
\s* (') (.*?) (') | |
) | |
.* \n? | |
</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.begin.perl</string> | |
</dict> | |
<key>3</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
<key>4</key> | |
<dict> | |
<key>name</key> | |
<string>punctuation.definition.string.end.perl</string> | |
</dict> | |
</dict> | |
<key>contentName</key> | |
<string>string.unquoted.perl</string> | |
<key>end</key> | |
<string>^(\1\3)$</string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.quoted.single.perl</string> | |
</dict> | |
</dict> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<key>line_comment</key> | |
<dict> | |
<key>match</key> | |
<string>\#[\d\D]*</string> | |
<key>name</key> | |
<string>comment.line.number-sign.perl</string> | |
</dict> | |
<key>pod</key> | |
<dict> | |
<key>begin</key> | |
<string>^=\p{Alpha}[\d\D]*</string> | |
<key>end</key> | |
<string>^=cut(?!\p{Alpha})[\d\D]*</string> | |
<key>name</key> | |
<string>meta.pod comment.block.perl</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string>\t+</string> | |
<key>name</key> | |
<string>invalid.deprecated.perl</string> | |
</dict> | |
</array> | |
</dict> | |
<key>regex_quantifier_curly</key> | |
<dict> | |
<key>begin</key> | |
<string>(?x) | |
(?={ | |
(?>0*(?=\d)) | |
\d*?(\d??)(\d??)(\d??)(\d??)(\d??)(\d??)(\d??)(\d??)(\d??)(\d??) | |
,? \d*+ | |
}) | |
</string> | |
<key>comment</key> | |
<string>For {n,m} to be a quantifier, n must exist, and m must be greater than n if it exists. Just take my word for it that this voodoo does all that and numeric comparison of m > n up to an n that is 10 digits long.</string> | |
<key>end</key> | |
<string><![CDATA[(?x) | |
({ | |
\d+ | |
(?: | |
# m is empty | |
,? | |
| | |
# otherwise numeric comparison! | |
, (?>0*(?=\d)) | |
(?: \d{11,} | [&\1&\d&&[^0-\1]]\d{9} | \1 | |
(?: \d{10,} | [&\2&\d&&[^0-\2]]\d{8} | \2 | |
(?: \d{9,} | [&\3&\d&&[^0-\3]]\d{7} | \3 | |
(?: \d{8,} | [&\4&\d&&[^0-\4]]\d{6} | \4 | |
(?: \d{7,} | [&\5&\d&&[^0-\5]]\d{5} | \5 | |
(?: \d{6,} | [&\6&\d&&[^0-\6]]\d{4} | \6 | |
(?: \d{5,} | [&\7&\d&&[^0-\7]]\d{3} | \7 | |
(?: \d{4,} | [&\8&\d&&[^0-\8]]\d{2} | \8 | |
(?: \d{3,} | [&\9&\d&&[^0-\9]]\d{1} | \9 | |
(?: \d{2,} | [&\10&\d&&[^0-\10]]\d{0} | |
)))))))))) | |
) | |
}) | |
| | |
# not a quantifier, but we have to match something to prevent infinite recursion | |
{\d*,?\d*} | |
]]></string> | |
<key>endCaptures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>string.regexp.perl</string> | |
</dict> | |
</dict> | |
</dict> | |
<key>single</key> | |
<dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\!)</string> | |
<key>end</key> | |
<string>(?=\!)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\!\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\")</string> | |
<key>end</key> | |
<string>(?=\")</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\"\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\#)</string> | |
<key>end</key> | |
<string>(?=\#)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\#\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\$)</string> | |
<key>end</key> | |
<string>(?=\$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\$\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\%)</string> | |
<key>end</key> | |
<string>(?=\%)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\%\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\&)</string> | |
<key>end</key> | |
<string>(?=\&)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\&\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\')</string> | |
<key>end</key> | |
<string>(?=\')</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\'\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\()</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\(\)\\]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\(</string> | |
<key>end</key> | |
<string>\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\))</string> | |
<key>end</key> | |
<string>(?=\))</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\)\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\*)</string> | |
<key>end</key> | |
<string>(?=\*)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\*\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\+)</string> | |
<key>end</key> | |
<string>(?=\+)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\+\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\,)</string> | |
<key>end</key> | |
<string>(?=\,)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\,\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\-)</string> | |
<key>end</key> | |
<string>(?=\-)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\-\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\.)</string> | |
<key>end</key> | |
<string>(?=\.)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\.\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\/)</string> | |
<key>end</key> | |
<string>(?=\/)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\/\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\:)</string> | |
<key>end</key> | |
<string>(?=\:)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\:\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\;)</string> | |
<key>end</key> | |
<string>(?=\;)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\;\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\<)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\<\>\\]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\<</string> | |
<key>end</key> | |
<string>\></string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\=)</string> | |
<key>end</key> | |
<string>(?=\=)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\=\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\>)</string> | |
<key>end</key> | |
<string>(?=\>)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\>\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\?)</string> | |
<key>end</key> | |
<string>(?=\?)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\?\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\@)</string> | |
<key>end</key> | |
<string>(?=\@)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\@\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\[)</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\[\]\\]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\[</string> | |
<key>end</key> | |
<string>\]</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\\)</string> | |
<key>end</key> | |
<string>(?=\\)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\\\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\])</string> | |
<key>end</key> | |
<string>(?=\])</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\]\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\^)</string> | |
<key>end</key> | |
<string>(?=\^)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\^\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\`)</string> | |
<key>end</key> | |
<string>(?=\`)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\`\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\{)</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\{\}\\]</string> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>\{</string> | |
<key>end</key> | |
<string>\}</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>include</key> | |
<string>#single</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\|)</string> | |
<key>end</key> | |
<string>(?=\|)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\|\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\})</string> | |
<key>end</key> | |
<string>(?=\})</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\}\\]</string> | |
</dict> | |
</array> | |
</dict> | |
<dict> | |
<key>begin</key> | |
<string>(?<=\~)</string> | |
<key>end</key> | |
<string>(?=\~)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>constant.character.escape.perl</string> | |
</dict> | |
</dict> | |
<key>match</key> | |
<string>(\\)[\~\\]</string> | |
</dict> | |
</array> | |
</dict> | |
</array> | |
</dict> | |
</dict> | |
<key>scopeName</key> | |
<string>source.perl</string> | |
<key>uuid</key> | |
<string>2c338cc8-a464-4ee4-a56c-d524947fa6f9</string> | |
</dict> | |
</plist> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%YAML 1.2 | |
--- | |
# http://www.sublimetext.com/docs/3/syntax.html | |
name: Perl | |
comment: "TODO: Include RegExp syntax" | |
file_extensions: | |
- pl | |
- pm | |
- pod | |
- t | |
- PL | |
first_line_match: ^#!.*\bperl\b | |
scope: source.perl | |
contexts: | |
main: | |
- include: line_comment | |
- match: ^= | |
captures: | |
0: punctuation.definition.comment.perl | |
push: | |
- meta_scope: comment.block.documentation.perl | |
- match: ^=cut | |
captures: | |
0: punctuation.definition.comment.perl | |
pop: true | |
- include: variable | |
- match: '\b(?=qr\s*[^\s\w])' | |
comment: string.regexp.compile.perl | |
push: | |
- match: '(qr)\s*\{' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.compile.nested_braces.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_braces_interpolated | |
- match: '(qr)\s*\[' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.compile.nested_brackets.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_brackets_interpolated | |
- match: (qr)\s*< | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.compile.nested_ltgt.perl | |
- match: ">" | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_ltgt_interpolated | |
- match: (qr)\s*\( | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.compile.nested_parens.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_parens_interpolated | |
- match: (qr)\s*\' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.compile.single-quote.perl | |
- match: \' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- match: '(qr)\s*([^\s\w\''\{\[\(\<])' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.compile.simple-delimiter.perl | |
- match: \2 | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- match: '\$(?=[^\s\w\''\{\[\(\<])' | |
comment: This is to prevent thinks like qr/foo$/ to treat $/ as a variable | |
scope: keyword.control.anchor.perl | |
- include: escaped_char | |
- include: variable | |
- include: nested_parens_interpolated | |
- match: '((([egimosx]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))' | |
captures: | |
1: string.regexp.compile.perl | |
2: punctuation.definition.string.perl | |
3: keyword.control.regexp-option.perl | |
pop: true | |
- match: '\b(?=(?<!\&)(s)(\s+\S|\s*[;\,\#\{\}\(\)\[<]|$))' | |
comment: string.regexp.replace.perl | |
push: | |
- match: '(s)\s*\{' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.nested_braces.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_braces | |
- match: '(s)\s*\[' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.nested_brackets.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_brackets | |
- match: (s)\s*< | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.nested_ltgt.perl | |
- match: ">" | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_ltgt | |
- match: (s)\s*\( | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.nested_parens.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_parens | |
- match: '\{' | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.format.nested_braces.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_braces_interpolated | |
- match: '\[' | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.format.nested_brackets.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_brackets_interpolated | |
- match: "<" | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.format.nested_ltgt.perl | |
- match: ">" | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_ltgt_interpolated | |
- match: \( | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.format.nested_parens.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_parens_interpolated | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.format.single_quote.perl | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- match: '\\[''\\]' | |
scope: constant.character.escape.perl | |
- match: '([^\s\w\[({<;])' | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.format.simple_delimiter.perl | |
- match: \1 | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: \s+ | |
- match: '((([egimosx]*)))(?=(\s+\S|\s*[;\,\#\{\}\)\]>]|$))' | |
captures: | |
1: string.regexp.replace.perl | |
2: punctuation.definition.string.perl | |
3: keyword.control.regexp-option.perl | |
pop: true | |
- match: '\b(?=s([^\s\w\[({<]).*\1([egimos]*)([\}\)\;\,]|\s+))' | |
comment: string.regexp.replaceXXX | |
push: | |
- match: '((([egimos]*)))(?=([\}\)\;\,]|\s+|$))' | |
captures: | |
1: string.regexp.replace.perl | |
2: punctuation.definition.string.perl | |
3: keyword.control.regexp-option.perl | |
pop: true | |
- match: '(s\s*)([^\s\w\[({<])' | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.replaceXXX.simple_delimiter.perl | |
- match: (?=\2) | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.replaceXXX.format.single_quote.perl | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- match: '\\[''\\]' | |
scope: constant.character.escape.perl.perl | |
- match: '([^\s\w\[({<])' | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.replaceXXX.format.simple_delimiter.perl | |
- match: \1 | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: '\b(?=(?<!\\)s\s*([^\s\w\[({<]))' | |
comment: string.regexp.replace.extended | |
push: | |
- match: '\2((([egimos]*x[egimos]*)))\b' | |
captures: | |
1: string.regexp.replace.perl | |
2: punctuation.definition.string.perl | |
3: keyword.control.regexp-option.perl | |
pop: true | |
- match: (s)\s*(.) | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
push: | |
- meta_scope: string.regexp.replace.extended.simple_delimiter.perl | |
- match: (?=\2) | |
captures: | |
0: punctuation.definition.string.perl | |
1: support.function.perl | |
pop: true | |
- include: escaped_char | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.replace.extended.simple_delimiter.perl | |
- match: '''(?=[egimos]*x[egimos]*)\b' | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- match: (.) | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.replace.extended.simple_delimiter.perl | |
- match: '\1(?=[egimos]*x[egimos]*)\b' | |
captures: | |
0: punctuation.definition.string.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: \b\w+\s*(?==>) | |
scope: constant.other.key.perl | |
- match: \b\w+\?\s*(?==>) | |
scope: constant.other.key.optional.perl | |
- match: '(?<={)\s*\w+\s*(?=})' | |
scope: constant.other.bareword.perl | |
- match: '(?<!\\)((~\s*)?\/)(\S.*?)(?<!\\)(\\{2})*(\/)' | |
scope: string.regexp.find.perl | |
captures: | |
1: punctuation.definition.string.perl | |
5: punctuation.definition.string.perl | |
- match: (?<!\\)(\~\s*\/) | |
captures: | |
0: punctuation.definition.string.perl | |
push: | |
- meta_scope: string.regexp.find.extended.perl | |
- match: '\/([cgimos]*x[cgimos]*)\b' | |
captures: | |
1: keyword.control.regexp-option.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: ^\s*(package)\s+(\S+)\s*((#).*)?$\n? | |
scope: meta.class.perl | |
captures: | |
1: keyword.control.perl | |
2: entity.name.type.class.perl | |
3: comment.line.number-sign.perl | |
4: punctuation.definition.comment.perl | |
- match: '^\s*(sub)\s+([-a-zA-Z0-9_]+)\s*(\([\$\@\*;]*\))?' | |
scope: meta.function.perl | |
captures: | |
1: storage.type.sub.perl | |
2: entity.name.function.perl | |
3: storage.type.method.perl | |
- match: ^\s*(BEGIN|END|DESTROY)\b | |
scope: meta.function.perl | |
captures: | |
1: entity.name.function.perl | |
2: punctuation.definition.parameters.perl | |
3: variable.parameter.function.perl | |
- match: '^(?=(\t| {4}))' | |
push: | |
- meta_scope: meta.leading-tabs | |
- match: '(?=[^\t\s])' | |
pop: true | |
- match: '(\t| {4})(\t| {4})?' | |
captures: | |
1: meta.odd-tab | |
2: meta.even-tab | |
- match: '\b(m)\s*(?<!\\)([^\[\{\(A-Za-z0-9\s])(.*?)(?<!\\)(\\{2})*(\2)' | |
scope: string.regexp.find-m.perl | |
captures: | |
1: support.function.perl | |
2: punctuation.definition.string.perl | |
5: punctuation.definition.string.perl | |
- match: \b(m)\s*(?<!\\)\( | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.regexp.find-m-paren.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_parens_interpolated | |
- include: variable | |
- match: '\b(m)\s*(?<!\\)\{' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.regexp.find-m-brace.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_braces_interpolated | |
- include: variable | |
- match: '\b(m)\s*(?<!\\)\[' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.regexp.find-m-bracket.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_brackets_interpolated | |
- include: variable | |
- match: \b(m)\s*(?<!\\)\< | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.regexp.find-m-ltgt.perl | |
- match: \> | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_ltgt_interpolated | |
- include: variable | |
- match: '\b(s|tr|y)\s*([^A-Za-z0-9\s])(.*?)(?<!\\)(\\{2})*(\2)(.*?)(?<!\\)(\\{2})*(\2)' | |
scope: string.regexp.replace.perl | |
captures: | |
1: support.function.perl | |
2: punctuation.definition.string.perl | |
5: punctuation.definition.string.perl | |
8: punctuation.definition.string.perl | |
- match: \b(__FILE__|__LINE__|__PACKAGE__)\b | |
scope: constant.language.perl | |
- match: (?<!->)\b(continue|die|do|else|elsif|exit|for|foreach|goto|if|last|next|redo|return|select|unless|until|wait|while|switch|case|package|require|use|eval)\b | |
scope: keyword.control.perl | |
- match: \b(my|our|local)\b | |
scope: storage.modifier.perl | |
- match: '(?<!\w)\-[rwx0RWXOezsfdlpSbctugkTBMAC]\b' | |
scope: keyword.operator.filetest.perl | |
- match: \b(and|or|xor|as)\b | |
scope: keyword.operator.logical.perl | |
- match: (<=>| =>|->) | |
scope: keyword.operator.comparison.perl | |
- match: ((<<) *"HTML").*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.html.embedded.perl | |
- match: (^HTML$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:text.html.basic | |
- match: ((<<) *"XML").*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.xml.embedded.perl | |
- match: (^XML$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:text.xml | |
- match: ((<<) *"CSS").*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.css.embedded.perl | |
- match: (^CSS$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:source.css | |
- match: ((<<) *"JAVASCRIPT").*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.js.embedded.perl | |
- match: (^JAVASCRIPT$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:source.js | |
- match: ((<<) *"SQL").*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: source.sql.embedded.perl | |
- match: (^SQL$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:source.sql | |
- match: '((<<) *"([^"]*)").*\n?' | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: string.unquoted.heredoc.doublequote.perl | |
- match: (^\3$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.doublequote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: ((<<) *'HTML').*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.html.embedded.perl | |
- match: (^HTML$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: scope:text.html.basic | |
- match: ((<<) *'XML').*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.xml.embedded.perl | |
- match: (^XML$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: scope:text.xml | |
- match: ((<<) *'CSS').*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.css.embedded.perl | |
- match: (^CSS$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: scope:source.css | |
- match: ((<<) *'JAVASCRIPT').*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.js.embedded.perl | |
- match: (^JAVASCRIPT$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: scope:source.js | |
- match: ((<<) *'SQL').*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: source.sql.embedded.perl | |
- match: (^SQL$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: scope:source.sql | |
- match: '((<<) *''([^'']*)'').*\n?' | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: string.unquoted.heredoc.quote.perl | |
- match: (^\3$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.quote.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- match: '((<<) *`([^`]*)`).*\n?' | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.backtick.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: string.unquoted.heredoc.backtick.perl | |
- match: (^\3$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.backtick.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: ((<<) *HTML\b).*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.html.embedded.perl | |
- match: (^HTML$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:text.html.basic | |
- match: ((<<) *XML\b).*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: text.xml.embedded.perl | |
- match: (^XML$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:text.xml | |
- match: ((<<) *SQL\b).*\n? | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: source.sql.embedded.perl | |
- match: (^SQL$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: scope:source.sql | |
- match: '((<<) *((?![=\d\$ ])[^;,''"`\s)]*)).*\n?' | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
push: | |
- meta_content_scope: string.unquoted.heredoc.perl | |
- match: (^\3$) | |
captures: | |
0: punctuation.definition.string.perl | |
1: string.unquoted.heredoc.perl | |
2: punctuation.definition.heredoc.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: '\bqq\s*([^\(\{\[\<\w\s])' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.qq.perl | |
- match: \1 | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: '\bqx\s*([^''\(\{\[\<\w\s])' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.qx.perl | |
- match: \1 | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: \bqx\s*' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.qx.single-quote.perl | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- match: '"' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.double.perl | |
- match: '"' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: '\bqw?\s*([^\(\{\[\<\w\s])' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.q.perl | |
- match: \1 | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.single.perl | |
- match: "'" | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- match: '\\[''\\]' | |
scope: constant.character.escape.perl | |
- match: "`" | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.perl | |
- match: "`" | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- match: \bqq\s*\( | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.qq-paren.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_parens_interpolated | |
- include: variable | |
- match: '\bqq\s*\{' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.qq-brace.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_braces_interpolated | |
- include: variable | |
- match: '\bqq\s*\[' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.qq-bracket.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_brackets_interpolated | |
- include: variable | |
- match: \bqq\s*\< | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.qq-ltgt.perl | |
- match: \> | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_ltgt_interpolated | |
- include: variable | |
- match: \bqx\s*\( | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.qx-paren.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_parens_interpolated | |
- include: variable | |
- match: '\bqx\s*\{' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.qx-brace.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_braces_interpolated | |
- include: variable | |
- match: '\bqx\s*\[' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.qx-bracket.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_brackets_interpolated | |
- include: variable | |
- match: \bqx\s*\< | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.interpolated.qx-ltgt.perl | |
- match: \> | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_ltgt_interpolated | |
- include: variable | |
- match: \bqw?\s*\( | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.q-paren.perl | |
- match: \) | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_parens | |
- match: '\bqw?\s*\{' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.q-brace.perl | |
- match: '\}' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_braces | |
- match: '\bqw?\s*\[' | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.q-bracket.perl | |
- match: '\]' | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_brackets | |
- match: \bqw?\s*\< | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.quoted.other.q-ltgt.perl | |
- match: \> | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_ltgt | |
- match: ^__\w+__ | |
captures: | |
0: punctuation.definition.string.begin.perl | |
push: | |
- meta_scope: string.unquoted.program-block.perl | |
- match: $ | |
captures: | |
0: punctuation.definition.string.end.perl | |
pop: true | |
- match: '\b(format)\s+([A-Za-z]+)\s*=' | |
captures: | |
1: support.function.perl | |
2: entity.name.function.format.perl | |
push: | |
- meta_scope: meta.format.perl | |
- match: ^\.\s*$ | |
pop: true | |
- include: line_comment | |
- include: variable | |
- match: \b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|format|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|q|qq|quotemeta|qw|qx|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y|q|qw|qq|qx)\b | |
scope: support.function.perl | |
escaped_char: | |
- match: \\. | |
scope: constant.character.escape.perl | |
line_comment: | |
- match: ^((#).*$\n?) | |
scope: meta.comment.full-line.perl | |
captures: | |
1: comment.line.number-sign.perl | |
2: punctuation.definition.comment.perl | |
- match: (#).*$\n? | |
scope: comment.line.number-sign.perl | |
captures: | |
1: punctuation.definition.comment.perl | |
nested_braces: | |
- match: '\{' | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: '\}' | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_braces | |
nested_braces_interpolated: | |
- match: '\{' | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: '\}' | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_braces_interpolated | |
nested_brackets: | |
- match: '\[' | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: '\]' | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_brackets | |
nested_brackets_interpolated: | |
- match: '\[' | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: '\]' | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: escaped_char | |
- include: variable | |
- include: nested_brackets_interpolated | |
nested_ltgt: | |
- match: "<" | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: ">" | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: nested_ltgt | |
nested_ltgt_interpolated: | |
- match: "<" | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: ">" | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: variable | |
- include: nested_ltgt_interpolated | |
nested_parens: | |
- match: \( | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: \) | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- include: escaped_char | |
- include: nested_parens | |
nested_parens_interpolated: | |
- match: \( | |
captures: | |
1: punctuation.section.scope.perl | |
push: | |
- match: \) | |
captures: | |
1: punctuation.section.scope.perl | |
pop: true | |
- match: '\$(?=[^\s\w\''\{\[\(\<])' | |
comment: This is to prevent thinks like qr/foo$/ to treat $/ as a variable | |
scope: keyword.control.anchor.perl | |
- include: escaped_char | |
- include: variable | |
- include: nested_parens_interpolated | |
variable: | |
- match: '(\$)&(?![A-Za-z0-9_])' | |
scope: variable.other.regexp.match.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)`(?![A-Za-z0-9_])' | |
scope: variable.other.regexp.pre-match.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)''(?![A-Za-z0-9_])' | |
scope: variable.other.regexp.post-match.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)\+(?![A-Za-z0-9_])' | |
scope: variable.other.regexp.last-paren-match.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)"(?![A-Za-z0-9_])' | |
scope: variable.other.readwrite.list-separator.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)0(?![A-Za-z0-9_])' | |
scope: variable.other.predefined.program-name.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)[_ab\*\.\/\|,\\;#%=\-~^:?!\$<>\(\)\[\]@](?![A-Za-z0-9_])' | |
scope: variable.other.predefined.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$)[0-9]+(?![A-Za-z0-9_])' | |
scope: variable.other.subpattern.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '([\$\@\%](#)?)([a-zA-Zx7f-xff\$]|::)([a-zA-Z0-9_x7f-xff\$]|::)*\b' | |
scope: variable.other.readwrite.global.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
- match: '(\$\{)(?:[a-zA-Zx7f-xff\$]|::)(?:[a-zA-Z0-9_x7f-xff\$]|::)*(\})' | |
scope: variable.other.readwrite.global.perl | |
captures: | |
1: punctuation.definition.variable.perl | |
2: punctuation.definition.variable.perl | |
- match: '([\$\@\%](#)?)[0-9_]\b' | |
scope: variable.other.readwrite.global.special.perl | |
captures: | |
1: punctuation.definition.variable.perl |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment