model|mod|m:\
	:pb=^\d(space\d\p\drep)|(\p\dis|inline|public\dbeginproc):\
	:bb=\dbeginproc|space|case\d:be=\dendproc|end\d|;:\
	:cb=\$:ce=\$|$:sb=":se=":lb=':le=\a|$:\
	:kw=abs and array beginproc boolean by case cdnl char copied dispose\
	div do dynamic else elsif end endproc entry external FALSE false\
	fi file for formal fortran global if iff ift\
	in integer include inline is lbnd\
	max min mod new NIL nil noresult not notin od of or procedure public\
	read readln readonly record recursive rem rep repeat res\
	result return set\
	space string subscript such then TRUE true type ubnd union until\
	varies while width:
pascal|pasc|p:\
	:pb=(^\d?procedure|function|program\d\p\d|\(|;|\:)|(=\d?record\d):\
	:bb=\dcase|begin\d:be=\dend|forward\d|;:\
	:oc:\
	:cb={:ce=}:ab=\(*:ae=*\):\
	:sb=':se=':lb=":le=":\
	:kw=and array assert begin case const div do downto else end file for\
	forward function goto if in label mod nil not of or packed procedure\
	program record repeat set then to type until var while with oct hex\
	external:
Icon|icon|I:\
	:pb=^\d?procedure\d\p\d?\(\a?\):\
	:bb=(^\d?procedure\d\p\d?\(\a?\))|{:be=}|(^\d?end\d?$):\
	:cb=#:ce=$:\
	:sb=":se=\e":lb=':le=\e':tl:\
	:kw=break by case create default do dynamic else end every external\
	fail global if initial local next not of procedure record\
	repeat return static suspend then to until using while\
	&ascii &clock &cset &date &dateline &errout &fail &host &input\
	&lcase &level &main &null &output &pos &random &source &subject\
	&time &trace &ucase &version:
C|c:\
	:pb=^\d?*?\d?\p\d?\(\a?\)(\d|{):bb={:be=}:cb=/*:ce=*/:sb=":se=\e":lb=':\
	:le=\e':tl:\
	:kw=asm auto break case char continue default do double else enum\
	extern float for fortran goto if int long register return short\
	sizeof static struct switch typedef union unsigned void while #define\
	#else #endif #if #ifdef #ifndef #include #undef # define else endif\
	if ifdef ifndef include undef:
ISP|isp|i:\
	:cb=!:ce=!|$:oc:\
	:kw=and begin decode define end eql eqv geq gtr if leave leq lss mod\
	neq next not or otherwise repeat restart resume sr0 sr1 srd srr sl0 sl1\
	sld slr tst xor:
SH|sh:\
	:bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
	:le=\e':tl:\
	:kw=break case cd continue do done \
	elif else esac eval exec exit export \
	fi for if in then while until \
	read readonly set shift test trap umask wait:
CSH|csh:\
	:bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
	:le=\e':tl:\
	:kw=alias alloc break breaksw case cd chdir continue default\
	echo else end endif endsw exec exit foreach \
	glob goto history if logout nice nohup onintr repeat set\
	setenv shift source switch then time \
	while umask unalias unset wait while @ env \
	argv child home ignoreeof noclobber noglob \
	nomatch path prompt shell status verbose :
ldl|LDL:\
	:pb=^\p\::bb=\::be=;:cb=/*:ce=*/:sb=":se=\e":\
	:kw=constant functions grammar reswords tokens add1 addste\
	car cdr check colno cond cons copy defun divide empty enter\
	eq equal findattr firstchild ge getattr getfield gt hash label\
	lambda lastchild le leftsibling lookone lookup lt minus name ne\
	newnode nextcom nil null parent plus precnl prevcom prog progn\
	quote reglob return rightsibling self set setattr setfield setq\
	stjoin sub1 t times tnull tokno ttype:
TEX|tex:\
	:bb={:be=}:cb=%:ce=$:kw=:
SOURCE|source|src:\
	:kw=:
Miranda|mira:\
	:pb=^\d?\p\d?\:\::be==:cb=\|\|:ce=$:sb=":se=\e":lb=':le=\e':\
        :kw=abstype div rem type where with %export %free %include %insert %list %nolist:
prolog|PROLOG:\
	:bb=\:-:be=.:cb=%:ce=$:ab=/*:ae=*/:\
	:sb=":se=\e":lb=':le=\e':oc:\
	:kw=op mod abort ancestors arg ascii ask assert asserta assertz\
	atom atomic char clause close concat consult ed ef em eof fail\
	file findall write functor getc integer is length listing load name\
	nl nonvar not numbervars op or pp prin print private prompt putc\
	ratom read read_from_this_file rename repeat retract retractall\
	save see seeing seen sh skip statistics subgoal_of system tab\
	tell telling time told trace true unload untrace var write:
r|R|ratfor:\
	:pb=^\d?program|subroutine|function|(integer|real|complex|character\dfunction)\d\p\d|\(:\
	:bb={:be=}:cb=#:ce=$:sb=":se=":lb=':le=':oc:\
	:kw= break call case character common complex data default define\
	dimension do else end equivalence external false for function go\
	goto if implicit include integer logical next pause program read\
	real repeat return rewind stop string subroutine switch true until\
	while write:
modula2|mod2|m2:\
	:pb=(^\d?(procedure|function|module)\d\p\d|\(|;|\:):\
	:bb=\d(begin|case|for|if|loop|record|repeat|while|with)\d:\
	:be=\dend|;:\
	:cb={:ce=}:\
	:ab=\(*:ae=*\):\
	:sb=":se=":\
	:oc:\
	:kw=and array begin by case const\
	definition div do else elsif end exit export\
	for from if implementation import in\
	loop mod module not of or pointer procedure qualified\
	record repeat return set then to type\
	until var while with:
yacc|Yacc|y:\
	:cb=/*:ce=*/:sb=":se=\e":lb=':le=\e':tl:\
	:kw=%{ %} %% %union %token %type\
	#else #endif #if #ifdef #ifndef #include #undef # define else endif\
	if ifdef ifndef include undef:
asm68:\
	:pb=(^\d?.proc\d\p\d:\
	:oc:\
	:cb=;:ce=$:\
	:sb=':se=':lb=":le=":\
	:kw=ascii block byte end equ include long proc word:
a68:\
	:oc:\
	:cb=\|:ce=$:\
	:sb=':se=':lb=":le=":\
	:kw=ascii block byte end equ globl insrt long proc text word:
C++|c++:\
        :pb=^\d?*?\d?\p\d?\(\a?\)(\d|{):bb={:be=}:cb=/*:ce=*/:ab=//:\
        :ae=$:sb=":se=\e":lb=':\
        :le=\e':tl:\
        :kw=asm auto break case char continue default do double else enum\
        extern float for fortran goto if int long register return short\
        sizeof static struct switch typedef union unsigned while void #define\
        #else #endif #if #ifdef #ifndef #include #undef # define endif\
        ifdef ifndef include undef defined\
        class const delete friend inline new operator overload private\
        protected public virtual:
fortran|FORTRAN|f77|fc|f:\
	:pb=(function|subroutine|program)\d\p\d?\(\a?\):\
	:bb=(function|subroutine|program)\d\p\d?\(\a?\):be=^\dend:\
	:cb=^c:\
	:ce=$:\
	:sb=':\
	:se=':\
	:oc:\
	:kw=and call character close common complex continue data dimension do\
	double else elseif end endif entry eq equivalence external format\
	function ge goto gt if implicit integer intrinsic le lt mod ne not\
	open or parameter precision print program read real return rewind\
	stop subroutine then write:
