%%
%% This is file `lstlang3.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lstdrvrs.dtx  (with options: `lang3')
%% 
%% (w)(c) 1996/1997/1998/1999/2000/2001/2002/2003 Carsten Heinz and/or
%% any other author listed elsewhere in this file.
%%
%% This file is distributed under the terms of the LaTeX Project Public
%% License from CTAN archives in directory  macros/latex/base/lppl.txt.
%% Either version 1.0 or, at your option, any later version.
%%
%% This file is completely free and comes without any warranty.
%%
%% Send comments and ideas on the package, error reports and additional
%% programming languages to <cheinz@gmx.de>.
%%
\ProvidesFile{lstlang3}
    [2003/08/13 1.1a listings language file]
\lst@definelanguage[68]{Algol}%
  {morekeywords={abs,and,arg,begin,bin,bits,bool,by,bytes,case,channel,%
      char,co,comment,compl,conj,divab,do,down,elem,elif,else,empty,%
      end,entier,eq,esac,exit,false,fi,file,flex,for,format,from,ge,%
      goto,gt,heap,if,im,in,int,is,isnt,le,leng,level,loc,long,lt,lwb,%
      minusab,mod,modab,mode,ne,nil,not,od,odd,of,op,or,ouse,out,over,%
      overab,par,plusab,plusto,pr,pragmat,prio,proc,re,real,ref,repr,%
      round,sema,shl,short,shorten,shr,sign,skip,string,struct,then,%
      timesab,to,true,union,up,upb,void,while},%
   sensitive=f,% ???
   morecomment=[s]{\#}{\#},%
   keywordcomment={co,comment}%
  }[keywords,comments,keywordcomments]%
\lst@definelanguage[60]{Algol}%
  {morekeywords={array,begin,Boolean,code,comment,div,do,else,end,%
      false,for,goto,if,integer,label,own,power,procedure,real,step,%
      string,switch,then,true,until,value,while},%
   sensitive=f,% ???
   keywordcommentsemicolon={end}{else,end}{comment}%
  }[keywords,keywordcomments]%
%%
%% x86masm definition (c) 2002 Andrew Zabolotny
%%
\lst@definelanguage[x86masm]{Assembler}%
  {morekeywords={al,ah,ax,eax,bl,bh,bx,ebx,cl,ch,cx,ecx,dl,dh,dx,edx,%
      si,esi,di,edi,bp,ebp,sp,esp,cs,ds,es,ss,fs,gs,cr0,cr1,cr2,cr3,%
      db0,db1,db2,db3,db4,db5,db6,db7,tr0,tr1,tr2,tr3,tr4,tr5,tr6,tr7,%
      st,aaa,aad,aam,aas,adc,add,and,arpl,bound,bsf,bsr,bswap,bt,btc,%
      btr,bts,call,cbw,cdq,clc,cld,cli,clts,cmc,cmp,cmps,cmpsb,cmpsw,%
      cmpsd,cmpxchg,cwd,cwde,daa,das,dec,div,enter,hlt,idiv,imul,in,%
      inc,ins,int,into,invd,invlpg,iret,ja,jae,jb,jbe,jc,jcxz,jecxz,%
      je,jg,jge,jl,jle,jna,jnae,jnb,jnbe,jnc,jne,jng,jnge,jnl,jnle,%
      jno,jnp,jns,jnz,jo,jp,jpe,jpo,js,jz,jmp,lahf,lar,lea,leave,lgdt,%
      lidt,lldt,lmsw,lock,lods,lodsb,lodsw,lodsd,loop,loopz,loopnz,%
      loope,loopne,lds,les,lfs,lgs,lss,lsl,ltr,mov,movs,movsb,movsw,%
      movsd,movsx,movzx,mul,neg,nop,not,or,out,outs,pop,popa,popad,%
      popf,popfd,push,pusha,pushad,pushf,pushfd,rcl,rcr,rep,repe,%
      repne,repz,repnz,ret,retf,rol,ror,sahf,sal,sar,sbb,scas,seta,%
      setae,setb,setbe,setc,sete,setg,setge,setl,setle,setna,setnae,%
      setnb,setnbe,setnc,setne,setng,setnge,setnl,setnle,setno,setnp,%
      setns,setnz,seto,setp,setpe,setpo,sets,setz,sgdt,shl,shld,shr,%
      shrd,sidt,sldt,smsw,stc,std,sti,stos,stosb,stosw,stosd,str,sub,%
      test,verr,verw,wait,wbinvd,xadd,xchg,xlatb,xor,fabs,fadd,fbld,%
      fbstp,fchs,fclex,fcom,fcos,fdecstp,fdiv,fdivr,ffree,fiadd,ficom,%
      fidiv,fidivr,fild,fimul,fincstp,finit,fist,fisub,fisubr,fld,fld1,%
      fldl2e,fldl2t,fldlg2,fldln2,fldpi,fldz,fldcw,fldenv,fmul,fnop,%
      fpatan,fprem,fprem1,fptan,frndint,frstor,fsave,fscale,fsetpm,%
      fsin,fsincos,fsqrt,fst,fstcw,fstenv,fstsw,fsub,fsubr,ftst,fucom,%
      fwait,fxam,fxch,fxtract,fyl2x,fyl2xp1,f2xm1},%
   morekeywords=[2]{.align,.alpha,assume,byte,code,comm,comment,.const,%
      .cref,.data,.data?,db,dd,df,dosseg,dq,dt,dw,dword,else,end,endif,%
      endm,endp,ends,eq,equ,.err,.err1,.err2,.errb,.errdef,.errdif,%
      .erre,.erridn,.errnb,.errndef,.errnz,event,exitm,extrn,far,%
      .fardata,.fardata?,fword,ge,group,gt,high,if,if1,if2,ifb,ifdef,%
      ifdif,ife,ifidn,ifnb,ifndef,include,includelib,irp,irpc,label,%
      .lall,le,length,.lfcond,.list,local,low,lt,macro,mask,mod,.model,%
      name,ne,near,offset,org,out,page,proc,ptr,public,purge,qword,.%
      radix,record,rept,.sall,seg,segment,.seq,.sfcond,short,size,%
      .stack,struc,subttl,tbyte,.tfcond,this,title,type,.type,width,%
      word,.xall,.xcref,.xlist},%
   alsoletter=.,alsodigit=?,%
   sensitive=f,%
   morestring=[b]",%
   morestring=[b]',%
   morecomment=[l];%
   }[keywords,comments,strings]
%%
%% Clean definition (c) 1999 Jos\'e Romildo Malaquias
%%
%% Clean 1.3 :  some standard functional language: pure, lazy,
%%              polymorphic type system, modules, type classes,
%%              garbage collection, functions as first class citizens
%%
\lst@definelanguage{Clean}%
  {otherkeywords={:,::,=,:==,=:,=>,->,<-,<-:,\{,\},\{|,|\},\#,\#!,|,\&,%
      [,],!,.,\\\\,;,_},%
   morekeywords={from,definition,implementation,import,module,system,%
      case,code,if,in,let,let!,of,where,with,infix,infixl,infixr},%
   morendkeywords={True,False,Start,Int,Real,Char,Bool,String,World,%
      File,ProcId},%
   sensitive,%
   morecomment=[l]//,% missing comma: Markus Pahlow
   morecomment=[n]{/*}{*/},%
   morestring=[b]"%
  }[keywords,comments,strings]%
\lst@definelanguage{Comal 80}%
  {morekeywords={AND,AUTO,CASE,DATA,DEL,DIM,DIV,DO,ELSE,ENDCASE,ENDIF,%
      ENDPROC,ENDWHILE,EOD,EXEC,FALSE,FOR,GOTO,IF,INPUT,INT,LIST,LOAD,%
      MOD,NEW,NEXT,NOT,OF,OR,PRINT,PROC,RANDOM,RENUM,REPEAT,RND,RUN,%
      SAVE,SELECT,STOP,TAB,THEN,TRUE,UNTIL,WHILE,ZONE},%
   sensitive=f,% ???
   morecomment=[l]//,%
   morestring=[d]"%
  }[keywords,comments,strings]%
\lst@definelanguage{Elan}%
  {morekeywords={ABS,AND,BOOL,CAND,CASE,CAT,COLUMNS,CONCR,CONJ,CONST,%
      COR,DECR,DEFINES,DET,DIV,DOWNTO,ELIF,ELSE,END,ENDIF,ENDOP,%
      ENDPACKET,ENDPROC,ENDREP,ENDSELECT,FALSE,FI,FILE,FOR,FROM,IF,%
      INCR,INT,INV,LEAVE,LENGTH,LET,MOD,NOT,OF,OP,OR,OTHERWISE,PACKET,%
      PROC,REAL,REP,REPEAT,ROW,ROWS,SELECT,SIGN,STRUCT,SUB,TEXT,THEN,%
      TRANSP,TRUE,TYPE,UNTIL,UPTO,VAR,WHILE,WITH,XOR,%
      maxint,sign,abs,min,max,random,initializerandom,subtext,code,%
      replace,text,laenge,pos,compress,change,maxreal,smallreal,floor,%
      pi,e,ln,log2,log10,sqrt,exp,tan,tand,sin,sind,cos,cosd,arctan,%
      arctand,int,real,lastconversionok,put,putline,line,page,get,%
      getline,input,output,sequentialfile,maxlinelaenge,reset,eof,%
      close,complexzero,complexone,complexi,complex,realpart,imagpart,%
      dphi,phi,vector,norm,replace,matrix,idn,row,column,sub,%
      replacerow,replacecolumn,replaceelement,transp,errorsstop,stop},%
   sensitive,%
   morestring=[d]"%
  }[keywords,strings]%
%%
%% Erlang definition (c) 2003 Daniel Gazard
%%
\lst@definelanguage{erlang}%
  {morekeywords={abs,after,and,apply,atom,atom_to_list,band,binary,%
      binary_to_list,binary_to_term,bor,bsl,bsr,bxor,case,catch,%
      date,div,element,erase,end,exit,export,float,float_to_list,%
      get,halt,hash,hd,if,info,import,integer,integer_to_list,%
      length,link,list,list_to_atom,list_to_float,list_to_integer,%
      list_to_tuple,module,node,nodes,now,of,or,pid,port,ports,%
      processes,put,receive,reference,register,registered,rem,%
      round,self,setelement,size,spawn,throw,time,tl,trace,trunc,%
      tuple,tuple_to_list,unlink,unregister,whereis,error,false,%
      infinity,nil,ok,true,undefined,when},%
   otherkeywords={->,!,[,],\{,\},},%
   morecomment=[l]\%,%
   morestring=[b]",%
   morestring=[b]'%
  }[keywords,comments,strings]%
\lst@definelanguage{ksh}
  {morekeywords={alias,awk,cat,echo,else,elif,fi,exec,exit,%
      for,in,do,done,select,case,esac,while,until,function,%
      time,export,cd,eval,fc,fg,kill,let,pwd,read,return,rm,%
      glob,goto,history,if,logout,nice,nohup,onintr,repeat,sed,%
      set,setenv,shift,source,switch,then,umask,unalias,%
      unset,wait,@,env,argv,child,home,ignoreeof,noclobber,%
      noglob,nomatch,path,prompt,shell,status,verbose,print,printf,%
      sqrt,BEGIN,END},%
   morecomment=[l]\#,%
   morestring=[d]",%
   morestring=[d]',%
   morestring=[d]`%
  }[keywords,comments,strings]%
\lst@definelanguage{Logo}%
  {morekeywords={and,atan,arctan,both,break,bf,bl,butfirst,butlast,%
      cbreak, close,co,continue,cos,count,clearscreen,cs,debquit,%
      describe,diff,difference,ed,edit,either,emptyp,equalp,er,erase,%
      errpause,errquit,fifp,filefprint,fifty,fileftype,fip,fileprint,%
      fird,fileread,fity,filetype,fiwd,fileword,f,first,or,fp,fprint,%
      fput,fty,ftype,full,fullscreen,go,bye,goodbye,gprop,greaterp,%
      help,if,iff,iffalse,ift,iftrue,nth,item,keyp,llast,lessp,list,%
      local,lput,make,max,maximum,memberp,memtrace,min,minimum,namep,%
      not,numberp,oflush,openr,openread,openw,openwrite,op,output,%
      pause,plist,pots,pow,pprop,pps,pr,print,product,quotient,random,%
      rc,readchar,rl,readlist,remprop,repcount,repeat,request,rnd,run,%
      se,sentence,sentencep,setc,setcolor,setipause,setqpause,po,show,%
      sin,split,splitscreen,sqrt,stop,sum,test,text,textscreen,thing,%
      to,tone,top,toplevel,type,untrace,wait,word,wordp,yaccdebug,is,%
      mod,remainder,trace,zerop,back,bk,bto,btouch,fd,forward,fto,%
      ftouch,getpen,heading,hit,hitoot,ht,hideturtle,loff,lampoff,lon,%
      lampon,lt,left,lot,lotoot,lto,ltouch,penc,pencolor,pd,pendown,pe,%
      penerase,penmode,pu,penup,px,penreverse,rt,right,rto,rtouch,%
      scrunch,seth,setheading,setscrun,setscrunch,setxy,shownp,st,%
      showturtle,towardsxy,clean,wipeclean,xcor,ycor,tur,turtle,%
      display,dpy},%
   sensitive=f% ???
  }[keywords]%
%%
%% MetaPost definition (c) 2003 Uwe Siart
%%
\lst@definelanguage{MetaPost}%
  {morekeywords={abs,addto,ahangle,ahlength,and,angle,arclength,%
      arctime,background,bbox,bboxmargin,beginfig,begingroup,beveled,%
      black,blue,bluepart,boolean,bot,boxit,boxjoin,bpath,btex,%
      buildcycle,butt,cc,ceiling,char,charcode,circleit,circmargin,%
      clip,cm,color,controls,cosd,curl,currentpen,currentpicture,%
      cutafter,cutbefore,cutdraw,cuttings,cycle,dashed,dashpattern,%
      day,dd,decimal,decr,def,defaultdx,defaultdy,defaultfont,%
      defaultpen,defaultscale,dir,direction,directionpoint,%
      directiontime,ditto,div,dotlabel,dotlabels,dotprod,down,downto,%
      draw,drawarrow,drawboxed,drawboxes,drawdblarrow,drawoptions,%
      drawshadowed,drawunboxed,else,elseif,end,enddef,endfig,endfor,%
      endgroup,epsilon,etex,evenly,exitif,exitunless,expr,extra,fi,%
      fill,filldraw,fixpos,fixsize,floor,fontsize,for,forever,%
      forsuffixes,fullcircle,getmid,green,greenpart,halfcircle,hex,%
      hide,identity,if,in,incr,infinity,infont,input,interim,%
      intersectionpoint,intersectiontimes,inverse,joinup,known,label,%
      labeloffset,labels,left,length,let,lft,linecap,linejoin,llcorner,%
      llft,loggingall,lrcorner,lrt,makepath,makepen,mark,max,mexp,%
      mfplain,middlepoint,midpoint,min,mitered,miterlimit,mlog,mod,%
      month,mp,mpx,mpxbreak,newinternal,normaldeviate,not,nullpicture,%
      numeric,oct,odd,or,origin,pair,path,pausing,pen,pencircle,%
      penoffset,pensquare,pic,pickup,picture,point,postcontrol,%
      precontrol,primarydef,prologues,quartercircle,red,redpart,%
      reflectedabout,reverse,right,rotated,rotatedaround,round,rounded,%
      rt,save,scaled,secondarydef,self,setbounds,shifted,shipout,show,%
      showdependencies,showstopping,showtoken,showvariable,sind,%
      slanted,special,sqrt,squared,step,str,string,subpath,substring,%
      tertiarydef,text,thelabel,time,top,tracingall,tracingcapsules,%
      tracingchoices,tracingcommands,tracingequations,tracinglostchars,%
      tracingmacros,tracingnone,tracingonline,tracingoutput,%
      tracingrestores,tracingspecs,tracingstats,tracingtitles,%
      transform,transformed,true,truecorners,ulcorner,ulft,undraw,%
      unfill,unfilldraw,uniformdeviate,unitsquare,unitvector,unknown,%
      until,up,upto,urcorner,urt,vardef,verbatimtex,whatever,white,%
      withcolor,withdots,withpen,xpart,xscaled,xxpart,xypart,year,%
      yscaled,yxpart,yypart,zscaled},%
   sensitive,%
   alsoother={0123456789$},%
   morecomment=[l]\%,%
   morestring=[s]"%
  }[keywords,comments,strings]%
%%
%% Mizar definition (c) 2003 Adam Grabowski
%%
%% Mizar is freely available at URL www.mizar.org for the Linux x86,
%% Solaris x86, and Windows operating systems.
%%
\lst@definelanguage{Mizar}%
  {otherkeywords={->,(\#,\#),.=),\&},%
   morekeywords={vocabulary,constructors,$1,$1,$2,$3,$4,$5,$6,$7,$8,%
      @proof,according,aggregate,and,antonym,as,associativity,assume,%
      asymmetry,attr,be,begin,being,by,canceled,case,cases,cluster,%
      clusters,coherence,commutativity,compatibility,connectedness,%
      consider,consistency,constructors,contradiction,correctness,def,%
      deffunc,define,definition,definitions,defpred,end,environ,equals,%
      ex,exactly,existence,for,from,func,given,hence,hereby,holds,%
      idempotence,if,iff,implies,involutiveness,irreflexivity,is,it,%
      let,means,mode,non,not,notation,now,of,or,otherwise,over,per,%
      pred,prefix,projectivity,proof,provided,qua,reconsider,redefine,%
      reflexivity,requirements,reserve,scheme,schemes,section,selector,%
      set,st,struct,such,suppose,symmetry,synonym,take,that,the,then,%
      theorem,theorems,thesis,thus,to,transitivity,uniqueness,%
      vocabulary,where},%
   sensitive=t,%
   morecomment=[l]::%
  }[keywords,comments]%
\lst@definelanguage{Modula-2}%
  {morekeywords={AND,ARRAY,BEGIN,BY,CASE,CONST,DIV,DO,ELSE,ELSIF,END,%
      EXIT,EXPORT,FOR,FROM,IF,IMPLEMENTATION,IMPORT,IN,MOD,MODULE,NOT,%
      OF,OR,POINTER,PROCEDURE,QUALIFIED,RECORD,REPEAT,RETURN,SET,THEN,%
      TYPE,UNTIL,VAR,WHILE,WITH,ABS,BITSET,BOOLEAN,CAP,CARDINAL,CHAR,%
      CHR,DEC,EXCL,FALSE,FLOAT,HALT,HIGH,INC,INCL,INTEGER,LONGCARD,%
      LONGINT,LONGREAL,MAX,MIN,NIL,ODD,ORD,PROC,REAL,SIZE,TRUE,TRUNC,%
      VAL,DEFINITION,LOOP},% added keywords due to Peter Bartke 99/07/22
   sensitive,%
   morecomment=[n]{(*}{*)},%
   morestring=[d]',%
   morestring=[d]"%
  }[keywords,comments,strings]%
\lstdefinelanguage{MuPAD}{%
   morekeywords={end,next,break,if,then,elif,else,end_if,case,end_case,%
      otherwise,for,from,to,step,downto,in,end_for,while,end_while,%
      repeat,until,end_repeat,or,and,not,xor,div,mod,union,minus,%
      intersect,subset,proc,begin,end_proc,domain,end_domain,category,%
      end_category,axiom,end_axiom,quit,delete,frame},%
   morekeywords=[2]{NIL,FAIL,TRUE,FALSE,UNKNOWN,I,RD_INF,RD_NINF,%
      RD_NAN,name,local,option,save,inherits,of,do},%
   otherkeywords={\%if,?,!,:=,<,>,=,<=,<>,>=,==>,<=>,::,..,...,->,%
      @,@@,\$},%
   sensitive=true,%
   morecomment=[l]{//},%
   morecomment=[n]{/*}{*/},%
   morestring=[b]",%
   morestring=[d]{`}%
  }[keywords,comments,strings]
