Diffstat (limited to 'share/tinykate/syntax/perl.xml') (more/less context) (ignore whitespace changes)
-rw-r--r-- | share/tinykate/syntax/perl.xml | 603 |
1 files changed, 603 insertions, 0 deletions
diff --git a/share/tinykate/syntax/perl.xml b/share/tinykate/syntax/perl.xml new file mode 100644 index 0000000..0bb594d --- a/dev/null +++ b/share/tinykate/syntax/perl.xml @@ -0,0 +1,603 @@ +<?xml version="1.0" encoding="UTF-8"?> + <!DOCTYPE language SYSTEM "language.dtd"> + +<language name="Perl" version="1.02" kateversion="2.0" section="Scripts" extensions="*.pl;*.pm" mimetype="application/x-perl;text/x-perl"> + <highlighting> + <list name="keywords"> + <item> if </item> + <item> unless </item> + <item> else </item> + <item> elsif </item> + <item> while </item> + <item> until </item> + <item> for </item> + <item> each </item> + <item> foreach </item> + <item> next </item> + <item> last </item> + <item> break </item> + <item> continue </item> + <item> return </item> + <item> use </item> + <item> no </item> + <item> require </item> + <item> my </item> + <item> our </item> + <item> local </item> + <item> BEGIN </item> + <item> END </item> + <item>require</item> + <item> package </item> + <item> sub </item> + <item> do </item> + <item> __END__ </item> + <item> __DATA__ </item> + <item> __FILE__ </item> + <item> __LINE__ </item> + <item> __PACKAGE__ </item> + </list> + <list name="operators"> + <item> = </item> + <item> != </item> + <item> ~= </item> + <item> += </item> + <item> -= </item> + <item> *= </item> + <item> /= </item> + <item> **= </item> + <item> |= </item> + <item> ||= </item> + <item> &= </item> + <item> &&= </item> + <item> ?= </item> + <item> + </item> + <item> - </item> + <item> * </item> + <item> / </item> + <item> % </item> + <item> || </item> + <item> && </item> + <item> | </item> + <item> & </item> + <item> < </item> + <item> << </item> + <item> > </item> + <item> >> </item> + <item> ^ </item> + <item> -> </item> + <item> => </item> + <item> . </item> + <item> , </item> + <item> ; </item> + <item> :: </item> + <item> \ </item> + <item> and </item> + <item> or </item> + <item> not </item> + <item> eq </item> + <item> ne </item> + </list> + <list name="functions"> + <item>abs</item> + <item>accept</item> + <item>alarm</item> + <item>atan2</item> + <item>bind</item> + <item>binmode</item> + <item>bless</item> + <item>caller</item> + <item>chdir</item> + <item>chmod</item> + <item>chomp</item> + <item>chop</item> + <item>chown</item> + <item>chr</item> + <item>chroot</item> + <item>close</item> + <item>closedir</item> + <item>connect</item> + <item>cos</item> + <item>crypt</item> + <item>dbmclose</item> + <item>dbmopen</item> + <item>defined</item> + <item>delete</item> + <item>die</item> + <item>dump</item> + <item>endgrent</item> + <item>endhostent</item> + <item>endnetent</item> + <item>endprotoent</item> + <item>endpwent</item> + <item>endservent</item> + <item>eof</item> + <item>eval</item> + <item>exec</item> + <item>exists</item> + <item>exit</item> + <item>exp</item> + <item>fcntl</item> + <item>fileno</item> + <item>flock</item> + <item>fork</item> + <item>format</item> + <item>formline</item> + <item>getc</item> + <item>getgrent</item> + <item>getgrgid</item> + <item>getgrnam</item> + <item>gethostbyaddr</item> + <item>gethostbyname</item> + <item>gethostent</item> + <item>getlogin</item> + <item>getnetbyaddr</item> + <item>getnetbyname</item> + <item>getnetent</item> + <item>getpeername</item> + <item>getpgrp</item> + <item>getppid</item> + <item>getpriority</item> + <item>getprotobyname</item> + <item>getprotobynumber</item> + <item>getprotoent</item> + <item>getpwent</item> + <item>getpwnam</item> + <item>getpwuid</item> + <item>getservbyname</item> + <item>getservbyport</item> + <item>getservent</item> + <item>getsockname</item> + <item>getsockopt</item> + <item>glob</item> + <item>gmtime</item> + <item>goto</item> + <item>grep</item> + <item>hex</item> + <item>import</item> + <item>index</item> + <item>int</item> + <item>ioctl</item> + <item>join</item> + <item>keys</item> + <item>kill</item> + <item>last</item> + <item>lc</item> + <item>lcfirst</item> + <item>length</item> + <item>link</item> + <item>listen</item> + <item>localtime</item> + <item>lock</item> + <item>log</item> + <item>lstat</item> + <item>map</item> + <item>mkdir</item> + <item>msgctl</item> + <item>msgget</item> + <item>msgrcv</item> + <item>msgsnd</item> + <item>oct</item> + <item>open</item> + <item>opendir</item> + <item>ord</item> + <item>pack</item> + <item>package</item> + <item>pipe</item> + <item>pop</item> + <item>pos</item> + <item>print</item> + <item>printf</item> + <item>prototype</item> + <item>push</item> + <item>quotemeta</item> + <item>rand</item> + <item>read</item> + <item>readdir</item> + <item>readline</item> + <item>readlink</item> + <item>recv</item> + <item>redo</item> + <item>ref</item> + <item>rename</item> + <item>reset</item> + <item>return</item> + <item>reverse</item> + <item>rewinddir</item> + <item>rindex</item> + <item>rmdir</item> + <item>scalar</item> + <item>seek</item> + <item>seekdir</item> + <item>select</item> + <item>semctl</item> + <item>semget</item> + <item>semop</item> + <item>send</item> + <item>setgrent</item> + <item>sethostent</item> + <item>setnetent</item> + <item>setpgrp</item> + <item>setpriority</item> + <item>setprotoent</item> + <item>setpwent</item> + <item>setservent</item> + <item>setsockopt</item> + <item>shift</item> + <item>shmctl</item> + <item>shmget</item> + <item>shmread</item> + <item>shmwrite</item> + <item>shutdown</item> + <item>sin</item> + <item>sleep</item> + <item>socket</item> + <item>socketpair</item> + <item>sort</item> + <item>splice</item> + <item>split</item> + <item>sprintf</item> + <item>sqrt</item> + <item>srand</item> + <item>stat</item> + <item>study</item> + <item>sub</item> + <item>substr</item> + <item>symlink</item> + <item>syscall</item> + <item>sysread</item> + <item>sysseek</item> + <item>system</item> + <item>syswrite</item> + <item>tell</item> + <item>telldir</item> + <item>tie</item> + <item>time</item> + <item>times</item> + <item>truncate</item> + <item>uc</item> + <item>ucfirst</item> + <item>umask</item> + <item>undef</item> + <item>unlink</item> + <item>unpack</item> + <item>unshift</item> + <item>untie</item> + <item>utime</item> + <item>values</item> + <item>vec</item> + <item>wait</item> + <item>waitpid</item> + <item>wantarray</item> + <item>warn</item> + <item>write</item> + </list> + <list name="pragmas"> + <item>strict</item> + <item>english</item> + <item>warnings</item> + <item>vars</item> + <item>subs</item> + <item>utf8</item> + <item>sigtrap</item> + <item>locale</item> + <item>open</item> + <item>less</item> + <item>integer</item> + <item>filetest</item> + <item>constant</item> + <item>bytes</item> + <item>diagnostics</item> + </list> + <contexts> + <context attribute="Normal Text" name="default" lineEndContext="#stay" name="normal"> + <RegExpr attribute="Keyword" context="#stay" String="^#!\/.*" /> + <RegExpr attribute="Keyword" context="data_handle" String="^__DATA__" /> + <RegExpr attribute="Keyword" context="end_handle" String="^__END__" /> + <keyword attribute="Keyword" context="#stay" String="keywords" /> + <keyword attribute="Operator" context="#stay" String="operators" /> + <keyword attribute="Function" context="#stay" String="functions" /> + <keyword attribute="Pragma" context="#stay" String="pragmas" /> + <RegExpr attribute="Comment" context="comment" String="#" /> + <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" /> + <RegExpr attribute="Keyword" context="sub_name_def" String="\s*sub\s+" /> + + <HlCOct attribute="Octal" context="slash_safe_escape" /> + <HlCHex attribute="Hex" context="slash_safe_escape" /> + <Float attribute="Float" context="slash_safe_escape" /> + <Int attribute="Decimal" context="slash_safe_escape" /> + + <RegExpr attribute="Normal Text" context="#stay" String="\\["']" /> + <Detect2Chars attribute="Normal Text" context="#stay" char="&" char1="'" /> + <DetectChar attribute="String (interpolated)" context="ip_string" char="""/> + <DetectChar attribute="String" context="string" char="'"/> + <AnyChar attribute="Operator" context="#stay" String="&\" /> + + <RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+" /> + <RegExpr attribute="Special Variable" context="var_detect" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" /> + <RegExpr attribute="Special Variable" context="var_detect" String="[%\$](?:INC\b|ENV\b|SIG\b)" /> + <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" /> + <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" /> + <RegExpr attribute="Special Variable" context="slash_safe_escape" String="\$[^a-zA-Z0-9\s{][A-Z]?" /> + <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]\{[\w_]+\}" /> + <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]" /> + <RegExpr attribute="Data Type" context="var_detect" String="\*[a-zA-Z_]+" /> + + <RegExpr attribute="Keyword" context="#stay" String="<[A-Z0-9_]+>" /> + <RegExpr attribute="Keyword" context="#stay" String="\s*<<\s*["']?[A-Z0-9_\-]+["']?" /> + <RegExpr attribute="Normal Text" context="#stay" String="\s*[)}]\s*/" /> + <RegExpr attribute="Normal Text" context="sub_name_def" String="\w+::" /> + <RegExpr attribute="Normal Text" context="#stay" String="\w+[=]" /> + + <StringDetect attribute="String (interpolated)" context="ip_string_2" String="qq(" insensitive="FALSE" /> + <StringDetect attribute="String (interpolated)" context="ip_string_3" String="qq{" insensitive="FALSE" /> + <StringDetect attribute="String (interpolated)" context="ip_string_4" String="qq[" insensitive="FALSE" /> + <StringDetect attribute="String (interpolated)" context="ip_string_5" String="qq<" insensitive="FALSE" /> + <RegExpr attribute="String (interpolated)" context="#stay" String="qq([^a-zA-Z0-9_\s[\]{}()]).*\1" minimal="true" /> + + <Detect2Chars attribute="String" context="string_2" char="q" char1="(" /> + <Detect2Chars attribute="String" context="string_3" char="q" char1="{" /> + <Detect2Chars attribute="String" context="string_4" char="q" char1="[" /> + <Detect2Chars attribute="String" context="string_5" char="q" char1="<" /> + <RegExpr attribute="String" context="#stay" String="q([^a-zA-Z0-9_\s[\]{}()]).+\1" /> + + <StringDetect attribute="Normal Text" context="quote_word" String="qw/" /> + + <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)\([^)]*\)\s*\([^)]*\)" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)\{[^}]*\}\s*\{[^}]*\}" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)\[[^}]*\]\s*\[[^\]]*\]" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:s|tr|y)([^a-zA-Z0-9_\s[\]{}()]).*\1.*\1" minimal="true"/> + + <Detect2Chars attribute="Pattern" context="op_s_pattern" char="s" char1="{" /> + + <RegExpr attribute="Normal Text" context="#stay" String="[\w_]{3,}[[{:\-.;,]" /> + <RegExpr attribute="Normal Text" context="#stay" String="[\w_]([mqsy]|q[rx])\(" /> + + <RegExpr attribute="Pattern" context="pattern_slash" String="(?:m|q[rx])\/" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])\([^)]*\)" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])\{[^}]*\}" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])\[[^\]]*\]" /> + <RegExpr attribute="Pattern" context="#stay" String="(?:m|q[rx])([^a-zA-Z0-9_-\s[\]{}()/]).+\1" minimal="true"/> + <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*/" /> + <RegExpr attribute="Normal Text" context="#stay" String="[<>"':]/" /> + <DetectChar attribute="Pattern" context="pattern_slash" char="/" /> + <RegExpr attribute="Operator" context="#stay" String="-[rwxoRWXOeszfdlpSbctugkTBMAC]" /> + </context> + <context attribute="Pod" lineEndContext="#stay" name="pod"> + <LineContinue attribute="Pod" context="#stay" /> + <RegExpr attribute="Pod" context="#stay" String="[^\=]*" /> + <RegExpr attribute="Pod" context="#pop" String="^\=cut.*$" /> + </context> + <context attribute="String (interpolated)" lineContext="#stay" name="ipstring_internal"> + <RegExpr attribute="String (interpolated)" context="#stay" String="\\[\$@%]" /> + <RegExpr attribute="Special Variable" context="#stay" String="\$[0-9]+" /> + <RegExpr attribute="Data Type" context="var_detect" String="\$+#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> + <RegExpr attribute="Data Type" context="var_detect" String="[@%][\$a-zA-Z_]+[a-zA-Z0-9_]*" /> + <RegExpr attribute="String Special Character" context="#stay" String="\\[UuLlEtnaefr]" /> + </context> + <context attribute="Pattern" lineEndContext="#stay" name="regex_pattern_internal"> + <RegExpr attribute="Comment" context="#stay" String="^\s*#.*$" /> + <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[anDdSsWw]" /> + <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[ABbEGLlNUuQdQZz]" /> + <RegExpr attribute="Special Variable" context="#stay" String="\\[\d]+" /> + <RegExpr attribute="Pattern" context="#stay" String="\\." /> + + <RegExpr attribute="Data Type" context="#stay" String="[\$@]#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> + <Detect2Chars attribute="Pattern Internal Operator" context="pat_ext" char="(" char1="?" /> + <DetectChar attribute="Pattern Internal Operator" context="pat_char_class" char="[" /> + <RegExpr attribute="Pattern Internal Operator" context="#stay" String="[()?^*+|]" /> + <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" /> + <DetectChar attribute="Pattern Internal Operator" context="#stay" char="$" /> + <RegExpr attribute="Comment" context="#stay" String="\s{3,}#.*$" /> + </context> + <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string"> + <LineContinue attribute="String (interpolated)" context="#stay"/> + <Detect2Chars attribute="String" context="#stay" char="\" char1="\" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1=""" /> + <DetectChar attribute="String (interpolated)" context="#pop" char="""/> + <IncludeRules context="2" /> + </context> + <context attribute="String" lineEndContext="#stay" name="string"> + <LineContinue attribute="String" context="#stay"/> + <Detect2Chars attribute="String" context="#stay" char="\" char1="\" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1="'" /> + <DetectChar attribute="String" context="#pop" char="'" /> + </context> + <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_2"> + <LineContinue attribute="String (interpolated)" context="#stay" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="(" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1=")" /> + <RangeDetect attribute="String (interpolated)" context="#stay" char="(" char1=")" /> + <DetectChar attribute="String (interpolated)" context="#pop" char=")" /> + <IncludeRules context="2" /> + </context> + <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_3"> + <LineContinue attribute="String (interpolated)" context="#stay" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="{" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="}" /> + <RangeDetect attribute="String (interpolated)" context="#stay" char="{" char1="}" /> + <DetectChar attribute="String (interpolated)" context="#pop" char="}" /> + <IncludeRules context="2" /> + </context> + <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_4"> + <LineContinue attribute="String (interpolated)" context="#stay" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="[" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="]" /> + <RangeDetect attribute="String (interpolated)" context="#stay" char="[" char1="]" /> + <DetectChar attribute="String (interpolated)" context="#pop" char="]" /> + <IncludeRules context="2" /> + </context> + <context attribute="String (interpolated)" lineEndContext="#stay" name="ip_string_5"> + <LineContinue attribute="String (interpolated)" context="#stay" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1="<" /> + <Detect2Chars attribute="String (interpolated)" context="#stay" char="\" char1=">" /> + <RangeDetect attribute="String (interpolated)" context="#stay" char="<" char1=">" /> + <DetectChar attribute="String (interpolated)" context="#pop" char=">" /> + <IncludeRules context="2" /> + </context> + <context attribute="String" lineEndContext="#stay" name="string_2"> + <LineContinue attribute="String" context="#stay" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1="(" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1=")" /> + <RangeDetect attribute="String" context="#stay" char="(" char1=")" /> + <DetectChar attribute="String" context="#pop" char=")" /> + </context> + <context attribute="String" lineEndContext="#stay" name="string_3"> + <Detect2Chars attribute="String" context="#stay" char="\" char1="{" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1="}" /> + <RangeDetect attribute="String" context="#stay" char="{" char1="}" /> + <LineContinue attribute="String" context="#stay" /> + <DetectChar attribute="String" context="#pop" char="}" /> + </context> + <context attribute="String" lineEndContext="#stay" name="string_4"> + <LineContinue attribute="String" context="#stay" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1="[" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1="]" /> + <RangeDetect attribute="String" context="#stay" char="[" char1="]" /> + <DetectChar attribute="String" context="#pop" char="]" /> + </context> + <context attribute="String" lineEndContext="#stay" name="string_5"> + <LineContinue attribute="String" context="#stay" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1="<" /> + <Detect2Chars attribute="String" context="#stay" char="\" char1=">" /> + <RangeDetect attribute="String" context="#stay" char="<" char1=">" /> + <DetectChar attribute="String" context="#pop" char=">" /> + </context> + <context attribute="Pattern" lineEndContext="#stay" name="op_s_pattern"> + <LineContinue attribute="Pattern" context="#stay" /> + <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" /> + <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="{" /> + <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="}" /> + <IncludeRules context="3" /> + <DetectChar attribute="Pattern" context="op_s_replace" char="}" /> + </context> + <context attribute="Normal Text" lineEndContext="#stay" name="op_s_replace"> + <LineContinue attribute="Normal Text" context="#stay" /> + <RegExpr attribute="Normal Text" context="#stay" String="["'\/]" /> + <RegExpr attribute="Comment" context="#stay" String="\s*#.*$" /> + <RegExpr attribute="Special Variable" context="#stay" String="\$[0-9]+" /> + <RegExpr attribute="Data Type" context="#stay" String="\$+#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> + <RegExpr attribute="Data Type" context="#stay" String="[@%][\$a-zA-Z_]+[a-zA-Z0-9_]*" /> + <keyword attribute="Keyword" context="0" String="keywords" /> + <keyword attribute="Operator" context="0" String="operators" /> + <keyword attribute="Function" context="0" String="functions" /> + <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="{" /> + <Detect2Chars attribute="Pattern" context="#stay" char="\" char1="}" /> + <DetectChar attribute="Pattern" context="#stay" char="{" /> + <DetectChar attribute="Pattern" context="#pop#pop" char="}" /> + </context> + <context attribute="Normal Text" lineEndContext="#stay" name="quote_word"> + <LineContinue attribute="Normal Text" context="#stay" /> + <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="/" /> + <DetectChar attribute="Normal Text" context="#pop" char="/" /> + <RegExpr attribute="Data Type" context="#stay" String="\$+#?[a-zA-Z_]+[a-zA-Z0-9_]*" /> + <RegExpr attribute="Data Type" context="#stay" String="[@%][\$a-zA-Z_]+[a-zA-Z0-9_]*" /> + </context> + <context attribute="Pattern" lineEndContext="#stay" name="pattern_slash"> + <RegExpr attribute="Comment" context="#stay" String="^\s*#.*$" /> + <LineContinue attribute="Pattern" context="#stay" /> + <IncludeRules context="3" /> + <DetectChar attribute="Pattern" context="#pop" char="/" /> + </context> + <context attribute="Data" lineEndContext="#stay" name="data_handle"> + <LineContinue attribute="Data" context="#stay"/> + <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" /> + <RegExpr attribute="Keyword" context="end_handle" String="^__END__" /> + </context> + <context attribute="Nothing" lineEndContext="#stay" name="end_handle"> + <LineContinue attribute="Nothing" context="#stay" /> + <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" /> + <RegExpr attribute="Keyword" context="data_handle" String="^__DATA__" /> + </context> + <context attribute="Normal Text" lineEndContext="#stay" name="var_detect" fallthrough="true" fallthroughContext="#pop"> + <RegExpr attribute="Data Type" context="#stay" String="[\w_]+" /> + <AnyChar attribute="Normal Text" context="#pop" String="[;,*=!&" /> + <RegExpr attribute="Normal Text" context="#stay" String="\s*[})]?\s*/" /> + <DetectChar attribute="Operator" context="#stay" char="'" /> + <RegExpr attribute="Normal Text" context="in_hash_elem" String="\s*\{" /> + <RegExpr attribute="Operator" context="#stay" String="(\+\+|--)" /> + <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" /> + <RegExpr attribute="Normal Text" context="#stay" String="\s*\}?\s*->\s*" /> + <RegExpr attribute="Normal Text" context="in_hash_elem" String="\s*\}\s*\{\s*" /> + <RegExpr attribute="Data Type" context="#stay" String="[\$@%]" /> + </context> + <context attribute="Normal Text" lineEndContext="#pop" name="slash_safe_escape" fallthrough="true" fallthroughContext="#pop"> + <RegExpr attribute="Normal Text" context="#pop" String="\s*[)}\]]?\s*/" /> + <keyword attribute="Keyword" context="#pop" String="keywords" /> + </context> + <context attribute="Normal Text" lineEndContext="#pop" name="sub_name_def"> + <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+" /> + <DetectChar attribute="Data Type" context="var_detect" char="$" /> + <RegExpr attribute="Normal Text" context="sub_arg_definition" String="\s*\(" /> + <AnyChar attribute="Normal Text" context="#pop" String=";{" /> + </context> + <context attribute="Normal Text" lineEndContext="#stay" name="package_qualified_blank"> + <RegExpr attribute="Normal Text" context="#pop" String="[\w_]+" /> + </context> + <context attribute="Normal Text" lineEndContext="#pop" name="in_hash_elem"> + <DetectChar attribute="String (interpolated)" context="ip_string" char=""" /> + <DetectChar attribute="String" context="string" char="'" /> + <RegExpr attribute="String" context="#stay" String="\s*[\w_]+\s*(?![\w_\(])" /> + <RegExpr attribute="Special Variable" context="#stay" String="\$[0-9]+" /> + <RegExpr attribute="Special Variable" context="#stay" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" /> + <RegExpr attribute="Special Variable" context="#stay" String="[%\$](?:INC\b|ENV\b|SIG\b)" /> + <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" /> + <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" /> + <RegExpr attribute="Special Variable" context="#stay" String="\$[^a-zA-Z0-9\s{][A-Z]" /> + <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]" /> + <RegExpr attribute="Normal Text" context="#pop" String="\s*[\w_]+\s*\(" /> + <DetectChar attribute="Normal Text" context="#pop" char="}" /> + </context> + <context attribute="Normal Text" lineEndContext="#stay" name="sub_arg_definition" fallthrough="true" fallthroughContext="#pop#pop"> + <RegExpr attribute="Data Type" context="#stay" String="[\$@%]" /> + <DetectChar attribute="Normal Text" context="slash_safe_escape" char=")" /> + </context> + <context attribute="Pattern Internal Operator" lineEndContext="#stay" name="pat_ext"> + <RegExpr attribute="Comment" context="#pop" String="\#[^)]*" /> + <RegExpr attribute="Pattern Internal Operator" context="#pop" String="[:=!><]+" /> + <DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" /> + </context> + <context attribute="Pattern Character Class" lineEndContext="#stay" name="pat_char_class"> + <LineContinue attribute="Pattern Character Class" context="#stay" /> + <DetectChar attribute="Pattern Internal Operator" context="#stay" char="^" /> + <Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="\" /> + <Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="]" /> + <RangeDetect attribute="Pattern Character Class" context="#stay" char="[" char1="]" /> + <DetectChar attribute="Pattern Internal Operator" context="#pop" char="]" /> + </context> + <context attribute="Comment" name="comment" lineEndContext="#pop"> + <RegExpr attribute="Note" context="#stay" String="(?:FIXME|TODO|NOTE):?" /> + </context> + </contexts> + <itemDatas> + <itemData name="Normal Text" defStyleNum="dsNormal" /> + <itemData name="Keyword" defStyleNum="dsKeyword" /> + <itemData name="Pragma" defStyleNum="dsKeyword" /> + <itemData name="Function" defStyleNum="dsNormal" color="#000080" selColor="#ffffff" bold="0" italic="0"/> + <itemData name="Operator" defStyleNum="dsKeyword" /> + <itemData name="Data Type" defStyleNum="dsDataType" /> + <itemData name="Special Variable" defStyleNum="dsDataType" color="#C00000" selColor="#C00000" bold="0" italic="0" /> + <itemData name="Decimal" defStyleNum="dsDecVal" /> + <itemData name="Octal" defStyleNum="dsBaseN" /> + <itemData name="Hex" defStyleNum="dsBaseN" /> + <itemData name="Float" defStyleNum="dsFloat" /> + <itemData name="String" defStyleNum="dsString" color="#FF6C6C" selColor="#FF6C6C" bold="0" italic="0" /> + <itemData name="String (interpolated)" defStyleNum="dsString" /> + <itemData name="String Special Character" defStyleNum="dsChar" /> + <itemData name="Pattern" defStyleNum="dsOthers" /> + <itemData name="Pattern Internal Operator" defStyleNum="dsChar" /> + <itemData name="Pattern Character Class" defStyleNum="dsBaseN" /> + <itemData name="Data" defStyleNum="dsNormal" /> + <itemData name="Comment" defStyleNum="dsComment" /> + <itemData name="Pod" defStyleNum="dsComment" /> + <itemData name="Nothing" defStyleNum="dsComment" /> + <itemData name="Note" defStyleNum="dsDecVal" color="#0000FF" selColor="#ffffff" bold="1" italic="0"/> + </itemDatas> + </highlighting> + <general> + <comments> + <comment name="singleLine" start="#" /> + </comments> + <keywords casesensitive="1" /> + </general> + </language> + |