1 9b50d902SRodney W. Grimes# Copyright (c) 1987, 1993 2 9b50d902SRodney W. Grimes# The Regents of the University of California. All rights reserved. 3 9b50d902SRodney W. Grimes# 4 9b50d902SRodney W. Grimes# Redistribution and use in source and binary forms, with or without 5 9b50d902SRodney W. Grimes# modification, are permitted provided that the following conditions 6 9b50d902SRodney W. Grimes# are met: 7 9b50d902SRodney W. Grimes# 1. Redistributions of source code must retain the above copyright 8 9b50d902SRodney W. Grimes# notice, this list of conditions and the following disclaimer. 9 9b50d902SRodney W. Grimes# 2. Redistributions in binary form must reproduce the above copyright 10 9b50d902SRodney W. Grimes# notice, this list of conditions and the following disclaimer in the 11 9b50d902SRodney W. Grimes# documentation and/or other materials provided with the distribution. 12 *fbbd9655SWarner Losh# 3. Neither the name of the University nor the names of its contributors 13 9b50d902SRodney W. Grimes# may be used to endorse or promote products derived from this software 14 9b50d902SRodney W. Grimes# without specific prior written permission. 15 9b50d902SRodney W. Grimes# 16 9b50d902SRodney W. Grimes# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17 9b50d902SRodney W. Grimes# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 9b50d902SRodney W. Grimes# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 9b50d902SRodney W. Grimes# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20 9b50d902SRodney W. Grimes# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 9b50d902SRodney W. Grimes# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 9b50d902SRodney W. Grimes# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 9b50d902SRodney W. Grimes# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 9b50d902SRodney W. Grimes# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 9b50d902SRodney W. Grimes# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 9b50d902SRodney W. Grimes# SUCH DAMAGE. 27 9b50d902SRodney W. Grimes# 28 9b50d902SRodney W. Grimes 29 9b50d902SRodney W. GrimesC|c:\ 30 0d4abe62SJoerg Wunsch :pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\ 31 0d4abe62SJoerg Wunsch :bb={:be=}:cb=/*:ce=*/:sb=":se=\e":lb=':\ 32 9b50d902SRodney W. Grimes :le=\e':tl:\ 33 9b50d902SRodney W. Grimes :kw=asm auto break case char continue default do double else enum\ 34 9b50d902SRodney W. Grimes extern float for fortran goto if int long register return short\ 35 9b50d902SRodney W. Grimes sizeof static struct switch typedef union unsigned void while #define\ 36 9b50d902SRodney W. Grimes #else #endif #if #ifdef #ifndef #include #undef # define else endif\ 37 9b50d902SRodney W. Grimes if ifdef ifndef include undef: 38 9b50d902SRodney W. Grimesmodel|mod|m:\ 39 9b50d902SRodney W. Grimes :pb=^\d(space\d\p\drep)|(\p\dis|inline|public\dbeginproc):\ 40 9b50d902SRodney W. Grimes :bb=\dbeginproc|space|case\d:be=\dendproc|end\d|;:\ 41 9b50d902SRodney W. Grimes :cb=\$:ce=\$|$:sb=":se=":lb=':le=\a|$:\ 42 9b50d902SRodney W. Grimes :kw=abs and array beginproc boolean by case cdnl char copied dispose\ 43 9b50d902SRodney W. Grimes div do dynamic else elsif end endproc entry external FALSE false\ 44 9b50d902SRodney W. Grimes fi file for formal fortran global if iff ift\ 45 9b50d902SRodney W. Grimes in integer include inline is lbnd\ 46 9b50d902SRodney W. Grimes max min mod new NIL nil noresult not notin od of or procedure public\ 47 9b50d902SRodney W. Grimes read readln readonly record recursive rem rep repeat res\ 48 9b50d902SRodney W. Grimes result return set\ 49 9b50d902SRodney W. Grimes space string subscript such then TRUE true type ubnd union until\ 50 9b50d902SRodney W. Grimes varies while width: 51 9b50d902SRodney W. Grimespascal|pasc|p:\ 52 9b50d902SRodney W. Grimes :pb=(^\d?procedure|function|program\d\p\d|\(|;|\:)|(=\d?record\d):\ 53 9b50d902SRodney W. Grimes :bb=\dcase|begin\d:be=\dend|forward\d|;:\ 54 9b50d902SRodney W. Grimes :cb={:ce=}:\ 55 9b50d902SRodney W. Grimes :ab=\(*:ae=*\):\ 56 9b50d902SRodney W. Grimes :sb=':se=':\ 57 9b50d902SRodney W. Grimes :kw=and array assert begin case const div do downto else end file for\ 58 9b50d902SRodney W. Grimes forward function goto if in label mod nil not of or packed procedure\ 59 9b50d902SRodney W. Grimes program record repeat set then to type until var while with oct hex\ 60 9b50d902SRodney W. Grimes external: 61 9b50d902SRodney W. GrimesISP|isp|i:\ 62 9b50d902SRodney W. Grimes :cb=!:ce=!|$:oc:\ 63 9b50d902SRodney W. Grimes :kw=and begin decode define end eql eqv geq gtr if leave leq lss mod\ 64 9b50d902SRodney W. Grimes neq next not or otherwise repeat restart resume sr0 sr1 srd srr sl0 sl1\ 65 9b50d902SRodney W. Grimes sld slr tst xor: 66 9b50d902SRodney W. GrimesSH|sh:\ 67 9b50d902SRodney W. Grimes :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\ 68 9b50d902SRodney W. Grimes :le=\e':tl:\ 69 9b50d902SRodney W. Grimes :kw=break case cd continue do done \ 70 9b50d902SRodney W. Grimes elif else esac eval exec exit export \ 71 9b50d902SRodney W. Grimes fi for if in then while until \ 72 9b50d902SRodney W. Grimes read readonly set shift test trap umask wait: 73 9b50d902SRodney W. GrimesCSH|csh:\ 74 9b50d902SRodney W. Grimes :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\ 75 9b50d902SRodney W. Grimes :le=\e':tl:\ 76 9b50d902SRodney W. Grimes :kw=alias alloc break breaksw case cd chdir continue default\ 77 9b50d902SRodney W. Grimes echo else end endif endsw exec exit foreach \ 78 9b50d902SRodney W. Grimes glob goto history if logout nice nohup onintr repeat set\ 79 9b50d902SRodney W. Grimes setenv shift source switch then time \ 80 9b50d902SRodney W. Grimes while umask unalias unset wait while @ env \ 81 9b50d902SRodney W. Grimes argv child home ignoreeof noclobber noglob \ 82 9b50d902SRodney W. Grimes nomatch path prompt shell status verbose : 83 9b50d902SRodney W. Grimesldl|LDL:\ 84 9b50d902SRodney W. Grimes :pb=^\p\::bb=\::be=;:cb=/*:ce=*/:sb=":se=\e":\ 85 9b50d902SRodney W. Grimes :kw=constant functions grammar reswords tokens add1 addste\ 86 9b50d902SRodney W. Grimes car cdr check colno cond cons copy defun divide empty enter\ 87 9b50d902SRodney W. Grimes eq equal findattr firstchild ge getattr getfield gt hash label\ 88 9b50d902SRodney W. Grimes lambda lastchild le leftsibling lookone lookup lt minus name ne\ 89 9b50d902SRodney W. Grimes newnode nextcom nil null parent plus precnl prevcom prog progn\ 90 9b50d902SRodney W. Grimes quote reglob return rightsibling self set setattr setfield setq\ 91 9b50d902SRodney W. Grimes stjoin sub1 t times tnull tokno ttype: 92 9b50d902SRodney W. GrimesIcon|icon|I:\ 93 9b50d902SRodney W. Grimes :pb=^\d?procedure\d\p\d?\(\a?\):\ 94 9b50d902SRodney W. Grimes :bb=(^\d?procedure\d\p\d?\(\a?\))|{:be=}|(^\d?end\d?$):\ 95 9b50d902SRodney W. Grimes :cb=#:ce=$:\ 96 9b50d902SRodney W. Grimes :sb=":se=\e":lb=':le=\e':tl:\ 97 9b50d902SRodney W. Grimes :kw=break by case create default do dynamic else end every external\ 98 9b50d902SRodney W. Grimes fail global if initial local next not of procedure record\ 99 9b50d902SRodney W. Grimes repeat return static suspend then to until using while\ 100 9b50d902SRodney W. Grimes &ascii &clock &cset &date &dateline &errout &fail &host &input\ 101 9b50d902SRodney W. Grimes &lcase &level &main &null &output &pos &random &source &subject\ 102 9b50d902SRodney W. Grimes &time &trace &ucase &version: 103 9b50d902SRodney W. Grimesratfor|rat|r:\ 104 9b50d902SRodney W. Grimes :pb=(subroutine|function)\d\p\d?\(\a?\):\ 105 9b50d902SRodney W. Grimes :bb=(subroutine|function)\d\p\d?\(\a?\):be=^\d?end:\ 106 9b50d902SRodney W. Grimes :cb=#:ce=$:\ 107 9b50d902SRodney W. Grimes :sb=":se=\e":lb=':le=\e':oc:\ 108 9b50d902SRodney W. Grimes :kw=DRETURN DRIVER arith break case character default define do\ 109 9b50d902SRodney W. Grimes else elsedef enddef filedes for function goto if ifdef ifelse\ 110 9b50d902SRodney W. Grimes ifnotdef include incr integer linepointer next opeq pointer\ 111 9b50d902SRodney W. Grimes real repeat return select string subroutine substr until: 112 9b50d902SRodney W. Grimesmodula2|mod2|m2:\ 113 9b50d902SRodney W. Grimes :pb=(^\d?(procedure|function|module)\d\p\d|\(|;|\:):\ 114 9b50d902SRodney W. Grimes :bb=\d(begin|case|for|if|loop|record|repeat|while|with)\d:\ 115 9b50d902SRodney W. Grimes :be=\dend|;:\ 116 9b50d902SRodney W. Grimes :cb={:ce=}:\ 117 9b50d902SRodney W. Grimes :ab=\(*:ae=*\):\ 118 9b50d902SRodney W. Grimes :sb=":se=":\ 119 9b50d902SRodney W. Grimes :oc:\ 120 9b50d902SRodney W. Grimes :kw=and array begin by case const\ 121 9b50d902SRodney W. Grimes definition div do else elsif end exit export\ 122 9b50d902SRodney W. Grimes for from if implementation import in\ 123 9b50d902SRodney W. Grimes loop mod module not of or pointer procedure qualified\ 124 9b50d902SRodney W. Grimes record repeat return set then to type\ 125 9b50d902SRodney W. Grimes until var while with: 126 9b50d902SRodney W. Grimesyacc|Yacc|y:\ 127 9b50d902SRodney W. Grimes :cb=/*:ce=*/:sb=":se=\e":lb=':le=\e':tl:\ 128 9b50d902SRodney W. Grimes :kw=%{ %} %% %union %token %type\ 129 9b50d902SRodney W. Grimes #else #endif #if #ifdef #ifndef #include #undef # define else endif\ 130 9b50d902SRodney W. Grimes if ifdef ifndef include undef: 131 9b50d902SRodney W. GrimesC++|c++:\ 132 0d4abe62SJoerg Wunsch :pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\ 133 0d4abe62SJoerg Wunsch :bb={:be=}:cb=/*:ce=*/:ab=//:\ 134 9b50d902SRodney W. Grimes :ae=$:sb=":se=\e":lb=':\ 135 9b50d902SRodney W. Grimes :le=\e':tl:\ 136 9b50d902SRodney W. Grimes :kw=asm auto break case char continue default do double else enum\ 137 9b50d902SRodney W. Grimes extern float for fortran goto if int long register return short\ 138 9b50d902SRodney W. Grimes sizeof static struct switch typedef union unsigned while void #define\ 139 9b50d902SRodney W. Grimes #else #endif #if #ifdef #ifndef #include #undef # define endif\ 140 9b50d902SRodney W. Grimes ifdef ifndef include undef defined\ 141 9b50d902SRodney W. Grimes class const delete friend inline new operator overload private\ 142 9b50d902SRodney W. Grimes protected public virtual: 143 d58bdc29SJoerg Wunsch# 144 d58bdc29SJoerg Wunsch# Hack alert: defining function calls as `alternate comments' (ab/ae) seems 145 d58bdc29SJoerg Wunsch# to be the only way to avoid major confusion inside vfontedpr for calls like: 146 d58bdc29SJoerg Wunsch# &packagename'function; 147 d58bdc29SJoerg Wunsch# 148 d58bdc29SJoerg WunschPerl|perl|pl:\ 149 28445a63SJoerg Wunsch :pb=sub\d\p\d:bb={:be=}:cb=#:ce=$:nc=\$#:tl:\ 150 d58bdc29SJoerg Wunsch :ab=&:ae=(;|\d|,):\ 151 d58bdc29SJoerg Wunsch :sb=":se=(\e"|$):lb=':le=(\e'|$):\ 152 d58bdc29SJoerg Wunsch :kw=do if unless while until else elsif for foreach continue\ 153 d58bdc29SJoerg Wunsch next redo sub last goto return die exit require: 154