\lst@definelanguage{NASTRAN}
  {morekeywords={ENDDATA},%
   morecomment=[l]$,%
   MoreSelectCharTable=%
        \lst@CArgX BEGIN\ BULK\relax\lst@CDef{}%
        {\lst@ifmode\else \ifnum\lst@length=\z@
             \lst@EnterMode{\lst@GPmode}{\lst@modetrue
                  \let\lst@currstyle\lst@gkeywords@sty}%
         \fi \fi}%
        {\ifnum\lst@mode=\lst@GPmode
             \lst@XPrintToken \lst@LeaveMode
         \fi}%
  }[keywords,comments]%
\lst@definelanguage{Oberon-2}%
  {morekeywords={ARRAY,BEGIN,BOOLEAN,BY,CASE,CHAR,CONST,DIV,DO,ELSE,%
      ELSIF,END,EXIT,FALSE,FOR,IF,IMPORT,IN,INTEGER,IS,LONGINT,%
      LONGREAL,LOOP,MOD,MODULE,NIL,OF,OR,POINTER,PROCEDURE,REAL,RECORD,%
      REPEAT,RETURN,SET,SHORTINT,THEN,TO,TRUE,TYPE,UNTIL,VAR,WHILE,%
      WITH,ABS,ASH,CAP,CHR,COPY,DEC,ENTIER,EXCL,HALT,INC,INCL,LEN,LONG,%
      MAX,MIN,NEW,ODD,ORD,SHORT,SIZE},%
   sensitive,%
   morecomment=[n]{(*}{*)},%
   morestring=[d]',%
   morestring=[d]"%
  }[keywords,comments,strings]%
