home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / con2v766.zip / colore01.zip / includes / baselng / perl.hrc < prev   
Text File  |  2000-03-11  |  17KB  |  431 lines

  1. <!--
  2.     Perl Syntax Description
  3. With help of:
  4.     alexander smishlajev <als@turnhere.com>
  5.     JULY <lubimovi@usa.net>
  6.     Timur Safin <timur@lanit.ru>
  7.     cail: i think we've made it? hah?
  8. -->
  9.  
  10. <Define Name="PlString"  Value="dStrings">
  11. <Define Name="PlLinear"  Value="dCommentsEx">
  12. <Define Name="PlComment" Value="dComments">
  13. <Define Name="PlPod"     Value="dCommentsEx">
  14. <Define Name="PlSymb"    Value="dSymbols">
  15. <Define Name="PlWord"    Value="dResWords">
  16. <Define Name="PlOther"   Value="dLabels">
  17. <Define Name="PlOther1"  Value="dCommentsEx">
  18. <Define Name="PlVar"     Value="dDefText">
  19. <Define Name="PlVarEx"   Value="dVars">
  20. <Define Name="PlNumb"    Value="dNumbers">
  21. <Define Name="PlPodSym"  Value="dSymbols">
  22. <Define Name="PlPodText" Value="dDefText">
  23. <Define Name="PlPodSel"  Value="dStrings">
  24.  
  25. <Scheme Name="mPerlVars">
  26.    <RegExp Start="/(\$\#[\w][\w_\']*)\B/" Color0="PlVar">
  27.    <RegExp Start="/([\$\@\%][\w][\w_']*)\B/" Color0="PlVar">
  28.    <RegExp Start="/(\*[^\W\d][\w_']*)\B/" Color0="PlVar">
  29.    <RegExp Start="/(\$ \W )/x" Color0="PlVar">
  30. </Scheme>
  31.  
  32. <Scheme Name="mPerlVarsEx">
  33.    <RegExp Start="/(\$\#[\w]([\w_\']|(::))*)\B/" Color0="PlVarEx" Color2="PlSymb">
  34.  
  35.    <RegExp Start="/([\$\@][\$\@\%]*[\w]([\w_']|(::))*)\B/" Color0="PlVarEx" Color2="PlSymb">
  36.    <RegExp Start="/([\$\@][\$\@\%]*\{[^\}]+\})/" Color0="PlVarEx">
  37.  
  38.    <RegExp Start="/^(=(head[12])|(over)|(item)|(back)|(end)|(cut).*$)/" Color0="PlPod">
  39. </Scheme>
  40.  
  41. <Scheme Name="mPerlBraces">
  42.    <!-- Brackets and braces -->
  43.    <KeyWords MatchCase="True" Color="PlSymb">
  44.      <Symb Name="{"><Symb Name="}">
  45.      <Symb Name="("><Symb Name=")">
  46.      <Symb Name="["><Symb Name="]">
  47.    </KeyWords>
  48. </Scheme>
  49.  
  50. <Scheme Name="PerlInterpolatedString">
  51.    <Include Scheme="mNetAddresses">
  52.    <RegExp Start="/\b(0x|X[\da-fA-F]+)\B/" Color0="PlNumb">
  53.    <Include Scheme="mFloatNumb">
  54.    <Include Scheme="mDecNumb">
  55.    <Include Scheme="mPerlVarsEx">
  56.    <RegExp Start='/(\\[^xX0-7])/' Color0="PlVarEx">
  57.    <RegExp Start='/(\\x|X[\da-fA-F]{1,2})/' Color0="PlVarEx">
  58.    <RegExp Start='/(\\([0-7]{1,3}))/' Color0="PlVarEx">
  59. </Scheme>
  60. <Scheme Name="PerlString">
  61.    <!-- Non-interpolated string ignore all escape-sequences
  62.    except \' and \\ -->
  63.    <RegExp Start="/(\\['\\\/])/" Color0="PlVarEx">
  64. </Scheme>
  65.  
  66. <Scheme Name="PerlString4q">
  67.    <Block  Scheme="PerlString4q" Start="/(\()/" End="/(\))/"
  68.            Color1="PlVarEx" Color2="PlVarEx">
  69.    <Block  Scheme="PerlString4q" Start="/(\{)/" End="/(\})/"
  70.            Color1="PlVarEx" Color2="PlVarEx">
  71.    <Block  Scheme="PerlString4q" Start="/(\[)/" End="/(\])/"
  72.            Color1="PlVarEx" Color2="PlVarEx">
  73.    <RegExp Start="/(\\['\\\/])/" Color0="PlVarEx">
  74. </Scheme>
  75. <Scheme Name="PerlInterpolatedString4q">
  76.    <Block  Scheme="PerlInterpolatedString4q" Start="/(\()/" End="/(\))/"
  77.            Color1="PlVarEx" Color2="PlVarEx">
  78.    <Block  Scheme="PerlInterpolatedString4q" Start="/(\{)/" End="/(\})/"
  79.            Color1="PlVarEx" Color2="PlVarEx">
  80.    <Block  Scheme="PerlInterpolatedString4q" Start="/(\[)/" End="/(\])/"
  81.            Color1="PlVarEx" Color2="PlVarEx">
  82.    <Include Scheme="PerlInterpolatedString">
  83. </Scheme>
  84.  
  85. <Scheme Name="PerlSubstElements">
  86.    <RegExp Start="/\s{2,}(\#.*$)/" Color0="PlComment">
  87.    <Include Scheme="PerlInterpolatedString">
  88. </Scheme>
  89. <Scheme Name="PerlSubstBlock">
  90.    <Block Start="/\b(s|(tr)|y \()/x" End="/(\)\()/x"
  91.           Scheme="PerlSubstElements" Color1="dStringsEx" Color3="dStringsEx">
  92.    <Block Start="/\b(s|(tr)|y \{)/x" End="/(\}\{)/x"
  93.           Scheme="PerlSubstElements" Color1="dStringsEx" Color3="dStringsEx">
  94.    <Block Start="/\b(s|(tr)|y \[)/x" End="/(\]\[)/x"
  95.           Scheme="PerlSubstElements" Color1="dStringsEx" Color4="dStringsEx">
  96.    <Block Start="/\b(s|(tr)|y ([^\w\s]))/x" End="/(\y3)/x"
  97.           Scheme="PerlSubstElements" Color1="dStringsEx" Color4="dStringsEx">
  98.    <Include Scheme="PerlSubstElements">
  99. </Scheme>
  100.  
  101. <Scheme Name="PerlPod">
  102.    <Include Scheme="mNetAddresses">
  103.    <RegExp Start="/^(=(pod)|(cut))/" Color0="PlPodSym">
  104.    <RegExp Start="/^(=head[12])\s(.*)$/" Color0="PlPodSym" Color1="PlPodText">
  105.    <RegExp Start="/^(=(item)|(back)|(end))/" Color0="PlPodSym">
  106.    <RegExp Start="/^(=over)\s+(\d+)/" Color0="PlPodSym" Color1="dNumbers">
  107.    <RegExp Start="/([IBSCLFXZE]<.*?>)/" Color0="PlPodSel">
  108. </Scheme>
  109.  
  110. <Scheme Name="Perl">
  111.    <!-- Timur: hack against Ada maniacs -->
  112.    <RegExp Start="/\c(&|(\w+)'[\w_']+)\B/" Color0="PlVar">
  113.    <!-- Linear Comments -->
  114.    <Block  Start="/\#/" End="/$/" Color0="PlComment" Scheme="Comment">
  115.    <!-- Variables -->
  116.    <Include Scheme="mPerlVars">
  117.  
  118.    <Block  Start="/(format)(.*?)=/"  End="/^\./" Scheme="PerlInterpolatedString" Color0="PlString" Color1="PlWord" Color2="White">
  119.    <Block  Start="/<<\x22([^\x22]+)\x22/"  End="/^(\y1)$/" Scheme="PerlInterpolatedString" Color0="PlString" Color1="PlWord" Color2="PlWord">
  120.    <Block  Start="/<<'([^']+)'/"  End="/^(\y1)$/" Scheme="Comment" Color0="PlString" Color1="PlWord" Color2="PlWord">
  121.    <Block  Start="/<<([^\s;\x22]+)/"  End="/^(\y1)$/" Scheme="PerlInterpolatedString" Color0="PlString" Color1="PlWord" Color2="PlWord">
  122.    <!-- Cail: perl in perl :)
  123.    <Block  Start="/(eval)\s+<<'([^']+)'/i"  End="/^(\y2)$/" Scheme="Perl" Color0="dInserts" Color1="PlWord" Color2="PlWord" Color3="PlWord">
  124.    -->
  125.  
  126.    <!-- Timur: see `perldoc perlop`
  127.        "Quote and Quote-like Operators " -->
  128.    <Block  Start="/\b(q[qxr]\()/" End="/(\))/" Color0="PlString" Scheme="PerlInterpolatedString4q"
  129.            Color1="dStringsEx"  Color2="dStringsEx">
  130.    <Block  Start="/\b(q[qxr]\{)/" End="/(\})/" Color0="PlString" Scheme="PerlInterpolatedString4q"
  131.            Color1="dStringsEx"  Color2="dStringsEx">
  132.    <Block  Start="/\b(q[qxr]\[)/" End="/(\])/" Color0="PlString" Scheme="PerlInterpolatedString4q"
  133.            Color1="dStringsEx"  Color2="dStringsEx">
  134.    <Block  Start="/\b(q[qxr](\W))/" End="/(\y2)/" Color0="PlString" Scheme="PerlInterpolatedString"
  135.            Color1="dStringsEx"  Color3="dStringsEx">
  136.    <Block  Start="/\b(q(w)?\()/" End="/(\))/" Color0="PlString" Scheme="PerlString4q"
  137.            Color1="dStringsEx"  Color3="dStringsEx">
  138.    <Block  Start="/\b(q(w)?\{)/" End="/(\})/" Color0="PlString" Scheme="PerlString4q"
  139.            Color1="dStringsEx"  Color3="dStringsEx">
  140.    <Block  Start="/\b(q(w)?\[)/" End="/(\])/" Color0="PlString" Scheme="PerlString4q"
  141.            Color1="dStringsEx"  Color3="dStringsEx">
  142.    <Block  Start="/\b(q(w)?(\W))/" End="/(\y3)/" Color0="PlString" Scheme="PerlString"
  143.             Color1="dStringsEx" Color4="dStringsEx">
  144.  
  145.    <!-- Strings -->
  146.    <Block  Start='/`/' End='/`/' Scheme="PerlInterpolatedString" Color0="PlString">
  147.    <Block  Start='/"/' End='/"/' Scheme="PerlInterpolatedString" Color0="PlString">
  148.    <Block  Start="/'/" End="/'/" Scheme="PerlString" Color0="PlString">
  149.    <!-- Numbers  -->
  150.    <regexp start="/\b(0x|X[\da-fA-F]+)\B/" color0="PlNumb">
  151.    <Include Scheme="mFloatNumb">
  152.    <Include Scheme="mDecNumb">
  153.    <!-- Pod stuff -->
  154.    <Block  Start="/\M^=/" End="/^(=(head)|(cut))\m/" Scheme="PerlPod" Color0="PlPod" Color1="PlPodSym">
  155.    <!-- Streams and globs -->
  156.    <RegExp Start="/(\<(\/script)?![^\s]*?\>)/i" Color0="PlOther">
  157.    <!-- regexps :-) -->
  158.    <Block  Start="/\b\M(s|(tr)|y \()/x" End="/(\) [mgeioxcds]*)/x"
  159.            Scheme="PerlSubstBlock" Color0="PlString" Color1="dStringsEx"
  160.            Color3="dStringsEx">
  161.    <Block  Start="/\b\M(s|(tr)|y \{)/x" End="/(\} [mgeioxcds]*)/x"
  162.            Scheme="PerlSubstBlock" Color0="PlString" Color1="dStringsEx"
  163.            Color3="dStringsEx">
  164.    <Block  Start="/\b\M(s|(tr)|y \[)/x" End="/(\] [mgeioxcds]*)/x"
  165.            Scheme="PerlSubstBlock" Color0="PlString" Color1="dStringsEx"
  166.            Color3="dStringsEx">
  167.    <Block  Start="/\b\M(s|(tr)|y ([^\w\s]))/x" End="/(\y3 [mgeioxcds]*)/x"
  168.            Scheme="PerlSubstBlock" Color0="PlString" Color1="dStringsEx"
  169.            Color4="dStringsEx">
  170.    <Block  start="/\b(split)\s*(\/)/" End="/(\/)/"
  171.            Scheme="PerlInterpolatedString" Color1="PlWord" Color2="dStringsEx" Color3="dStringsEx">
  172.    <!-- cail: this block cracks the constructions
  173.      $var = $var / $var / $var;
  174.      $var =~ / $var /;
  175.      if (/ $var /){};
  176.      and so on...
  177.    -->
  178.    <Block  Start="/(^\s*)|(=\~|\!\s*)|([^\w\s\)]|(\bif)|(\bunless)\s*)(\/)/" End="/(\/[cmiogxes]* )/x"
  179.            Scheme="PerlInterpolatedString" Color0="PlString"
  180.            Color2="PlSymb" Color3="PlSymb"
  181.            Color6="dStringsEx" Color7="dStringsEx">
  182.    <RegExp Start="/\b(m\[)/" End="/(\][cgimosx]*)/"
  183.            Color0="PlString" Color1="dStringsEx" Color2="dStringsEx">
  184.    <RegExp Start="/\b(m\{)/" End="/(\}[cgimosx]*)/"
  185.            Color0="PlString" Color1="dStringsEx" Color2="dStringsEx">
  186.    <RegExp Start="/\b(m\()/" End="/(\)[cgimosx]*)/"
  187.            Color0="PlString" Color1="dStringsEx" Color2="dStringsEx">
  188.    <RegExp Start="/\b (m)(\W) /x" End="/(\y2[cgimosx]*)/"
  189.            Color0="PlString" Color1="dStringsEx" Color2="dStringsEx" Color3="dStringsEx">
  190.    <!-- Syntax -->
  191.    <KeyWords MatchCase="True" Color="PlWord">
  192.       <Word Name="sub">    <Word Name="do">   <Word Name="return">
  193.       <Word Name="while">  <Word Name="until"><Word Name="unless">
  194.       <Word Name="if">     <Word Name="else"> <Word Name="elsif">
  195.       <Word Name="foreach"><Word Name="for">  <Word Name="continue">
  196.       <Word Name="next">   <Word Name="last"> <Word Name="redo">
  197.       <Word Name="goto"     Color="PlOther1">
  198.       <Word Name="__DATA__" Color="PlOther1">
  199.       <Word Name="__END__"  Color="PlOther1">
  200.       <Word Name="__FILE__" Color="PlOther1">
  201.       <Word Name="__LINE__" Color="PlOther1">
  202.       <Word Name="no"><Word Name="use">
  203.       <Word Name="require"><Word Name="package">
  204.       <Word Name="strict"><Word Name="local"><Word Name="my">
  205.    </KeyWords>
  206.    <KeyWords MatchCase="True" Color="PlSymb">
  207.      <!-- Operators -->
  208.      <Symb Name="!"><Symb Name="~"><Symb Name="\">
  209.      <Symb Name="+"><Symb Name="-"><Symb Name=".">
  210.      <Symb Name="*"><Symb Name="/">
  211.      <Symb Name=".."><Symb Name="%">
  212.      <Word Name="lt"><Word Name="gt">
  213.      <Word Name="le"><Word Name="ge">
  214.      <Word Name="eq"><Word Name="ne"><Word Name="cmp">
  215.      <Symb Name="&"><Symb Name="|"><Symb Name="^">
  216.      <Symb Name="?"><Symb Name=":">
  217.      <Symb Name=","><Symb Name="=">
  218.      <Word Name="and"><Word Name="not">
  219.      <Word Name="or"><Word Name="xor">
  220.      <Symb Name="->"><Symb Name=";">
  221.      <Symb Name=">"><Symb Name="<">
  222.    </KeyWords>
  223.    <!-- Brackets and braces -->
  224.    <Include Scheme="mPerlBraces">
  225.    <!-- Functions -->
  226.    <KeyWords MatchCase="True" Color="PlWord">
  227.      <Word Name="-A"><Word Name="-B"><Word Name="-C">
  228.      <Word Name="-M"><Word Name="-O"><Word Name="-R">
  229.      <Word Name="-S"><Word Name="-T"><Word Name="-W">
  230.      <Word Name="-X"><Word Name="-b"><Word Name="-c">
  231.      <Word Name="-d"><Word Name="-e"><Word Name="-f">
  232.      <Word Name="-g"><Word Name="-k"><Word Name="-l">
  233.      <Word Name="-o"><Word Name="-p"><Word Name="-r">
  234.      <Word Name="-s"><Word Name="-t"><Word Name="-u">
  235.      <Word Name="-w"><Word Name="-x"><Word Name="-z">
  236.      <Word Name="AUTOLOAD">
  237.      <Word Name="BEGIN">
  238.      <Word Name="CORE">
  239.      <Word Name="DESTROY">
  240.      <Word Name="END">
  241.      <Word Name="SUPER">
  242.      <Word Name="UNIVERSAL">
  243.      <Word Name="accept">
  244.      <Word Name="alarm">
  245.      <Word Name="atan2">
  246.      <Word Name="bind">
  247.      <Word Name="binmode">
  248.      <Word Name="bless">
  249.      <Word Name="caller">
  250.      <Word Name="chdir">
  251.      <Word Name="chmod">
  252.      <Word Name="chomp">
  253.      <Word Name="chop">
  254.      <Word Name="chown">
  255.      <Word Name="chr">
  256.      <Word Name="chroot">
  257.      <Word Name="close">
  258.      <Word Name="closedir">
  259.      <Word Name="connect">
  260.      <Word Name="cos">
  261.      <Word Name="crypt">
  262.      <Word Name="dbmclose">
  263.      <Word Name="dbmopen">
  264.      <Word Name="defined">
  265.      <Word Name="delete">
  266.      <Word Name="die">
  267.      <Word Name="dump">
  268.      <Word Name="each">
  269.      <Word Name="endgrent">
  270.      <Word Name="endhostent">
  271.      <Word Name="endnetent">
  272.      <Word Name="endprotoent">
  273.      <Word Name="endpwent">
  274.      <Word Name="endservent">
  275.      <Word Name="eof">
  276.      <Word Name="eval">
  277.      <Word Name="exec">
  278.      <Word Name="exit">
  279.      <Word Name="exp">
  280.      <Word Name="fcntl">
  281.      <Word Name="fileno">
  282.      <Word Name="flock">
  283.      <Word Name="fork">
  284.      <Word Name="formline">
  285.      <Word Name="getc">
  286.      <Word Name="getgrent">
  287.      <Word Name="getgrgid">
  288.      <Word Name="getgrname">
  289.      <Word Name="gethostbyaddr">
  290.      <Word Name="gethostbyname">
  291.      <Word Name="gethostent">
  292.      <Word Name="getlogin">
  293.      <Word Name="getnetbyaddr">
  294.      <Word Name="getnetbyname">
  295.      <Word Name="getnetent">
  296.      <Word Name="getpeername">
  297.      <Word Name="getpgrp">
  298.      <Word Name="getppid">
  299.      <Word Name="getpriority">
  300.      <Word Name="getprotobyname">
  301.      <Word Name="getprotobynumber">
  302.      <Word Name="getprotoent">
  303.      <Word Name="getpwent">
  304.      <Word Name="getpwnam">
  305.      <Word Name="getpwuid">
  306.      <Word Name="getservbyname">
  307.      <Word Name="getservbyport">
  308.      <Word Name="getservent">
  309.      <Word Name="getsockname">
  310.      <Word Name="getsockopt">
  311.      <Word Name="glob">
  312.      <Word Name="gmtime">
  313.      <Word Name="grep">
  314.      <Word Name="hex">
  315.      <Word Name="index">
  316.      <Word Name="int">
  317.      <Word Name="ioctl">
  318.      <Word Name="join">
  319.      <Word Name="keys">
  320.      <Word Name="kill">
  321.      <Word Name="lc">
  322.      <Word Name="lcfirst">
  323.      <Word Name="length">
  324.      <Word Name="link">
  325.      <Word Name="listen">
  326.      <Word Name="localtime">
  327.      <Word Name="log">
  328.      <Word Name="lstat">
  329.      <Word Name="map">
  330.      <Word Name="mkdir">
  331.      <Word Name="msgctl">
  332.      <Word Name="msgget">
  333.      <Word Name="msgrcv">
  334.      <Word Name="msgsnd">
  335.      <Word Name="oct">
  336.      <Word Name="open">
  337.      <Word Name="opendir">
  338.      <Word Name="ord">
  339.      <Word Name="pack">
  340.      <Word Name="pipe">
  341.      <Word Name="pop">
  342.      <Word Name="pos">
  343.      <Word Name="print">
  344.      <Word Name="printf">
  345.      <Word Name="push">
  346.      <Word Name="qq">
  347.      <Word Name="quotemeta">
  348.      <Word Name="qw">
  349.      <Word Name="qx">
  350.      <Word Name="rand">
  351.      <Word Name="read">
  352.      <Word Name="readdir">
  353.      <Word Name="readline">
  354.      <Word Name="readlink">
  355.      <Word Name="recv">
  356.      <Word Name="ref">
  357.      <Word Name="rename">
  358.      <Word Name="reset">
  359.      <Word Name="reverse">
  360.      <Word Name="rewindir">
  361.      <Word Name="rindex">
  362.      <Word Name="rmdir">
  363.      <Word Name="scalar">
  364.      <Word Name="seek">
  365.      <Word Name="seekdir">
  366.      <Word Name="select">
  367.      <Word Name="semctl">
  368.      <Word Name="semgett">
  369.      <Word Name="semop">
  370.      <Word Name="send">
  371.      <Word Name="setgrent">
  372.      <Word Name="sethostent">
  373.      <Word Name="setnetent">
  374.      <Word Name="setpgrp">
  375.      <Word Name="setpriority">
  376.      <Word Name="setprotoent">
  377.      <Word Name="setpwent">
  378.      <Word Name="setservent">
  379.      <Word Name="setsockopt">
  380.      <Word Name="shift">
  381.      <Word Name="shmctl">
  382.      <Word Name="shmget">
  383.      <Word Name="shmread">
  384.      <Word Name="shmwrite">
  385.      <Word Name="shutdown">
  386.      <Word Name="sin">
  387.      <Word Name="sleep">
  388.      <Word Name="socket">
  389.      <Word Name="socketpair">
  390.      <Word Name="sort">
  391.      <Word Name="splice">
  392.      <Word Name="split">
  393.      <Word Name="sprintf">
  394.      <Word Name="sqrt">
  395.      <Word Name="srand">
  396.      <Word Name="stat">
  397.      <Word Name="study">
  398.      <Word Name="substr">
  399.      <Word Name="symlink">
  400.      <Word Name="syscall">
  401.      <Word Name="sysopen">
  402.      <Word Name="sysread">
  403.      <Word Name="system">
  404.      <Word Name="syswrite">
  405.      <Word Name="tell">
  406.      <Word Name="telldir">
  407.      <Word Name="tie">
  408.      <Word Name="tied">
  409.      <Word Name="time">
  410.      <Word Name="times">
  411.      <Word Name="truncate">
  412.      <Word Name="tr">
  413.      <Word Name="uc">
  414.      <Word Name="ucfirst">
  415.      <Word Name="umask">
  416.      <Word Name="undef">
  417.      <Word Name="unlink">
  418.      <Word Name="unpack">
  419.      <Word Name="unshift">
  420.      <Word Name="utime">
  421.      <Word Name="values">
  422.      <Word Name="vec">
  423.      <Word Name="wait">
  424.      <Word Name="waitpid">
  425.      <Word Name="wantarray">
  426.      <Word Name="warn">
  427.      <Word Name="write">
  428.      <Word Name="x"><Word Name="y">
  429.    </KeyWords>
  430. </Scheme>
  431.