11590Srgrimes# Copyright (c) 1987, 1993
21590Srgrimes#	The Regents of the University of California.  All rights reserved.
31590Srgrimes#
41590Srgrimes# Redistribution and use in source and binary forms, with or without
51590Srgrimes# modification, are permitted provided that the following conditions
61590Srgrimes# are met:
71590Srgrimes# 1. Redistributions of source code must retain the above copyright
81590Srgrimes#    notice, this list of conditions and the following disclaimer.
91590Srgrimes# 2. Redistributions in binary form must reproduce the above copyright
101590Srgrimes#    notice, this list of conditions and the following disclaimer in the
111590Srgrimes#    documentation and/or other materials provided with the distribution.
121590Srgrimes# 4. Neither the name of the University nor the names of its contributors
131590Srgrimes#    may be used to endorse or promote products derived from this software
141590Srgrimes#    without specific prior written permission.
151590Srgrimes#
161590Srgrimes# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
171590Srgrimes# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
181590Srgrimes# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
191590Srgrimes# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
201590Srgrimes# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
211590Srgrimes# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
221590Srgrimes# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
231590Srgrimes# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
241590Srgrimes# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
251590Srgrimes# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
261590Srgrimes# SUCH DAMAGE.
271590Srgrimes#
28216370Sjoel# $FreeBSD$
29216370Sjoel#
301590Srgrimes#	@(#)vgrindefs.src	8.1 (Berkeley) 6/6/93
311590Srgrimes#
321590Srgrimes
331590SrgrimesC|c:\
3419019Sjoerg	:pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\
3519019Sjoerg	:bb={:be=}:cb=/*:ce=*/:sb=":se=\e":lb=':\
361590Srgrimes	:le=\e':tl:\
371590Srgrimes	:kw=asm auto break case char continue default do double else enum\
381590Srgrimes	extern float for fortran goto if int long register return short\
391590Srgrimes	sizeof static struct switch typedef union unsigned void while #define\
401590Srgrimes	#else #endif #if #ifdef #ifndef #include #undef # define else endif\
411590Srgrimes	if ifdef ifndef include undef:
421590Srgrimesmodel|mod|m:\
431590Srgrimes	:pb=^\d(space\d\p\drep)|(\p\dis|inline|public\dbeginproc):\
441590Srgrimes	:bb=\dbeginproc|space|case\d:be=\dendproc|end\d|;:\
451590Srgrimes	:cb=\$:ce=\$|$:sb=":se=":lb=':le=\a|$:\
461590Srgrimes	:kw=abs and array beginproc boolean by case cdnl char copied dispose\
471590Srgrimes	div do dynamic else elsif end endproc entry external FALSE false\
481590Srgrimes	fi file for formal fortran global if iff ift\
491590Srgrimes	in integer include inline is lbnd\
501590Srgrimes	max min mod new NIL nil noresult not notin od of or procedure public\
511590Srgrimes	read readln readonly record recursive rem rep repeat res\
521590Srgrimes	result return set\
531590Srgrimes	space string subscript such then TRUE true type ubnd union until\
541590Srgrimes	varies while width:
551590Srgrimespascal|pasc|p:\
561590Srgrimes	:pb=(^\d?procedure|function|program\d\p\d|\(|;|\:)|(=\d?record\d):\
571590Srgrimes	:bb=\dcase|begin\d:be=\dend|forward\d|;:\
581590Srgrimes	:cb={:ce=}:\
591590Srgrimes	:ab=\(*:ae=*\):\
601590Srgrimes	:sb=':se=':\
611590Srgrimes	:kw=and array assert begin case const div do downto else end file for\
621590Srgrimes	forward function goto if in label mod nil not of or packed procedure\
631590Srgrimes	program record repeat set then to type until var while with oct hex\
641590Srgrimes	external:
651590SrgrimesISP|isp|i:\
661590Srgrimes	:cb=!:ce=!|$:oc:\
671590Srgrimes	:kw=and begin decode define end eql eqv geq gtr if leave leq lss mod\
681590Srgrimes	neq next not or otherwise repeat restart resume sr0 sr1 srd srr sl0 sl1\
691590Srgrimes	sld slr tst xor:
701590SrgrimesSH|sh:\
711590Srgrimes	:bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
721590Srgrimes	:le=\e':tl:\
731590Srgrimes	:kw=break case cd continue do done \
741590Srgrimes	elif else esac eval exec exit export \
751590Srgrimes	fi for if in then while until \
761590Srgrimes	read readonly set shift test trap umask wait:
771590SrgrimesCSH|csh:\
781590Srgrimes	:bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
791590Srgrimes	:le=\e':tl:\
801590Srgrimes	:kw=alias alloc break breaksw case cd chdir continue default\
811590Srgrimes	echo else end endif endsw exec exit foreach \
821590Srgrimes	glob goto history if logout nice nohup onintr repeat set\
831590Srgrimes	setenv shift source switch then time \
841590Srgrimes	while umask unalias unset wait while @ env \
851590Srgrimes	argv child home ignoreeof noclobber noglob \
861590Srgrimes	nomatch path prompt shell status verbose :
871590Srgrimesldl|LDL:\
881590Srgrimes	:pb=^\p\::bb=\::be=;:cb=/*:ce=*/:sb=":se=\e":\
891590Srgrimes	:kw=constant functions grammar reswords tokens add1 addste\
901590Srgrimes	car cdr check colno cond cons copy defun divide empty enter\
911590Srgrimes	eq equal findattr firstchild ge getattr getfield gt hash label\
921590Srgrimes	lambda lastchild le leftsibling lookone lookup lt minus name ne\
931590Srgrimes	newnode nextcom nil null parent plus precnl prevcom prog progn\
941590Srgrimes	quote reglob return rightsibling self set setattr setfield setq\
951590Srgrimes	stjoin sub1 t times tnull tokno ttype:
961590SrgrimesIcon|icon|I:\
971590Srgrimes	:pb=^\d?procedure\d\p\d?\(\a?\):\
981590Srgrimes	:bb=(^\d?procedure\d\p\d?\(\a?\))|{:be=}|(^\d?end\d?$):\
991590Srgrimes	:cb=#:ce=$:\
1001590Srgrimes	:sb=":se=\e":lb=':le=\e':tl:\
1011590Srgrimes	:kw=break by case create default do dynamic else end every external\
1021590Srgrimes	fail global if initial local next not of procedure record\
1031590Srgrimes	repeat return static suspend then to until using while\
1041590Srgrimes	&ascii &clock &cset &date &dateline &errout &fail &host &input\
1051590Srgrimes	&lcase &level &main &null &output &pos &random &source &subject\
1061590Srgrimes	&time &trace &ucase &version:
1071590Srgrimesratfor|rat|r:\
1081590Srgrimes	:pb=(subroutine|function)\d\p\d?\(\a?\):\
1091590Srgrimes	:bb=(subroutine|function)\d\p\d?\(\a?\):be=^\d?end:\
1101590Srgrimes	:cb=#:ce=$:\
1111590Srgrimes	:sb=":se=\e":lb=':le=\e':oc:\
1121590Srgrimes	:kw=DRETURN DRIVER arith break case character default define do\
1131590Srgrimes	else elsedef enddef filedes for function goto if ifdef ifelse\
1141590Srgrimes	ifnotdef include incr integer linepointer next opeq pointer\
1151590Srgrimes	real repeat return select string subroutine substr until:
1161590Srgrimesmodula2|mod2|m2:\
1171590Srgrimes	:pb=(^\d?(procedure|function|module)\d\p\d|\(|;|\:):\
1181590Srgrimes	:bb=\d(begin|case|for|if|loop|record|repeat|while|with)\d:\
1191590Srgrimes	:be=\dend|;:\
1201590Srgrimes	:cb={:ce=}:\
1211590Srgrimes	:ab=\(*:ae=*\):\
1221590Srgrimes	:sb=":se=":\
1231590Srgrimes	:oc:\
1241590Srgrimes	:kw=and array begin by case const\
1251590Srgrimes	definition div do else elsif end exit export\
1261590Srgrimes	for from if implementation import in\
1271590Srgrimes	loop mod module not of or pointer procedure qualified\
1281590Srgrimes	record repeat return set then to type\
1291590Srgrimes	until var while with:
1301590Srgrimesyacc|Yacc|y:\
1311590Srgrimes	:cb=/*:ce=*/:sb=":se=\e":lb=':le=\e':tl:\
1321590Srgrimes	:kw=%{ %} %% %union %token %type\
1331590Srgrimes	#else #endif #if #ifdef #ifndef #include #undef # define else endif\
1341590Srgrimes	if ifdef ifndef include undef:
1351590SrgrimesC++|c++:\
13619019Sjoerg	:pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\
13719019Sjoerg	:bb={:be=}:cb=/*:ce=*/:ab=//:\
1381590Srgrimes	:ae=$:sb=":se=\e":lb=':\
1391590Srgrimes	:le=\e':tl:\
1401590Srgrimes	:kw=asm auto break case char continue default do double else enum\
1411590Srgrimes	extern float for fortran goto if int long register return short\
1421590Srgrimes	sizeof static struct switch typedef union unsigned while void #define\
1431590Srgrimes	#else #endif #if #ifdef #ifndef #include #undef # define endif\
1441590Srgrimes	ifdef ifndef include undef defined\
1451590Srgrimes	class const delete friend inline new operator overload private\
1461590Srgrimes	protected public virtual:
14718944Sjoerg#
14818944Sjoerg# Hack alert: defining function calls as `alternate comments' (ab/ae) seems
14918944Sjoerg# to be the only way to avoid major confusion inside vfontedpr for calls like:
15018944Sjoerg#   &packagename'function;
15118944Sjoerg#
15218944SjoergPerl|perl|pl:\
15319012Sjoerg	:pb=sub\d\p\d:bb={:be=}:cb=#:ce=$:nc=\$#:tl:\
15418944Sjoerg	:ab=&:ae=(;|\d|,):\
15518944Sjoerg	:sb=":se=(\e"|$):lb=':le=(\e'|$):\
15618944Sjoerg	:kw=do if unless while until else elsif for foreach continue\
15718944Sjoerg	next redo sub last goto return die exit require:
158