%%
%% OCL definition (c) 2000 Achim D. Brucker
%%
%% You are allowed to use, modify and distribute this code either under
%% the terms of the LPPL (version 1.0 or later) or the GPL (version 2.0
%% or later).
%%
\lst@definelanguage[decorative]{OCL}[OMG]{OCL}
  {otherkeywords={@pre},%
   morendkeywords={name,attributes,associatoinEnds,operations,%
      supertypes,allSupertypes,allInstances,oclIsKindOf,oclIsTypeOf,%
      oclAsType,oclInState,oclIsNew,evaluationType,abs,floor,round,max,%
      min,div,mod,size,concat,toUpper,toLower,substring,includes,%
      excludes,count,includesAll,exludesAll,isEmpty,notEmpty,sum,%
      exists,forAll,isUnique,sortedBy,iterate,union,intersection,%
      including,excluding,symmetricDifference,select,reject,collect,%
      asSequence,asBag,asSequence,asSet,append,prepend,subSequence,at,%
      first,last,true,false,isQuery}%
  }%
\lst@definelanguage[OMG]{OCL}%
    {morekeywords={context,pre,inv,post},%
    ndkeywords={or,xor,and,not,implies,if,then,else,endif},%
    morekeywords=[3]{Boolean,Integer,Real,String,Set,Sequence,Bag,%
       OclType,OclAny,OclExpression,Enumeration,Collection,},%
    sensitive=t,%
    morecomment=[l]--,%
    morestring=[d]'%
   }[keywords,comments,strings]%
