medit/moo/mooedit/language-specs/perl.lang

296 lines
9.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<language id="perl" _name="Perl" version="2.0" _section="Scripts">
<metadata>
<property name="mimetypes">text/x-perl;application/x-perl</property>
<property name="globs">*.pl;*.pm;*.al;*.perl</property>
<property name="line-comment-start">#</property>
</metadata>
<styles>
<style id="comment" name="Comment" map-to="def:comment"/>
<style id="data-type" name="Data Type" map-to="def:data-type"/>
<style id="string" name="String" map-to="def:string"/>
<style id="keyword" name="Keyword" map-to="def:keyword"/>
<style id="others" name="Others"/>
</styles>
<definitions>
<context id="pod" style-ref="comment">
<start>^=[a-z]</start>
<end>^=cut</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="string" style-ref="string">
<start>"</start>
<end>"</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="string2" style-ref="string">
<start>'</start>
<end>'</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="string3" style-ref="string">
<start>`</start>
<end>`</end>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="line-comment" style-ref="comment" end-at-line-end="true">
<start>[^\$]#|^#</start>
<include>
<context ref="def:escape"/>
<context ref="def:line-continue"/>
</include>
</context>
<context id="variables" style-ref="data-type">
<match>[$@%][$]?[a-zA-Z_][a-zA-Z0-9_]*</match>
</context>
<context id="function-call" style-ref="others">
<match>&amp;[a-zA-Z_][a-zA-Z0-9_]*</match>
</context>
<context id="method-call" style-ref="others">
<match>-&gt;[a-zA-Z_][a-zA-Z0-9_]*</match>
</context>
<context id="keywords" style-ref="keyword">
<keyword>eq</keyword>
<keyword>ne</keyword>
<keyword>not</keyword>
<keyword>or</keyword>
<keyword>read</keyword>
<keyword>keys</keyword>
<keyword>chomp</keyword>
<keyword>if</keyword>
<keyword>else</keyword>
<keyword>elsif</keyword>
<keyword>unless</keyword>
<keyword>open</keyword>
<keyword>close</keyword>
<keyword>split</keyword>
<keyword>for</keyword>
<keyword>while</keyword>
<keyword>foreach</keyword>
<keyword>exit</keyword>
<keyword>sub</keyword>
<keyword>print</keyword>
<keyword>use</keyword>
<keyword>require</keyword>
<keyword>elseif</keyword>
<keyword>continue</keyword>
<keyword>until</keyword>
<keyword>do</keyword>
<keyword>last</keyword>
<keyword>next</keyword>
<keyword>redo</keyword>
<keyword>goto</keyword>
<keyword>chop</keyword>
<keyword>chr</keyword>
<keyword>crypt</keyword>
<keyword>hex</keyword>
<keyword>index</keyword>
<keyword>lc</keyword>
<keyword>lcfirst</keyword>
<keyword>length</keyword>
<keyword>oct</keyword>
<keyword>ord</keyword>
<keyword>reverse</keyword>
<keyword>rindex</keyword>
<keyword>printf</keyword>
<keyword>sprintf</keyword>
<keyword>substr</keyword>
<keyword>uc</keyword>
<keyword>ucfirst</keyword>
<keyword>pos</keyword>
<keyword>quotemeta</keyword>
<keyword>study</keyword>
<keyword>abs</keyword>
<keyword>atan2</keyword>
<keyword>cos</keyword>
<keyword>exp</keyword>
<keyword>int</keyword>
<keyword>log</keyword>
<keyword>rand</keyword>
<keyword>sin</keyword>
<keyword>sqrt</keyword>
<keyword>srand</keyword>
<keyword>pop</keyword>
<keyword>push</keyword>
<keyword>shift</keyword>
<keyword>splice</keyword>
<keyword>unshift</keyword>
<keyword>grep</keyword>
<keyword>join</keyword>
<keyword>map</keyword>
<keyword>sort</keyword>
<keyword>unpack</keyword>
<keyword>pack</keyword>
<keyword>delete</keyword>
<keyword>each</keyword>
<keyword>exists</keyword>
<keyword>values</keyword>
<keyword>binmode</keyword>
<keyword>closedir</keyword>
<keyword>dbmclose</keyword>
<keyword>dbmopen</keyword>
<keyword>die</keyword>
<keyword>eof</keyword>
<keyword>fileno</keyword>
<keyword>flock</keyword>
<keyword>format</keyword>
<keyword>getc</keyword>
<keyword>readdir</keyword>
<keyword>rewinddir</keyword>
<keyword>seek</keyword>
<keyword>seekdir</keyword>
<keyword>select</keyword>
<keyword>syscall</keyword>
<keyword>sysread</keyword>
<keyword>sysseek</keyword>
<keyword>syswrite</keyword>
<keyword>tell</keyword>
<keyword>telldir</keyword>
<keyword>truncate</keyword>
<keyword>warn</keyword>
<keyword>write</keyword>
<keyword>vec</keyword>
<keyword>chdir</keyword>
<keyword>chmod</keyword>
<keyword>chown</keyword>
<keyword>chroot</keyword>
<keyword>fcntl</keyword>
<keyword>glob</keyword>
<keyword>ioctl</keyword>
<keyword>link</keyword>
<keyword>lstat</keyword>
<keyword>mkdir</keyword>
<keyword>opendir</keyword>
<keyword>readlink</keyword>
<keyword>rename</keyword>
<keyword>rmdir</keyword>
<keyword>stat</keyword>
<keyword>symlink</keyword>
<keyword>umask</keyword>
<keyword>unlink</keyword>
<keyword>utime</keyword>
<keyword>caller</keyword>
<keyword>dump</keyword>
<keyword>eval</keyword>
<keyword>return</keyword>
<keyword>wantarray</keyword>
<keyword>import</keyword>
<keyword>local</keyword>
<keyword>my</keyword>
<keyword>our</keyword>
<keyword>package</keyword>
<keyword>defined</keyword>
<keyword>formline</keyword>
<keyword>prototype</keyword>
<keyword>reset</keyword>
<keyword>scalar</keyword>
<keyword>undef</keyword>
<keyword>alarm</keyword>
<keyword>exec</keyword>
<keyword>fork</keyword>
<keyword>getpgrp</keyword>
<keyword>getppid</keyword>
<keyword>getpriority</keyword>
<keyword>kill</keyword>
<keyword>pipe</keyword>
<keyword>setpgrp</keyword>
<keyword>setpriority</keyword>
<keyword>sleep</keyword>
<keyword>system</keyword>
<keyword>times</keyword>
<keyword>wait</keyword>
<keyword>waitpid</keyword>
<keyword>no</keyword>
<keyword>bless</keyword>
<keyword>ref</keyword>
<keyword>tie</keyword>
<keyword>tied</keyword>
<keyword>untie</keyword>
<keyword>accept</keyword>
<keyword>bind</keyword>
<keyword>connect</keyword>
<keyword>getpeername</keyword>
<keyword>getsockname</keyword>
<keyword>getsockopt</keyword>
<keyword>listen</keyword>
<keyword>recv</keyword>
<keyword>send</keyword>
<keyword>setsockopt</keyword>
<keyword>shutdown</keyword>
<keyword>socket</keyword>
<keyword>socketpair</keyword>
<keyword>msgctl</keyword>
<keyword>msgget</keyword>
<keyword>msgrcv</keyword>
<keyword>msgsnd</keyword>
<keyword>semctl</keyword>
<keyword>semget</keyword>
<keyword>semop</keyword>
<keyword>shmctl</keyword>
<keyword>shmget</keyword>
<keyword>shmread</keyword>
<keyword>shmwrite</keyword>
<keyword>endgrent</keyword>
<keyword>endhostent</keyword>
<keyword>endnetent</keyword>
<keyword>endpwent</keyword>
<keyword>getgrent</keyword>
<keyword>getgrgid</keyword>
<keyword>getgrnam</keyword>
<keyword>getlogin</keyword>
<keyword>getpwent</keyword>
<keyword>getpwnam</keyword>
<keyword>getpwuid</keyword>
<keyword>setgrent</keyword>
<keyword>setpwent</keyword>
<keyword>endprotoent</keyword>
<keyword>endservent</keyword>
<keyword>gethostbyaddr</keyword>
<keyword>gethostbyname</keyword>
<keyword>gethostent</keyword>
<keyword>getnetbyaddr</keyword>
<keyword>getnetbyname</keyword>
<keyword>getnetent</keyword>
<keyword>getprotobyname</keyword>
<keyword>getprotobynumber</keyword>
<keyword>getprotoent</keyword>
<keyword>getservbyname</keyword>
<keyword>getservbyport</keyword>
<keyword>getservent</keyword>
<keyword>sethostent</keyword>
<keyword>setnetent</keyword>
<keyword>setprotoent</keyword>
<keyword>setservent</keyword>
<keyword>gmtime</keyword>
<keyword>localtime</keyword>
<keyword>time</keyword>
</context>
<context id="perl">
<include>
<context ref="pod"/>
<context ref="string"/>
<context ref="string2"/>
<context ref="string3"/>
<context ref="line-comment"/>
<context ref="variables"/>
<context ref="function-call"/>
<context ref="method-call"/>
<context ref="keywords"/>
</include>
</context>
</definitions>
</language>