/Final-Report/lstdrvrs-1.3.dtx

http://teamo-webtranslator.googlecode.com/ · Unknown · 1619 lines · 1611 code · 8 blank · 0 comment · 0 complexity · 5e668dfef718090afad44b13472115be MD5 · raw file

Large files are truncated click here to view the full file

  1. % \iffalse
  2. %
  3. %<*driver>
  4. \documentclass{ltxdoc}
  5. \EnableCrossrefs
  6. \CodelineIndex
  7. \begin{document}
  8. \DocInput{lstdrvrs-1.3.dtx}
  9. \end{document}
  10. %</driver>
  11. % \fi
  12. %
  13. %
  14. % \DoNotIndex{\[,\{,\},\],\1,\2,\3,\4,\5,\6,\7,\8,\9,\0}
  15. % \DoNotIndex{\`,\,,\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_}
  16. % \DoNotIndex{\askforoverwritefalse,\askforoverwritetrue,\batchfile}
  17. % \DoNotIndex{\begin,\def,\else,\@empty,\end,\endpreamble,\expandafter}
  18. % \DoNotIndex{\fi,\file,\from,\gdef,\generate,\ifnum,\ifx,\input}
  19. % \DoNotIndex{\keepsilent,\lccode,\let,\lowercase,\preamble,\relax}
  20. % \DoNotIndex{\undefined}
  21. %
  22. %
  23. % \title{Language, Style and Format drivers\\ for \textsf{Listings 1.3}\\ {\large by Carsten Heinz and individual authors:}}
  24. % \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
  25. % \date{}
  26. %
  27. % \maketitle
  28. %
  29. % \newwrite\authors \immediate\openout\authors lstdrvrs.tmp\relax
  30. % \gdef\lstthanks#1#2#3{#1\global\let\lstthanks\lstthanksb\lstwrite{#1}}
  31. % \gdef\lstthanksb#1#2#3{#1\lstwrite{\string\and\space#1}}
  32. % \gdef\lstwrite#1{\begingroup\let~\space\def\"{\string\"}\def\'{\string\'}\immediate\write\authors{#1}\endgroup}
  33. %
  34. % \newcommand*\lsthelper[4]{#1}
  35. %
  36. %
  37. % \section{Installation and configuration}
  38. %
  39. % \begingroup
  40. % \begin{macrocode}
  41. %% (w)(c) 1996/1997/1998/1999/2000/2001/2002/2003/2004 Carsten Heinz
  42. %% and/or any other author listed elsewhere in this file.
  43. %%
  44. %% This file is distributed under the terms of the LaTeX Project Public
  45. %% License from CTAN archives in directory macros/latex/base/lppl.txt.
  46. %% Either version 1.0 or, at your option, any later version.
  47. %%
  48. %% This file is completely free and comes without any warranty.
  49. %%
  50. %% Send comments and ideas on the package, error reports and additional
  51. %% programming languages to <cheinz@gmx.de>.
  52. %%
  53. % \end{macrocode}
  54. % \endgroup
  55. %
  56. % \begingroup
  57. % \begin{macrocode}
  58. %<*install>
  59. \input docstrip
  60. \preamble
  61. \endpreamble
  62. \ifToplevel{
  63. \usedir{tex/latex/listings}
  64. \keepsilent
  65. \askonceonly
  66. }
  67. \generate{
  68. \file{lstlang1.sty}{\from{lstdrvrs-1.3.dtx}{lang1}}
  69. \file{lstlang2.sty}{\from{lstdrvrs-1.3.dtx}{lang2}}
  70. \file{lstlang3.sty}{\from{lstdrvrs-1.3.dtx}{lang3}}
  71. }
  72. \ifToplevel{
  73. \Msg{*}
  74. \Msg{* You probably need to move all created `.sty' and `.cfg'}
  75. \Msg{* files into a directory searched by TeX.}
  76. \Msg{*}
  77. \Msg{* Run `lstdrvrs.dtx' through LaTeX2e to get the documentation.}
  78. \Msg{*}
  79. }
  80. \endbatchfile
  81. %</install>
  82. % \end{macrocode}
  83. % \endgroup
  84. %
  85. % \begingroup
  86. % \begin{macrocode}
  87. %<*config>
  88. % \end{macrocode}
  89. % \endgroup
  90. % We mainly define default dialects.
  91. % \begin{macrocode}
  92. \ProvidesFile{listings.cfg}[2004/09/05 1.3 listings configuration]
  93. \def\lstlanguagefiles
  94. {lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
  95. \lstset{defaultdialect=[R/3 6.10]ABAP,
  96. defaultdialect=[95]Ada,
  97. defaultdialect=[68]Algol,
  98. defaultdialect=[gnu]Awk,
  99. defaultdialect=[ANSI]C,
  100. defaultdialect=[light]Caml,
  101. defaultdialect=[1985]Cobol,
  102. defaultdialect=[ISO]C++,
  103. defaultdialect=[95]Fortran,
  104. defaultdialect=[3.0]Mathematica,
  105. defaultdialect=[OMG]OCL,
  106. defaultdialect=[Standard]Pascal,
  107. defaultdialect=[67]Simula,
  108. defaultdialect=[plain]TeX,
  109. defaultdialect=[97]VRML}
  110. \lstalias[]{TclTk}[tk]{tcl}
  111. % \end{macrocode}
  112. % And now some shortcuts for the ABAP versions (provided by Knut Lickert).
  113. % I (Knut) think the leading R/2, R/3 is not necessary (The support for R/2
  114. % is finished). The version number with letter is important for the
  115. % runtime-system, but the programming language should be the same
  116. % for each version.
  117. % \begin{macrocode}
  118. \lstalias[6.1]{ABAP}[R/3 6.10]{ABAP}
  119. \lstalias[3.1]{ABAP}[R/3 3.1C]{ABAP}
  120. \lstalias[4.6]{ABAP}[R/3 4.6C]{ABAP}
  121. % \end{macrocode}
  122. % \begingroup
  123. % \begin{macrocode}
  124. %</config>
  125. % \end{macrocode}
  126. % \endgroup
  127. %
  128. % \begin{macrocode}
  129. %<+lang1>\ProvidesFile{lstlang1.sty}
  130. %<+lang2>\ProvidesFile{lstlang2.sty}
  131. %<+lang3>\ProvidesFile{lstlang3.sty}
  132. %<-config> [2004/09/05 1.3 listings language file]
  133. % \end{macrocode}
  134. %
  135. %
  136. % \section{Language drivers}
  137. %
  138. %
  139. % \subsection{Abap}
  140. %
  141. % \lstthanks{Knut Lickert}{knut.lickert@gmx.de}{2000/08/01,2001/12/29,2002/04/11}
  142. % added support for Abap.\footnote{In this section `I' is Knut Lickert.}
  143. %
  144. % \begingroup
  145. % \begin{macrocode}
  146. %<*lang2>
  147. % \end{macrocode}
  148. % \begin{macrocode}
  149. %%
  150. %% Abap definition by Knut Lickert
  151. %%
  152. % \end{macrocode}
  153. %
  154. % There are some other new commands in release 6.10.
  155. % They will follow later, but up to now I don't work
  156. % with 6.10.
  157. %
  158. % \begin{macrocode}
  159. \lst@definelanguage[R/3 6.10]{ABAP}[R/3 4.6C]{ABAP}%
  160. {morekeywords={try,endtry},%
  161. }[keywords,comments,strings]
  162. % \end{macrocode}
  163. % \begin{macrocode}
  164. \lst@definelanguage[R/3 4.6C]{ABAP}[R/3 3.1]{ABAP}%
  165. {morekeywords={method,ref,class,create,object,%
  166. methods,endmethod,private,protected,public,section,%
  167. catch,system-exceptions,endcatch,%
  168. },%
  169. moreprocnamekeys={class},%
  170. literate={->}{{$\rightarrow$}}1{=>}{{$\Rightarrow$}}1,%
  171. }[keywords,comments,strings,procnames]
  172. % \end{macrocode}
  173. % Yes there are also some more releases in R/3 (2.1\ldots), but I
  174. % know them not really. So let's start with R/3~3.1.
  175. % \begin{macrocode}
  176. \lst@definelanguage[R/3 3.1]{ABAP}[R/2 5.0]{ABAP}{}%
  177. % \end{macrocode}
  178. % As I remember all this commands exists in R/2. Many commands are
  179. % new in R/2~5.0 (compared with R/2 4.3). But as I am not using
  180. % R/2~4.3 any more, I start with R/2~5.0.
  181. % \begin{macrocode}
  182. \lst@definelanguage[R/2 5.0]{ABAP}%
  183. {sensitive=f,%
  184. procnamekeys={report,program,form,function,module},%
  185. morekeywords={*,add,after,alias,analyzer,and,append,appending,area,assign,at,%
  186. authority-check,before,binary,blank,break-point,calendar,call,%
  187. case,change,changing,check,clear,cnt,co,collect,commit,common,%
  188. component,compute,condense,corresponding,cos,cp,cs,currency-conversion,%
  189. cursor,data,database,dataset,decimals,define,delete,deleting,dequeue,%
  190. describe,detail,dialog,directory,div,divide,do,documentation,%
  191. during,dynpro,else,end-of-page,end-of-selection,endat,endcase,%
  192. enddo,endfor,endform,endif,endloop,endmodule,endselect,%
  193. endwhile,enqueue,exceptions,exit,exp,export,exporting,extract,%
  194. field,fields,field-groups,field-symbols,find,for,form,format,free,%
  195. from,function,generating,get,giving,hide,id,if,import,%
  196. importing,in,incl,include,initial,initialization,input,insert,%
  197. interrupt,into,is,language,leave,leading,left-justified,like,line,lines,line-count,
  198. line-selection,list-processing,load,local,log,logfile,loop,%
  199. margin,mark,mask,memory,menue,message,mod,modify,module,move,%
  200. move-text,multiply,na,new,new-line,new-page,no-gaps,np,ns,%
  201. number,obligatory,occurs,of,on,or,others,output,parameter,%
  202. parameters,parts,perform,pf-status,places,position,process,%
  203. raise,raising,ranges,read,refresh,refresh-dynpro,reject,remote,%
  204. replace,report,reserve,reset,restart,right-justified,run,screen,scroll,search,%
  205. segments,select,select-options,selection-screen,set,shift,sin,%
  206. single,sqrt,start-of-selection,statement,structure,submit,%
  207. subtract,summary,summing,suppress,system,table,tables,task,%
  208. text,time,to,top-of-page,trace,transaction,transfer,%
  209. transfer-dynpro,translate,type,unpack,update,user-command,%
  210. using,value,when,where,while,window,with,workfile,write,},%
  211. morecomment=[l]",%
  212. morecomment=[f][0]*,%
  213. morestring=[d]'%
  214. }[keywords,comments,strings,procnames]
  215. % \end{macrocode}
  216. % This section for R/2~4.3 is not really maintained. It is just what I remember
  217. % of the past.
  218. % \begin{macrocode}
  219. \lst@definelanguage[R/2 4.3]{ABAP}[R/2 5.0]{ABAP}%
  220. {deletekeywords={function,importing,exporting,changing,exceptions,%
  221. raise,raising}%
  222. }[keywords,comments,strings]
  223. % \end{macrocode}
  224. % \begin{macrocode}
  225. %</lang2>
  226. % \end{macrocode}
  227. % \endgroup
  228. %
  229. %
  230. % \subsection{ACSL}
  231. %
  232. % This language was provided by \lstthanks{Andreas~Matthias}{amat@kabsi.at}
  233. % {2000/03/21}. I'm sorry for forgetting to add this language for a long time.
  234. % \begingroup
  235. % \begin{macrocode}
  236. %<*lang1>
  237. % \end{macrocode}
  238. % \begin{macrocode}
  239. %%
  240. %% ACSL definition (c) 2000 by Andreas Matthias
  241. %%
  242. \lst@definelanguage{ACSL}[90]{Fortran}%
  243. {morekeywords={algorithm,cinterval,constant,derivative,discrete,%
  244. dynamic,errtag,initial,interval,maxterval,minterval,%
  245. merror,xerror,nsteps,procedural,save,schedule,sort,%
  246. table,terminal,termt,variable},%
  247. sensitive=false,%
  248. morecomment=[l]!%
  249. }[keywords, comments]%
  250. % \end{macrocode}
  251. % \begin{macrocode}
  252. %</lang1>
  253. % \end{macrocode}
  254. % \endgroup
  255. %
  256. %
  257. % \subsection{Ada}
  258. %
  259. % Data come from
  260. % \begin{itemize}
  261. % \item
  262. % \textsc{Barnes, John Gilbert Presslie}:
  263. % \textbf{Programming in Ada plus language reference manual};
  264. % {\copyright} 1991 Addison-Wesley Publishing Company, Inc.;
  265. % ISBN 0-201-56539-0.
  266. % \end{itemize}
  267. % \lstthanks{Torsten~Neuer}{tneuer@inwise.de}{1998/11/23} added support for
  268. % Ada 95. I changed the definition to reduce the required string memory.
  269. % \begingroup
  270. % \begin{macrocode}
  271. %<*lang1>
  272. % \end{macrocode}
  273. % \begin{macrocode}
  274. %%
  275. %% Ada 95 definition (c) Torsten Neuer
  276. %%
  277. \lst@definelanguage[95]{Ada}[83]{Ada}%
  278. {morekeywords={abstract,aliased,protected,requeue,tagged,until}}%
  279. % \end{macrocode}
  280. % \begin{macrocode}
  281. \lst@definelanguage[83]{Ada}%
  282. {morekeywords={abort,abs,accept,access,all,and,array,at,begin,body,%
  283. case,constant,declare,delay,delta,digits,do,else,elsif,end,entry,%
  284. exception,exit,for,function,generic,goto,if,in,is,limited,loop,%
  285. mod,new,not,null,of,or,others,out,package,pragma,private,%
  286. procedure,raise,range,record,rem,renames,return,reverse,select,%
  287. separate,subtype,task,terminate,then,type,use,when,while,with,%
  288. xor},%
  289. sensitive=f,%
  290. morecomment=[l]--,%
  291. morestring=[m]",% percent not defined as stringizer so far
  292. morestring=[m]'%
  293. }[keywords,comments,strings]%
  294. % \end{macrocode}
  295. % \begin{macrocode}
  296. %</lang1>
  297. % \end{macrocode}
  298. % \endgroup
  299. %
  300. %
  301. % \subsection{Algol}
  302. %
  303. % Data come from
  304. % \begin{itemize}
  305. % \item
  306. % \textsc{Uwe Pape}:
  307. % \textbf{Programmieren in ALGOL 60};
  308. % {\copyright} 1973 Carl Hanser Verlag M\"unchen;
  309. % ISBN 3-446-11605-2
  310. % \item
  311. % \textsc{Frank G.\ Pagan}:
  312. % \textbf{A practical guide to ALGOL 68};
  313. % {\copyright} 1976 by John Wiley $\&$ Sohn Ltd.;
  314. % ISBN 0-471-65746-8 (Cloth); ISBN 0-471-65747-6 (Pbk).
  315. % \end{itemize}
  316. % The definition of Algol 68 doesn't support comments enclosed by \rlap{/}c.
  317. % \begingroup
  318. % \begin{macrocode}
  319. %<*lang3>
  320. % \end{macrocode}
  321. % \begin{macrocode}
  322. \lst@definelanguage[68]{Algol}%
  323. % ??? should 'i' be a keyword
  324. {morekeywords={abs,and,arg,begin,bin,bits,bool,by,bytes,case,channel,%
  325. char,co,comment,compl,conj,divab,do,down,elem,elif,else,empty,%
  326. end,entier,eq,esac,exit,false,fi,file,flex,for,format,from,ge,%
  327. goto,gt,heap,if,im,in,int,is,isnt,le,leng,level,loc,long,lt,lwb,%
  328. minusab,mod,modab,mode,ne,nil,not,od,odd,of,op,or,ouse,out,over,%
  329. overab,par,plusab,plusto,pr,pragmat,prio,proc,re,real,ref,repr,%
  330. round,sema,shl,short,shorten,shr,sign,skip,string,struct,then,%
  331. timesab,to,true,union,up,upb,void,while},%
  332. sensitive=f,% ???
  333. morecomment=[s]{\#}{\#},%
  334. keywordcomment={co,comment}%
  335. }[keywords,comments,keywordcomments]%
  336. % \end{macrocode}
  337. % \begin{macrocode}
  338. \lst@definelanguage[60]{Algol}%
  339. {morekeywords={array,begin,Boolean,code,comment,div,do,else,end,%
  340. false,for,goto,if,integer,label,own,power,procedure,real,step,%
  341. string,switch,then,true,until,value,while},%
  342. sensitive=f,% ???
  343. keywordcommentsemicolon={end}{else,end}{comment}%
  344. }[keywords,keywordcomments]%
  345. %</lang3>
  346. % \end{macrocode}
  347. % \endgroup
  348. %
  349. %
  350. % \subsection{Assembler}
  351. %
  352. % Credits go to \lstthanks{Andrew~Zabolotny}{zap@cobra.ru}{2002/07/05}.
  353. % \begingroup
  354. % \begin{macrocode}
  355. %<*lang3>
  356. %%
  357. %% x86masm definition (c) 2002 Andrew Zabolotny
  358. %%
  359. \lst@definelanguage[x86masm]{Assembler}%
  360. {morekeywords={al,ah,ax,eax,bl,bh,bx,ebx,cl,ch,cx,ecx,dl,dh,dx,edx,%
  361. si,esi,di,edi,bp,ebp,sp,esp,cs,ds,es,ss,fs,gs,cr0,cr1,cr2,cr3,%
  362. db0,db1,db2,db3,db4,db5,db6,db7,tr0,tr1,tr2,tr3,tr4,tr5,tr6,tr7,%
  363. st,aaa,aad,aam,aas,adc,add,and,arpl,bound,bsf,bsr,bswap,bt,btc,%
  364. btr,bts,call,cbw,cdq,clc,cld,cli,clts,cmc,cmp,cmps,cmpsb,cmpsw,%
  365. cmpsd,cmpxchg,cwd,cwde,daa,das,dec,div,enter,hlt,idiv,imul,in,%
  366. inc,ins,int,into,invd,invlpg,iret,ja,jae,jb,jbe,jc,jcxz,jecxz,%
  367. je,jg,jge,jl,jle,jna,jnae,jnb,jnbe,jnc,jne,jng,jnge,jnl,jnle,%
  368. jno,jnp,jns,jnz,jo,jp,jpe,jpo,js,jz,jmp,lahf,lar,lea,leave,lgdt,%
  369. lidt,lldt,lmsw,lock,lods,lodsb,lodsw,lodsd,loop,loopz,loopnz,%
  370. loope,loopne,lds,les,lfs,lgs,lss,lsl,ltr,mov,movs,movsb,movsw,%
  371. movsd,movsx,movzx,mul,neg,nop,not,or,out,outs,pop,popa,popad,%
  372. popf,popfd,push,pusha,pushad,pushf,pushfd,rcl,rcr,rep,repe,%
  373. repne,repz,repnz,ret,retf,rol,ror,sahf,sal,sar,sbb,scas,seta,%
  374. setae,setb,setbe,setc,sete,setg,setge,setl,setle,setna,setnae,%
  375. setnb,setnbe,setnc,setne,setng,setnge,setnl,setnle,setno,setnp,%
  376. setns,setnz,seto,setp,setpe,setpo,sets,setz,sgdt,shl,shld,shr,%
  377. shrd,sidt,sldt,smsw,stc,std,sti,stos,stosb,stosw,stosd,str,sub,%
  378. test,verr,verw,wait,wbinvd,xadd,xchg,xlatb,xor,fabs,fadd,fbld,%
  379. fbstp,fchs,fclex,fcom,fcos,fdecstp,fdiv,fdivr,ffree,fiadd,ficom,%
  380. fidiv,fidivr,fild,fimul,fincstp,finit,fist,fisub,fisubr,fld,fld1,%
  381. fldl2e,fldl2t,fldlg2,fldln2,fldpi,fldz,fldcw,fldenv,fmul,fnop,%
  382. fpatan,fprem,fprem1,fptan,frndint,frstor,fsave,fscale,fsetpm,%
  383. fsin,fsincos,fsqrt,fst,fstcw,fstenv,fstsw,fsub,fsubr,ftst,fucom,%
  384. fwait,fxam,fxch,fxtract,fyl2x,fyl2xp1,f2xm1},%
  385. morekeywords=[2]{.align,.alpha,assume,byte,code,comm,comment,.const,%
  386. .cref,.data,.data?,db,dd,df,dosseg,dq,dt,dw,dword,else,end,endif,%
  387. endm,endp,ends,eq,equ,.err,.err1,.err2,.errb,.errdef,.errdif,%
  388. .erre,.erridn,.errnb,.errndef,.errnz,event,exitm,extrn,far,%
  389. .fardata,.fardata?,fword,ge,group,gt,high,if,if1,if2,ifb,ifdef,%
  390. ifdif,ife,ifidn,ifnb,ifndef,include,includelib,irp,irpc,label,%
  391. .lall,le,length,.lfcond,.list,local,low,lt,macro,mask,mod,.model,%
  392. name,ne,near,offset,org,out,page,proc,ptr,public,purge,qword,.%
  393. radix,record,rept,.sall,seg,segment,.seq,.sfcond,short,size,%
  394. .stack,struc,subttl,tbyte,.tfcond,this,title,type,.type,width,%
  395. word,.xall,.xcref,.xlist},%
  396. alsoletter=.,alsodigit=?,%
  397. sensitive=f,%
  398. morestring=[b]",%
  399. morestring=[b]',%
  400. morecomment=[l];%
  401. }[keywords,comments,strings]
  402. %</lang3>
  403. % \end{macrocode}
  404. % \endgroup
  405. %
  406. %
  407. % \subsection{Awk}
  408. %
  409. % Thanks to \lstthanks{Dr.~Christoph~Giess}{Ch.Giess@gmx.de}{2003/07/15} for
  410. % providing these definitions.
  411. % \begingroup
  412. % \begin{macrocode}
  413. %<*lang1>
  414. %%
  415. %% awk definitions (c) Christoph Giess
  416. %%
  417. \lst@definelanguage[gnu]{Awk}[POSIX]{Awk}%
  418. {morekeywords={and,asort,bindtextdomain,compl,dcgettext,gensub,%
  419. lshift,mktime,or,rshift,strftime,strtonum,systime,xor,extension}%
  420. }%
  421. % \end{macrocode}
  422. % \begin{macrocode}
  423. \lst@definelanguage[POSIX]{Awk}%
  424. {keywords={BEGIN,END,close,getline,next,nextfile,print,printf,%
  425. system,fflush,atan2,cos,exp,int,log,rand,sin,sqrt,srand,gsub,%
  426. index,length,match,split,sprintf,strtonum,sub,substr,tolower,%
  427. toupper,if,while,do,for,break,continue,delete,exit,function,%
  428. return},%
  429. sensitive,%
  430. morecomment=[l]\#,%
  431. morecomment=[l]//,%
  432. morecomment=[s]{/*}{*/},%
  433. morestring=[b]"%
  434. }[keywords,comments,strings]%
  435. %</lang1>
  436. % \end{macrocode}
  437. % \endgroup
  438. %
  439. %
  440. % \subsection{Basic}
  441. %
  442. % Credits go to \lstthanks{Robert Frank}{rf7@ukc.ac.uk}{2002/07/05}.
  443. % \begingroup
  444. % \begin{macrocode}
  445. %<*lang1>
  446. %%
  447. %% Visual Basic definition (c) 2002 Robert Frank
  448. %%
  449. \lst@definelanguage[Visual]{Basic}
  450. {morekeywords={Abs,Array,Asc,AscB,AscW,Atn,Avg,CBool,CByte,CCur,%
  451. CDate,CDbl,Cdec,Choose,Chr,ChrB,ChrW,CInt,CLng,Command,Cos,%
  452. Count,CreateObject,CSng,CStr,CurDir,CVar,CVDate,CVErr,Date,%
  453. DateAdd,DateDiff,DatePart,DateSerial,DateValue,Day,DDB,Dir,%
  454. DoEvents,Environ,EOF,Error,Exp,FileAttr,FileDateTime,FileLen,%
  455. Fix,Format,FreeFile,FV,GetAllStrings,GetAttr,%
  456. GetAutoServerSettings,GetObject,GetSetting,Hex,Hour,IIf,%
  457. IMEStatus,Input,InputB,InputBox,InStr,InstB,Int,Integer,IPmt,%
  458. IsArray,IsDate,IsEmpty,IsError,IsMissing,IsNull,IsNumeric,%
  459. IsObject,LBound,LCase,Left,LeftB,Len,LenB,LoadPicture,Loc,LOF,%
  460. Log,Ltrim,Max,Mid,MidB,Min,Minute,MIRR,Month,MsgBox,Now,NPer,%
  461. NPV,Oct,Partition,Pmt,PPmt,PV,QBColor,Rate,RGB,Right,RightB,Rnd,%
  462. Rtrim,Second,Seek,Sgn,Shell,Sin,SLN,Space,Spc,Sqr,StDev,StDevP,%
  463. Str,StrComp,StrConv,String,Switch,Sum,SYD,Tab,Tan,Time,Timer,%
  464. TimeSerial,TimeValue,Trim,TypeName,UBound,Ucase,Val,Var,VarP,%
  465. VarType,Weekday,Year},% functions
  466. morekeywords=[2]{Accept,Activate,Add,AddCustom,AddFile,AddFromFile,%
  467. AddFromTemplate,AddItem,AddNew,AddToAddInToolbar,%
  468. AddToolboxProgID,Append,AppendChunk,Arrange,Assert,AsyncRead,%
  469. BatchUpdate,BeginTrans,Bind,Cancel,CancelAsyncRead,CancelBatch,%
  470. CancelUpdate,CanPropertyChange,CaptureImage,CellText,CellValue,%
  471. Circle,Clear,ClearFields,ClearSel,ClearSelCols,Clone,Close,Cls,%
  472. ColContaining,ColumnSize,CommitTrans,CompactDatabase,Compose,%
  473. Connect,Copy,CopyQueryDef,CreateDatabase,CreateDragImage,%
  474. CreateEmbed,CreateField,CreateGroup,CreateIndex,CreateLink,%
  475. CreatePreparedStatement,CreatePropery,CreateQuery,%
  476. CreateQueryDef,CreateRelation,CreateTableDef,CreateUser,%
  477. CreateWorkspace,Customize,Delete,DeleteColumnLabels,%
  478. DeleteColumns,DeleteRowLabels,DeleteRows,DoVerb,Drag,Draw,Edit,%
  479. EditCopy,EditPaste,EndDoc,EnsureVisible,EstablishConnection,%
  480. Execute,ExtractIcon,Fetch,FetchVerbs,Files,FillCache,Find,%
  481. FindFirst,FindItem,FindLast,FindNext,FindPrevious,Forward,%
  482. GetBookmark,GetChunk,GetClipString,GetData,GetFirstVisible,%
  483. GetFormat,GetHeader,GetLineFromChar,GetNumTicks,GetRows,%
  484. GetSelectedPart,GetText,GetVisibleCount,GoBack,GoForward,Hide,%
  485. HitTest,HoldFields,Idle,InitializeLabels,InsertColumnLabels,%
  486. InsertColumns,InsertObjDlg,InsertRowLabels,InsertRows,Item,%
  487. KillDoc,Layout,Line,LinkExecute,LinkPoke,LinkRequest,LinkSend,%
  488. Listen,LoadFile,LoadResData,LoadResPicture,LoadResString,%
  489. LogEvent,MakeCompileFile,MakeReplica,MoreResults,Move,MoveData,%
  490. MoveFirst,MoveLast,MoveNext,MovePrevious,NavigateTo,NewPage,%
  491. NewPassword,NextRecordset,OLEDrag,OnAddinsUpdate,OnConnection,%
  492. OnDisconnection,OnStartupComplete,Open,OpenConnection,%
  493. OpenDatabase,OpenQueryDef,OpenRecordset,OpenResultset,OpenURL,%
  494. Overlay,PaintPicture,Paste,PastSpecialDlg,PeekData,Play,Point,%
  495. PopulatePartial,PopupMenu,Print,PrintForm,PropertyChanged,Pset,%
  496. Quit,Raise,RandomDataFill,RandomFillColumns,RandomFillRows,%
  497. rdoCreateEnvironment,rdoRegisterDataSource,ReadFromFile,%
  498. ReadProperty,Rebind,ReFill,Refresh,RefreshLink,RegisterDatabase,%
  499. Reload,Remove,RemoveAddInFromToolbar,RemoveItem,Render,%
  500. RepairDatabase,Reply,ReplyAll,Requery,ResetCustom,%
  501. ResetCustomLabel,ResolveName,RestoreToolbar,Resync,Rollback,%
  502. RollbackTrans,RowBookmark,RowContaining,RowTop,Save,SaveAs,%
  503. SaveFile,SaveToFile,SaveToolbar,SaveToOle1File,Scale,ScaleX,%
  504. ScaleY,Scroll,Select,SelectAll,SelectPart,SelPrint,Send,%
  505. SendData,Set,SetAutoServerSettings,SetData,SetFocus,SetOption,%
  506. SetSize,SetText,SetViewport,Show,ShowColor,ShowFont,ShowHelp,%
  507. ShowOpen,ShowPrinter,ShowSave,ShowWhatsThis,SignOff,SignOn,Size,%
  508. Span,SplitContaining,StartLabelEdit,StartLogging,Stop,%
  509. Synchronize,TextHeight,TextWidth,ToDefaults,TwipsToChartPart,%
  510. TypeByChartType,Update,UpdateControls,UpdateRecord,UpdateRow,%
  511. Upto,WhatsThisMode,WriteProperty,ZOrder},% methods
  512. morekeywords=[3]{AccessKeyPress,AfterAddFile,AfterChangeFileName,%
  513. AfterCloseFile,AfterColEdit,AfterColUpdate,AfterDelete,%
  514. AfterInsert,AfterLabelEdit,AfterRemoveFile,AfterUpdate,%
  515. AfterWriteFile,AmbienChanged,ApplyChanges,Associate,%
  516. AsyncReadComplete,AxisActivated,AxisLabelActivated,%
  517. AxisLabelSelected,AxisLabelUpdated,AxisSelected,%
  518. AxisTitleActivated,AxisTitleSelected,AxisTitleUpdated,%
  519. AxisUpdated,BeforeClick,BeforeColEdit,BeforeColUpdate,%
  520. BeforeConnect,BeforeDelete,BeforeInsert,BeforeLabelEdit,%
  521. BeforeLoadFile,BeforeUpdate,ButtonClick,ButtonCompleted,%
  522. ButtonGotFocus,ButtonLostFocus,Change,ChartActivated,%
  523. ChartSelected,ChartUpdated,Click,ColEdit,Collapse,ColResize,%
  524. ColumnClick,Compare,ConfigChageCancelled,ConfigChanged,%
  525. ConnectionRequest,DataArrival,DataChanged,DataUpdated,DblClick,%
  526. Deactivate,DeviceArrival,DeviceOtherEvent,DeviceQueryRemove,%
  527. DeviceQueryRemoveFailed,DeviceRemoveComplete,DeviceRemovePending,%
  528. DevModeChange,Disconnect,DisplayChanged,Dissociate,%
  529. DoGetNewFileName,Done,DonePainting,DownClick,DragDrop,DragOver,%
  530. DropDown,EditProperty,EnterCell,EnterFocus,Event,ExitFocus,%
  531. Expand,FootnoteActivated,FootnoteSelected,FootnoteUpdated,%
  532. GotFocus,HeadClick,InfoMessage,Initialize,IniProperties,%
  533. ItemActivated,ItemAdded,ItemCheck,ItemClick,ItemReloaded,%
  534. ItemRemoved,ItemRenamed,ItemSeletected,KeyDown,KeyPress,KeyUp,%
  535. LeaveCell,LegendActivated,LegendSelected,LegendUpdated,%
  536. LinkClose,LinkError,LinkNotify,LinkOpen,Load,LostFocus,%
  537. MouseDown,MouseMove,MouseUp,NodeClick,ObjectMove,%
  538. OLECompleteDrag,OLEDragDrop,OLEDragOver,OLEGiveFeedback,%
  539. OLESetData,OLEStartDrag,OnAddNew,OnComm,Paint,PanelClick,%
  540. PanelDblClick,PathChange,PatternChange,PlotActivated,%
  541. PlotSelected,PlotUpdated,PointActivated,PointLabelActivated,%
  542. PointLabelSelected,PointLabelUpdated,PointSelected,%
  543. PointUpdated,PowerQuerySuspend,PowerResume,PowerStatusChanged,%
  544. PowerSuspend,QueryChangeConfig,QueryComplete,QueryCompleted,%
  545. QueryTimeout,QueryUnload,ReadProperties,Reposition,%
  546. RequestChangeFileName,RequestWriteFile,Resize,ResultsChanged,%
  547. RowColChange,RowCurrencyChange,RowResize,RowStatusChanged,%
  548. SelChange,SelectionChanged,SendComplete,SendProgress,%
  549. SeriesActivated,SeriesSelected,SeriesUpdated,SettingChanged,%
  550. SplitChange,StateChanged,StatusUpdate,SysColorsChanged,%
  551. Terminate,TimeChanged,TitleActivated,TitleSelected,%
  552. TitleActivated,UnboundAddData,UnboundDeleteRow,%
  553. UnboundGetRelativeBookmark,UnboundReadData,UnboundWriteData,%
  554. Unload,UpClick,Updated,Validate,ValidationError,WillAssociate,%
  555. WillChangeData,WillDissociate,WillExecute,WillUpdateRows,%
  556. WithEvents,WriteProperties},% VB-events
  557. morekeywords=[4]{AppActivate,Base,Beep,Call,Case,ChDir,ChDrive,%
  558. Const,Declare,DefBool,DefByte,DefCur,DefDate,DefDbl,DefDec,%
  559. DefInt,DefLng,DefObj,DefSng,DefStr,Deftype,DefVar,DeleteSetting,%
  560. Dim,Do,Else,ElseIf,End,Enum,Erase,Event,Exit,Explicit,FileCopy,%
  561. For,ForEach,Friend,Function,Get,GoSub,GoTo,If,Implements,Kill,%
  562. Let,LineInput,Lock,Lset,MkDir,Name,Next,OnError,On,Option,%
  563. Private,Property,Public,Put,RaiseEvent,Randomize,ReDim,Rem,%
  564. Reset,Resume,Return,RmDir,Rset,SavePicture,SaveSetting,%
  565. SendKeys,SetAttr,Static,Sub,Then,Type,Unlock,Wend,While,Width,%
  566. With,Write},% statements
  567. sensitive=false,%
  568. keywordcomment=rem,%
  569. MoreSelectCharTable=\def\lst@BeginKC@{% chmod
  570. \lst@ResetToken
  571. \lst@BeginComment\lst@GPmode{{\lst@commentstyle}%
  572. \lst@Lmodetrue\lst@modetrue}\@empty},%
  573. morecomment=[l]{'},%
  574. morecomment=[s]{/*}{*/},%
  575. morestring=[b]",%
  576. }[keywords,comments,strings,keywordcomments]
  577. %</lang1>
  578. % \end{macrocode}
  579. % Thanks to \lsthelper{Jonathan~de~Halleux}{dehalleux@pelikhan.com}
  580. % {2002/12/27}{missing comma} for reporting a missing comma after
  581. % \texttt{MoreSelectCharTable}, which was the cause of a problem
  582. % reported by \lsthelper{Robert~Frank}{rf7@ukc.ac.uk}{2002/10/27}
  583. % {indention with language={[Visual]Basic} in optional argument}.
  584. % \lsthelper{Martina~Hansel}{Martina.Hansel@fhtw-berlin.de}{2003/05/29}
  585. % {missing comma} also found the bug and the fix.
  586. % \endgroup
  587. %
  588. %
  589. % \subsection{Clean}
  590. %
  591. % Thanks to \lstthanks{Jos\'e~Romildo~Malaquias}{romildo@iceb.ufop.br}{2000/08/08}.
  592. % \lsthelper{Markus~Pahlow}{pahlowm@mar.dfo-mpo.gc.ca}{2001/10/12}{missing comma}
  593. % found a missing comma
  594. % \begingroup
  595. % \begin{macrocode}
  596. %<*lang3>
  597. %%
  598. %% Clean definition (c) 1999 Jos\'e Romildo Malaquias
  599. %%
  600. %% Clean 1.3 : some standard functional language: pure, lazy,
  601. %% polymorphic type system, modules, type classes,
  602. %% garbage collection, functions as first class citizens
  603. %%
  604. \lst@definelanguage{Clean}%
  605. {otherkeywords={:,::,=,:==,=:,=>,->,<-,<-:,\{,\},\{|,|\},\#,\#!,|,\&,%
  606. [,],!,.,\\\\,;,_},%
  607. morekeywords={from,definition,implementation,import,module,system,%
  608. case,code,if,in,let,let!,of,where,with,infix,infixl,infixr},%
  609. morendkeywords={True,False,Start,Int,Real,Char,Bool,String,World,%
  610. File,ProcId},%
  611. sensitive,%
  612. morecomment=[l]//,% missing comma: Markus Pahlow
  613. morecomment=[n]{/*}{*/},%
  614. morestring=[b]"%
  615. }[keywords,comments,strings]%
  616. %</lang3>
  617. % \end{macrocode}
  618. % \endgroup
  619. %
  620. %
  621. % \subsection{Corba IDL}
  622. %
  623. % This language definition is due to \lstthanks{Jens~T.~Berger~Thielemann}
  624. % {jensthi@ifi.uio.no}{1999/11/28}.
  625. % \begingroup
  626. % \begin{macrocode}
  627. %<*lang2>
  628. %%
  629. %% Corba IDL definition (c) 1999 Jens T. Berger Thielemann
  630. %%
  631. \lst@definelanguage[CORBA]{IDL}%
  632. {morekeywords={any,attribute,boolean,case,char,const,context,default,%
  633. double,enum,exception,fixed,float,in,inout,interface,long,module,%
  634. native,Object,octet,oneway,out,raises,readonly,sequence,short,%
  635. string,struct,switch,typedef,union,unsigned,void,wchar,wstring,%
  636. FALSE,TRUE},%
  637. sensitive,%
  638. moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,%
  639. include,pragma,undef,warning},%
  640. moredelim=*[directive]\#,%
  641. morecomment=[l]//,%
  642. morecomment=[s]{/*}{*/},%
  643. morestring=[b]"%
  644. }[keywords,comments,strings,directives]%
  645. %</lang2>
  646. % \end{macrocode}
  647. % \endgroup
  648. %
  649. %
  650. % \subsection{C, C++, et al}
  651. %
  652. % \begingroup
  653. % \begin{macrocode}
  654. %<*lang1>
  655. % \end{macrocode}
  656. % For compatibility the `ANSI' language is defined in terms of ISO.
  657. % \begin{macrocode}
  658. \lst@definelanguage[ANSI]{C++}[ISO]{C++}{}%
  659. % \end{macrocode}
  660. % \lstthanks{Michael Piefel}{piefel@informatik.hu-berlin.de}{2001/11/21}
  661. % suggested some more changes and added GNU C++.
  662. % \begin{macrocode}
  663. \lst@definelanguage[GNU]{C++}[ISO]{C++}%
  664. {morekeywords={__attribute__,__extension__,__restrict,__restrict__,%
  665. typeof,__typeof__},%
  666. }%
  667. % \end{macrocode}
  668. % \begin{macrocode}
  669. \lst@definelanguage[Visual]{C++}[ISO]{C++}%
  670. {morekeywords={__asm,__based,__cdecl,__declspec,dllexport,%
  671. dllimport,__except,__fastcall,__finally,__inline,__int8,__int16,%
  672. __int32,__int64,naked,__stdcall,thread,__try,__leave},%
  673. }%
  674. % \end{macrocode}
  675. % \begin{macrocode}
  676. \lst@definelanguage[ISO]{C++}[ANSI]{C}%
  677. {morekeywords={and,and_eq,asm,bad_cast,bad_typeid,bitand,bitor,bool,%
  678. catch,class,compl,const_cast,delete,dynamic_cast,explicit,export,%
  679. false,friend,inline,mutable,namespace,new,not,not_eq,operator,or,%
  680. or_eq,private,protected,public,reinterpret_cast,static_cast,%
  681. template,this,throw,true,try,typeid,type_info,typename,using,%
  682. virtual,wchar_t,xor,xor_eq},%
  683. }%
  684. % \end{macrocode}
  685. % \begin{macrocode}
  686. %</lang1>
  687. % \end{macrocode}
  688. % \endgroup
  689. %
  690. % Objective-C is due to \lstthanks{Detlev~Dr\"oge}
  691. %{droege@informatik.uni-koblenz.de}{1997/11/04}.
  692. % \begingroup
  693. % \begin{macrocode}
  694. %<*lang1>
  695. % \end{macrocode}
  696. % \begin{macrocode}
  697. %%
  698. %% Objective-C definition (c) 1997 Detlev Droege
  699. %%
  700. \lst@definelanguage[Objective]{C}[ANSI]{C}
  701. {morekeywords={bycopy,id,in,inout,oneway,out,self,super,%
  702. @class,@defs,@encode,@end,@implementation,@interface,@private,%
  703. @protected,@protocol,@public,@selector},%
  704. moredirectives={import}%
  705. }%
  706. % \end{macrocode}
  707. % \begin{macrocode}
  708. %</lang1>
  709. % \end{macrocode}
  710. % \endgroup
  711. %
  712. %
  713. % \lstthanks{J\"org~Viermann}{}{2004/07/17} provided the keywords for Handel-C.
  714. % \begingroup
  715. % \begin{macrocode}
  716. %<*lang1>
  717. % \end{macrocode}
  718. % \begin{macrocode}
  719. %%
  720. %% Handel-C definition, refer http://www.celoxica.com
  721. %%
  722. \lst@definelanguage[Handel]{C}[ANSI]{C}
  723. {morekeywords={assert,chan,chanin,chanout,clock,delay,expr,external,%
  724. external_divide,family,ifselect,in,inline,interface,internal,%
  725. internal_divid,intwidth,let,macro,mpram,par,part,prialt,proc,ram,%
  726. releasesema,reset,rom,select,sema,set,seq,shared,signal,try,%
  727. reset,trysema,typeof,undefined,width,with,wom},%
  728. }%
  729. % \end{macrocode}
  730. % \begin{macrocode}
  731. %</lang1>
  732. % \end{macrocode}
  733. % \endgroup
  734. %
  735. %
  736. % \begingroup
  737. % \begin{macrocode}
  738. %<*lang1>
  739. % \end{macrocode}
  740. % \begin{macrocode}
  741. \lst@definelanguage[ANSI]{C}%
  742. {morekeywords={auto,break,case,char,const,continue,default,do,double,%
  743. else,enum,extern,float,for,goto,if,int,long,register,return,%
  744. short,signed,sizeof,static,struct,switch,typedef,union,unsigned,%
  745. void,volatile,while},%
  746. sensitive,%
  747. morecomment=[s]{/*}{*/},%
  748. morecomment=[l]//,% nonstandard
  749. morestring=[b]",%
  750. morestring=[b]',%
  751. moredelim=*[directive]\#,%
  752. moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,%
  753. include,pragma,undef,warning}%
  754. }[keywords,comments,strings,directives]%
  755. % \end{macrocode}
  756. % \begin{macrocode}
  757. %</lang1>
  758. % \end{macrocode}
  759. % \endgroup
  760. %
  761. % \begingroup
  762. % \begin{macrocode}
  763. %<*lang1>
  764. % \end{macrocode}
  765. % Thanks go to \lstthanks{Martin~Brodbeck}{Martin.Brodbeck@gmx.de}{2002/03/17}.
  766. % \begin{macrocode}
  767. %%
  768. %% C-Sharp definition (c) 2002 Martin Brodbeck
  769. %%
  770. \lst@definelanguage[Sharp]{C}%
  771. {morekeywords={abstract,base,bool,break,byte,case,catch,char,checked,%
  772. class,const,continue,decimal,default,delegate,do,double,else,%
  773. enum,event,explicit,extern,false,finally,fixed,float,for,foreach,%
  774. goto,if,implicit,in,int,interface,internal,is,lock,long,%
  775. namespace,new,null,object,operator,out,override,params,private,%
  776. protected,public,readonly,ref,return,sbyte,sealed,short,sizeof,%
  777. static,string,struct,switch,this,throw,true,try,typeof,uint,%
  778. ulong,unchecked,unsafe,ushort,using,virtual,void,while,%
  779. as,volatile,stackalloc},% Kai K\"ohne
  780. sensitive,%
  781. morecomment=[s]{/*}{*/},%
  782. morecomment=[l]//,%
  783. morestring=[b]"
  784. }[keywords,comments,strings]%
  785. % \end{macrocode}
  786. % \begin{macrocode}
  787. %</lang1>
  788. % \end{macrocode}
  789. % \endgroup
  790. %
  791. %
  792. % \subsection{Caml and Objective Caml}
  793. %
  794. % \lstthanks{Patrick~Cousot}{Patrick.Cousot@wanadoo.fr}{1999/01/09} mailed me
  795. % the definition. \lsthelper{Tom~Hirschowitz}{tom.hirschowitz@inria.fr}
  796. % {2003/05/27}{missing keywords: object, ref} added two keywords.
  797. % \begingroup
  798. % \begin{macrocode}
  799. %<*lang2>
  800. % \end{macrocode}
  801. % \begin{macrocode}
  802. %%
  803. %% (Objective) Caml definition (c) 1999 Patrick Cousot
  804. %%
  805. %% Objective CAML and Caml light are freely available, together with a
  806. %% reference manual, at URL ftp.inria.fr/lang/caml-light for the Unix,
  807. %% Windows and Macintosh OS operating systems.
  808. %%
  809. \lst@definelanguage[Objective]{Caml}[light]{Caml}
  810. {deletekeywords={not,prefix,value,where},%
  811. morekeywords={assert,asr,class,closed,constraint,external,false,%
  812. functor,include,inherit,land,lazy,lor,lsl,lsr,lxor,method,mod,%
  813. module,new,open,parser,private,sig,struct,true,val,virtual,when,%
  814. object,ref},% TH
  815. }%
  816. % \end{macrocode}
  817. % \begin{macrocode}
  818. \lst@definelanguage[light]{Caml}
  819. {morekeywords={and,as,begin,do,done,downto,else,end,exception,for,%
  820. fun,function,if,in,let,match,mutable,not,of,or,prefix,rec,then,%
  821. to,try,type,value,where,while,with},%
  822. sensitive,%
  823. morecomment=[n]{(*}{*)},%
  824. morestring=[b]",%
  825. moredelim=*[directive]\#,%
  826. moredirectives={open,close,include}%
  827. }[keywords,comments,strings,directives]%
  828. % \end{macrocode}
  829. % \begin{macrocode}
  830. %</lang2>
  831. % \end{macrocode}
  832. % \endgroup
  833. %
  834. %
  835. % \subsection{Cobol}
  836. %
  837. % Keywords are not marked if their names are broken by EOL, for example DEBUG-
  838. % CONTENTS. Sometimes portions of a string are not printed as a string.
  839. % This happens if the double quote is not doubled to insert a quote,
  840. % e.g.~|""bad" cobol"| won't be printed correctly.
  841. % \begingroup
  842. % \begin{macrocode}
  843. %<*lang2>
  844. % \end{macrocode}
  845. % \begin{macrocode}
  846. \lst@definelanguage[ibm]{Cobol}[1985]{Cobol}%
  847. {morekeywords={ADDRESS,BEGINNING,COMP-3,COMP-4,COMPUTATIONAL,%
  848. COMPUTATIONAL-3,COMPUTATIONAL-4,DISPLAY-1,EGCS,EJECT,ENDING,%
  849. ENTRY,GOBACK,ID,MORE-LABELS,NULL,NULLS,PASSWORD,RECORDING,%
  850. RETURN-CODE,SERVICE,SKIP1,SKIP2,SKIP3,SORT-CONTROL,SORT-RETURN,%
  851. SUPPRESS,TITLE,WHEN-COMPILED},%
  852. }%
  853. % \end{macrocode}
  854. % \begin{macrocode}
  855. \lst@definelanguage[1985]{Cobol}[1974]{Cobol}%
  856. {morekeywords={ALPHABET,ALPHABETIC-LOWER,ALPHABETIC-UPPER,%
  857. ALPHANUMERIC,ALPHANUMERIC-EDITED,ANY,CLASS,COMMON,CONTENT,%
  858. CONTINUE,DAY-OF-WEEK,END-ADD,END-CALL,END-COMPUTE,END-DELETE,%
  859. END-DIVIDE,END-EVALUATE,END-IF,END-MULTIPLY,END-PERFORM,END-READ,%
  860. END-RECEIVE,END-RETURN,END-REWRITE,END-SEARCH,END-START,%
  861. END-STRING,END-SUBTRACT,END-UNSTRING,END-WRITE,EVALUATE,EXTERNAL,%
  862. FALSE,GLOBAL,INITIALIZE,NUMERIC-EDITED,ORDER,OTHER,%
  863. PACKED-DECIMAL,PADDING,PURGE,REFERENCE,RELOAD,REPLACE,STANDARD-1,%
  864. STANDARD-2,TEST,THEN,TRUE},%
  865. }%
  866. % \end{macrocode}
  867. % \begin{macrocode}
  868. \lst@definelanguage[1974]{Cobol}%
  869. {morekeywords={ACCEPT,ACCESS,ADD,ADVANCING,AFTER,ALL,ALPHABETIC,ALSO,%
  870. ALTER,ALTERNATE,AND,ARE,AREA,AREAS,ASCENDING,ASSIGN,AT,AUTHOR,%
  871. BEFORE,BINARY,BLANK,BLOCK,BOTTOM,BY,CALL,CANCEL,CD,CF,CH,%
  872. CHARACTER,CHARACTERS,CLOCK-UNITS,CLOSE,COBOL,CODE,CODE-SET,%
  873. COLLATING,COLUMN,COMMA,COMMUNICATION,COMP,COMPUTE,CONFIGURATION,%
  874. CONTAINS,CONTROL,CONTROLS,CONVERTING,COPY,CORR,CORRESPONDING,%
  875. COUNT,CURRENCY,DATA,DATE,DATE-COMPILED,DATE-WRITTEN,DAY,DE,%
  876. DEBUG-CONTENTS,DEGUB-ITEM,DEBUG-LINE,DEBUG-NAME,DEBUG-SUB1,%
  877. DEBUG-SUB2,DEBUG-SUB3,DEBUGGING,DECIMAL-POINT,DECLARATIVES,%
  878. DELETE,DELIMITED,DELIMITER,DEPENDING,DESCENDING,DESTINATION,%
  879. DETAIL,DISABLE,DISPLAY,DIVIDE,DIVISION,DOWN,DUPLICATES,DYNAMIC,%
  880. EGI,ELSE,EMI,ENABLE,END,END-OF-PAGE,ENTER,ENVIRONMENT,EOP,EQUAL,%
  881. ERROR,ESI,EVERY,EXCEPTION,EXIT,EXTEND,FD,FILE,FILE-CONTROL,%
  882. FILLER,FINAL,FIRST,FOOTING,FOR,FROM,GENERATE,GIVING,GO,GREATER,%
  883. GROUP,HEADING,HIGH-VALUE,HIGH-VALUES,I-O,I-O-CONTROL,%
  884. IDENTIFICATION,IF,IN,INDEX,INDEXED,INDICATE,INITIAL,INITIATE,%
  885. INPUT,INPUT-OUTPUT,INSPECT,INSTALLATION,INTO,INVALID,IS,JUST,%
  886. JUSTIFIED,KEY,LABEL,LAST,LEADING,LEFT,LENGTH,LESS,LIMIT,LIMITS,%
  887. LINAGE,LINAGE-COUNTER,LINE,LINE-COUNTER,LINES,LINKAGE,LOCK,%
  888. LOW-VALUE,LOW-VALUES,MEMORY,MERGE,MESSAGE,MODE,MODULES,MOVE,%
  889. MULTIPLE,MULTIPLY,NATIVE,NEGATIVE,NEXT,NO,NOT,NUMBER,NUMERIC,%
  890. OBJECT-COMPUTER,OCCURS,OF,OFF,OMITTED,ON,OPEN,OPTIONAL,OR,%
  891. ORGANIZATION,OUTPUT,OVERFLOW,PAGE,PAGE-COUNTER,PERFORM,PF,PH,PIC,%
  892. PICTURE,PLUS,POINTER,POSITION,PRINTING,POSITIVE,PRINTING,%
  893. PROCEDURE,PROCEDURES,PROCEED,PROGRAM,PROGRAM-ID,QUEUE,QUOTE,%
  894. QUOTES,RANDOM,RD,READ,RECEIVE,RECORD,RECORDING,RECORDS,REDEFINES,%
  895. REEL,REFERENCES,RELATIVE,RELEASE,REMAINDER,REMOVAL,RENAMES,%
  896. REPLACING,REPORT,REPORTING,REPORTS,RERUN,RESERVE,RESET,RETURN,%
  897. REVERSED,REWIND,REWRITE,RF,RH,RIGHT,ROUNDED,RUN,SAME,SD,SEARCH,%
  898. SECTION,SECURITY,SEGMENT,SEGMENT-LIMIT,SELECT,SEND,SENTENCE,%
  899. SEPARATE,SEQUENCE,SEQUENTIAL,SET,SIGN,SIZE,SORT,SORT-MERGE,%
  900. SOURCE,SOURCE-COMPUTER,SPACE,SPACES,SPECIAL-NAMES,STANDARD,START,%
  901. STATUS,STOP,STRING,SUB-QUEUE-1,SUB-QUEUE-2,SUB-QUEUE-3,SUBTRACT,%
  902. SUM,SYMBOLIC,SYNC,SYNCHRONIZED,TABLE,TALLYING,TAPE,TERMINAL,%
  903. TERMINATE,TEXT,THAN,THROUGH,THRU,TIME,TIMES,TO,TOP,TRAILING,TYPE,%
  904. UNIT,UNSTRING,UNTIL,UP,UPON,USAGE,USE,USING,VALUE,VALUES,VARYING,%
  905. WHEN,WITH,WORDS,WORKING-STORAGE,WRITE,ZERO,ZEROES,ZEROS},%
  906. alsodigit=-,%
  907. sensitive=f,% ???
  908. morecomment=[f][commentstyle][6]*,%
  909. morestring=[d]"% ??? doubled
  910. }[keywords,comments,strings]%
  911. % \end{macrocode}
  912. % \texttt{commentstyle} (not the surrounding brackets) have been added after
  913. % a bug report by \lsthelper{Stephen Reindl}{Stephen.Reindl@vodafone.de}
  914. % {2002/05/28}{no commentstyle in Cobol}.
  915. % \begin{macrocode}
  916. %</lang2>
  917. % \end{macrocode}
  918. % \endgroup
  919. %
  920. %
  921. % \subsection{Comal 80}
  922. %
  923. % The data is from
  924. % \begin{itemize}
  925. % \item
  926. % \textsc{Borge R. Christensen}:
  927. % \textbf{Strukturierte Programmierung mit COMAL 80} [aus dem
  928. % D\"anischen \"ubertragen und bearbeitet von Margarete Kragh];
  929. % 2., verb.\ Auflage -- M\"unchen; Wien: Oldenburg, 1985;
  930. % ISBN 3-486-26902-X.
  931. % \end{itemize}
  932. % \begingroup
  933. % \begin{macrocode}
  934. %<*lang3>
  935. % \end{macrocode}
  936. % \begin{macrocode}
  937. \lst@definelanguage{Comal 80}%
  938. {morekeywords={AND,AUTO,CASE,DATA,DEL,DIM,DIV,DO,ELSE,ENDCASE,ENDIF,%
  939. ENDPROC,ENDWHILE,EOD,EXEC,FALSE,FOR,GOTO,IF,INPUT,INT,LIST,LOAD,%
  940. MOD,NEW,NEXT,NOT,OF,OR,PRINT,PROC,RANDOM,RENUM,REPEAT,RND,RUN,%
  941. SAVE,SELECT,STOP,TAB,THEN,TRUE,UNTIL,WHILE,ZONE},%
  942. sensitive=f,% ???
  943. morecomment=[l]//,%
  944. morestring=[d]"%
  945. }[keywords,comments,strings]%
  946. % \end{macrocode}
  947. % \begin{macrocode}
  948. %</lang3>
  949. % \end{macrocode}
  950. % \endgroup
  951. %
  952. %
  953. % \subsection{bash, csh, and sh}
  954. %
  955. % csh is from \lstthanks{Kai~Below}{below@tu-harburg.de}{1998/09/21},
  956. % but he pointed out that some keywords are probably missing.
  957. % \begingroup
  958. % \begin{macrocode}
  959. %<*lang1>
  960. % \end{macrocode}
  961. % \begin{macrocode}
  962. %%
  963. %% csh definition (c) 1998 Kai Below
  964. %%
  965. \lst@definelanguage{csh}
  966. {morekeywords={alias,awk,cat,echo,else,end,endif,endsw,exec,exit,%
  967. foreach,glob,goto,history,if,logout,nice,nohup,onintr,repeat,sed,%
  968. set,setenv,shift,source,switch,then,time,while,umask,unalias,%
  969. unset,wait,while,@,env,argv,child,home,ignoreeof,noclobber,%
  970. noglob,nomatch,path,prompt,shell,status,verbose,print,printf,%
  971. sqrt,BEGIN,END},%
  972. morecomment=[l]\#,%
  973. morestring=[d]"%
  974. }[keywords,comments,strings]%
  975. % \end{macrocode}
  976. % Thanks to \lstthanks{Riccardo~Murri}{riccardo.murri@gmx.it}{2003/09/24}
  977. % for the following two definitions.
  978. % \begin{macrocode}
  979. %%
  980. %% bash,sh definition (c) 2003 Riccardo Murri <riccardo.murri@gmx.it>
  981. %%
  982. \lst@definelanguage{bash}[]{sh}%
  983. {morekeywords={alias,bg,bind,builtin,command,compgen,complete,%
  984. declare,disown,enable,fc,fg,history,jobs,et,local,logout,printf,%
  985. pushd,popd,select,set,suspend,shopt,source,times,type,typeset,%
  986. ulimit,unalias,wait},%
  987. }%
  988. \lst@definelanguage{sh}%
  989. {morekeywords={awk,break,case,cat,cd,continue,do,done,echo,else,%
  990. env,eval,exec,expr,exit,export,false,fi,for,function,getopts,%
  991. hash,history,if,kill,nice,nohup,ps,pwd,read,readonly,return,%
  992. sed,shift,test,then,times,trap,true,umask,unset,until,while},%
  993. morecomment=[l]\#,%
  994. morestring=[d]"%
  995. }[keywords,comments,strings]%
  996. %</lang1>
  997. % \end{macrocode}
  998. % \endgroup
  999. %
  1000. %
  1001. % \subsection{Delphi}
  1002. %
  1003. % I took the data from Delphi 1.0 (?) online help.
  1004. % \lstthanks{Christian~Gudrian}{chrigu@kawo1.rwth-aachen.de}{2001/08/16}
  1005. % provided the `double slash' comment.
  1006. % \begingroup
  1007. % \begin{macrocode}
  1008. %<*lang2>
  1009. % \end{macrocode}
  1010. % \begin{macrocode}
  1011. \lst@definelanguage{Delphi}%
  1012. {morekeywords={and,as,asm,array,begin,case,class,const,constructor,%
  1013. destructor,div,do,downto,else,end,except,exports,file,finally,%
  1014. for,function,goto,if,implementation,in,inherited,inline,%
  1015. initialization,interface,is,label,library,mod,nil,not,object,of,%
  1016. or,packed,procedure,program,property,raise,record,repeat,set,%
  1017. shl,shr,string,then,to,try,type,unit,until,uses,var,while,with,%
  1018. xor,%
  1019. absolute,abstract,assembler,at,cdecl,default,dynamic,export,%
  1020. external,far,forward,index,name,near,nodefault,on,override,%
  1021. private,protected,public,published,read,resident,storedDir,%
  1022. virtual,write},%
  1023. morendkeywords={Abs,AddExitProc,Addr,AllocMem,AnsiCompareStr,%
  1024. AnsiCompareText,AnsiLowerCase,AnsiUpperCase,Append,AppendStr,%
  1025. ArcTan,AssignCrt,Assigned,AssignFile,BlockRead,BlockWrite,Break,%
  1026. ChangeFileExt,ChDir,Chr,CloseFile,ClrEol,ClrScr,Concat,Continue,%
  1027. Copy,Cos,CSeg,CursorTo,Date,DateTimeToFileDate,DateTimeToStr,%
  1028. DateTimeToString,DateToStr,DayOfWeek,Dec,DecodeDate,DecodeTime,%
  1029. Delete,DeleteFile,DiskFree,DiskSize,Dispose,DisposeStr,%
  1030. DoneWinCrt,DSeg,EncodeDate,EncodeTime,Eof,Eoln,Erase,Exclude,%
  1031. Exit,Exp,ExpandFileName,ExtractFileExt,ExtractFileName,%
  1032. ExtractFilePath,FileAge,FileClose,FileDateToDateTime,FileExists,%
  1033. FileGetAttr,FileGetDate,FileOpen,FilePos,FileRead,FileSearch,%
  1034. FileSeek,FileSetAttr,FileSetDate,FileSize,FillChar,FindClose,%
  1035. FindFirst,FindNext,FloatToDecimal,FloatToStrF,FloatToStr,%
  1036. FloatToText,FloatToTextFmt,Flush,FmtLoadStr,FmtStr,Format,%
  1037. FormatBuf,FormatDateTime,FormatFloat,Frac,Free,FreeMem,GetDir,%
  1038. GetMem,GotoXY,Halt,Hi,High,Inc,Include,InitWinCrt,Insert,Int,%
  1039. IntToHex,IntToStr,IOResult,IsValidIdent,KeyPressed,Length,Ln,Lo,%
  1040. LoadStr,Low,LowerCase,MaxAvail,MemAvail,MkDir,Move,New,NewStr,%
  1041. Now,Odd,Ofs,Ord,ParamCount,ParamStr,Pi,Pos,Pred,Ptr,Random,%
  1042. Randomize,Read,ReadBuf,ReadKey,Readln,ReAllocMem,Rename,%
  1043. RenameFile,Reset,Rewrite,RmDir,Round,RunError,ScrollTo,Seek,%
  1044. SeekEof,SeekEoln,Seg,SetTextBuf,Sin,SizeOf,SPtr,Sqr,Sqrt,SSeg,%
  1045. Str,StrCat,StrComp,StrCopy,StrDispose,StrECopy,StrEnd,StrFmt,%
  1046. StrLCat,StrIComp,StrLComp,StrLCopy,StrLen,StrLFmt,StrLIComp,%
  1047. StrLower,StrMove,StrNew,StrPas,StrPCopy,StrPos,StrScan,StrRScan,%
  1048. StrToDate,StrToDateTime,StrToFloat,StrToInt,StrToIntDef,%
  1049. StrToTime,StrUpper,Succ,Swap,TextToFloat,Time,TimeToStr,%
  1050. TrackCursor,Trunc,Truncate,TypeOf,UpCase,UpperCase,Val,WhereX,%
  1051. WhereY,Write,WriteBuf,WriteChar,Writeln},%
  1052. sensitive=f,%
  1053. morecomment=[s]{(*}{*)},%
  1054. morecomment=[s]{\{}{\}},%
  1055. morecomment=[l]{//},% 2001 Christian Gudrian
  1056. morestring=[d]'%
  1057. }[keywords,comments,strings]%
  1058. % \end{macrocode}
  1059. % \begin{macrocode}
  1060. %</lang2>
  1061. % \end{macrocode}
  1062. % \endgroup
  1063. %
  1064. %
  1065. % \subsection{Eiffel}
  1066. %
  1067. % Data is from
  1068. % \begin{itemize}
  1069. % \item
  1070. % \textsc{Bertrand Meyer}: \textbf{Eiffel: the language};
  1071. % Prentice Hall International (UK) Ldt, 1992;
  1072. % ISBN 0-13-247925-7.
  1073. % \end{itemize}
  1074. % \begingroup
  1075. % \begin{macrocode}
  1076. %<*lang2>
  1077. % \end{macrocode}
  1078. % \begin{macrocode}
  1079. \lst@definelanguage{Eiffel}%
  1080. {morekeywords={alias,all,and,as,BIT,BOOLEAN,CHARACTER,check,class,%
  1081. creation,Current,debug,deferred,do,DOUBLE,else,elseif,end,%
  1082. ensure,expanded,export,external,false,feature,from,frozen,if,%
  1083. implies,indexing,infix,inherit,inspect,INTEGER,invariant,is,%
  1084. like,local,loop,NONE,not,obsolete,old,once,or,POINTER,prefix,%
  1085. REAL,redefine,rename,require,rescue,Result,retry,select,%
  1086. separate,STRING,strip,then,true,undefine,unique,until,variant,%
  1087. when,xor},%
  1088. sensitive,%
  1089. morecomment=[l]--,%
  1090. morestring=[d]",%
  1091. }[keywords,comments,strings]%
  1092. % \end{macrocode}
  1093. % The key=value \texttt{stringtest=false} has been removed after a bug
  1094. % report from \lsthelper{Xavier~Cr\'egut}{cregut@enseeiht.fr}{2002/09/09}
  1095. % {stringtest no more part of package}.
  1096. % \begin{macrocode}
  1097. %</lang2>
  1098. % \end{macrocode}
  1099. % \endgroup
  1100. %
  1101. %
  1102. % \subsection{Elan}
  1103. %
  1104. % The data come from
  1105. % \begin{itemize}
  1106. % \item
  1107. % \textsc{Leo~H.~Klingen, Jochen Liedtke}:
  1108. % \textbf{Programmieren mit ELAN};
  1109. % B.G.\ Teubner, Stuttgart 1983; ISBN 3-519-02507-8.
  1110. % \end{itemize}
  1111. % \begingroup
  1112. % \begin{macrocode}
  1113. %<*lang3>
  1114. % \end{macrocode}
  1115. % \begin{macrocode}
  1116. \lst@definelanguage{Elan}%
  1117. {morekeywords={ABS,AND,BOOL,CAND,CASE,CAT,COLUMNS,CONCR,CONJ,CONST,%
  1118. COR,DECR,DEFINES,DET,DIV,DOWNTO,ELIF,ELSE,END,ENDIF,ENDOP,%
  1119. ENDPACKET,ENDPROC,ENDREP,ENDSELECT,FALSE,FI,FILE,FOR,FROM,IF,%
  1120. INCR,INT,INV,LEAVE,LENGTH,LET,MOD,NOT,OF,OP,OR,OTHERWISE,PACKET,%
  1121. PROC,REAL,REP,REPEAT,ROW,ROWS,SELECT,SIGN,STRUCT,SUB,TEXT,THEN,%
  1122. TRANSP,TRUE,TYPE,UNTIL,UPTO,VAR,WHILE,WITH,XOR,%
  1123. maxint,sign,abs,min,max,random,initializerandom,subtext,code,%
  1124. replace,text,laenge,pos,compress,change,maxreal,smallreal,floor,%
  1125. pi,e,ln,log2,log10,sqrt,exp,tan,tand,sin,sind,cos,cosd,arctan,%
  1126. arctand,int,real,lastconversionok,put,putline,line,page,get,%
  1127. getline,input,output,sequentialfile,maxlinelaenge,reset,eof,%
  1128. close,complexzero,complexone,complexi,complex,realpart,imagpart,%
  1129. dphi,phi,vector,norm,replace,matrix,idn,row,column,sub,%
  1130. replacerow,replacecolumn,replaceelement,transp,errorsstop,stop},%
  1131. sensitive,%
  1132. morestring=[d]"%
  1133. }[keywords,strings]%
  1134. % \end{macrocode}
  1135. % \begin{macrocode}
  1136. %</lang3>
  1137. % \end{macrocode}
  1138. % \endgroup
  1139. %
  1140. %
  1141. % \subsection{Erlang}
  1142. %
  1143. % Thanks to \lstthanks{Daniel~Gazard}{gazard_d@epita.fr}{2003/05/31}.
  1144. % \begingroup
  1145. % \begin{macrocode}
  1146. %<*lang3>
  1147. % \end{macrocode}
  1148. % \begin{macrocode}
  1149. %%
  1150. %% Erlang definition (c) 2003 Daniel Gazard
  1151. %%
  1152. \lst@definelanguage{erlang}%
  1153. {morekeywords={abs,after,and,apply,atom,atom_to_list,band,binary,%
  1154. binary_to_list,binary_to_term,bor,bsl,bsr,bxor,case,catch,%
  1155. date,div,element,erase,end,exit,export,float,float_to_list,%
  1156. get,halt,hash,hd,if,info,import,integer,integer_to_list,%
  1157. length,link,list,list_to_atom,list_to_float,list_to_integer,%
  1158. list_to_tuple,module,node,nodes,now,of,or,pid,port,ports,%
  1159. processes,put,receive,reference,register,registered,rem,%
  1160. round,self,setelement,size,spawn,throw,time,tl,trace,trunc,%
  1161. tuple,tuple_to_list,unlink,unregister,whereis,error,false,%
  1162. infinity,nil,ok,true,undefined,when},%
  1163. otherkeywords={->,!,[,],\{,\},},%
  1164. morecomment=[l]\%,%
  1165. morestring=[b]",%
  1166. morestring=[b]'%
  1167. }[keywords,comments,strings]%
  1168. % \end{macrocode}
  1169. % \begin{macrocode}
  1170. %</lang3>
  1171. % \end{macrocode}
  1172. % \endgroup
  1173. %
  1174. %
  1175. % \subsection{Euphoria}
  1176. %
  1177. % \lstthanks{Detlef~Reimers}{dreimers@aol.com}{1998/08/30} sent me the language
  1178. % definition.
  1179. % \begingroup
  1180. % \begin{macrocode}
  1181. %<*lang2>
  1182. % \end{macrocode}
  1183. % \begin{macrocode}
  1184. %%
  1185. %% Euphoria definition (c) 1998 Detlef Reimers
  1186. %%
  1187. \lst@definelanguage{Euphoria}%
  1188. % for Euphoria 2.0, Rapid Deployment Software, Kanada
  1189. {morekeywords={abort,and,and_bits,append,arctan,atom,by,call,%
  1190. call_proc,call_func,c_proc,c_func,clear_screen,close,%
  1191. command_line,compare,constant,cos,do,date,else,elsif,end,exit,%
  1192. find,floor,for,function,getc,getenv,get_key,gets,global,%
  1193. get_pixel,if,include,integer,length,log,match,machine_func,%
  1194. machine_proc,mem_copy,mem_set,not,not_bits,or,object,open,%
  1195. or_bits,procedure,puts,position,prepend,print,printf,power,peek,%
  1196. poke,pixel,poke4,peek4s,peek4u,return,rand,repeat,remainder,%
  1197. routine_id,sequence,sqrt,sin,system,sprintf,then,type,to,time,%
  1198. trace,tan,while,with,without,xor,xor_bits},%
  1199. sensitive,%
  1200. morecomment=[l]--,%
  1201. morestring=[d]',%
  1202. morestring=[d]"%
  1203. }[keywords,comments,strings]%
  1204. % \end{macrocode}
  1205. % \begin{macrocode}
  1206. %</lang2>
  1207. % \end{macrocode}
  1208. % \endgroup
  1209. %
  1210. %
  1211. % \subsection{Fortran}
  1212. %
  1213. % Took things from
  1214. % \begin{itemize}
  1215. % \item
  1216. % \textsc{Karl Hans M\"uller}:
  1217. % \textbf{Fortran 77: Programmierungsanleitung};
  1218. % 3., v\"ollig neu bearb.\ Aufl.\ -- Mannheim; Wien; Z\"urich:
  1219. % Bibliographisches Institut, 1984;
  1220. % ISBN 3-411-05804-8
  1221. % \item
  1222. % \textsc{Thomas Michel}: \textbf{Fortran 90: Lehr-- und Handbuch};
  1223. % Mannheim; Leipzig; Wien; Z\"urich: BI-Wiss.-Verlag, 1994;
  1224. % ISBN 3-411-16861-7.
  1225. % \end{itemize}
  1226. % \begingroup
  1227. % \begin{macrocode}
  1228. %<*lang1>
  1229. % \end{macrocode}
  1230. % \lsthelper{Denis Girou}{Denis.Girou@idris.fr}{1998/07/26}{Fortran 95=90}
  1231. % proposed to have Fortran 95 and Fortran 90 to be equivalent.
  1232. % \begin{macrocode}
  1233. \lst@definelanguage[90]{Fortran}[95]{Fortran}{}
  1234. % \end{macrocode}
  1235. % There is no |morecomment=[f]| in Fortran 90 since otherwise CONTAINS could
  1236. % start a comment. This problem was reported by \lsthelper{Magne Rudshaug}
  1237. % {magne@ife.no}{1998/01/09}{no morecomment=[f] in Fortran 90}.
  1238. % Moreover the keyword INCLUDE is due to him.
  1239. % \begin{macrocode}
  1240. \lst@definelanguage[95]{Fortran}[77]{Fortran}%
  1241. {deletekeywords=SAVE,%
  1242. morekeywords={ACTION,ADVANCE,ALLOCATE,ALLOCATABLE,ASSIGNMENT,CASE,%
  1243. CONTAINS,CYCLE,DEALLOCATE,DEFAULT,DELIM,EXIT,INCLUDE,IN,NONE,IN,%
  1244. OUT,INTENT,INTERFACE,IOLENGTH,KIND,LEN,MODULE,NAME,NAMELIST,NMT,%
  1245. NULLIFY,ONLY,OPERATOR,OPTIONAL,OUT,PAD,POINTER,POSITION,PRIVATE,%
  1246. PUBLIC,READWRITE,RECURSIVE,RESULT,SELECT,SEQUENCE,SIZE,STAT,%
  1247. TARGET,USE,WHERE,WHILE,BLOCKDATA,DOUBLEPRECISION,ELSEIF,%
  1248. ENDBLOCKDATA,ENDDO,ENDFILE,ENDFUNCTION,ENDIF,ENDINTERFACE,%
  1249. ENDMODULE,ENDPROGRAM,ENDSELECT,ENDSUBROUTINE,ENDTYPE,ENDWHERE,%
  1250. GOTO,INOUT,SELECTCASE},%
  1251. deletecomment=[f],% no fixed comment line: 1998 Magne Rudshaug
  1252. morecomment=[l]!%
  1253. }%
  1254. % \end{macrocode}
  1255. % As proposed by \lsthelper{J\"orn Wilms}{wilms@rocinante.colorado.edu}
  1256. % {1997/07/07}{Fortran with \lstsensitivefalse} keywords are \emph{not} case
  1257. % sensitive.
  1258. % \begin{macrocode}
  1259. \lst@definelanguage[77]{Fortran}%
  1260. {morekeywords={ACCESS,ASSIGN,BACKSPACE,BLANK,BLOCK,CALL,CHARACTER,%
  1261. CLOSE,COMMON,COMPLEX,CONTINUE,DATA,DIMENSION,DIRECT,DO,DOUBLE,%
  1262. ELSE,END,ENTRY,EOF,EQUIVALENCE,ERR,EXIST,EXTERNAL,FILE,FMT,FORM,%