\lst@definelanguage{PL/I}%
  {morekeywords={ABS,ATAN,AUTOMATIC,AUTO,ATAND,BEGIN,BINARY,BIN,BIT,%
      BUILTIN,BY,CALL,CHARACTER,CHAR,CHECK,COLUMN,COL,COMPLEX,CPLX,%
      COPY,COS,COSD,COSH,DATA,DATE,DECIMAL,DEC,DECLARE,DCL,DO,EDIT,%
      ELSE,END,ENDFILE,ENDPAGE,ENTRY,EXP,EXTERNAL,EXT,FINISH,FIXED,%
      FIXEDOVERFLOW,FOFL,FLOAT,FORMAT,GET,GO,GOTO,IF,IMAG,INDEX,%
      INITIAL,INIT,INTERNAL,INT,LABEL,LENGTH,LIKE,LINE,LIST,LOG,LOG2,%
      LOG10,MAIN,MAX,MIN,MOD,NOCHECK,NOFIXEDOVERFLOW,NOFOFL,NOOVERFLOW,%
      NOOFL,NOSIZE,NOUNDERFLOW,NOUFL,NOZERODIVIDE,NOZDIV,ON,OPTIONS,%
      OVERFLOW,OFL,PAGE,PICTURE,PROCEDURE,PROC,PUT,READ,REPEAT,RETURN,%
      RETURNS,ROUND,SIN,SIND,SINH,SIZE,SKIP,SQRT,STATIC,STOP,STRING,%
      SUBSTR,SUM,SYSIN,SYSPRINT,TAN,TAND,TANH,THEN,TO,UNDERFLOW,UFL,%
      VARYING,WHILE,WRITE,ZERODIVIDE,ZDIV},%
   sensitive=f,%
   morecomment=[s]{/*}{*/},%
   morestring=[d]'%
  }[keywords,comments,strings]%
%%
%% Reduce definition (c) 2002 Geraint Paul Bevan
%%
\lst@definelanguage{Reduce}%
  {morekeywords={%
%% reserved identifiers
abs,acos,acosh,acot,acoth,acsc,acsch,%
adjprec,algebraic,algint,allbranch,allfac,and,%
antisymmetric,append,arglength,array,asec,asech,%
asin,asinh,atan,atan2,atanh,begin,bfspace,bye,%
card_no,ceiling,clear,clearrules,coeff,coeffn,%
cofactor,combineexpt,combinelogs,comment,comp,%
complex,conj,cons,cont,cos,cosh,cot,coth,cramer,%
cref,csc,csch,decompose,define,defn,deg,demo,den,%
depend,det,df,difference,dilog,display,div,do,e,%
echo,ed,editdef,ei,end,eps,eq,equal,erf,errcont,%
evallhseqp,eval_mode,even,evenp,exp,expandlogs,%
expr,expt,ezgcd,factor,factorial,factorize,fexpr,%
first,fix,fixp,floor,for,forall,foreach,fort,%
fort_width,freeof,fullroots,g,gcd,geq,go,goto,%
greaterp,high_pow,hypot,i,if,ifactor,impart,in,%
index,infinity,infix,input,int,integer,interpol,%
intstr,k,korder,lambda,lcm,lcof,length,leq,lessp,%
let,lhs,linear,linelength,lisp,list,listargp,%
listargs,ln,load,load_package,log,log10,logb,%
low_pow,lterm,macro,mainvar,mass,mat,match,%
mateigen,matrix,max,mcd,member,memq,min,minus,mkid,%
modular,msg,mshell,multiplicities,nat,neq,nero,%
nextprime,nil,nodepend,noncom,nonzero,nosplit,%
nospur,nullspace,num,numberp,odd,off,on,operator,%
or,order,ordp,out,output,part,pause,period,pf,pi,%
plus,precedence,precise,precision,pret,pri,primep,%
print_precision,procedure,product,quit,quotient,%
random,random_new_seed,rank,rat,ratarg,rational,%
rationalize,ratpri,real,rederr,reduct,remainder,%
remfac,remind,repart,repeat,rest,resultant,retry,%
return,reverse,revpri,rhs,rlisp88,%
root_multiplicity,round,roundall,roundbf,rounded,%
saveas,savestructr,scalar,sec,sech,second,set,%
setmod,setq,share,showrules,showtime,shut,sign,sin,%
sinh,smacro,solve,solvesingular,spur,sqrt,structr,%
sub,sum,symbolic,symmetric,t,tan,tanh,third,time,%
times,tp,tra,trace,trfac,trigform,trint,until,%
varname,vecdim,vector,weight,when,where,while,%
write,ws,wtlevel,%
%% identifiers with spaces
%% for all,for each,go to,such that,%
},%
  sensitive=false,%
  morecomment=[l]\%,%
  morecomment=[s]{COMMENT}{;},%
  morecomment=[s]{COMMENT}{$},%
  morestring="%
 }[keywords,comments,strings]%
\lst@definelanguage[IBM]{Simula}[DEC]{Simula}{}%
\lst@definelanguage[DEC]{Simula}[67]{Simula}%
  {morekeywords={and,eq,eqv,ge,gt,hidden,imp,le,long,lt,ne,not,%
      options,or,protected,short}%
  }%
\lst@definelanguage[CII]{Simula}[67]{Simula}%
  {morekeywords={and,equiv,exit,impl,not,or,stop}}%
\lst@definelanguage[67]{Simula}%
  {morekeywords={activate,after,array,at,before,begin,boolean,%
      character,class,comment,delay,detach,do,else,end,external,false,%
      for,go,goto,if,in,inner,inspect,integer,is,label,name,new,none,%
      notext,otherwise,prior,procedure,qua,reactivate,real,ref,resume,%
      simset,simulation,step,switch,text,then,this,to,true,until,value,%
      virtual,when,while},%
   sensitive=f,%
   keywordcommentsemicolon={end}{else,end,otherwise,when}{comment},%
   morestring=[d]",%
   morestring=[d]'%
  }[keywords,keywordcomments,strings]%
