19b50d902SRodney W. Grimes# Copyright (c) 1987, 1993 29b50d902SRodney W. Grimes# The Regents of the University of California. All rights reserved. 39b50d902SRodney W. Grimes# 49b50d902SRodney W. Grimes# Redistribution and use in source and binary forms, with or without 59b50d902SRodney W. Grimes# modification, are permitted provided that the following conditions 69b50d902SRodney W. Grimes# are met: 79b50d902SRodney W. Grimes# 1. Redistributions of source code must retain the above copyright 89b50d902SRodney W. Grimes# notice, this list of conditions and the following disclaimer. 99b50d902SRodney W. Grimes# 2. Redistributions in binary form must reproduce the above copyright 109b50d902SRodney W. Grimes# notice, this list of conditions and the following disclaimer in the 119b50d902SRodney 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 139b50d902SRodney W. Grimes# may be used to endorse or promote products derived from this software 149b50d902SRodney W. Grimes# without specific prior written permission. 159b50d902SRodney W. Grimes# 169b50d902SRodney W. Grimes# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 179b50d902SRodney W. Grimes# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 189b50d902SRodney W. Grimes# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 199b50d902SRodney W. Grimes# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 209b50d902SRodney W. Grimes# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 219b50d902SRodney W. Grimes# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 229b50d902SRodney W. Grimes# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 239b50d902SRodney W. Grimes# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 249b50d902SRodney W. Grimes# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 259b50d902SRodney W. Grimes# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 269b50d902SRodney W. Grimes# SUCH DAMAGE. 279b50d902SRodney W. Grimes# 28da52b4caSJoel Dahl# $FreeBSD$ 29da52b4caSJoel Dahl# 309b50d902SRodney W. Grimes# @(#)vgrindefs.src 8.1 (Berkeley) 6/6/93 319b50d902SRodney W. Grimes# 329b50d902SRodney W. Grimes 339b50d902SRodney W. GrimesC|c:\ 340d4abe62SJoerg Wunsch :pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\ 350d4abe62SJoerg Wunsch :bb={:be=}:cb=/*:ce=*/:sb=":se=\e":lb=':\ 369b50d902SRodney W. Grimes :le=\e':tl:\ 379b50d902SRodney W. Grimes :kw=asm auto break case char continue default do double else enum\ 389b50d902SRodney W. Grimes extern float for fortran goto if int long register return short\ 399b50d902SRodney W. Grimes sizeof static struct switch typedef union unsigned void while #define\ 409b50d902SRodney W. Grimes #else #endif #if #ifdef #ifndef #include #undef # define else endif\ 419b50d902SRodney W. Grimes if ifdef ifndef include undef: 429b50d902SRodney W. Grimesmodel|mod|m:\ 439b50d902SRodney W. Grimes :pb=^\d(space\d\p\drep)|(\p\dis|inline|public\dbeginproc):\ 449b50d902SRodney W. Grimes :bb=\dbeginproc|space|case\d:be=\dendproc|end\d|;:\ 459b50d902SRodney W. Grimes :cb=\$:ce=\$|$:sb=":se=":lb=':le=\a|$:\ 469b50d902SRodney W. Grimes :kw=abs and array beginproc boolean by case cdnl char copied dispose\ 479b50d902SRodney W. Grimes div do dynamic else elsif end endproc entry external FALSE false\ 489b50d902SRodney W. Grimes fi file for formal fortran global if iff ift\ 499b50d902SRodney W. Grimes in integer include inline is lbnd\ 509b50d902SRodney W. Grimes max min mod new NIL nil noresult not notin od of or procedure public\ 519b50d902SRodney W. Grimes read readln readonly record recursive rem rep repeat res\ 529b50d902SRodney W. Grimes result return set\ 539b50d902SRodney W. Grimes space string subscript such then TRUE true type ubnd union until\ 549b50d902SRodney W. Grimes varies while width: 559b50d902SRodney W. Grimespascal|pasc|p:\ 569b50d902SRodney W. Grimes :pb=(^\d?procedure|function|program\d\p\d|\(|;|\:)|(=\d?record\d):\ 579b50d902SRodney W. Grimes :bb=\dcase|begin\d:be=\dend|forward\d|;:\ 589b50d902SRodney W. Grimes :cb={:ce=}:\ 599b50d902SRodney W. Grimes :ab=\(*:ae=*\):\ 609b50d902SRodney W. Grimes :sb=':se=':\ 619b50d902SRodney W. Grimes :kw=and array assert begin case const div do downto else end file for\ 629b50d902SRodney W. Grimes forward function goto if in label mod nil not of or packed procedure\ 639b50d902SRodney W. Grimes program record repeat set then to type until var while with oct hex\ 649b50d902SRodney W. Grimes external: 659b50d902SRodney W. GrimesISP|isp|i:\ 669b50d902SRodney W. Grimes :cb=!:ce=!|$:oc:\ 679b50d902SRodney W. Grimes :kw=and begin decode define end eql eqv geq gtr if leave leq lss mod\ 689b50d902SRodney W. Grimes neq next not or otherwise repeat restart resume sr0 sr1 srd srr sl0 sl1\ 699b50d902SRodney W. Grimes sld slr tst xor: 709b50d902SRodney W. GrimesSH|sh:\ 719b50d902SRodney W. Grimes :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\ 729b50d902SRodney W. Grimes :le=\e':tl:\ 739b50d902SRodney W. Grimes :kw=break case cd continue do done \ 749b50d902SRodney W. Grimes elif else esac eval exec exit export \ 759b50d902SRodney W. Grimes fi for if in then while until \ 769b50d902SRodney W. Grimes read readonly set shift test trap umask wait: 779b50d902SRodney W. GrimesCSH|csh:\ 789b50d902SRodney W. Grimes :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\ 799b50d902SRodney W. Grimes :le=\e':tl:\ 809b50d902SRodney W. Grimes :kw=alias alloc break breaksw case cd chdir continue default\ 819b50d902SRodney W. Grimes echo else end endif endsw exec exit foreach \ 829b50d902SRodney W. Grimes glob goto history if logout nice nohup onintr repeat set\ 839b50d902SRodney W. Grimes setenv shift source switch then time \ 849b50d902SRodney W. Grimes while umask unalias unset wait while @ env \ 859b50d902SRodney W. Grimes argv child home ignoreeof noclobber noglob \ 869b50d902SRodney W. Grimes nomatch path prompt shell status verbose : 879b50d902SRodney W. Grimesldl|LDL:\ 889b50d902SRodney W. Grimes :pb=^\p\::bb=\::be=;:cb=/*:ce=*/:sb=":se=\e":\ 899b50d902SRodney W. Grimes :kw=constant functions grammar reswords tokens add1 addste\ 909b50d902SRodney W. Grimes car cdr check colno cond cons copy defun divide empty enter\ 919b50d902SRodney W. Grimes eq equal findattr firstchild ge getattr getfield gt hash label\ 929b50d902SRodney W. Grimes lambda lastchild le leftsibling lookone lookup lt minus name ne\ 939b50d902SRodney W. Grimes newnode nextcom nil null parent plus precnl prevcom prog progn\ 949b50d902SRodney W. Grimes quote reglob return rightsibling self set setattr setfield setq\ 959b50d902SRodney W. Grimes stjoin sub1 t times tnull tokno ttype: 969b50d902SRodney W. GrimesIcon|icon|I:\ 979b50d902SRodney W. Grimes :pb=^\d?procedure\d\p\d?\(\a?\):\ 989b50d902SRodney W. Grimes :bb=(^\d?procedure\d\p\d?\(\a?\))|{:be=}|(^\d?end\d?$):\ 999b50d902SRodney W. Grimes :cb=#:ce=$:\ 1009b50d902SRodney W. Grimes :sb=":se=\e":lb=':le=\e':tl:\ 1019b50d902SRodney W. Grimes :kw=break by case create default do dynamic else end every external\ 1029b50d902SRodney W. Grimes fail global if initial local next not of procedure record\ 1039b50d902SRodney W. Grimes repeat return static suspend then to until using while\ 1049b50d902SRodney W. Grimes &ascii &clock &cset &date &dateline &errout &fail &host &input\ 1059b50d902SRodney W. Grimes &lcase &level &main &null &output &pos &random &source &subject\ 1069b50d902SRodney W. Grimes &time &trace &ucase &version: 1079b50d902SRodney W. Grimesratfor|rat|r:\ 1089b50d902SRodney W. Grimes :pb=(subroutine|function)\d\p\d?\(\a?\):\ 1099b50d902SRodney W. Grimes :bb=(subroutine|function)\d\p\d?\(\a?\):be=^\d?end:\ 1109b50d902SRodney W. Grimes :cb=#:ce=$:\ 1119b50d902SRodney W. Grimes :sb=":se=\e":lb=':le=\e':oc:\ 1129b50d902SRodney W. Grimes :kw=DRETURN DRIVER arith break case character default define do\ 1139b50d902SRodney W. Grimes else elsedef enddef filedes for function goto if ifdef ifelse\ 1149b50d902SRodney W. Grimes ifnotdef include incr integer linepointer next opeq pointer\ 1159b50d902SRodney W. Grimes real repeat return select string subroutine substr until: 1169b50d902SRodney W. Grimesmodula2|mod2|m2:\ 1179b50d902SRodney W. Grimes :pb=(^\d?(procedure|function|module)\d\p\d|\(|;|\:):\ 1189b50d902SRodney W. Grimes :bb=\d(begin|case|for|if|loop|record|repeat|while|with)\d:\ 1199b50d902SRodney W. Grimes :be=\dend|;:\ 1209b50d902SRodney W. Grimes :cb={:ce=}:\ 1219b50d902SRodney W. Grimes :ab=\(*:ae=*\):\ 1229b50d902SRodney W. Grimes :sb=":se=":\ 1239b50d902SRodney W. Grimes :oc:\ 1249b50d902SRodney W. Grimes :kw=and array begin by case const\ 1259b50d902SRodney W. Grimes definition div do else elsif end exit export\ 1269b50d902SRodney W. Grimes for from if implementation import in\ 1279b50d902SRodney W. Grimes loop mod module not of or pointer procedure qualified\ 1289b50d902SRodney W. Grimes record repeat return set then to type\ 1299b50d902SRodney W. Grimes until var while with: 1309b50d902SRodney W. Grimesyacc|Yacc|y:\ 1319b50d902SRodney W. Grimes :cb=/*:ce=*/:sb=":se=\e":lb=':le=\e':tl:\ 1329b50d902SRodney W. Grimes :kw=%{ %} %% %union %token %type\ 1339b50d902SRodney W. Grimes #else #endif #if #ifdef #ifndef #include #undef # define else endif\ 1349b50d902SRodney W. Grimes if ifdef ifndef include undef: 1359b50d902SRodney W. GrimesC++|c++:\ 1360d4abe62SJoerg Wunsch :pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\ 1370d4abe62SJoerg Wunsch :bb={:be=}:cb=/*:ce=*/:ab=//:\ 1389b50d902SRodney W. Grimes :ae=$:sb=":se=\e":lb=':\ 1399b50d902SRodney W. Grimes :le=\e':tl:\ 1409b50d902SRodney W. Grimes :kw=asm auto break case char continue default do double else enum\ 1419b50d902SRodney W. Grimes extern float for fortran goto if int long register return short\ 1429b50d902SRodney W. Grimes sizeof static struct switch typedef union unsigned while void #define\ 1439b50d902SRodney W. Grimes #else #endif #if #ifdef #ifndef #include #undef # define endif\ 1449b50d902SRodney W. Grimes ifdef ifndef include undef defined\ 1459b50d902SRodney W. Grimes class const delete friend inline new operator overload private\ 1469b50d902SRodney W. Grimes protected public virtual: 147d58bdc29SJoerg Wunsch# 148d58bdc29SJoerg Wunsch# Hack alert: defining function calls as `alternate comments' (ab/ae) seems 149d58bdc29SJoerg Wunsch# to be the only way to avoid major confusion inside vfontedpr for calls like: 150d58bdc29SJoerg Wunsch# &packagename'function; 151d58bdc29SJoerg Wunsch# 152d58bdc29SJoerg WunschPerl|perl|pl:\ 15328445a63SJoerg Wunsch :pb=sub\d\p\d:bb={:be=}:cb=#:ce=$:nc=\$#:tl:\ 154d58bdc29SJoerg Wunsch :ab=&:ae=(;|\d|,):\ 155d58bdc29SJoerg Wunsch :sb=":se=(\e"|$):lb=':le=(\e'|$):\ 156d58bdc29SJoerg Wunsch :kw=do if unless while until else elsif for foreach continue\ 157d58bdc29SJoerg Wunsch next redo sub last goto return die exit require: 158