(file) Return to perl.st CVS log (file) (dir) Up to [RizwankCVS] / testProject / source / states / hl

  1 rizwank 1.1 /**
  2              * Name: perl
  3              * Description: Perl programming language.
  4              *
  5              * Author: Jim Villani, Logistics Management Institute (jvillani@lmi.org)
  6              *         perl_pod mods by Gregor Purdy (gregor@focusresearch.com)
  7              */
  8             
  9             state perl_pod extends Highligth
 10             {
 11               /\\\\./ {
 12                 language_print ($0);
 13               }
 14               /^=cut\s*$/ {
 15                 language_print ($0);
 16                 return;
 17               }
 18             }
 19             
 20             state perl_comment extends Highlight
 21             {
 22 rizwank 1.1   /\*\\\// {
 23                 language_print ($0);
 24                 return;
 25               }
 26             }
 27             
 28             state perl_dquot_string extends Highlight
 29             {
 30               /\\\\./ {
 31                 language_print ($0);
 32               }
 33               /\"/ {
 34                 language_print ($0);
 35                 return;
 36               }
 37             }
 38             
 39             state perl_quot_string extends Highlight
 40             {
 41               /\\\\./ {
 42                 language_print ($0);
 43 rizwank 1.1   }
 44               /[\']/ {
 45                 language_print ($0);
 46                 return;
 47               }
 48             }
 49             
 50             state perl_bquot_string extends Highlight
 51             {
 52               /\\\\./ {
 53                 language_print ($0);
 54               }
 55               /`/ {
 56                 language_print ($0);
 57                 return;
 58               }
 59             }
 60             
 61             state perl extends HighlightEntry
 62             {
 63               /* Comments. */
 64 rizwank 1.1   /#.*$/ {
 65                 comment_face (true);
 66                 language_print ($0);
 67                 comment_face (false);
 68               }
 69             
 70               /* Ignore escaped quote marks */
 71               /\\\"/ {
 72                 language_print ($0);
 73               }
 74               /\\\'/ {
 75                 language_print ($0);
 76               }
 77               /\\\`/ {
 78                 language_print ($0);
 79               }
 80             
 81               /* stuff after a -> is a method,
 82                * don't bold just because it looks like a keyword
 83                */
 84               /->\w+/ {
 85 rizwank 1.1     language_print ($0);
 86               }
 87             
 88               /* stuff between a - and a => is a named parameter,
 89                * don't bold just because it looks like a keyword
 90                */
 91               /-\w+=>/ {
 92                 language_print ($0);
 93               }
 94             
 95               /* In cgi files, JavaScript might be embedded, so we need to look out
 96                * for the JavaScript comments, because they might contain something
 97                * we don't like, like a contraction (don't, won't, etc.)
 98                * We won't put them in comment face, because they are not perl
 99                * comments.
100                */
101               /\/\// {
102                 language_print ($0);
103                 call (eat_one_line);
104               }
105             
106 rizwank 1.1   /* String constants. */
107               /\"/ {
108                 string_face (true);
109                 language_print ($0);
110                 call (perl_dquot_string);
111                 string_face (false);
112               }
113               /[\']/ {
114                 string_face (true);
115                 language_print ($0);
116                 call (perl_quot_string);
117                 string_face (false);
118               }
119             
120               /* Backquoted command string */
121               /`/ {
122                 string_face (true);
123                 language_print ($0);
124                 call (perl_bquot_string);
125                 string_face (false);
126               }
127 rizwank 1.1 
128               /* Variables */
129               /[$%@&]+\w+/ {
130                 keyword_face (false);
131                 language_print ($0);
132               }
133             
134               /* Keywords. From perl distribution's toke.c
135                  abs accept alarm and atan2 bind binmode bless caller chdir chmod
136                  chomp chop chown chr chroot close closedir cmp connect continue cos
137                  crypt dbmclose dbmopen defined delete die do dump each else elsif
138                  endgrent endhostent endnetent endprotoent endpwent endservent eof
139                  eq eval exec exists exit exp fcntl fileno flock for foreach fork
140                  format formline ge getc getgrent getgrgid getgrnam gethostbyaddr
141                  gethostbyname gethostent getlogin getnetbyaddr getnetbyname
142                  getnetent getpeername getpgrp getppid getpriority getprotobyname
143                  getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname
144                  getservbyport getservent getsockname getsockopt glob gmtime goto
145                  grep gt hex if index int ioctl join keys kill last lc lcfirst le
146                  length link listen local localtime log lstat lt m map mkdir msgctl
147                  msgget msgrcv msgsnd my ne new next no not oct open opendir or ord
148 rizwank 1.1      pack package pipe pop pos print printf prototype push q qq quotemeta
149                  qw qx rand read readdir readline readlink readpipe recv redo ref
150                  rename require reset return reverse rewinddir rindex rmdir s scalar
151                  seek seekdir select semctl semget semop send setgrent sethostent
152                  setnetent setpgrp setpriority setprotoent setpwent setservent
153                  setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep
154                  socket socketpair sort splice split sprintf sqrt srand stat study
155                  sub substr symlink syscall sysopen sysread sysseek system syswrite
156                  tell telldir tie tied time times tr truncate uc ucfirst umask undef
157                  unless unlink unpack unshift untie until use utime values vec wait
158                  waitpid wantarray warn while write x xor y
159                */
160               /\b(a(bs|ccept|larm|nd|tan2)|b(in(d|mode)|less)|c(aller|h(dir|mod\
161             |o(mp|p|wn)|r(|oot))|lose(|dir)|mp|o(n(nect|tinue)|s)|rypt)\
162             |d(bm(close|open)|e(fined|lete)|ie|o|ump)|e(ach|ls(e|if)|nd(gr|host|net|proto\
163             |pw|serv)ent|of|q|val|x(ec|i(sts|t)|p))|f(cntl|ileno|lock|or(|each|k\
164             |m(at|line)))|g(e(|t(c|gr(ent|gid|nam)|host(by(addr|name)|ent)|login\
165             |net(by(addr|name)|ent)|p(eername|grp|pid|riority|roto(by(addr|name|number)\
166             |ent)|w(ent|nam|uid))|s(erv(by(name|port)|ent)|ock(name|opt))))|lob|mtime\
167             |oto|rep|t)|hex|i(f|n(t|dex)|octl)|join|k(eys|ill)|l(ast|c(|first)|e(|ngth)\
168             |i(nk|sten)|o(cal(|time)|g)|stat|t)|m|m(ap|kdir|sg(ctl|get|rcv|snd)|y)\
169 rizwank 1.1 |n(e(|w|xt)|o(|t))|o(ct|pen(|dir)|r(|d))|p(ack(|age)|ipe|o(p|s)|r(int(|f)\
170             |ototype)|ush)|q(|q|uotemeta|w|x)|r(and|e(a(d(|dir|lin(e|k)|pipe))|cv\
171             |do|f|name|quire|set|turn|verse|winddir)|index|mdir)|s(|calar|e(e(k|kdir)\
172             |lect|m(ctl|get|op)|nd|t((gr|host|net)ent|p(grp|r(iority|otoent)|went)\
173             |s(ervent|ockopt)))|h(ift|m(ctl|get|read|write)|utdown)|in|leep|o(cke(t|tpair)\
174             |rt)|p(li(ce|t)|rintf)|qrt|rand|t(at|udy)|u(b|bstr)|y(mlink|s(call|open|read\
175             |s(eek|tem)|write)))|t(ell(|dir)|i(e|ed|m(e|es))|r(|uncate))|u(c(|first)\
176             |mask|n(def|l(ess|ink)|pack|shift|ti(e|l))|se|time)|v(alues|ec)|w(a(i(t(|pid))\
177             |ntarray|rn)|hile|rite)|x(|or)|y)\b/ {
178             
179                 keyword_face (true);
180                 language_print ($0);
181                 keyword_face (false);
182               }
183             
184               /* POD. */
185               /^=(pod|head1|head2|item|over|back|for|begin|end)\b.*$/ {
186                 language_print ($0);
187                 call (perl_pod);
188               }
189             }
190 rizwank 1.1 
191             
192             /*
193             Local variables:
194             mode: c
195             End:
196             */

Rizwan Kassim
Powered by
ViewCVS 0.9.2