\lst@definelanguage{S}[]{R}{}
\lst@definelanguage[PLUS]{S}[]{R}{}
\lst@definelanguage{R}%
  {keywords={abbreviate,abline,abs,acos,acosh,action,add1,add,%
      aggregate,alias,Alias,alist,all,anova,any,aov,aperm,append,apply,%
      approx,approxfun,apropos,Arg,args,array,arrows,as,asin,asinh,%
      atan,atan2,atanh,attach,attr,attributes,autoload,autoloader,ave,%
      axis,backsolve,barplot,basename,besselI,besselJ,besselK,besselY,%
      beta,binomial,body,box,boxplot,break,browser,bug,builtins,bxp,by,%
      c,C,call,Call,case,cat,category,cbind,ceiling,character,char,%
      charmatch,check,chol,chol2inv,choose,chull,class,close,cm,codes,%
      coef,coefficients,co,col,colnames,colors,colours,commandArgs,%
      comment,complete,complex,conflicts,Conj,contents,contour,%
      contrasts,contr,control,helmert,contrib,convolve,cooks,coords,%
      distance,coplot,cor,cos,cosh,count,fields,cov,covratio,wt,CRAN,%
      create,crossprod,cummax,cummin,cumprod,cumsum,curve,cut,cycle,D,%
      data,dataentry,date,dbeta,dbinom,dcauchy,dchisq,de,debug,%
      debugger,Defunct,default,delay,delete,deltat,demo,de,density,%
      deparse,dependencies,Deprecated,deriv,description,detach,%
      dev2bitmap,dev,cur,deviance,off,prev,,dexp,df,dfbetas,dffits,%
      dgamma,dgeom,dget,dhyper,diag,diff,digamma,dim,dimnames,dir,%
      dirname,dlnorm,dlogis,dnbinom,dnchisq,dnorm,do,dotplot,double,%
      download,dpois,dput,drop,drop1,dsignrank,dt,dummy,dump,dunif,%
      duplicated,dweibull,dwilcox,dyn,edit,eff,effects,eigen,else,%
      emacs,end,environment,env,erase,eval,equal,evalq,example,exists,%
      exit,exp,expand,expression,External,extract,extractAIC,factor,%
      fail,family,fft,file,filled,find,fitted,fivenum,fix,floor,for,%
      For,formals,format,formatC,formula,Fortran,forwardsolve,frame,%
      frequency,ftable,ftable2table,function,gamma,Gamma,gammaCody,%
      gaussian,gc,gcinfo,gctorture,get,getenv,geterrmessage,getOption,%
      getwd,gl,glm,globalenv,gnome,GNOME,graphics,gray,grep,grey,grid,%
      gsub,hasTsp,hat,heat,help,hist,home,hsv,httpclient,I,identify,if,%
      ifelse,Im,image,\%in\%,index,influence,measures,inherits,install,%
      installed,integer,interaction,interactive,Internal,intersect,%
      inverse,invisible,IQR,is,jitter,kappa,kronecker,labels,lapply,%
      layout,lbeta,lchoose,lcm,legend,length,levels,lgamma,library,%
      licence,license,lines,list,lm,load,local,locator,log,log10,log1p,%
      log2,logical,loglin,lower,lowess,ls,lsfit,lsf,ls,machine,Machine,%
      mad,mahalanobis,make,link,margin,match,Math,matlines,mat,matplot,%
      matpoints,matrix,max,mean,median,memory,menu,merge,methods,min,%
      missing,Mod,mode,model,response,mosaicplot,mtext,mvfft,na,nan,%
      names,omit,nargs,nchar,ncol,NCOL,new,next,NextMethod,nextn,%
      nlevels,nlm,noquote,NotYetImplemented,NotYetUsed,nrow,NROW,null,%
      numeric,\%o\%,objects,offset,old,on,Ops,optim,optimise,optimize,%
      options,or,order,ordered,outer,package,packages,page,pairlist,%
      pairs,palette,panel,par,parent,parse,paste,path,pbeta,pbinom,%
      pcauchy,pchisq,pentagamma,persp,pexp,pf,pgamma,pgeom,phyper,pico,%
      pictex,piechart,Platform,plnorm,plogis,plot,pmatch,pmax,pmin,%
      pnbinom,pnchisq,pnorm,points,poisson,poly,polygon,polyroot,pos,%
      postscript,power,ppoints,ppois,predict,preplot,pretty,Primitive,%
      print,prmatrix,proc,prod,profile,proj,prompt,prop,provide,%
      psignrank,ps,pt,ptukey,punif,pweibull,pwilcox,q,qbeta,qbinom,%
      qcauchy,qchisq,qexp,qf,qgamma,qgeom,qhyper,qlnorm,qlogis,qnbinom,%
      qnchisq,qnorm,qpois,qqline,qqnorm,qqplot,qr,Q,qty,qy,qsignrank,%
      qt,qtukey,quantile,quasi,quit,qunif,quote,qweibull,qwilcox,%
      rainbow,range,rank,rbeta,rbind,rbinom,rcauchy,rchisq,Re,read,csv,%
      csv2,fwf,readline,socket,real,Recall,rect,reformulate,regexpr,%
      relevel,remove,rep,repeat,replace,replications,report,require,%
      resid,residuals,restart,return,rev,rexp,rf,rgamma,rgb,rgeom,R,%
      rhyper,rle,rlnorm,rlogis,rm,rnbinom,RNGkind,rnorm,round,row,%
      rownames,rowsum,rpois,rsignrank,rstandard,rstudent,rt,rug,runif,%
      rweibull,rwilcox,sample,sapply,save,scale,scan,scan,screen,sd,se,%
      search,searchpaths,segments,seq,sequence,setdiff,setequal,set,%
      setwd,show,sign,signif,sin,single,sinh,sink,solve,sort,source,%
      spline,splinefun,split,sqrt,stars,start,stat,stem,step,stop,%
      storage,strstrheight,stripplot,strsplit,structure,strwidth,sub,%
      subset,substitute,substr,substring,sum,summary,sunflowerplot,svd,%
      sweep,switch,symbol,symbols,symnum,sys,status,system,t,table,%
      tabulate,tan,tanh,tapply,tempfile,terms,terrain,tetragamma,text,%
      time,title,topo,trace,traceback,transform,tri,trigamma,trunc,try,%
      ts,tsp,typeof,unclass,undebug,undoc,union,unique,uniroot,unix,%
      unlink,unlist,unname,untrace,update,upper,url,UseMethod,var,%
      variable,vector,Version,vi,warning,warnings,weighted,weights,%
      which,while,window,write,\%x\%,x11,X11,xedit,xemacs,xinch,xor,%
      xpdrows,xy,xyinch,yinch,zapsmall,zip},%
   otherkeywords={!,!=,~,$,*,\&,\%/\%,\%*\%,\%\%,<-,<<-,_,/},%
   alsoother={._$},%
   sensitive,%
   morecomment=[l]\#,%
   morestring=[d]",%
   morestring=[d]'% 2001 Robert Denham
  }%
\lst@definelanguage{SAS}%
  {procnamekeys={proc},%
   morekeywords={DATA,AND,OR,NOT,EQ,GT,LT,GE,LE,NE,INFILE,INPUT,DO,BY,%
      TO,SIN,COS,OUTPUT,END,PLOT,RUN,LIBNAME,VAR,TITLE,FIRSTOBS,OBS,%
      DELIMITER,DLM,EOF,ABS,DIM,HBOUND,LBOUND,MAX,MIN,MOD,SIGN,SQRT,%
      CEIL,FLOOR,FUZZ,INT,ROUND,TRUNC,DIGAMMA,ERF,ERFC,EXP,GAMMA,%
      LGAMMA,LOG,LOG2,LOG10,ARCOS,ARSIN,ATAN,COSH,SINH,TANH,TAN,%
      POISSON,PROBBETA,PROBBNML,PROBCHI,PROBF,PROBGAM,PROBHYPR,%
      PROBNEGB,PROBNORM,PROBT,BETAINV,CINV,FINV,GAMINV,PROBIT,TINV,CSS,%
      CV,KURTOSIS,MEAN,NMISS,RANGE,SKEWNESS,STD,STDERR,SUM,USS,NORMAL,%
      RANBIN,RANCAU,RANEXP,RANGAM,RANNOR,RANPOI,RANTBL,RANTRI,RANUNI,%
      UNIFORM,IF,THEN,ELSE,WHILE,UNTIL,DROP,KEEP,LABEL,DEFAULT,ARRAY,%
      MERGE,CARDS,CARDS4,PUT,SET,UPDATE,ABORT,DELETE,DISPLAY,LIST,%
      LOSTCARD,MISSING,STOP,WHERE,ARRAY,DROP,KEEP,WINDOW,LENGTH,RENAME,%
      RETAIN,MEANS,UNIVARIATE,SUMMARY,TABULATE,CORR,FREQ,FOOTNOTE,NOTE,%
      SHOW},%
   otherkeywords={!,!=,~,$,*,\&,_,/,<,>=,=<,>},%
   morestring=[d]'%
   }[keywords,comments,strings,procnames]%
\lst@definelanguage[AlLaTeX]{TeX}[LaTeX]{TeX}%
  {moretexcs={AtBeginDocument,AtBeginDvi,AtEndDocument,AtEndOfClass,%
      AtEndOfPackage,ClassError,ClassInfo,ClassWarning,%
      ClassWarningNoLine,CurrentOption,DeclareErrorFont,%
      DeclareFixedFont,DeclareFontEncoding,DeclareFontEncodingDefaults,%
      DeclareFontFamily,DeclareFontShape,DeclareFontSubstitution,%
      DeclareMathAccent,DeclareMathAlphabet,DeclareMathAlphabet,%
      DeclareMathDelimiter,DeclareMathRadical,DeclareMathSizes,%
      DeclareMathSymbol,DeclareMathVersion,DeclareOldFontCommand,%
      DeclareOption,DeclarePreloadSizes,DeclareRobustCommand,%
      DeclareSizeFunction,DeclareSymbolFont,DeclareSymbolFontAlphabet,%
      DeclareTextAccent,DeclareTextAccentDefault,DeclareTextCommand,%
      DeclareTextCommandDefault,DeclareTextComposite,%
      DeclareTextCompositeCommand,DeclareTextFontCommand,%
      DeclareTextSymbol,DeclareTextSymbolDefault,ExecuteOptions,%
      GenericError,GenericInfo,GenericWarning,IfFileExists,%
      InputIfFileExists,LoadClass,LoadClassWithOptions,MessageBreak,%
      OptionNotUsed,PackageError,PackageInfo,PackageWarning,%
      PackageWarningNoLine,PassOptionsToClass,PassOptionsToPackage,%
      ProcessOptionsProvidesClass,ProvidesFile,ProvidesFile,%
      ProvidesPackage,ProvideTextCommand,RequirePackage,%
      RequirePackageWithOptions,SetMathAlphabet,SetSymbolFont,%
      TextSymbolUnavailable,UseTextAccent,UseTextSymbol},%
   morekeywords={array,center,displaymath,document,enumerate,eqnarray,%
      equation,flushleft,flushright,itemize,list,lrbox,math,minipage,%
      picture,sloppypar,tabbing,tabular,trivlist,verbatim}%
  }%
\lst@definelanguage[LaTeX]{TeX}[common]{TeX}%
  {moretexcs={a,AA,aa,addcontentsline,addpenalty,addtocontents,%
      addtocounter,addtolength,addtoversion,addvspace,alph,Alph,and,%
      arabic,array,arraycolsep,arrayrulewidth,arraystretch,author,%
      baselinestretch,begin,bezier,bfseries,bibcite,bibdata,bibitem,%
      bibliography,bibliographystyle,bibstyle,bigskip,boldmath,%
      botfigrule,bottomfraction,Box,caption,center,CheckCommand,circle,%
      citation,cite,cleardoublepage,clearpage,cline,columnsep,%
      columnseprule,columnwidth,contentsline,dashbox,date,dblfigrule,%
      dblfloatpagefraction,dblfloatsep,dbltextfloatsep,dbltopfraction,%
      defaultscriptratio,defaultscriptscriptratio,depth,Diamond,%
      displaymath,document,documentclass,documentstyle,doublerulesep,%
      em,emph,endarray,endcenter,enddisplaymath,enddocument,%
      endenumerate,endeqnarray,endequation,endflushleft,endflushright,%
      enditemize,endlist,endlrbox,endmath,endminipage,endpicture,%
      endsloppypar,endtabbing,endtabular,endtrivlist,endverbatim,%
      enlargethispage,ensuremath,enumerate,eqnarray,equation,%
      evensidemargin,extracolsep,fbox,fboxrule,fboxsep,filecontents,%
      fill,floatpagefraction,floatsep,flushbottom,flushleft,flushright,%
      fnsymbol,fontencoding,fontfamily,fontseries,fontshape,fontsize,%
      fontsubfuzz,footnotemark,footnotesep,footnotetext,footskip,frac,%
      frame,framebox,fussy,glossary,headheight,headsep,height,hline,%
      hspace,I,include,includeonly,index,inputlineno,intextsep,%
      itemindent,itemize,itemsep,iterate,itshape,Join,kill,label,%
      labelsep,labelwidth,LaTeX,LaTeXe,leadsto,lefteqn,leftmargin,%
      leftmargini,leftmarginii,leftmarginiii,leftmarginiv,leftmarginv,%
      leftmarginvi,leftmark,lhd,lim,linebreak,linespread,linethickness,%
      linewidth,list,listfiles,listfiles,listparindent,lrbox,%
      makeatletter,makeatother,makebox,makeglossary,makeindex,%
      makelabel,MakeLowercase,MakeUppercase,marginpar,marginparpush,%
      marginparsep,marginparwidth,markboth,markright,math,mathbf,%
      mathellipsis,mathgroup,mathit,mathrm,mathsf,mathsterling,mathtt,%
      mathunderscore,mathversion,mbox,mdseries,mho,minipage,%
      multicolumn,multiput,NeedsTeXFormat,newcommand,newcounter,%
      newenvironment,newfont,newhelp,newlabel,newlength,newline,%
      newmathalphabet,newpage,newsavebox,newtheorem,nobreakspace,%
      nobreakspace,nocite,nocorr,nocorrlist,nofiles,nolinebreak,%
      nonumber,nopagebreak,normalcolor,normalfont,normalmarginpar,%
      numberline,obeycr,oddsidemargin,oldstylenums,onecolumn,oval,%
      pagebreak,pagenumbering,pageref,pagestyle,paperheight,paperwidth,%
      paragraphmark,parbox,parsep,partopsep,picture,poptabs,pounds,%
      protect,pushtabs,put,qbezier,qbeziermax,r,raggedleft,raisebox,%
      ref,refstepcounter,renewcommand,renewenvironment,restorecr,%
      reversemarginpar,rhd,rightmargin,rightmark,rmfamily,roman,Roman,%
      rootbox,rule,samepage,sbox,scshape,secdef,section,sectionmark,%
      selectfont,setcounter,settodepth,settoheight,settowidth,sffamily,%
      shortstack,showoutput,showoverfull,sloppy,sloppypar,slshape,%
      smallskip,sqsubset,sqsupset,SS,stackrel,stepcounter,stop,stretch,%
      subparagraphmark,subsectionmark,subsubsectionmark,sum,%
      suppressfloats,symbol,tabbing,tabbingsep,tabcolsep,tabular,%
      tabularnewline,textasciicircum,textasciitilde,textbackslash,%
      textbar,textbf,textbraceleft,textbraceright,textbullet,%
      textcircled,textcompwordmark,textdagger,textdaggerdbl,textdollar,%
      textellipsis,textemdash,textendash,textexclamdown,textfloatsep,%
      textfraction,textgreater,textheight,textit,textless,textmd,%
      textnormal,textparagraph,textperiodcentered,textquestiondown,%
      textquotedblleft,textquotedblright,textquoteleft,textquoteright,%
      textregistered,textrm,textsc,textsection,textsf,textsl,%
      textsterling,textsuperscript,texttrademark,texttt,textunderscore,%
      textup,textvisiblespace,textwidth,thanks,thefootnote,thempfn,%
      thempfn,thempfootnote,thepage,thepage,thicklines,thinlines,%
      thispagestyle,title,today,topfigrule,topfraction,topmargin,%
      topsep,totalheight,tracingfonts,trivlist,ttfamily,twocolumn,%
      typein,typeout,unboldmath,unitlength,unlhd,unrhd,upshape,usebox,%
      usecounter,usefont,usepackage,value,vector,verb,verbatim,vline,%
      vspace,width,%
      normalsize,small,footnotesize,scriptsize,tiny,large,Large,LARGE,%
      huge,Huge}%
  }%
\lst@definelanguage[plain]{TeX}[common]{TeX}%
  {moretexcs={advancepageno,beginsection,bf,bffam,bye,cal,cleartabs,%
      columns,dosupereject,endinsert,eqalign,eqalignno,fiverm,fivebf,%
      fivei,fivesy,folio,footline,hang,headline,it,itemitem,itfam,%
      leqalignno,magnification,makefootline,makeheadline,midinsert,mit,%
      mscount,nopagenumbers,normalbottom,of,oldstyle,pagebody,%
      pagecontents,pageinsert,pageno,plainoutput,preloaded,proclaim,rm,%
      settabs,sevenbf,seveni,sevensy,sevenrm,sl,slfam,supereject,%
      tabalign,tabs,tabsdone,tabsyet,tenbf,tenex,teni,tenit,tenrm,%
      tensl,tensy,tentt,textindent,topglue,topins,topinsert,tt,ttfam,%
      ttraggedright,vfootnote}%
  }%
\lst@definelanguage[common]{TeX}[primitive]{TeX}
  {moretexcs={active,acute,ae,AE,aleph,allocationnumber,allowbreak,%
      alpha,amalg,angle,approx,arccos,arcsin,arctan,arg,arrowvert,%
      Arrowvert,ast,asymp,b,backslash,bar,beta,bgroup,big,Big,bigbreak,%
      bigcap,bigcirc,bigcup,bigg,Bigg,biggl,Biggl,biggm,Biggm,biggr,%
      Biggr,bigl,Bigl,bigm,Bigm,bigodot,bigoplus,bigotimes,bigr,Bigr,%
      bigskip,bigskipamount,bigsqcup,bigtriangledown,bigtriangleup,%
      biguplus,bigvee,bigwedge,bmod,bordermatrix,bot,bowtie,brace,%
      braceld,bracelu,bracerd,braceru,bracevert,brack,break,breve,%
      buildrel,bullet,c,cap,cases,cdot,cdotp,cdots,centering,%
      centerline,check,chi,choose,circ,clubsuit,colon,cong,coprod,%
      copyright,cos,cosh,cot,coth,csc,cup,d,dag,dagger,dashv,ddag,%
      ddagger,ddot,ddots,deg,delta,Delta,det,diamond,diamondsuit,dim,%
      displaylines,div,do,dospecials,dot,doteq,dotfill,dots,downarrow,%
      Downarrow,downbracefill,egroup,eject,ell,empty,emptyset,endgraf,%
      endline,enskip,enspace,epsilon,equiv,eta,exists,exp,filbreak,%
      flat,fmtname,fmtversion,footins,footnote,footnoterule,forall,%
      frenchspacing,frown,gamma,Gamma,gcd,ge,geq,gets,gg,goodbreak,%
      grave,H,hat,hbar,heartsuit,hglue,hideskip,hidewidth,hom,%
      hookleftarrow,hookrightarrow,hphantom,hrulefill,i,ialign,iff,Im,%
      imath,in,inf,infty,int,interdisplaylinepenalty,%
      interfootnotelinepenalty,intop,iota,item,j,jmath,joinrel,jot,%
      kappa,ker,l,L,lambda,Lambda,land,langle,lbrace,lbrack,lceil,%
      ldotp,ldots,le,leavevmode,leftarrow,Leftarrow,leftarrowfill,%
      leftharpoondown,leftharpoonup,leftline,leftrightarrow,%
      Leftrightarrow,leq,lfloor,lg,lgroup,lhook,lim,liminf,limsup,line,%
      ll,llap,lmoustache,ln,lnot,log,longleftarrow,Longleftarrow,%
      longleftrightarrow,Longleftrightarrow,longmapsto,longrightarrow,%
      Longrightarrow,loop,lor,lq,magstep,magstep,magstephalf,mapsto,%
      mapstochar,mathhexbox,mathpalette,mathstrut,matrix,max,maxdimen,%
      medbreak,medskip,medskipamount,mid,min,models,mp,mu,multispan,%
      nabla,narrower,natural,ne,nearrow,neg,negthinspace,neq,newbox,%
      newcount,newdimen,newfam,newif,newinsert,newlanguage,newmuskip,%
      newread,newskip,newtoks,newwrite,next,ni,nobreak,nointerlineskip,%
      nonfrenchspacing,normalbaselines,normalbaselineskip,%
      normallineskip,normallineskiplimit,not,notin,nu,null,nwarrow,o,O,%
      oalign,obeylines,obeyspaces,odot,oe,OE,offinterlineskip,oint,%
      ointop,omega,Omega,ominus,ooalign,openup,oplus,oslash,otimes,%
      overbrace,overleftarrow,overrightarrow,owns,P,parallel,partial,%
      perp,phantom,phi,Phi,pi,Pi,pm,pmatrix,pmod,Pr,prec,preceq,prime,%
      prod,propto,psi,Psi,qquad,quad,raggedbottom,raggedright,rangle,%
      rbrace,rbrack,rceil,Re,relbar,Relbar,removelastskip,repeat,%
      rfloor,rgroup,rho,rhook,rightarrow,Rightarrow,rightarrowfill,%
      rightharpoondown,rightharpoonup,rightleftharpoons,rightline,rlap,%
      rmoustache,root,rq,S,sb,searrow,sec,setminus,sharp,showhyphens,%
      sigma,Sigma,sim,simeq,sin,sinh,skew,slash,smallbreak,smallint,%
      smallskip,smallskipamount,smash,smile,sp,space,spadesuit,sqcap,%
      sqcup,sqrt,sqsubseteq,sqsupseteq,ss,star,strut,strutbox,subset,%
      subseteq,succ,succeq,sum,sup,supset,supseteq,surd,swarrow,t,tan,%
      tanh,tau,TeX,theta,Theta,thinspace,tilde,times,to,top,tracingall,%
      triangle,triangleleft,triangleright,u,underbar,underbrace,%
      uparrow,Uparrow,upbracefill,updownarrow,Updownarrow,uplus,%
      upsilon,Upsilon,v,varepsilon,varphi,varpi,varrho,varsigma,%
      vartheta,vdash,vdots,vec,vee,vert,Vert,vglue,vphantom,wedge,%
      widehat,widetilde,wlog,wp,wr,xi,Xi,zeta}%
  }%
\lst@definelanguage[primitive]{TeX}%
  {moretexcs={above,abovedisplayshortskip,abovedisplayskip,aftergroup,%
      abovewithdelims,accent,adjdemerits,advance,afterassignment,atop,%
      atopwithdelims,badness,baselineskip,batchmode,begingroup,%
      belowdisplayshortskip,belowdisplayskip,binoppenalty,botmark,box,%
      boxmaxdepth,brokenpenalty,catcode,char,chardef,cleaders,closein,%
      closeout,clubpenalty,copy,count,countdef,cr,crcr,csname,day,%
      deadcycles,def,defaulthyphenchar,defaultskewchar,delcode,%
      delimiter,delimiterfactor,delimitershortfall,dimen,dimendef,%
      discretionary,displayindent,displaylimits,displaystyle,%
      displaywidowpenalty,displaywidth,divide,doublehyphendemerits,dp,%
      edef,else,emergencystretch,end,endcsname,endgroup,endinput,%
      endlinechar,eqno,errhelp,errmessage,errorcontextlines,%
      errorstopmode,escapechar,everycr,everydisplay,everyhbox,everyjob,%
      everymath,everypar,everyvbox,exhyphenpenalty,expandafter,fam,fi,%
      finalhypendemerits,firstmark,floatingpenalty,font,fontdimen,%
      fontname,futurelet,gdef,global,globaldefs,halign,hangafter,%
      hangindent,hbadness,hbox,hfil,hfill,hfilneg,hfuzz,hoffset,%
      holdinginserts,hrule,hsize,hskip,hss,ht,hyphenation,hyphenchar,%
      hyphenpenalty,if,ifcase,ifcat,ifdim,ifeof,iffalse,ifhbox,ifhmode,%
      ifinner,ifmmode,ifnum,ifodd,iftrue,ifvbox,ifvmode,ifvoid,ifx,%
      ignorespaces,immediate,indent,input,insert,insertpenalties,%
      interlinepenalty,jobname,kern,language,lastbox,lastkern,%
      lastpenalty,lastskip,lccode,leaders,left,lefthyphenmin,leftskip,%
      leqno,let,limits,linepenalty,lineskip,lineskiplimits,long,%
      looseness,lower,lowercase,mag,mark,mathaccent,mathbin,mathchar,%
      mathchardef,mathchoice,mathclose,mathcode,mathinner,mathop,%
      mathopen,mathord,mathpunct,mathrel,mathsurround,maxdeadcycles,%
      maxdepth,meaning,medmuskip,message,mkern,month,moveleft,%
      moveright,mskip,multiply,muskip,muskipdef,newlinechar,noalign,%
      noboundary,noexpand,noindent,nolimits,nonscript,nonstopmode,%
      nulldelimiterspace,nullfont,number,omit,openin,openout,or,outer,%
      output,outputpenalty,over,overfullrule,overline,overwithdelims,%
      pagedepth,pagefilllstretch,pagefillstretch,pagefilstretch,%
      pagegoal,pageshrink,pagestretch,pagetotal,par,parfillskip,%
      parindent,parshape,parskip,patterns,pausing,penalty,%
      postdisplaypenalty,predisplaypenalty,predisplaysize,pretolerance,%
      prevdepth,prevgraf,radical,raise,read,relax,relpenalty,right,%
      righthyphenmin,rightskip,romannumeral,scriptfont,%
      scriptscriptfont,scriptscriptstyle,scriptspace,scriptstyle,%
      scrollmode,setbox,setlanguage,sfcode,shipout,show,showbox,%
      showboxbreadth,showboxdepth,showlists,showthe,skewchar,skip,%
      skipdef,spacefactor,spaceskip,span,special,splitbotmark,%
      splitfirstmark,splitmaxdepth,splittopskip,string,tabskip,%
      textfont,textstyle,the,thickmuskip,thinmuskip,time,toks,toksdef,%
      tolerance,topmark,topskip,tracingcommands,tracinglostchars,%
      tracingmacros,tracingonline,tracingoutput,tracingpages,%
      tracingparagraphs,tracingrestores,tracingstats,uccode,uchyph,%
      underline,unhbox,unhcopy,unkern,unpenalty,unskip,unvbox,unvcopy,%
      uppercase,vadjust,valign,vbadness,vbox,vcenter,vfil,vfill,%
      vfilneg,vfuzz,voffset,vrule,vsize,vskip,vsplit,vss,vtop,wd,%
      widowpenalty,write,xdef,xleaders,xspaceskip,year},%
   sensitive,%
   alsoother={0123456789$_},%
   morecomment=[l]\%%
  }[keywords,tex,comments]%
%%
%% Verilog definition (c) 2003 Cameron H. G. Wright <c.h.g.wright@ieee.org>
%%   Based on the IEEE 1364-2001 Verilog HDL standard
%%   Ref: S. Palnitkar, "Verilog HDL: A Guide to Digital Design and Synthesis,"
%%        Prentice Hall, 2003. ISBN: 0-13-044911-3
%%
\lst@definelanguage{Verilog}%
  {morekeywords={% reserved keywords
      always,and,assign,automatic,begin,buf,bufif0,bufif1,case,casex,%
      casez,cell,cmos,config,deassign,default,defparam,design,disable,%
      edge,else,end,endcase,endconfig,endfunction,endgenerate,%
      endmodule,endprimitive,endspecify,endtable,endtask,event,for,%
      force,forever,fork,function,generate,genvar,highz0,highz1,if,%
      ifnone,incdir,include,initial,inout,input,instance,integer,join,%
      large,liblist,library,localparam,macromodule,medium,module,nand,%
      negedge,nmos,nor,noshowcancelled,not,notif0,notif1,or,output,%
      parameter,pmos,posedge,primitive,pull0,pull1,pulldown,pullup,%
      pulsestyle_onevent,pulsestyle_ondetect,rcmos,real,realtime,reg,%
      release,repeat,rnmos,rpmos,rtran,rtranif0,rtranif1,scalared,%
      showcancelled,signed,small,specify,specparam,strong0,strong1,%
      supply0,supply1,table,task,time,tran,tranif0,tranif1,tri,tri0,%
      tri1,triand,trior,trireg,unsigned,use,vectored,wait,wand,weak0,%
      weak1,while,wire,wor,xnor,xor},%
   moredirectives={% system tasks and functions
      $bitstoreal,$countdrivers,$display,$fclose,$fdisplay,$fmonitor,%
      $fopen,$fstrobe,$fwrite,$finish,$getpattern,$history,$incsave,%
      $input,$itor,$key,$list,$log,$monitor,$monitoroff,$monitoron,%
      $nokey},%
   moredirectives={% compiler directives
      `accelerate,`autoexpand_vectornets,`celldefine,`default_nettype,%
      `define,`else,`elsif,`endcelldefine,`endif,`endprotect,%
      `endprotected,`expand_vectornets,`ifdef,`ifndef,`include,%
      `no_accelerate,`noexpand_vectornets,`noremove_gatenames,%
      `nounconnected_drive,`protect,`protected,`remove_gatenames,%
      `remove_netnames,`resetall,`timescale,`unconnected_drive},%
   moredelim=*[directive]\#,%
   sensitive,%
   morecomment=[s]{/*}{*/},%
   morecomment=[l]//,% nonstandard
   morestring=[b]"%
  }[keywords,comments,strings,directives]%
\endinput
%%
%% End of file `lstlang3.sty'.
