% \iffalse
%
% Time-stamp: <2024-05-25 06:23:16 ax006ho>
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{lstdoc, textcomp}
\EnableCrossrefs
\CodelineIndex%
\begin{document}
    \DocInput{lstdrvrs.dtx}
\end{document}
%</driver>
% \fi
%
%
% \DoNotIndex{\[,\{,\},\],\1,\2,\3,\4,\5,\6,\7,\8,\9,\0}
% \DoNotIndex{\`,\,,\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_}
% \DoNotIndex{\askforoverwritefalse,\askforoverwritetrue,\batchfile}
% \DoNotIndex{\begin,\def,\else,\@empty,\end,\endpreamble,\expandafter}
% \DoNotIndex{\fi,\file,\from,\gdef,\generate,\ifnum,\ifx,\input}
% \DoNotIndex{\keepsilent,\lccode,\let,\lowercase,\preamble,\relax}
% \DoNotIndex{\undefined}
%
%
% \newbox\abstractbox
% \setbox\abstractbox=\vbox{
%	\begin{abstract}
%	This article describes the implementation of the language drivers for
%	the \packagename{listings} package.
%	\end{abstract}}
%
% \title{Language, Style and Format drivers\\ for \textsf{Listings}\\
%   {\large by Carsten Heinz and individual authors:}}
% \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
% \date{2024/05/25\enspace\enspace Version 1.10b\ \box\abstractbox}
%
% \ifhyper
%   \hypersetup{pdftitle={Language, Style and Format drivers for the
%                 Listings package},
%               pdfsubject=Language definitions for the Listings package,%
%               pdfauthor=Jobst Hoffmann <j.hoffmann(at)fh-aachen.de>,%
%               pdfkeywords={source code formatter, programming languages}}
% \fi
%
% \maketitle
%
% \newwrite\authors \immediate\openout\authors lstdrvrs.tmp\relax
% \gdef\lstthanks#1#2#3{#1\global\let\lstthanks\lstthanksb\lstwrite{#1}}
% \gdef\lstthanksb#1#2#3{#1\lstwrite{\string\and\space#1}}
% \gdef\lstwrite#1{\begingroup\let~\space\def\"{\string\"}^^A
%   \def\'{\string\'}\immediate\write\authors{#1}\endgroup}
%
% \renewcommand*\lsthelper[4]{#1}
%
% \newif\ifmulticols
% \IfFileExists{multicol.sty}{\multicolstrue}{}
%
% \ifmulticols
% \addtocontents{toc}{\protect\begin{multicols}{2}}
% \fi
%
% \tableofcontents
%
%
% \section{Installation and configuration}
% \label{sec:installation}
%
% \begingroup
%    \begin{macrocode}
%% The listings package is copyright 1996--2004 Carsten Heinz, and
%% continued maintenance on the package is copyright 2006--2007 Brooks
%% Moses. From 2013 on the maintenance is done by Jobst Hoffmann.
%% The drivers are copyright 1997/1998/1999/2000/2001/2002/2003/2004/2006/
%% 2007/2013 any individual author listed 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.3c 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 Jobst Hoffmann at <j.hoffmann@fh-aachen.de>.
%%
%    \end{macrocode}
% \endgroup
%
% \begingroup
%    \begin{macrocode}
%<*install>
\input docstrip
\preamble
\endpreamble

\ifToplevel{
\usedir{tex/latex/listings}
\keepsilent
\askonceonly
}


\generate{
    \file{lstlang1.sty}{\from{lstdrvrs.dtx}{lang1}}
    \file{lstlang2.sty}{\from{lstdrvrs.dtx}{lang2}}
    \file{lstlang3.sty}{\from{lstdrvrs.dtx}{lang3}}
}

\generate{
    \file{listings-acm.prf}{\from{lstdrvrs.dtx}{acm-prf}}
    \file{listings-bash.prf}{\from{lstdrvrs.dtx}{bash-prf}}
    \file{listings-fortran.prf}{\from{lstdrvrs.dtx}{fortran-prf}}
    \file{listings-hansl.prf}{\from{lstdrvrs.dtx}{hansl-prf}}
    \file{listings-lua.prf}{\from{lstdrvrs.dtx}{lua-prf}}
    \file{listings-python.prf}{\from{lstdrvrs.dtx}{python-prf}}
    \file{listings-rexx.prf}{\from{lstdrvrs.dtx}{rexx-prf}}
}


\ifToplevel{
\Msg{*}
\Msg{* You probably need to move all created `.sty' and `.cfg'}
\Msg{* files into a directory searched by TeX.}
\Msg{*}
\Msg{* Run `lstdrvrs.dtx' through LaTeX2e to get the documentation.}
\Msg{*}
}

\endbatchfile
%</install>
%    \end{macrocode}
% \endgroup
%
% \begingroup
%    \begin{macrocode}
%<*config>
%    \end{macrocode}
% \endgroup
% We mainly define default dialects.
%    \begin{macrocode}
\ProvidesFile{listings.cfg}[2024/05/25 1.10b listings configuration]
\def\lstlanguagefiles
    {lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
\lstset{defaultdialect=[R/3 6.10]ABAP,
        defaultdialect=[2005]Ada,
        defaultdialect=[68]Algol,
        defaultdialect=[gnu]Awk,
        defaultdialect=[ANSI]C,
        defaultdialect=[light]Caml,
        defaultdialect=[1985]Cobol,
        defaultdialect=[WinXP]command.com,
        defaultdialect=[ISO]C++,
        defaultdialect=[95]Fortran,
        defaultdialect=[11.0]Mathematica,
        defaultdialect=[OMG]OCL,
        defaultdialect=[Standard]Pascal,
        defaultdialect=[2]Python,
        defaultdialect=[67]Simula,
        defaultdialect=[plain]TeX,
        defaultdialect=[97]VRML}
\lstalias[]{TclTk}[tk]{tcl}
%    \end{macrocode}
% And now some shortcuts for the ABAP versions (provided by Knut Lickert).
% I (Knut) think the leading R/2, R/3 is not necessary (The support for R/2
% is finished). The version number with letter is important for the
% runtime-system, but the programming language should be the same
% for each version.
%    \begin{macrocode}
\lstalias[6.1]{ABAP}[R/3 6.10]{ABAP}
\lstalias[3.1]{ABAP}[R/3 3.1C]{ABAP}
\lstalias[4.6]{ABAP}[R/3 4.6C]{ABAP}
%    \end{macrocode}
% \begingroup
%    \begin{macrocode}
%</config>
%    \end{macrocode}
% \endgroup
%
%    \begin{macrocode}
%<+lang1>\ProvidesFile{lstlang1.sty}
%<+lang2>\ProvidesFile{lstlang2.sty}
%<+lang3>\ProvidesFile{lstlang3.sty}
%<+acm-prf>\ProvidesFile{listings-acm.prf}
%<+bash-prf>\ProvidesFile{listings-bash.prf}
%<+fortran-prf>\ProvidesFile{listings-fortran.prf}
%<+hansl-prf>\ProvidesFile{listings-hansl.prf}
%<+lua-prf>\ProvidesFile{listings-lua.prf}
%<+python-prf>\ProvidesFile{listings-python.prf}
%<+rexx-prf>\ProvidesFile{listings-rexx.prf}
%<-config>    [2024/05/25 1.10b listings language file]
%    \end{macrocode}
%
%
% \section{Language drivers}
%
%
% \subsection{Abap}
%
% \lstthanks{Knut Lickert}{knut.lickert@gmx.de}{%
%   2000/08/01,2001/12/29,2002/04/11} added support for Abap.\footnote{In
% this section `I' is Knut Lickert.}
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Abap definition by Knut Lickert
%%
%    \end{macrocode}
%
% There are some other new commands in release 6.10.
% They will follow later, but up to now I don't work
% with 6.10.
%
%    \begin{macrocode}
\lst@definelanguage[R/3 6.10]{ABAP}[R/3 4.6C]{ABAP}%
  {morekeywords={try,endtry},%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[R/3 4.6C]{ABAP}[R/3 3.1]{ABAP}%
  {morekeywords={method,ref,class,create,object,%
        methods,endmethod,private,protected,public,section,%
        catch,system-exceptions,endcatch,%
        },%
   moreprocnamekeys={class},%
   literate={->}{{$\rightarrow$}}1{=>}{{$\Rightarrow$}}1,%
  }[keywords,comments,strings,procnames]
%    \end{macrocode}
% Yes there are also some more releases in R/3 (2.1\ldots), but I
% know them not really. So let's start with R/3~3.1.
%    \begin{macrocode}
\lst@definelanguage[R/3 3.1]{ABAP}[R/2 5.0]{ABAP}{}%
%    \end{macrocode}
% As I remember all this commands exists in R/2. Many commands are
% new in R/2~5.0 (compared with R/2 4.3). But as I am not using
% R/2~4.3 any more, I start with R/2~5.0.
%    \begin{macrocode}
\lst@definelanguage[R/2 5.0]{ABAP}{%
  sensitive=f,%
  procnamekeys={report,program,form,function,module},%
  morekeywords={*, add, after, alias, analyzer, and, append, appending,%
    area, assign, at, authority-check, before, binary, blank, break-point,%
    calendar, call, case, change, changing, check, clear, cnt, co, collect,%
    commit, common, component, compute, condense, corresponding, cos, cp,%
    cs, currency-conversion, cursor, data, database, dataset, decimals,%
    define, delete, deleting, dequeue, describe, detail, dialog, directory,%
    div, divide, do, documentation, during, dynpro, else, end-of-page,%
    end-of-selection, endat, endcase, enddo, endfor, endform, endif,%
    endloop, endmodule, endselect, endwhile, enqueue, exceptions, exit,%
    exp, export, exporting, extract, field, fields, field-groups,%
    field-symbols, find, for, form, format, free, from, function,%
    generating, get, giving, hide, id, if, import, importing, in, incl,%
    include, initial, initialization, input, insert, interrupt, into, is,%
    language, leave, leading, left-justified, like, line, lines,%
    line-count, line-selection, list-processing, load, local, log, logfile,%
    loop, margin, mark, mask, memory, menue, message, mod, modify, module,%
    move, move-text, multiply, na, new, new-line, new-page, no-gaps, np,%
    ns, number, obligatory, occurs, of, on, or, others, output, parameter,%
    parameters, parts, perform, pf-status, places, position, process,%
    raise, raising, ranges, read, refresh, refresh-dynpro, reject, remote,%
    replace, report, reserve, reset, restart, right-justified, run, screen,%
    scroll, search, segments, select, select-options, selection-screen,%
    set, shift, sin, single, sqrt, start-of-selection, statement,%
    structure, submit, subtract, summary, summing, suppress, system, table,%
    tables, task, text, time, to, top-of-page, trace, transaction,%
    transfer, transfer-dynpro, translate, type, unpack, update,%
    user-command, using, value, when, where, while, window, with, workfile,%
    write},%
  morecomment=[l]",%
  morecomment=[f][commentstyle][0]*,%
  morestring=[d]'%
}[keywords,comments,strings,procnames]
%    \end{macrocode}
% This section for R/2~4.3 is not really maintained. It is just what I
% remember of the past.
%    \begin{macrocode}
\lst@definelanguage[R/2 4.3]{ABAP}[R/2 5.0]{ABAP}%
  {deletekeywords={function,importing,exporting,changing,exceptions,%
        raise,raising}%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{ACM}
%
% ACM is the language of the Aspen Custom Modeler
% (\url{http://www.aspentech.com/products/aspen-custom-modeler.aspx}), the
% language definition was provided by \lstthanks{Stefan Pinnow}{Stefan
% Pinnow <Mo-Gul@gmx.net>}{2013/09/08}. It is intended for writing models.
% \lsthelper{Maximilian~Dammann}{maximilian.dammann@tu-clausthal.de}
% {2014/09/16}{missing keyword} pointed out the missing keyword
% ``Description''.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% ACM and ACMscript definition
%% (c) 2013 Stefan Pinnow
%%
\lst@definelanguage{ACM}{%
  morekeywords={ abs, After, acos, And, As, asin, atan, At, Call,%
    Compatibility, Connect, cos, cosh, Create, Delay, Description,%
    Difference, Do, Else, ElseIf, End, EndFor, EndIf, EndParallel,%
    EndState, EndSwitch, EndText, EndWith, exp, External, Fixed, For,%
    ForEach, Free, Global, Hidden, If, Implementation, In, Initial, Input,%
    InterSection, IntegerSet, Invoke, Is, Language, Library, Link, Log10,%
    LogE, Max, Min, Model, Of, Once, Options, Output, Parallel, Parameter,%
    Pause, Port, Print, Private, Procedure, Product, Ramp, Repeat, Restart,%
    Return, Round, Runs, Sigma, sin, sinh, Size, SnapShot, sqr, sqrt,%
    SRamp, State, Stream, StringSet, Structure, Switch, SubRoutine,%
    SymDiff, tan, tanh, Task, Text, Time, Then, Truncate, Union, Until,%
    Uses, Variable, Wait, When, With, WithIn, WorkSpace},%
  sensitive=false,%
  morecomment=[l]{//},%
  morecomment=[s]{/*}{*/},%
  string=[b]{"},%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% In addition to writing models there is a language ACMscript, which is
% similar to VBScript. According to Stefan Pinnow this language is used for
% writing scripts for the models.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{ACMscript}[]{VBScript}{%
  morekeywords={%
    ElseIf,False,In,Resume,True%
  },%
  deletekeywords={%
    Abs,Array,Clear,CreateObject,CStr,Err,ForReading,ForWriting,%
    OpenTextFile,Replace,WriteLine%
  }%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% \begingroup
% Stefan Pinnow also supplied a definition of a style for printing ACM code:
%    \begin{macrocode}
%<*acm-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage[rgb, x11names]{xcolor}

\definecolor{Comments}{rgb}{0.00,0.50,0.00}
\definecolor{KeyWords}{rgb}{0.00,0.00,0.63}
\definecolor{Strings}{rgb}{0.84,0.00,0.00}

\lstdefinestyle{ACM}{%
  basicstyle=\scriptsize\ttfamily,%
  keywordstyle=\color{KeyWords},%
  showstringspaces=false,%
  identifierstyle=\color{black},%
  commentstyle=\color{Comments},%
  stringstyle=\color{Strings},%
  frame=shadowbox,%             % for ACM-Code scrartcl commented out
%   frame=l,%                   % line on the left side
  rulesepcolor=\color{black},%
  numbers=left,%                % left
  firstnumber=1,%
  stepnumber=5,%
  columns=fixed,%               % to prevent inserting spaces
  fontadjust=true,%
  basewidth=0.5em,%
  captionpos=t,%
  abovecaptionskip=\smallskipamount,% same amount as default
  belowcaptionskip=\smallskipamount,% in caption package
}%
%    \end{macrocode}
% This code is provided in the file |listings-acm.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</acm-prf>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{ACSL}
%
% This language was provided by \lstthanks{Andreas~Matthias}{amat@kabsi.at}
% {2000/03/21}. I'm sorry for forgetting to add this language for a long
% time.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% ACSL definition (c) 2000 by Andreas Matthias
%%
\lst@definelanguage{ACSL}[90]{Fortran}%
   {morekeywords={algorithm,cinterval,constant,derivative,discrete,%
         dynamic,errtag,initial,interval,maxterval,minterval,%
         merror,xerror,nsteps,procedural,save,schedule,sort,%
         table,terminal,termt,variable},%
    sensitive=false,%
    morecomment=[l]!%
   }[keywords, comments]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Ada}
%
% Data come from
% \begin{itemize}
% \item
%		\textsc{Barnes, John Gilbert Presslie}:
%		\textbf{Programming in Ada plus language reference manual};
%		{\copyright} 1991 Addison-Wesley Publishing Company, Inc.;
%		ISBN 0-201-56539-0.
% \end{itemize}
% \lstthanks{Torsten~Neuer}{tneuer@inwise.de}{1998/11/23} added support for
% Ada 95. I changed the definition to reduce the required string memory.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Ada 95 definition (c) Torsten Neuer
%%
%% Ada 2005 definition (c) 2006 Santiago Urue\~{n}a Pascual
%%                              <Santiago.Uruena@upm.es>
%%
\lst@definelanguage[2005]{Ada}[95]{Ada}%
  {morekeywords={interface,overriding,synchronized}}%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[95]{Ada}[83]{Ada}%
  {morekeywords={abstract,aliased,protected,requeue,tagged,until}}%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[83]{Ada}%
  {morekeywords={abort,abs,accept,access,all,and,array,at,begin,body,%
      case,constant,declare,delay,delta,digits,do,else,elsif,end,entry,%
      exception,exit,for,function,generic,goto,if,in,is,limited,loop,%
      mod,new,not,null,of,or,others,out,package,pragma,private,%
      procedure,raise,range,record,rem,renames,return,reverse,select,%
      separate,subtype,task,terminate,then,type,use,when,while,with,%
      xor},%
   sensitive=f,%
   morecomment=[l]--,%
   morestring=[m]",% percent not defined as stringizer so far
   morestring=[m]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Algol}
%
% Data come from
% \begin{itemize}
% \item
%		\textsc{Uwe Pape}:
%		\textbf{Programmieren in ALGOL 60};
%		{\copyright} 1973 Carl Hanser Verlag M\"unchen;
%		ISBN 3-446-11605-2
% \item
%		\textsc{Frank G.\ Pagan}:
%		\textbf{A practical guide to ALGOL 68};
%		{\copyright} 1976 by John Wiley $\&$ Sohn Ltd.;
%		ISBN 0-471-65746-8 (Cloth); ISBN 0-471-65747-6 (Pbk).
% \end{itemize}
% The definition of Algol 68 doesn't support comments enclosed by \rlap{/}c.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[68]{Algol}%
% ??? should 'i' be a keyword
  {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]%
%    \end{macrocode}
%    \begin{macrocode}
\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]%
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Assembler}
%
% Credits go to \lstthanks{Michael~Franke}{-}{2006/05/13}.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%%
%% Motorola 68K definition (c) 2006 Michael Franke
%%
\lst@definelanguage[Motorola68k]{Assembler}{%
  morekeywords={ABCD,ADD,%
    ADDA,ADDI,ADDQ,ADDX,AND,ANDI,ASL,ASR,BCC,BLS,BCS,BLT,BEQ,BMI,BF,BNE,%
    BGE,BPL,BGT,BT,BHI,BVC,BLE,BVS,BCHG,BCLR,BRA,BSET,BSR,BTST,CHK,CLR,%
    CMP,CMPA,CMPI,CMPM,DBCC,DBLS,DBCS,DBLT,DBEQ,DBMI,DBF,DBNE,DBGE,DBPL,%
    DBGT,DBT,DBHI,DBVC,DBLE,DBVS,DIVS,DIVU,EOR,EORI,EXG,EXT,ILLEGAL,JMP,%
    JSR,LEA,LINK,LSL,LSR,MOVE,MOVEA,MOVEM,MOVEP,MOVEQ,MULS,MULU,NBCD,NEG,%
    NEGX,NOP,NOT,OR,ORI,PEA,RESET,ROL,ROR,ROXL,ROXR,RTE,RTR,RTS,SBCD,%
    SCC,SLS,SCS,SLT,SEQ,SMI,SF,SNE,SGE,SPL,SGT,ST,SHI,SVC,SLE,SVS,STOP,%
    SUB,SUBA,SUBI,SUBQ,SUBX,SWAP,TAS,TRAP,TRAPV,TST,UNLK},%
   sensitive=false,%
   morecomment=[l]*,%
   morecomment=[l];%
   }[keywords,comments,strings]
%</lang3>
%    \end{macrocode}
% \endgroup
%
% Credits go to \lstthanks{Andrew~Zabolotny}{zap@cobra.ru}{2002/07/05}.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%%
%% 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]
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Awk}
%
% Thanks to \lstthanks{Dr.~Christoph~Giess}{Ch.Giess@gmx.de}{2003/07/15} for
% providing these definitions.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%%
%% awk definitions (c) Christoph Giess
%%
\lst@definelanguage[gnu]{Awk}[POSIX]{Awk}%
  {morekeywords={and,asort,bindtextdomain,compl,dcgettext,gensub,%
      lshift,mktime,or,rshift,strftime,strtonum,systime,xor,extension}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[POSIX]{Awk}%
  {keywords={BEGIN,END,close,getline,next,nextfile,print,printf,%
      system,fflush,atan2,cos,exp,int,log,rand,sin,sqrt,srand,gsub,%
      index,length,match,split,sprintf,strtonum,sub,substr,tolower,%
      toupper,if,while,do,for,break,continue,delete,exit,function,%
      return},%
   sensitive,%
   morecomment=[l]\#,%
   morecomment=[l]//,%
   morecomment=[s]{/*}{*/},%
   morestring=[b]"%
  }[keywords,comments,strings]
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Basic}
%
% Credits go to \lstthanks{Robert Frank}{rf7@ukc.ac.uk}{2002/07/05}.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%%
%% Visual Basic definition (c) 2002 Robert Frank
%%
\lst@definelanguage[Visual]{Basic}
  {morekeywords={Abs,Array,Asc,AscB,AscW,Atn,Avg,CBool,CByte,CCur,%
      CDate,CDbl,Cdec,Choose,Chr,ChrB,ChrW,CInt,CLng,Command,Cos,%
      Count,CreateObject,CSng,CStr,CurDir,CVar,CVDate,CVErr,Date,%
      DateAdd,DateDiff,DatePart,DateSerial,DateValue,Day,DDB,Dir,%
      DoEvents,Environ,EOF,Error,Exp,FileAttr,FileDateTime,FileLen,%
      Fix,Format,FreeFile,FV,GetAllStrings,GetAttr,%
      GetAutoServerSettings,GetObject,GetSetting,Hex,Hour,IIf,%
      IMEStatus,Input,InputB,InputBox,InStr,InstB,Int,Integer,IPmt,%
      IsArray,IsDate,IsEmpty,IsError,IsMissing,IsNull,IsNumeric,%
      IsObject,LBound,LCase,Left,LeftB,Len,LenB,LoadPicture,Loc,LOF,%
      Log,Ltrim,Max,Mid,MidB,Min,Minute,MIRR,Month,MsgBox,Now,NPer,%
      NPV,Oct,Partition,Pmt,PPmt,PV,QBColor,Rate,RGB,Right,RightB,Rnd,%
      Rtrim,Second,Seek,Sgn,Shell,Sin,SLN,Space,Spc,Sqr,StDev,StDevP,%
      Str,StrComp,StrConv,String,Switch,Sum,SYD,Tab,Tan,Time,Timer,%
      TimeSerial,TimeValue,Trim,TypeName,UBound,Ucase,Val,Var,VarP,%
      VarType,Weekday,Year},% functions
   morekeywords=[2]{Accept,Activate,Add,AddCustom,AddFile,AddFromFile,%
      AddFromTemplate,AddItem,AddNew,AddToAddInToolbar,%
      AddToolboxProgID,Append,AppendChunk,Arrange,Assert,AsyncRead,%
      BatchUpdate,BeginTrans,Bind,Cancel,CancelAsyncRead,CancelBatch,%
      CancelUpdate,CanPropertyChange,CaptureImage,CellText,CellValue,%
      Circle,Clear,ClearFields,ClearSel,ClearSelCols,Clone,Close,Cls,%
      ColContaining,ColumnSize,CommitTrans,CompactDatabase,Compose,%
      Connect,Copy,CopyQueryDef,CreateDatabase,CreateDragImage,%
      CreateEmbed,CreateField,CreateGroup,CreateIndex,CreateLink,%
      CreatePreparedStatement,CreatePropery,CreateQuery,%
      CreateQueryDef,CreateRelation,CreateTableDef,CreateUser,%
      CreateWorkspace,Customize,Delete,DeleteColumnLabels,%
      DeleteColumns,DeleteRowLabels,DeleteRows,DoVerb,Drag,Draw,Edit,%
      EditCopy,EditPaste,EndDoc,EnsureVisible,EstablishConnection,%
      Execute,ExtractIcon,Fetch,FetchVerbs,Files,FillCache,Find,%
      FindFirst,FindItem,FindLast,FindNext,FindPrevious,Forward,%
      GetBookmark,GetChunk,GetClipString,GetData,GetFirstVisible,%
      GetFormat,GetHeader,GetLineFromChar,GetNumTicks,GetRows,%
      GetSelectedPart,GetText,GetVisibleCount,GoBack,GoForward,Hide,%
      HitTest,HoldFields,Idle,InitializeLabels,InsertColumnLabels,%
      InsertColumns,InsertObjDlg,InsertRowLabels,InsertRows,Item,%
      KillDoc,Layout,Line,LinkExecute,LinkPoke,LinkRequest,LinkSend,%
      Listen,LoadFile,LoadResData,LoadResPicture,LoadResString,%
      LogEvent,MakeCompileFile,MakeReplica,MoreResults,Move,MoveData,%
      MoveFirst,MoveLast,MoveNext,MovePrevious,NavigateTo,NewPage,%
      NewPassword,NextRecordset,OLEDrag,OnAddinsUpdate,OnConnection,%
      OnDisconnection,OnStartupComplete,Open,OpenConnection,%
      OpenDatabase,OpenQueryDef,OpenRecordset,OpenResultset,OpenURL,%
      Overlay,PaintPicture,Paste,PastSpecialDlg,PeekData,Play,Point,%
      PopulatePartial,PopupMenu,Print,PrintForm,PropertyChanged,Pset,%
      Quit,Raise,RandomDataFill,RandomFillColumns,RandomFillRows,%
      rdoCreateEnvironment,rdoRegisterDataSource,ReadFromFile,%
      ReadProperty,Rebind,ReFill,Refresh,RefreshLink,RegisterDatabase,%
      Reload,Remove,RemoveAddInFromToolbar,RemoveItem,Render,%
      RepairDatabase,Reply,ReplyAll,Requery,ResetCustom,%
      ResetCustomLabel,ResolveName,RestoreToolbar,Resync,Rollback,%
      RollbackTrans,RowBookmark,RowContaining,RowTop,Save,SaveAs,%
      SaveFile,SaveToFile,SaveToolbar,SaveToOle1File,Scale,ScaleX,%
      ScaleY,Scroll,Select,SelectAll,SelectPart,SelPrint,Send,%
      SendData,Set,SetAutoServerSettings,SetData,SetFocus,SetOption,%
      SetSize,SetText,SetViewport,Show,ShowColor,ShowFont,ShowHelp,%
      ShowOpen,ShowPrinter,ShowSave,ShowWhatsThis,SignOff,SignOn,Size,%
      Span,SplitContaining,StartLabelEdit,StartLogging,Stop,%
      Synchronize,TextHeight,TextWidth,ToDefaults,TwipsToChartPart,%
      TypeByChartType,Update,UpdateControls,UpdateRecord,UpdateRow,%
      Upto,WhatsThisMode,WriteProperty,ZOrder},% methods
   morekeywords=[3]{AccessKeyPress,AfterAddFile,AfterChangeFileName,%
      AfterCloseFile,AfterColEdit,AfterColUpdate,AfterDelete,%
      AfterInsert,AfterLabelEdit,AfterRemoveFile,AfterUpdate,%
      AfterWriteFile,AmbienChanged,ApplyChanges,Associate,%
      AsyncReadComplete,AxisActivated,AxisLabelActivated,%
      AxisLabelSelected,AxisLabelUpdated,AxisSelected,%
      AxisTitleActivated,AxisTitleSelected,AxisTitleUpdated,%
      AxisUpdated,BeforeClick,BeforeColEdit,BeforeColUpdate,%
      BeforeConnect,BeforeDelete,BeforeInsert,BeforeLabelEdit,%
      BeforeLoadFile,BeforeUpdate,ButtonClick,ButtonCompleted,%
      ButtonGotFocus,ButtonLostFocus,Change,ChartActivated,%
      ChartSelected,ChartUpdated,Click,ColEdit,Collapse,ColResize,%
      ColumnClick,Compare,ConfigChageCancelled,ConfigChanged,%
      ConnectionRequest,DataArrival,DataChanged,DataUpdated,DblClick,%
      Deactivate,DeviceArrival,DeviceOtherEvent,DeviceQueryRemove,%
      DeviceQueryRemoveFailed,DeviceRemoveComplete,DeviceRemovePending,%
      DevModeChange,Disconnect,DisplayChanged,Dissociate,%
      DoGetNewFileName,Done,DonePainting,DownClick,DragDrop,DragOver,%
      DropDown,EditProperty,EnterCell,EnterFocus,Event,ExitFocus,%
      Expand,FootnoteActivated,FootnoteSelected,FootnoteUpdated,%
      GotFocus,HeadClick,InfoMessage,Initialize,IniProperties,%
      ItemActivated,ItemAdded,ItemCheck,ItemClick,ItemReloaded,%
      ItemRemoved,ItemRenamed,ItemSeletected,KeyDown,KeyPress,KeyUp,%
      LeaveCell,LegendActivated,LegendSelected,LegendUpdated,%
      LinkClose,LinkError,LinkNotify,LinkOpen,Load,LostFocus,%
      MouseDown,MouseMove,MouseUp,NodeClick,ObjectMove,%
      OLECompleteDrag,OLEDragDrop,OLEDragOver,OLEGiveFeedback,%
      OLESetData,OLEStartDrag,OnAddNew,OnComm,Paint,PanelClick,%
      PanelDblClick,PathChange,PatternChange,PlotActivated,%
      PlotSelected,PlotUpdated,PointActivated,PointLabelActivated,%
      PointLabelSelected,PointLabelUpdated,PointSelected,%
      PointUpdated,PowerQuerySuspend,PowerResume,PowerStatusChanged,%
      PowerSuspend,QueryChangeConfig,QueryComplete,QueryCompleted,%
      QueryTimeout,QueryUnload,ReadProperties,Reposition,%
      RequestChangeFileName,RequestWriteFile,Resize,ResultsChanged,%
      RowColChange,RowCurrencyChange,RowResize,RowStatusChanged,%
      SelChange,SelectionChanged,SendComplete,SendProgress,%
      SeriesActivated,SeriesSelected,SeriesUpdated,SettingChanged,%
      SplitChange,StateChanged,StatusUpdate,SysColorsChanged,%
      Terminate,TimeChanged,TitleActivated,TitleSelected,%
      TitleActivated,UnboundAddData,UnboundDeleteRow,%
      UnboundGetRelativeBookmark,UnboundReadData,UnboundWriteData,%
      Unload,UpClick,Updated,Validate,ValidationError,WillAssociate,%
      WillChangeData,WillDissociate,WillExecute,WillUpdateRows,%
      WithEvents,WriteProperties},% VB-events
   morekeywords=[4]{AppActivate,Base,Beep,Call,Case,ChDir,ChDrive,%
      Const,Declare,DefBool,DefByte,DefCur,DefDate,DefDbl,DefDec,%
      DefInt,DefLng,DefObj,DefSng,DefStr,Deftype,DefVar,DeleteSetting,%
      Dim,Do,Else,ElseIf,End,Enum,Erase,Event,Exit,Explicit,FileCopy,%
      For,ForEach,Friend,Function,Get,GoSub,GoTo,If,Implements,Kill,%
      Let,LineInput,Lock,Lset,MkDir,Name,Next,OnError,On,Option,%
      Private,Property,Public,Put,RaiseEvent,Randomize,ReDim,Rem,%
      Reset,Resume,Return,RmDir,Rset,SavePicture,SaveSetting,%
      SendKeys,SetAttr,Static,Sub,Then,Type,Unlock,Wend,While,Width,%
      With,Write},% statements
   sensitive=false,%
   keywordcomment=rem,%
   MoreSelectCharTable=\def\lst@BeginKC@{% chmod
      \lst@ResetToken
      \lst@BeginComment\lst@GPmode{{\lst@commentstyle}%
                       \lst@Lmodetrue\lst@modetrue}\@empty},%
   morecomment=[l]{'},%
   morecomment=[s]{/*}{*/},%
   morestring=[b]",%
   }[keywords,comments,strings,keywordcomments]
%</lang1>
%    \end{macrocode}
% Thanks to \lsthelper{Jonathan~de~Halleux}{dehalleux@pelikhan.com}
% {2002/12/27}{missing comma} for reporting a missing comma after
% \texttt{MoreSelectCharTable}, which was the cause of a problem
% reported by \lsthelper{Robert~Frank}{rf7@ukc.ac.uk}{2002/10/27}
% {indention with language={[Visual]Basic} in optional argument}.
% \lsthelper{Martina~Hansel}{Martina.Hansel@fhtw-berlin.de}{2003/05/29}
% {missing comma} also found the bug and the fix.
% \endgroup
%
%
% \subsection{Clean}
%
% Thanks to \lstthanks{Jos\'e~Romildo~Malaquias}{romildo@iceb.ufop.br}{%
%   2000/08/08}. \lsthelper{Markus~Pahlow}{pahlowm@mar.dfo-mpo.gc.ca}{%
%   2001/10/12}{missing comma} found a missing comma.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%%
%% 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]
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Corba IDL}
%
% This language definition is due to \lstthanks{Jens~T.~Berger~Thielemann}
% {jensthi@ifi.uio.no}{1999/11/28}.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%%
%% Corba IDL definition (c) 1999 Jens T. Berger Thielemann
%%
\lst@definelanguage[CORBA]{IDL}%
  {morekeywords={any,attribute,boolean,case,char,const,context,default,%
      double,enum,exception,fixed,float,in,inout,interface,long,module,%
      native,Object,octet,oneway,out,raises,readonly,sequence,short,%
      string,struct,switch,typedef,union,unsigned,void,wchar,wstring,%
      FALSE,TRUE},%
   sensitive,%
   moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,%
      include,pragma,undef,warning},%
   moredelim=*[directive]\#,%
   morecomment=[l]//,%
   morecomment=[s]{/*}{*/},%
   morestring=[b]"%
  }[keywords,comments,strings,directives]%
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{C, C++, et al}
%
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
% \lstthanks{Michael Fiedler}{post@michael-fiedler.net}{2014/09/04}
% provided the following list of new introduced keywords for C++11.
%    \begin{macrocode}
\lst@definelanguage[11]{C++}[ISO]{C++}%
  {morekeywords={alignas,alignof,char16_t,char32_t,constexpr,%
      decltype,noexcept,nullptr,static_assert,thread_local},%
  }%
%    \end{macrocode}
% \lstthanks{Michael Piefel}{piefel@informatik.hu-berlin.de}{2001/11/21}
% suggested some more changes and added GNU C++.
% For compatibility the `ANSI' language is defined in terms of ISO.
%    \begin{macrocode}
\lst@definelanguage[ANSI]{C++}[ISO]{C++}{}%
%    \end{macrocode}
% \lstthanks{Michael Piefel}{piefel@informatik.hu-berlin.de}{2001/11/21}
% suggested some more changes and added GNU C++.
%    \begin{macrocode}
\lst@definelanguage[GNU]{C++}[ISO]{C++}%
  {morekeywords={__attribute__,__extension__,__restrict,__restrict__,%
      typeof,__typeof__},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[Visual]{C++}[ISO]{C++}%
  {morekeywords={__asm,__based,__cdecl,__declspec,dllexport,%
      dllimport,__except,__fastcall,__finally,__inline,__int8,__int16,%
      __int32,__int64,naked,__stdcall,thread,__try,__leave},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[ISO]{C++}[ANSI]{C}%
  {morekeywords={and,and_eq,asm,bad_cast,bad_typeid,bitand,bitor,bool,%
      catch,class,compl,const_cast,delete,dynamic_cast,explicit,export,%
      false,friend,inline,mutable,namespace,new,not,not_eq,operator,or,%
      or_eq,private,protected,public,reinterpret_cast,static_cast,%
      template,this,throw,true,try,typeid,type_info,typename,using,%
      virtual,wchar_t,xor,xor_eq},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
% Objective-C is due to \lstthanks{Detlev~Dr\"oge}
%{droege@informatik.uni-koblenz.de}{1997/11/04}.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Objective-C definition (c) 1997 Detlev Droege
%%
\lst@definelanguage[Objective]{C}[ANSI]{C}
  {morekeywords={bycopy,id,in,inout,oneway,out,self,super,%
      @class,@defs,@encode,@end,@implementation,@interface,@private,%
      @protected,@protocol,@public,@selector},%
   moredirectives={import}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \lstthanks{J\"org~Viermann}{}{2004/07/17} provided the keywords for
% Handel-C.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Handel-C definition, refer http://www.celoxica.com
%%
\lst@definelanguage[Handel]{C}[ANSI]{C}
  {morekeywords={assert,chan,chanin,chanout,clock,delay,expr,external,%
      external_divide,family,ifselect,in,inline,interface,internal,%
      internal_divid,intwidth,let,macro,mpram,par,part,prialt,proc,ram,%
      releasesema,reset,rom,select,sema,set,seq,shared,signal,try,%
      reset,trysema,typeof,undefined,width,with,wom},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[ANSI]{C}%
  {morekeywords={auto,break,case,char,const,continue,default,do,double,%
      else,enum,extern,float,for,goto,if,int,long,register,return,%
      short,signed,sizeof,static,struct,switch,typedef,union,unsigned,%
      void,volatile,while},%
   sensitive,%
   morecomment=[s]{/*}{*/},%
   morecomment=[l]//,% nonstandard
   morestring=[b]",%
   morestring=[b]',%
   moredelim=*[directive]\#,%
   moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,%
      include,pragma,undef,warning}%
  }[keywords,comments,strings,directives]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
% Thanks go to \lstthanks{Martin~Brodbeck}{Martin.Brodbeck@gmx.de}%
% {2002/03/17}.
%    \begin{macrocode}
%%
%% C-Sharp definition (c) 2002 Martin Brodbeck
%%
\lst@definelanguage[Sharp]{C}%
  {morekeywords={abstract,base,bool,break,byte,case,catch,char,checked,%
      class,const,continue,decimal,default,delegate,do,double,else,%
      enum,event,explicit,extern,false,finally,fixed,float,for,foreach,%
      goto,if,implicit,in,int,interface,internal,is,lock,long,%
      namespace,new,null,object,operator,out,override,params,private,%
      protected,public,readonly,ref,return,sbyte,sealed,short,sizeof,%
      static,string,struct,switch,this,throw,true,try,typeof,uint,%
      ulong,unchecked,unsafe,ushort,using,virtual,void,while,%
      as,volatile,stackalloc},% Kai K\"ohne
   sensitive,%
   morecomment=[s]{/*}{*/},%
   morecomment=[l]//,%
   morestring=[b]"
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Caml and Objective Caml}
%
% \lstthanks{Patrick~Cousot}{Patrick.Cousot@wanadoo.fr}{1999/01/09} mailed me
% the definition. \lsthelper{Tom~Hirschowitz}{tom.hirschowitz@inria.fr}
% {2003/05/27}{missing keywords: object, ref} added two keywords.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% (Objective) Caml definition (c) 1999 Patrick Cousot
%%
%% Objective CAML and Caml light are freely available, together with a
%% reference manual, at URL ftp.inria.fr/lang/caml-light for the Unix,
%% Windows and Macintosh OS operating systems.
%%
\lst@definelanguage[Objective]{Caml}[light]{Caml}
  {deletekeywords={not,prefix,value,where},%
   morekeywords={assert,asr,class,closed,constraint,external,false,%
      functor,include,inherit,land,lazy,lor,lsl,lsr,lxor,method,mod,%
      module,new,open,parser,private,sig,struct,true,val,virtual,when,%
      object,ref},% TH
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[light]{Caml}
  {morekeywords={and,as,begin,do,done,downto,else,end,exception,for,%
      fun,function,if,in,let,match,mutable,not,of,or,prefix,rec,then,%
      to,try,type,value,where,while,with},%
   sensitive,%
   morecomment=[n]{(*}{*)},%
   morestring=[b]",%
   moredelim=*[directive]\#,%
   moredirectives={open,close,include}%
  }[keywords,comments,strings,directives]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Common Intermediate Language}
%
% This language definition for CIL (Common Intermediate Language, part of
% Microsoft's .NET interface) was provided by
% \lsthelper{Olaf~Conradi}{-}{2006/08/23}. \lsthelper{Akim
% Demaille}{akim@lrde.epita.fr}{2014/07/09}{Algol broken} pointed out that
% the support for Algol was broken, but that came from a long missing `@'
% in the following |lst@definelanguage|.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{CIL}{%
  morekeywords=[1]{assembly, beforefieldinit, class, default, cdecl, cil,%
    corflags, culture, custom, data, entrypoint, fastcall, field, file,%
    hidebysig, hash, il, imagebase, locals, managed, marshall, maxstack,%
    mresource, method, module, namespace, publickey, stdcall, subsystem,%
    thiscall, unmanaged, vararg, ver, vtfixup,%
    % types
    bool, char, float32, float64, int, int8, int16, int32, int64, method,%
    native, object, string, modopt, modreq, pinned, typedref, valuetype,%
    unsigned, void,%
    % defining types
    abstract, ansi, auto, autochar, beforefieldinit, boxed, class,%
    explicit, extends, implements, interface, famandassem, family,%
    famorassem, inherits, nested, override, pack, private, property,%
    public, rtspecialname, sealed, sequential, serializable, size,%
    specialname, static, unicode,%
    % postfix
    algorithm, alignment, extern, init, from, nometadata, with},%
  morekeywords=[2]{add, and, arglist, beq, bge, bgt, ble, blt, bne, br,%
    break, brfalse, brtrue, call, calli, ceq, cgt, ckfinite, clt, conv,%
    cpblk, div, dup, endfilter, endfinally, initblk, jmp, ldarg, ldarga,%
    ldc, ldftn, ldind, ldloc, ldloca, ldnull, leave, localloc, mul, neg,%
    nop, not, or, pop, rem, ret, shl, shr, starg, stind, stloc, sub,%
    switch, xor,%
    % prefix
    tail, unaligned, volatile,
    % postfix
    un, s, ovf,
    % object
    box, callvirt, castclass, cpobj, cctor, ctor, initobj, isinst, ldelem,%
    ldelema, ldfld, ldflda, ldlen, ldobj, ldsfld, ldsflda, ldstr, ldtoken,%
    ldvirtftn, mkrefany, newarr, newobj, refanytype, refanyval, rethrow,%
    sizeof, stelem, stfld, stobj, stsfld, throw, unbox},%
  sensitive=true,%
  morecomment=[l]{//},%
  morestring=[b]"%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Cobol}
%
% Keywords are not marked if their names are broken by EOL, for example
% DEBUG-CONTENTS. Sometimes portions of a string are not printed as a
% string.  This happens if the double quote is not doubled to insert a
% quote, e.g.~|""bad" cobol"| won't be printed correctly.  \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[ibm]{Cobol}[1985]{Cobol}%
  {morekeywords={ADDRESS,BEGINNING,COMP-3,COMP-4,COMPUTATIONAL,%
      COMPUTATIONAL-3,COMPUTATIONAL-4,DISPLAY-1,EGCS,EJECT,ENDING,%
      ENTRY,GOBACK,ID,MORE-LABELS,NULL,NULLS,PASSWORD,RECORDING,%
      RETURN-CODE,SERVICE,SKIP1,SKIP2,SKIP3,SORT-CONTROL,SORT-RETURN,%
      SUPPRESS,TITLE,WHEN-COMPILED},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[1985]{Cobol}[1974]{Cobol}%
  {morekeywords={ALPHABET,ALPHABETIC-LOWER,ALPHABETIC-UPPER,%
      ALPHANUMERIC,ALPHANUMERIC-EDITED,ANY,CLASS,COMMON,CONTENT,%
      CONTINUE,DAY-OF-WEEK,END-ADD,END-CALL,END-COMPUTE,END-DELETE,%
      END-DIVIDE,END-EVALUATE,END-IF,END-MULTIPLY,END-PERFORM,END-READ,%
      END-RECEIVE,END-RETURN,END-REWRITE,END-SEARCH,END-START,%
      END-STRING,END-SUBTRACT,END-UNSTRING,END-WRITE,EVALUATE,EXTERNAL,%
      FALSE,GLOBAL,INITIALIZE,NUMERIC-EDITED,ORDER,OTHER,%
      PACKED-DECIMAL,PADDING,PURGE,REFERENCE,RELOAD,REPLACE,STANDARD-1,%
      STANDARD-2,TEST,THEN,TRUE},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[1974]{Cobol}%
  {morekeywords={ACCEPT,ACCESS,ADD,ADVANCING,AFTER,ALL,ALPHABETIC,ALSO,%
      ALTER,ALTERNATE,AND,ARE,AREA,AREAS,ASCENDING,ASSIGN,AT,AUTHOR,%
      BEFORE,BINARY,BLANK,BLOCK,BOTTOM,BY,CALL,CANCEL,CD,CF,CH,%
      CHARACTER,CHARACTERS,CLOCK-UNITS,CLOSE,COBOL,CODE,CODE-SET,%
      COLLATING,COLUMN,COMMA,COMMUNICATION,COMP,COMPUTE,CONFIGURATION,%
      CONTAINS,CONTROL,CONTROLS,CONVERTING,COPY,CORR,CORRESPONDING,%
      COUNT,CURRENCY,DATA,DATE,DATE-COMPILED,DATE-WRITTEN,DAY,DE,%
      DEBUG-CONTENTS,DEGUB-ITEM,DEBUG-LINE,DEBUG-NAME,DEBUG-SUB1,%
      DEBUG-SUB2,DEBUG-SUB3,DEBUGGING,DECIMAL-POINT,DECLARATIVES,%
      DELETE,DELIMITED,DELIMITER,DEPENDING,DESCENDING,DESTINATION,%
      DETAIL,DISABLE,DISPLAY,DIVIDE,DIVISION,DOWN,DUPLICATES,DYNAMIC,%
      EGI,ELSE,EMI,ENABLE,END,END-OF-PAGE,ENTER,ENVIRONMENT,EOP,EQUAL,%
      ERROR,ESI,EVERY,EXCEPTION,EXIT,EXTEND,FD,FILE,FILE-CONTROL,%
      FILLER,FINAL,FIRST,FOOTING,FOR,FROM,GENERATE,GIVING,GO,GREATER,%
      GROUP,HEADING,HIGH-VALUE,HIGH-VALUES,I-O,I-O-CONTROL,%
      IDENTIFICATION,IF,IN,INDEX,INDEXED,INDICATE,INITIAL,INITIATE,%
      INPUT,INPUT-OUTPUT,INSPECT,INSTALLATION,INTO,INVALID,IS,JUST,%
      JUSTIFIED,KEY,LABEL,LAST,LEADING,LEFT,LENGTH,LESS,LIMIT,LIMITS,%
      LINAGE,LINAGE-COUNTER,LINE,LINE-COUNTER,LINES,LINKAGE,LOCK,%
      LOW-VALUE,LOW-VALUES,MEMORY,MERGE,MESSAGE,MODE,MODULES,MOVE,%
      MULTIPLE,MULTIPLY,NATIVE,NEGATIVE,NEXT,NO,NOT,NUMBER,NUMERIC,%
      OBJECT-COMPUTER,OCCURS,OF,OFF,OMITTED,ON,OPEN,OPTIONAL,OR,%
      ORGANIZATION,OUTPUT,OVERFLOW,PAGE,PAGE-COUNTER,PERFORM,PF,PH,PIC,%
      PICTURE,PLUS,POINTER,POSITION,PRINTING,POSITIVE,PRINTING,%
      PROCEDURE,PROCEDURES,PROCEED,PROGRAM,PROGRAM-ID,QUEUE,QUOTE,%
      QUOTES,RANDOM,RD,READ,RECEIVE,RECORD,RECORDING,RECORDS,REDEFINES,%
      REEL,REFERENCES,RELATIVE,RELEASE,REMAINDER,REMOVAL,RENAMES,%
      REPLACING,REPORT,REPORTING,REPORTS,RERUN,RESERVE,RESET,RETURN,%
      REVERSED,REWIND,REWRITE,RF,RH,RIGHT,ROUNDED,RUN,SAME,SD,SEARCH,%
      SECTION,SECURITY,SEGMENT,SEGMENT-LIMIT,SELECT,SEND,SENTENCE,%
      SEPARATE,SEQUENCE,SEQUENTIAL,SET,SIGN,SIZE,SORT,SORT-MERGE,%
      SOURCE,SOURCE-COMPUTER,SPACE,SPACES,SPECIAL-NAMES,STANDARD,START,%
      STATUS,STOP,STRING,SUB-QUEUE-1,SUB-QUEUE-2,SUB-QUEUE-3,SUBTRACT,%
      SUM,SYMBOLIC,SYNC,SYNCHRONIZED,TABLE,TALLYING,TAPE,TERMINAL,%
      TERMINATE,TEXT,THAN,THROUGH,THRU,TIME,TIMES,TO,TOP,TRAILING,TYPE,%
      UNIT,UNSTRING,UNTIL,UP,UPON,USAGE,USE,USING,VALUE,VALUES,VARYING,%
      WHEN,WITH,WORDS,WORKING-STORAGE,WRITE,ZERO,ZEROES,ZEROS},%
   alsodigit=-,%
   sensitive=f,% ???
   morecomment=[f][commentstyle][6]*,%
   morestring=[d]"% ??? doubled
  }[keywords,comments,strings]
%    \end{macrocode}
% \texttt{commentstyle} (not the surrounding brackets) have been added after
% a bug report by \lsthelper{Stephen Reindl}{Stephen.Reindl@vodafone.de}
% {2002/05/28}{no commentstyle in Cobol}.
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Comal 80}
%
% The data is from
% \begin{itemize}
% \item
%		\textsc{Borge R. Christensen}:
%		\textbf{Strukturierte Programmierung mit COMAL 80} [aus dem
%		D\"anischen \"ubertragen und bearbeitet von Margarete Kragh];
%		2., verb.\ Auflage -- M\"unchen; Wien: Oldenburg, 1985;
%		ISBN 3-486-26902-X.
% \end{itemize}
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{COMMAND.COM Batch Files}
%
% This definition for DOS and Windows batch files is from
% \lstthanks{Stephan Hennig}{-}{2006/10/11}.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[WinXP]{command.com}%
  {morekeywords={assoc,at,attrib,bootcfg,break,cacls,call,cd,chcp,chdir,%
      chkdsk,chkntfs,cls,cmd,cmdextversion,color,comp,compact,convert,copy,%
      date,defined,del,dir,diskcomp,diskcopy,do,doskey,echo,else,endlocal,%
      erase,errorlevel,exist,exit,fc,find,findstr,for,format,ftype,goto,%
      graftabl,help,if,in,label,md,mkdir,mode,more,move,not,off,path,%
      pause,popd,print,prompt,pushd,rd,recover,ren,rename,replace,rmdir,%
      set,setlocal,shift,sort,start,subst,time,title,tree,type,ver,%
      verify,vol,xcopy},%
   sensitive=false,%
   alsoother={@},%
   alsoletter={\%~:-/},%
   morecomment=[l]{rem},%
   morecomment=[l]{reM},%
   morecomment=[l]{rEm},%
   morecomment=[l]{rEM},%
   morecomment=[l]{Rem},%
   morecomment=[l]{ReM},%
   morecomment=[l]{REm},%
   morecomment=[l]{REM},%
   morestring=[d]"%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Comsol Multiphysics}
%
% Comsol Multiphysics (Prior to version 3.2 known as Femlab) can be used
% standalone or as an extension to MatLab.  This definition is due to
% \lstthanks{Martin~Heller}{-}{2006/05/10}.
%
% Unfortunately, there is a conflict in that Comsol is case-insensitive,
% whereas Matlab is case-sensitive; \textsf{listings} does not
% currently support different case-sensitivities in the same listing.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Comsol}%
  {morekeywords={%
      adaption,arc1,arc2,arrayr,assemble,asseminit,beziercurve2,block2,%
      block3,bsplinecurve2,bsplinecurve3,bsplinesurf3,bypassplot,cardg,%
      ccoeffgroup,chamfer,checkgeom,circ1,circ2,coeff2cell,comsol,%
      cone2,cone3,Contents,createhexes,createprisms,createquads,csgbl2,%
      csgbl3,csgcmpbz,csgimplbz,csginitaux,csginitnr,csgproputil,%
      csgrbconv,csgunique3,csguniquep,csgversion,csgvvovl,curve2,%
      curve3,cylinder2,cylinder3,dat2str,defastget,display,drawgetobj,%
      drawreobj,drawsetobj,dst,duplicate,dxflayers,dxfread,dxfwrite,%
      econe2,econe3,eigloop,elcconstr,elcplbnd,elcplextr,elcplproj,%
      elcplscalar,elempty,elemreobj,eleqc,eleqw,elevate,elgeom,ellip1,%
      ellip2,ellipsoid2,ellipsoid3,ellipsoidgen_fl23,elmat,elovar,%
      elpconstr,elshape,elvar,elvarm,embed,extrude,face3,faceprim3,%
      fastsetop,fem2jxfem,femblocksu,femdiff,femeig,femexport,femgui,%
      femimport,femiter,femlab,femlin,femmesh,femmeshexp,femnlin,%
      femplot,femsfun,femsim,femsimlowlevel,femsimserver,femsol,%
      femsolver,femstate,femstruct,femtime,femwave,festyle,fieldnames,%
      fillet,fl1d,fl2d,fl3d,flaction,flafun,flappconvert,flappobj,%
      flaxisequal,flbase,flbinary,flc1hs,flc2hs,flcanpnt,flcell2draw,%
      flclear,flcolorbar,flcompact,flconeplot,flcontour2mesh,%
      flcontour2meshaux,flconvreact,flconvreact1d,flconvreact2d,%
      flconvreact3d,flcyl,fldc1hs,fldc2hs,fldegree,fldegreer3,%
      fldegreet3,fldimvarsget,fldisp,fldraw2cell,fldrawnow,fldsmhs,%
      fldsmsign,flevalmat,flexch,flexchprop,flfastgeom,flform,flgc,%
      flgcbo,flgdconv,flgeom2cellstr,flgeomadj,flgeomarcize,flgeomec,%
      flgeomed,flgeomepol,flgeomes,flgeomfc,flgeomfd,flgeomfdp,%
      flgeomff1,flgeomff2,flgeomfn,flgeomfs,flgeomgetlocalsys,%
      flgeominit,flgeominitprop,flgeomitransform,flgeomloft,flgeommesh,%
      flgeomnbs,flgeomnes,flgeomnmr,flgeomnv,flgeompsinv,flgeomrmsing,%
      flgeomrotp,flgeomsd,flgeomsdim,flgeomse,flgeomsf2,flgeomspm,%
      flgeomtransform,flgeomud,flgeomvtx,flgetdraw,flheat,flheat1d,%
      flheat2d,flheat3d,flhelmholtz,flhelmholtz1d,flhelmholtz2d,%
      flhelmholtz3d,flim2curve,flinterp1,fliscont,flismember,%
      flisnumeric,fljaction,fllaplace,fllaplace1d,fllaplace2d,%
      fllaplace3d,flload,flloadfl,flloadmatfile,flloadmfile,%
      fllobj2cellstr,flmakeevalstr,flmapsoljac,flmat2str,flmatch,%
      flmesh2spline,flmesh2splineaux,flml65setup,flngdof,flnull,%
      flnullorth,flpde,flpdeac,flpdec,flpdec1d,flpdec2d,flpdec3d,%
      flpdedc,flpdedc2d,flpdedc3d,flpdedf,flpdedf1d,flpdedf2d,%
      flpdedf3d,flpdees,flpdees2d,flpdees3d,flpdeg,flpdeg1d,flpdeg2d,%
      flpdeg3d,flpdeht,flpdeht1d,flpdeht2d,flpdeht3d,flpdems,flpdems2d,%
      flpdems3d,flpdens,flpdens2d,flpdens3d,flpdepn,flpdeps,flpdesm3d,%
      flpdew,flpdew1d,flpdew2d,flpdew3d,flpdewb,flpdewb1d,flpdewb2d,%
      flpdewb3d,flpdewc,flpdewc1d,flpdewc2d,flpdewc3d,flpdewe,%
      flpdewe3d,flpdewp,flpdewp2d,flpdewp3d,flplot,flpoisson,%
      flpoisson1d,flpoisson2d,flpoisson3d,flpric2,flpric3,flreobj,%
      flreport,flresolvepath,flsave,flschrodinger,flschrodinger1d,%
      flschrodinger2d,flschrodinger3d,flsde,flsdp,flsdt,flsetalpha,%
      flsetdraw,flsmhs,flsmsign,flspnull,fltherm_cond1,fltrg,flversion,%
      flversions,flverver,flwave,flwave1d,flwave2d,flwave3d,%
      flwriteghist,formstr,gdsread,gencyl2,gencyl3,genextrude,%
      genextrudeaux,geom,geom0,geom0get,geom1,geom1get,geom2,geom2get,%
      geom3,geom3get,geom3j2m,geom3m2j,geomaddlblmargin,geomanalyze,%
      geomarrayr,geomassign,geomcoerce,geomcomp,geomconnect,geomcopy,%
      geomcsg,geomdel,geomedit,geomexport,geomfile,geomget,%
      geomgetlabels,geomgetwrkpln,geomimport,geominfo,geominfoaux,%
      geomlblplot,geomload,geomnumparse,geomobject,geomparse,geomplot,%
      geomplot1,geomplot2,geomplot3,geomposition,geomproputil,%
      geomreconstruct,geomreobj,geomserver,geomspline,geomsurf,%
      geomupdate,get,getfemgeom,getisocurve,getjptr,getmesh,getsdim,%
      getvmatrixexch,handlesolnumstr,helix1,helix2,helix3,hexahedron2,%
      hexahedron3,histfrommat,idst,igesread,importplotdata,isempty,%
      isfield,isfunc,isscript,javaclass,jproputil,jptr2geom,jptrgeom1,%
      jptrgeom1_fl23,jptrgeom2,jptrgeom2_fl23,jptrgeom3,jptrgeom3_fl23,%
      keiter,line1,line2,loadobj,loft,matlabinterpdata,mesh2geom,%
      meshassign,meshcaseadd,meshcasedel,meshcaseutil,meshcheck,%
      meshembed,meshenrich,meshenrich1,meshenrich2,meshenrich3,%
      meshexport,meshextend,meshextrude,meshget,meshimport,meshinit,%
      meshintegrate,meshmap,meshoptim,meshparse,meshplot,meshplot1,%
      meshplot2,meshplot3,meshplotproputil,meshpoi,meshproputil,%
      meshptplot,meshqual,meshrefine,meshrevolve,meshsmooth,%
      meshsmooth2,meshsweep,meshvolume,minus,mirror,mkreflparams,%
      mmsolve,modetype,move,moveglobalfields,mphproputil,mtimes,%
      multiphysics,mypostinterp,notscript,onlyelsconstr,outassign,%
      paramgeom,pde2draw,pde2equ,pde2fem,pde2geom,pdeblxpd,plus,point1,%
      point2,point3,poisson,poly1,poly2,postanim,postapplysettings,%
      postarrow,postarrowbnd,postcolorbar,postcont,postcontdomind,%
      postcoord,postcopyprop,postcrossplot,postdistrprops,posteval,%
      postflow,postfnd,postgeomplot,postgetfem,postgetstylecolor,%
      postglobaleval,postglobalplot,postgp,postinit,postint,postinterp,%
      postiso,postlin,postmakecontcol,postmax,postmaxmin,postmin,%
      postmkcontbar,postmknormexpr,postmovie,postnewplot,%
      postoldmaxminprops,postpd2pm,postplot,postplotconstants,%
      postpm2pd,postprinc,postprincbnd,postprocgui,postproputil,%
      postslice,postsurf,posttet,posttitle,print2file,pyramid2,%
      pyramid3,rect1,rect2,restorefields,revolve,rmfield,rotate,%
      rotmatrix,scale,serialize,set,setmesh,sh2str,sharg_2_5,shbub,%
      shdisc,shdiv,shherm,shlag,shvec,simplecoerce,simreobj,slblocks,%
      solassign,solid0,solid1,solid2,solid3,solidprim3,solproputil,%
      solsize,solveraddcases,sphere2,sphere3,spiceimport,splineaux,%
      split,splittoprim,square1,square2,stlread,submode,submodes,%
      subsasgn,subsref,tangent,taucs,tetrahedron2,tetrahedron3,%
      tobsplines,torus2,torus3,transform,update,updateassoc,%
      updateassocinfo,updatefem,updateguistruct,updateobj,vrmlread,%
      xmeshinfo,xmeshinit},%
   sensitive=false,%
   morecomment=[l]\%,%
   morestring=[m]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{bash, csh, and sh}
%
% csh is from \lstthanks{Kai~Below}{below@tu-harburg.de}{1998/09/21},
% but he pointed out that some keywords are probably missing.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% csh definition (c) 1998 Kai Below
%%
\lst@definelanguage{csh}
  {morekeywords={alias,awk,cat,echo,else,end,endif,endsw,exec,exit,%
      foreach,glob,goto,history,if,logout,nice,nohup,onintr,repeat,sed,%
      set,setenv,shift,source,switch,then,time,while,umask,unalias,%
      unset,wait,while,@,env,argv,child,home,ignoreeof,noclobber,%
      noglob,nomatch,path,prompt,shell,status,verbose,print,printf,%
      sqrt,BEGIN,END},%
   morecomment=[l]\#,%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
% Thanks to \lstthanks{Riccardo~Murri}{riccardo.murri@gmx.it}{2003/09/24}
% for the following two
% definitions. \lstthanks{Scott~Pakin}{scott@pakin.org}{2014/08/08} pointed
% out some missing keywords (|elif|, |in| for |sh|, |caller|, |compopt|,
% |coproc|, |dirs|, |help|, |mapfile|, |readarray| for |bash|) to the
% current maintainer. The |sh| list of keywords was checkead against the
% ``Manual of the Bourne Shell on Version 7'', found at
% \url{http://www.in-ulm.de/~mascheck/bourne/v7/}, last visited on
% 2014/09/06. \lstthanks{Ralf Schandl}{ralf.schandl@gmx.de}{2003/10/14}
% indicated the missing of an apostrophe as delimiter of strings.
%    \begin{macrocode}
%%
%% bash,sh definition (c) 2003 Riccardo Murri <riccardo.murri@gmx.it>
%%
\lst@definelanguage{bash}[]{sh}%
  {morekeywords={alias,bg,bind,builtin,caller,command,compgen,compopt,%
      complete,coproc,declare,disown,dirs,enable,fc,fg,help,history,%
      jobs,let,local,logout,mapfile,printf,pushd,popd,readarray,select,%
      set,suspend,shopt,source,times,type,typeset,ulimit,unalias,wait},%
  }%
\lst@definelanguage{sh}%
  {morekeywords={awk,break,case,cat,cd,continue,do,done,echo,elif,else,%
      env,esac,eval,exec,exit,export,expr,false,fi,for,function,getopts,%
      hash,history,if,in,kill,login,newgrp,nice,nohup,ps,pwd,read,%
      readonly,return,set,sed,shift,test,then,times,trap,true,type,%
      ulimit,umask,unset,until,wait,while},%
   morecomment=[l]\#,%
   morestring=[d]",%
   morestring=[d]'%
  }[keywords,comments,strings]
%</lang1>
%    \end{macrocode}
% \endgroup
%
% \begingroup
% Jobst Hoffmann copied the definition of a style for printing Fortran code
% to a style for printing shell programs:
%    \begin{macrocode}
%<*bash-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage[rgb, x11names]{xcolor}

% common settings
\lstset{%
  frame=tlb,%      the frame is open on the right side
  resetmargins=false,%
  rulesepcolor=\color{black},%
  numbers=left,%                % left
  numberstyle=\tiny,%
  numbersep=5pt,%
  firstnumber=1,%
  stepnumber=5,%
  columns=fixed,%               % to prevent inserting spaces
  fontadjust=true,%
  keepspaces=true,%
  basewidth=0.5em,%
  captionpos=t,%
  abovecaptionskip=\smallskipamount,% same amount as default
  belowcaptionskip=\smallskipamount,% in caption package
}
% settings for colored printing
\lstdefinestyle{bash}{%
  backgroundcolor=\color{yellow!10},%
  basicstyle=\small\ttfamily,%
  identifierstyle=\color{black},%
  keywordstyle=\color{blue},%
  keywordstyle={[2]\color{cyan}},%
  keywordstyle={[3]\color{olive}},%
  stringstyle=\color{teal},%
  commentstyle=\itshape\color{orange},%
}%
% settings for back and white printing
\lstdefinestyle{bashbw}{%
  backgroundcolor={},%
  basicstyle=\small\ttfamily,%
  identifierstyle={},%
  keywordstyle=\bfseries,%
  stringstyle=\itshape,%
  commentstyle=\slshape,%
  rulesepcolor=\color{black},%
}%
%    \end{macrocode}
% This code is provided in the file |listings-bash.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</bash-prf>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Delphi}
%
% I took the data from Delphi 1.0 (?) online help.
% \lstthanks{Christian~Gudrian}{chrigu@kawo1.rwth-aachen.de}{2001/08/16}
% provided the `double slash' comment.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Delphi}%
  {morekeywords={and,as,asm,array,begin,case,class,const,constructor,%
      destructor,div,do,downto,else,end,except,exports,file,finally,%
      for,function,goto,if,implementation,in,inherited,inline,%
      initialization,interface,is,label,library,mod,nil,not,object,of,%
      or,packed,procedure,program,property,raise,record,repeat,set,%
      shl,shr,string,then,to,try,type,unit,until,uses,var,while,with,%
      xor,%
      absolute,abstract,assembler,at,cdecl,default,dynamic,export,%
      external,far,forward,index,name,near,nodefault,on,override,%
      private,protected,public,published,read,resident,storedDir,%
      virtual,write},%
   morendkeywords={Abs,AddExitProc,Addr,AllocMem,AnsiCompareStr,%
      AnsiCompareText,AnsiLowerCase,AnsiUpperCase,Append,AppendStr,%
      ArcTan,AssignCrt,Assigned,AssignFile,BlockRead,BlockWrite,Break,%
      ChangeFileExt,ChDir,Chr,CloseFile,ClrEol,ClrScr,Concat,Continue,%
      Copy,Cos,CSeg,CursorTo,Date,DateTimeToFileDate,DateTimeToStr,%
      DateTimeToString,DateToStr,DayOfWeek,Dec,DecodeDate,DecodeTime,%
      Delete,DeleteFile,DiskFree,DiskSize,Dispose,DisposeStr,%
      DoneWinCrt,DSeg,EncodeDate,EncodeTime,Eof,Eoln,Erase,Exclude,%
      Exit,Exp,ExpandFileName,ExtractFileExt,ExtractFileName,%
      ExtractFilePath,FileAge,FileClose,FileDateToDateTime,FileExists,%
      FileGetAttr,FileGetDate,FileOpen,FilePos,FileRead,FileSearch,%
      FileSeek,FileSetAttr,FileSetDate,FileSize,FillChar,FindClose,%
      FindFirst,FindNext,FloatToDecimal,FloatToStrF,FloatToStr,%
      FloatToText,FloatToTextFmt,Flush,FmtLoadStr,FmtStr,Format,%
      FormatBuf,FormatDateTime,FormatFloat,Frac,Free,FreeMem,GetDir,%
      GetMem,GotoXY,Halt,Hi,High,Inc,Include,InitWinCrt,Insert,Int,%
      IntToHex,IntToStr,IOResult,IsValidIdent,KeyPressed,Length,Ln,Lo,%
      LoadStr,Low,LowerCase,MaxAvail,MemAvail,MkDir,Move,New,NewStr,%
      Now,Odd,Ofs,Ord,ParamCount,ParamStr,Pi,Pos,Pred,Ptr,Random,%
      Randomize,Read,ReadBuf,ReadKey,Readln,ReAllocMem,Rename,%
      RenameFile,Reset,Rewrite,RmDir,Round,RunError,ScrollTo,Seek,%
      SeekEof,SeekEoln,Seg,SetTextBuf,Sin,SizeOf,SPtr,Sqr,Sqrt,SSeg,%
      Str,StrCat,StrComp,StrCopy,StrDispose,StrECopy,StrEnd,StrFmt,%
      StrLCat,StrIComp,StrLComp,StrLCopy,StrLen,StrLFmt,StrLIComp,%
      StrLower,StrMove,StrNew,StrPas,StrPCopy,StrPos,StrScan,StrRScan,%
      StrToDate,StrToDateTime,StrToFloat,StrToInt,StrToIntDef,%
      StrToTime,StrUpper,Succ,Swap,TextToFloat,Time,TimeToStr,%
      TrackCursor,Trunc,Truncate,TypeOf,UpCase,UpperCase,Val,WhereX,%
      WhereY,Write,WriteBuf,WriteChar,Writeln},%
   sensitive=f,%
   morecomment=[s]{(*}{*)},%
   morecomment=[s]{\{}{\}},%
   morecomment=[l]{//},% 2001 Christian Gudrian
   morestring=[d]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Eiffel}
%
% Data is from
% \begin{itemize}
% \item
%       \textsc{Bertrand Meyer}: \textbf{Eiffel: the language};
%       Prentice Hall International (UK) Ldt, 1992;
%       ISBN 0-13-247925-7.
% \end{itemize}
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Eiffel}%
  {morekeywords={alias,all,and,as,BIT,BOOLEAN,CHARACTER,check,class,%
      creation,Current,debug,deferred,do,DOUBLE,else,elseif,end,%
      ensure,expanded,export,external,false,feature,from,frozen,if,%
      implies,indexing,infix,inherit,inspect,INTEGER,invariant,is,%
      like,local,loop,NONE,not,obsolete,old,once,or,POINTER,prefix,%
      REAL,redefine,rename,require,rescue,Result,retry,select,%
      separate,STRING,strip,then,true,undefine,unique,until,variant,%
      when,xor},%
   sensitive,%
   morecomment=[l]--,%
   morestring=[d]",%
  }[keywords,comments,strings]
%    \end{macrocode}
% The key=value \texttt{stringtest=false} has been removed after a bug
% report from \lsthelper{Xavier~Cr\'egut}{cregut@enseeiht.fr}{2002/09/09}
% {stringtest no more part of package}.
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Elan}
%
% The data come from
% \begin{itemize}
% \item
%		\textsc{Leo~H.~Klingen, Jochen Liedtke}:
%		\textbf{Programmieren mit ELAN};
%		B.G.\ Teubner, Stuttgart 1983; ISBN 3-519-02507-8.
% \end{itemize}
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Erlang}
%
% Thanks to \lstthanks{Daniel~Gazard}{gazard_d@epita.fr}{2003/05/31}.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% 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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Euphoria}
%
% \lstthanks{Detlef~Reimers}{dreimers@aol.com}{1998/08/30} sent me the
% language definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Euphoria definition (c) 1998 Detlef Reimers
%%
\lst@definelanguage{Euphoria}%
% for Euphoria 2.0, Rapid Deployment Software, Kanada
  {morekeywords={abort,and,and_bits,append,arctan,atom,by,call,%
      call_proc,call_func,c_proc,c_func,clear_screen,close,%
      command_line,compare,constant,cos,do,date,else,elsif,end,exit,%
      find,floor,for,function,getc,getenv,get_key,gets,global,%
      get_pixel,if,include,integer,length,log,match,machine_func,%
      machine_proc,mem_copy,mem_set,not,not_bits,or,object,open,%
      or_bits,procedure,puts,position,prepend,print,printf,power,peek,%
      poke,pixel,poke4,peek4s,peek4u,return,rand,repeat,remainder,%
      routine_id,sequence,sqrt,sin,system,sprintf,then,type,to,time,%
      trace,tan,while,with,without,xor,xor_bits},%
   sensitive,%
   morecomment=[l]--,%
   morestring=[d]',%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Fortran}
% \label{sec:fortran}
%
% Took things from
% \begin{itemize}
% \item
%		\textsc{Karl Hans M\"uller}:
%		\textbf{Fortran 77: Programmierungsanleitung};
%		3., v\"ollig neu bearb.\ Aufl.\ -- Mannheim; Wien; Z\"urich:
%		Bibliographisches Institut, 1984;
%		ISBN 3-411-05804-8
% \item
%       \textsc{Thomas Michel}: \textbf{Fortran 90: Lehr-- und Handbuch};
%       Mannheim; Leipzig; Wien; Z\"urich: BI-Wiss.-Verlag, 1994;
%       ISBN 3-411-16861-7.
% \end{itemize}
% Another source for Fortran keywords is
% \url{http://fortranwiki.org/fortran/show/Keywords} where the keywords for
% Fortran 2003 and 2008 are taken from.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
% The current version of Fortran (Fortran 2018) is defined by ISO/IEC
% 1539-1:2018, for a deeper insight have a look at
% \url{https://wg5-fortran.org/f2018.html}.  It contains ? new keywords, ?
% of them consisting of
% two words: ^^A
% |FAIL IMAGE|, so
% the list of keywords contains the single parts |FAIL| and |IMAGE|.
% So there is the following definition of Fortran 2018 keywords
%    \begin{macrocode}
\lst@definelanguage[18]{Fortran}[08]{Fortran}{%
  morekeywords={FAIL, IMAGE, NON_RECURSIVE},%
%    \end{macrocode}
%  and procedures:
%    \begin{macrocode}
  morekeywords=[3]{GET_TEAM, TEAM_NUMBER, IMAGE_TEAMS, NUM_IMAGES,
    THIS_IMAGE, FAILED_IMAGES, STOPPED_IMAGES, IMAGES_STATUS, CO_BROADCAST,
  CO_MAX, CO_MIN, CO_SUM, CO_REDUCE, ATOMIC_ADD, ATOMIC_AND, ATOMIC_OR,
  ATOMIC_XOR, ATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR,
  ATOMIC_FETCH_XOR, ATOMIC_FETCH_CAS, IEEE_GET_MODES, IEEE_SET_MODES,
  IEEE_FMA, IEEE_SIGNBIT, IEEE_INT, IEEE_REM, IEEE_MAX_NUM,
  IEEE_MAX_NUM_MAG,
  IEEE_MIN_NUM, IEEE_MAX_NUM_MAG, IEEE_NEXT_DOWN, IEEE_NEXT_UP,
  IEEE_SUPPORT_DATATYPE, IEEE_QUIET_EQ, IEEE_QUIET_GE, IEEE_QUIET_GT,
  IEEE_QUIET_LE, IEEE_QUIET_LT, IEEE_QUIET_NE, IEEE_SIGNALING_EQ,
  IEEE_SIGNALING_GE, IEEE_SIGNALING_GT, IEEE_SIGNALING_LE,
  IEEE_SIGNALING_LT, IEEE_SIGNALING_NE}%
}%
%    \end{macrocode}
%
% The Fortran 2008 version is defined by ISO/IEC
% 1539-1:2010.  It contains nine new keywords, four of them consisting of
% two words: ^^A
% |ERROR STOP|, |SYNC ALL|, |SYNC IMAGES|, |SYNC MEMORY|, so
% the list of keywords contains the single parts |ALL|, |ERROR|, |IMAGES|,
% |MEMORY|, and |SYNC|.
%    \begin{macrocode}
\lst@definelanguage[08]{Fortran}[03]{Fortran}{%
  morekeywords={ALL, BLOCK, CODIMENSION, CONCURRENT, CONTIGUOUS, CRITICAL,%
    ERROR, IMAGES, LOCK, MEMORY, SUBMODULE, SYNC, UNLOCK},%
%    \end{macrocode}
% New procedures in Fortran 2008:
%    \begin{macrocode}
  morekeywords=[3]{ACOSH, ASINH, ATANH, ATOMIC_DEFINE, ATOMIC_REF,%
    BESSEL_J0, BESSEL_J1, BESSEL_JN, BESSEL_Y0, BESSEL_Y1, BESSEL_YN,%
    BGE, BGT, BLE, BLT, C_SIZEOF, COMPILER_OPTIONS, COMPILER_VERSION,%
    DSHIFTL, DSHIFTR, ERF, ERFC, ERFC_SCALED, EXECUTE_COMMAND_LINE,%
    FINDLOC, GAMMA, HYPOT, IALL, IANY, IMAGE_INDEX, IPARITY, LCOBOUND,%
    LEADZ, LOG_GAMMA, MASKL, MASKR, MERGE_BITS, NORM2, NUM_IMAGES,%
    PARITY, POPCNT, POPPAR, SHIFTA, SHIFTL, SHIFTR, STORAGE_SIZE,%
    THIS_IMAGE, TRAILZ, UCOBOUND}%
}%
%    \end{macrocode}
% Fortran 2003 introduces the following keywords:
%    \begin{macrocode}
\lst@definelanguage[03]{Fortran}[95]{Fortran}{%
  morekeywords={ABSTRACT, ASSOCIATE, ASYNCHRONOUS, BIND, CLASS, DEFERRED,%
    ENUM, ENUMERATOR, EXTENDS, FINAL, FLUSH, GENERIC, IMPORT,%
    NON_OVERRIDABLE, NOPASS, PASS, PROTECTED, VALUE, VOLATILE, WAIT},%
%    \end{macrocode}
% These are new options/specifiers:
%    \begin{macrocode}
    morekeywords=[2]{DECIMAL, ENCODING, IOMSG, ROUND},%
%    \end{macrocode}
% And also some new procedures:
%    \begin{macrocode}
  morekeywords=[3]{C_ASSOCIATED, C_F_POINTER, C_F_PROCPOINTER, C_FUNLOC,%
    C_LOC, COMMAND_ARGUMENT_COUNT, EXTENDS_TYPE_OF, GET_COMMAND,%
    GET_COMMAND_ARGUMENT, GET_ENVIRONMENT_VARIABLE, IS_IOSTAT_END,%
    MOVE_ALLOC,NEW_LINE,SAME_TYPE_AS, SELECTED_CHAR_KIND}%
}%
%    \end{macrocode}
% \lsthelper{Denis Girou}{Denis.Girou@idris.fr}{1998/07/26}{Fortran 95=90}
% proposed to have Fortran 95 and Fortran 90 to be equivalent.
%    \begin{macrocode}
\lst@definelanguage[90]{Fortran}[95]{Fortran}{}
%    \end{macrocode}
% There is no |morecomment=[f]| in Fortran 90 since otherwise |CONTAINS|
% could start a comment. This problem was reported by \lsthelper{Magne
% Rudshaug} {magne@ife.no}{1998/01/09}{no morecomment=[f] in Fortran 90}.
% Moreover the keyword |INCLUDE| is due to him.
%    \begin{macrocode}
\lst@definelanguage[95]{Fortran}[77]{Fortran}{%
  deletekeywords=SAVE,%
  morekeywords={ALLOCATABLE, ALLOCATE, ASSIGNMENT, CASE, CONTAINS, CYCLE,%
    DEALLOCATE, DEFAULT, EXIT, INCLUDE, IN, NONE, OUT, INTENT, INTERFACE,%
    MODULE, NAMELIST, NULLIFY, ONLY, OPERATOR, OPTIONAL, OUT, POINTER,%
    PRIVATE, PUBLIC, RECURSIVE, RESULT, SELECT, SEQUENCE, TARGET, TYPE,%
    USE, WHERE, WHILE, BLOCKDATA, DOUBLEPRECISION, ENDBLOCKDATA, ENDFILE,%
    ENDFUNCTION, ENDINTERFACE, ENDMODULE, ENDPROGRAM, ENDSELECT,%
    ENDSUBROUTINE, ENDTYPE, ENDWHERE, INOUT, SELECTCASE,%
%    \end{macrocode}
% Theses keys were missing from the 1.4 version of listings:
%    \begin{macrocode}
    ELEMENTAL, ELSEWHERE, FORALL, PURE,%
%    \end{macrocode}
% This is another key missing from the 1.4 version of listings:
%    \begin{macrocode}
      PROCEDURE},%
%    \end{macrocode}
% The list of option keywords/specifiers new in Fortran 90 and 95:
%    \begin{macrocode}
  morekeywords=[2]{ACTION, ADVANCE, DELIM, IOLENGTH, LEN, NAME, NML, PAD,%
    POSITION, READWRITE, SIZE, STAT},% corrected NML from NMT
%    \end{macrocode}
% and the list of intrinsic procedures new in Fortran 90 and 95:
%    \begin{macrocode}
  morekeywords=[3]{ACHAR, ADJUSTL, ADJUSTR, ALL, ALLOCATED, ANY, ASSOCIATED,%
    BIT_SIZE, BTEST, CEILING, COUNT, CPU_TIME, CSHIFT, DATE_AND_TIME, DIGITS,%
    DOT_PRODUCT, EOSHIFT, EPSILON, EXPONENT, FLOOR, FRACTION, HUGE, IACHAR,%
    IAND, IBCLR, IBITS, IBSET, ICHAR, IEOR, IOR, ISHFT, ISHFTC, KIND, LBOUND,%
    LEN_TRIM,% left out LOGICAL
    MATMUL, MAXEXPONENT, MAXLOC, MAXVAL, MERGE, MINEXPONENT, MINLOC, MINVAL,%
    MODULO, MVBITS, NEAREST, NOT, NULL, PACK, PRECISION, PRESENT, PRODUCT,%
    RADIX, RANDOM_NUMBER, RANDOM_SEED, RANGE, RANK, REPEAT, RESHAPE,%
    RRSPACING, SCALE, SCAN, SELECTED_INT_KIND, SELECTED_REAL_KIND,%
    SET_EXPONENT, SHAPE, SINH, SIZE, SPACING, SPREAD, SUM, SYSTEM_CLOCK,%
    TINY, TRANSFER, TRANSPOSE, TRIM, UBOUND, UNPACK, VERIFY},%
  deletecomment=[f],% no fixed comment line: 1998 Magne Rudshaug
morecomment=[l]!%
}%
%    \end{macrocode}
% As proposed by \lsthelper{J\"orn Wilms}{wilms@rocinante.colorado.edu}
% {1997/07/07}{Fortran with \lstsensitivefalse} keywords are \emph{not} case
% sensitive.  Also, note that Fortran 77 (and fixed-format source in later
% versions) allows space in keywords; thus, this list contains some of the
% more common variants (e.g., `|GO TO|' and `|GOTO|').
%    \begin{macrocode}
\lst@definelanguage[77]{Fortran}{%
%    \end{macrocode}
% Jobst Hoffmann divided the list of keywords into two lists. The first
% list contains the statement keywords, the second list contains the option
% keywords/specifiers and values. This makes the different meanings of the
% keywords distinguishable.
%    \begin{macrocode}
  morekeywords={ASSIGN, BACKSPACE, CALL, CHARACTER, %
    CLOSE, COMMON, COMPLEX, CONTINUE, DATA, DIMENSION, DO, DOUBLE, %
    ELSE, ELSEIF, END, ENDIF, ENDDO, ENTRY, EQUIVALENCE, EXTERNAL, %
    FILE, FORMAT, FUNCTION, GO, TO, GOTO, IF, IMPLICIT, %
    INQUIRE, INTEGER, INTRINSIC, LOGICAL, %
    OPEN, PARAMETER, PAUSE, PRECISION, PRINT, PROGRAM, READ, REAL, %
    RETURN, REWIND, SAVE, STOP, SUBROUTINE, THEN, %
    WRITE},%
  morekeywords=[2]{ACCESS, BLANK, BLOCK, DIRECT, EOF, ERR, EXIST,%
    FMT, FORM, FORMATTED, IOSTAT, NAMED, NEXTREC, NUMBER, OPENED,%
    REC, RECL, SEQUENTIAL, STATUS, TYPE, UNFORMATTED, UNIT},%
%    \end{macrocode}
% And here is another list: the list of intrinsic procedures (remember: all
% functions belong to the Fortran language specification!)
%    \begin{macrocode}
  morekeywords=[3]{INT, DBLE, CMPLX, ICHAR, CHAR, AINT, ANINT,% left out real
    NINT, ABS, MOD, SIGN, DIM, DPROD, MAX, MIN, AIMAG, CONJG, SQRT,%
    EXP, LOG, LOG10, SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, SINH,%
    COSH, TANH, LGE, LGT, LLE, LLT, LEN, INDEX},%
%    \end{macrocode}
% And here is the last list: fortran operators:
%    \begin{macrocode}
  morekeywords=[4]{AND, EQ, EQV, FALSE, GE, GT, OR, LE, LT, NE, NEQV,%
    NOT, TRUE},%
   sensitive=f,%% not Fortran-77 standard, but allowed in Fortran-95 %%
   morecomment=[f]*,%
   morecomment=[f]C,%
   morecomment=[f]c,%
   morestring=[d]",%% not Fortran-77 standard, but allowed in Fortran-95 %%
   morestring=[d]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
% \begingroup
% Jobst Hoffmann supplied a definition of a style for printing Fortran code:
%    \begin{macrocode}
%<*fortran-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage[rgb, x11names]{xcolor}

% common settings
\lstset{%
  frame=tlb,%      the frame is open on the right side
  resetmargins=false,%
  rulesepcolor=\color{black},%
  numbers=left,%                % left
  numberstyle=\tiny,%
  numbersep=5pt,%
  firstnumber=1,%
  stepnumber=5,%
  columns=fixed,%               % to prevent inserting spaces
  fontadjust=true,%
  keepspaces=true,%
  basewidth=0.5em,%
  captionpos=t,%
  abovecaptionskip=\smallskipamount,% same amount as default
  belowcaptionskip=\smallskipamount,% in caption package
}
% settings for colored printing
\lstdefinestyle{fortran}{%
  backgroundcolor=\color{yellow!10},%
  basicstyle=\small\ttfamily,%
  identifierstyle=\color{black},%
  keywordstyle=\color{blue},%
  keywordstyle={[2]\color{cyan}},%
  keywordstyle={[3]\color{olive}},%
  stringstyle=\color{teal},%
  commentstyle=\itshape\color{orange},%
}%
% settings for back and white printing
\lstdefinestyle{fortranbw}{%
  backgroundcolor={},%
  basicstyle=\small\ttfamily,%
  identifierstyle={},%
  keywordstyle=\bfseries,%
  stringstyle=\itshape,%
  commentstyle=\slshape,%
  rulesepcolor=\color{black},%
}%
%    \end{macrocode}
% This code is provided in the file |listings-fortran.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</fortran-prf>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{GAP---Groups, Algorithms, Programming}
%\label{sec:gap}
%
% GAP is a System for Computational Discrete Algebra, a description can be
% found at \url{http://www.gap-system.org/}. \lstthanks{Heiko
% Oberdiek}{heiko.oberdiek@googlemail.com}{2013/07/18} provided a
% language definition without knowing this language, so any error should be
% announced to the current maintainer of the \packagename{listings} package.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% GAP definition
%% (c) 2013 Heiko Oberdiek
%%
\lst@definelanguage{GAP}{%
  morekeywords={%
    Assert,Info,IsBound,QUIT,%
    TryNextMethod,Unbind,and,break,%
    continue,do,elif,%
    else,end,false,fi,for,%
    function,if,in,local,%
    mod,not,od,or,%
    quit,rec,repeat,return,%
    then,true,until,while%
  },%
  sensitive,%
  morecomment=[l]\#,%
  morestring=[b]",%
  morestring=[b]',%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Go---Groups, Algorithms, Programming}
%\label{sec:gap}
%
% From \url{https://en.wikipedia.org/wiki/Go_(programming_language)}: Go
% (often referred to as Golang) is a programming language created by
% Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson.
% Go is a statically typed, compiled language in the tradition of C, with
% memory safety, garbage collection, structural typing, and CSP-style
% concurrency. The compiler, tools, and source code are all free and
% open source.
%
% \lstthanks{Christian Maurer}{christian@maurer-berlin.eu}{2018/08/15}
% provided the following language definition.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Go definition
%% (c) 2018 Christian Maurer
%%
\lst@definelanguage{Go}{%
  morekeywords={append,bool,break,byte,cap,case,chan,close,complex,%
    complex128,complex64,const,continue,copy,default,defer,delete,%
    else,error,fallthrough,false,float32,float64,for,func,go,goto,%
    if,imag,import,int,int16,int32,int64,int8,interface,iota,len,%
    make,map,new,nil,package,panic,print,println,range,real,%
    recover,return,rune,select,string,struct,switch,true,type,%
    uint,uint16,uint32,uint64,uint8,uintptr,var},%
  sensitive,%
  morecomment=[s]{/*}{*/},%
  morecomment=[l]//,%
  morestring=[b]',%
  morestring=[b]",%
  morestring=[s]{`}{`},%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Guarded Command Language (GCL)}
%
% As you can read below, \lstthanks{Mark~van~Eijk}{mark@luon.net}{2002/10/30}
% provided this language definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Guarded Command Language (GCL)  definition
%% (c) 2002 Mark van Eijk
%%
\lst@definelanguage{GCL}%
  {morekeywords={const,con,var,array,of,skip,if,fi,do,od,div,mod},%
   literate={|[}{\ensuremath{|\hskip -0.1em[}}2%
            {]|}{\ensuremath{]\hskip -0.1em|}}2%
	    {[]}{\ensuremath{[\hskip -0.1em]}}2%
	    {->}{\ensuremath{\rightarrow}~}2%
	    {==}{\ensuremath{\equiv}~}2%
	    {>=}{\ensuremath{\geq}~}2%
	    {<=}{\ensuremath{\leq}~}2%
	    {/\\}{\ensuremath{\land}~}2%
	    {\\/}{\ensuremath{\lor}~}2%
	    {!}{\ensuremath{\lnot}}1%
	    {!=}{\ensuremath{\neq}~}2%
	    {max}{\ensuremath{\uparrow}}1%
	    {min}{\ensuremath{\downarrow}}1,%
   sensitive=f,%
   morecomment=[s]{\{}{\}},%
   morestring=[d]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Gnuplot}
%
% Thanks to \lsthelper{Dr.~Christoph~Giess}{Ch.Giess@gmx.de}{2003/07/15}{} for
% providing this definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%%
%% gnuplot definition (c) Christoph Giess
%%
\lst@definelanguage{Gnuplot}%
  {keywords={abs,acos,acosh,arg,asin,asinh,atan,atan2,atanh,besj0,%
       besj1,besy0,besy1,ceil,cos,cosh,erf,erfc,exp,floor,gamma,ibeta,%
       inverf,igamma,imag,invnorm,int,lgamma,log,log10,norm,rand,real,%
       sgn,sin,sinh,sqrt,tan,tanh,column,tm_hour,tm_mday,tm_min,tm_mon,%
       tm_sec,tm_wday,tm_yday,tm_year,valid,cd,call,clear,exit,fit,%
       help,if,load,pause,plot,print,pwd,quit,replot,reread,reset,save,%
       set,show,shell,splot,test,update,angles,arrow,autoscale,border,%
       boxwidth,clabel,clip,cntrparam,contour,data,dgrid3d,dummy,%
       format,function,functions,grid,hidden3d,isosamples,key,keytitle,%
       label,logscale,mapping,offsets,output,parametric,pointsize,%
       polar,rrange,samples,size,style,surface,terminal,tics,time,%
       timefmt,title,trange,urange,variables,view,vrange,xdata,xlabel,%
       xmargin,xrange,xtics,mxtics,mytics,xdtics,xmtics,xzeroaxis,%
       ydata,ylabel,yrange,ytics,ydtics,ymtics,yzeroaxis,zdata,zero,%
       zeroaxis,zlabel,zrange,ztics,zdtics,zmtics,timefm,using,title,%
       with,index,every,thru,smooth},%
   sensitive,%
   comment=[l]\#,%
   morestring=[b]",%
   morestring=[b]',%
  }[keywords,comments,strings]
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Hansl/Gretl}
%
% Thanks to \lstthanks{Ignacio
% D\'{i}az-Emparanza}{ignacio.diaz-emparanza@ehu.es}{2013/10/24},
% \lstthanks{Riccardo (Jack) Lucchetti}{r.lucchetti@univpm.it}{2018/11/03},
% and \lstthanks{Sven Schreiber}{svetosch@gmx.net}{2018/11/22}
% for providing the definition of hansl.  Hansl is the gretl scripting
% language (see \url{http://gretl.sourceforge.net}).%
% \begingroup%
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{hansl}{%
  showstringspaces = false, %
  morekeywords={ % hansl commands:
    add, adf, anova, append, ar, ar1, arbond, arch, arima, biprobit, break,%
    boxplot, chow, clear, coeffsum, coint, coint2, corr, corrgm, cusum,%
    data, dataset, delete, diff, difftest, discrete, dpanel, dummify,%
    duration, elif, else, end, endif, endloop, eqnprint, equation,%
    estimate, eval, fcast, flush, foreign, fractint, freq, function,%
    funcerr, garch, genr, gmm, gnuplot, graphpg, hausman, heckit, help,%
    hfplot, hsk, hurst, if, include, info, intreg, join, kpss, labels, lad,%
    lags, ldiff, leverage, levinlin, logistic, logit, logs, loop, mahal,%
    makepkg, markers, meantest, midasreg, mle, modeltab, modprint, modtest,%
    mpi, mpols, negbin, nls, normtest, nulldata, ols, omit, open, orthdev,%
    outfile, panel, pca, pergm, plot, poisson, print, printf, probit,%
    pvalue, quantreg, qlrtest, qqplot, quit, rename, reset, restrict,%
    rmplot, run, runs, scatters, sdiff, set, setinfo, setobs, setopt,%
    setmiss, smpl, spearman, square, store,%
    summary, system, tabprint, textplot, tobit, tsls, var, varlist,%
    vartest, vecm, vif, wls, xcorrgm, xtab, debug, return, catch, pkg,%
    arma, deriv, params, hessian, for, foreach, while, const},%
  morekeywords=[2]{ % accessors:
    \$nobs, \$nvars, \$pd, \$t1, \$t2, \$tmax, \$datatype, \$test,%
    \$pvalue, \$qlrbreak, \$rlnl, \$stopwatch, \$unit, \$obsmajor,%
    \$obsminor, \$obsmicro, \$obsdate, \$windows, \$version, \$error,%
    \$seed, \$huge, \$ess, \$T, \$rsq, \$sigma, \$df, \$ncoeff, \$lnl,%
    \$gmmcrit, \$aic, \$bic, \$hqc, \$trsq, \$dw, \$dwpval, \$Fstat,%
    \$chisq, \$diagtest, \$diagpval, \$pmanteau, \$uhat, \$yhat, \$llt,%
    \$ahat, \$sample, \$h, \$coeff, \$stderr, \$vcv, \$rho, \$compan,%
    \$xtxinv, \$vecGamma, \$vma, \$fevd, \$evals, \$jalpha, \$jbeta,%
    \$jvbeta, \$s00, \$s11, \$s01, \$ec, \$hausman, \$sargan, \$sysGamma,%
    \$sysA, \$sysB, \$fcast, \$fcse, \$coeff_ci, \$ehat, \$mnlprobs,%
    \$xlist, \$ylist, \$command, \$depvar, \$model, \$system, \$sysinfo},%
  morekeywords=[3]{ % functions
    BFGScmax, BFGSmax, GSSmax, I, NMmax, NRmax, abs, acos, acosh,%
    aggregate, argname, array, asin, asinh, atan, atanh, atof, bessel,%
    bkfilt, bootci, bootpval, boxcox, bread, bwfilt, bwrite, cdemean, cdf,%
    cdiv, cdummify, ceil, cholesky, chowlin, cmult, cnameget, cnameset,%
    cnorm, cnumber, cols, corr, corrgm, cos, cosh, cov, critical, cum,%
    curl, dayspan, defarray, defbundle, deflist, deseas, det, diag,%
    diagcat, diff, digamma, dnorm, dropcoll, dsort, dummify, easterday,%
    ecdf, eigengen, eigensym, eigsolve, epochday, errmsg, exists, exp,%
    fcstats, fdjac, feval, fevd, fft, ffti, filter, firstobs, fixname,%
    floor, fracdiff, fraclag, freq, gammafun, genseries, getenv, getinfo,%
    getkeys, getline, ghk, gini, ginv, grab, halton, hdprod, hfdiff,%
    hflags, hfldiff, hflist, hpfilt, imaxc, imaxr, imhof, iminc, iminr,%
    inbundle, infnorm, inlist, instring, int, inv, invcdf, invmills, invpd,%
    irf, irr, isconst, isdiscrete, isdummy, isnan, isoconv, isodate,%
    iwishart, jsonget, jsongetb, juldate, kdensity, kdsmooth, kfilter,%
    kmeier, kpsscrit, ksetup, ksimdata, ksimul, ksmooth, kurtosis, lags,%
    lastobs, ldet, ldiff, lincomb, linearize, ljungbox, lngamma, loess,%
    log, log10, log2, logistic, lower, lrcovar, lrvar, max, maxc, maxr,%
    mcorr, mcov, mcovg, mean, meanc, meanr, median, mexp, mgradient, min,%
    minc, minr, missing, misszero, mlag, mlincomb, mnormal, mols, monthlen,%
    movavg, mpiallred, mpibcast, mpirecv, mpireduce, mpiscatter, mpisend,%
    mpols, mrandgen, mread, mreverse, mrls, mshape, msortby, muniform,%
    mweights, mwrite, mxtab, naalen, nadarwat, nelem, ngetenv, nlines,%
    nobs, normal, normtest, npcorr, npv, nullspace, numhess, obslabel,%
    obsnum, ok, onenorm, ones, orthdev, pdf, pergm, pexpand, pmax, pmean,%
    pmin, pnobs, polroots, polyfit, princomp, printf, prodc, prodr, psd,%
    psdroot, pshrink, psum, pvalue, pxnobs, pxsum, qform, qlrpval, qnorm,%
    qrdecomp, quadtable, quantile, randgen, randgen1, randint, rank,%
    ranking, rcond, readfile, regsub, remove, replace, resample, rnameget,%
    rnameset, round, rows, sd, sdc, sdiff, seasonals, selifc, selifr, seq,%
    setnote, simann, sin, sinh, skewness, sleep, smplspan, sort, sortby,%
    sprintf, sqrt, square, sscanf, sst, stringify, strlen, strncmp,%
    strsplit, strstr, strstrip, strsub, strvals, substr, sum, sumall, sumc,%
    sumr, svd, svm, tan, tanh, toepsolv, tolower, toupper, tr, transp,%
    trimr, typeof, typestr, uniform, uniq, unvech, upper, urcpval, values,%
    var, varname, varnames, varnum, varsimul, vec, vech, weekday, wmean,%
    wsd, wvar, xmax, xmin, xmlget, zeromiss, zeros, NMmin, GSSmin,%
    BFGScmin, BFGSmin },%
  morekeywords=[4]{ % genr aliases:
    null, series, scalar, matrix, string, list, bundle, strings, matrices,%
    bundles, lists%
  },%
  sensitive=t,%
  morecomment=[l]{\#},%
  morecomment=[s]{/*}{*/},%
  morestring=[b]{"}%
}%
\lstalias{gretl}{hansl}
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% \begingroup%
% The developers of the hansl support also supplied a definition of a style
% for printing hansl code:
%    \begin{macrocode}
%<*hansl-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage[rgb, x11names]{xcolor}

% settings for black and white
\lstdefinestyle{hanslbw}{%
  keywordstyle = \bfseries,
  keywordstyle = [2]\bfseries,
  keywordstyle = [3]\itshape,
  keywordstyle = [4]\underbar,
  commentstyle = \ttfamily,
  stringstyle = \ttfamily
}
% settings for colored printing
\lstdefinestyle{hanslcolor}{%
  basicstyle = \small\ttfamily,
  keywordstyle = \color{red},
  keywordstyle = [2]\color{green},
  keywordstyle = [3]\color{cyan},
  keywordstyle = [4]\color{olive},
  commentstyle = \color{blue}\rmfamily,	%
  stringstyle = \color{magenta},
  moredelim	= [l][\color{green}]{--}
}%
%    \end{macrocode}
% This code is provided in the file |listings-hansl.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</hansl-prf>
%    \end{macrocode}
% \endgroup
%
% \subsection{Haskell}
%
% Thanks to \lstthanks{Peter~Bartke}{bartke@inf.fu-berlin.de}{1999/11/18} for
% providing the new definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Haskell98 as implemented in Hugs98. See http://www.haskell.org
%% All keywords from Prelude and Standard Libraries
%% (c) 1999 Peter Bartke
%%
\lst@definelanguage{Haskell}%
  {otherkeywords={=>},%
   morekeywords={abstype,if,then,else,case,class,data,default,deriving,%
      hiding,if,in,infix,infixl,infixr,import,instance,let,module,%
      newtype,of,qualified,type,where,do,AbsoluteSeek,AppendMode,%
      Array,BlockBuffering,Bool,BufferMode,Char,Complex,Double,Either,%
      FilePath,Float,Int,Integer,IO,IOError,Ix,LineBuffering,Maybe,%
      Ordering,NoBuffering,ReadMode,ReadWriteMode,ReadS,RelativeSeek,%
      SeekFromEnd,SeekMode,ShowS,StdGen,String,Void,Bounded,Enum,Eq,%
      Eval,ExitCode,exitFailure,exitSuccess,Floating,Fractional,%
      Functor,Handle,HandlePosn,IOMode,Integral,List,Monad,MonadPlus,%
      MonadZero,Num,Numeric,Ord,Random,RandomGen,Ratio,Rational,Read,%
      Real,RealFloat,RealFrac,Show,System,Prelude,EQ,False,GT,Just,%
      Left,LT,Nothing,Right,WriteMode,True,abs,accum,accumArray,%
      accumulate,acos,acosh,all,and,any,ap,appendFile,applyM,%
      approxRational,array,asTypeOf,asin,asinh,assocs,atan,atan2,atanh,%
      bounds,bracket,bracket_,break,catch,catMaybes,ceiling,chr,cis,%
      compare,concat,concatMap,conjugate,const,cos,cosh,curry,cycle,%
      decodeFloat,delete,deleteBy,deleteFirstsBy,denominator,%
      digitToInt,div,divMod,drop,dropWhile,either,elem,elems,elemIndex,%
      elemIndices,encodeFloat,enumFrom,enumFromThen,enumFromThenTo,%
      enumFromTo,error,even,exitFailure,exitWith,exp,exponent,fail,%
      filter,filterM,find,findIndex,findIndices,flip,floatDigits,%
      floatRadix,floatRange,floatToDigits,floor,foldl,foldM,foldl1,%
      foldr,foldr1,fromDouble,fromEnum,fromInt,fromInteger,%
      fromIntegral,fromJust,fromMaybe,fromRat,fromRational,%
      fromRealFrac,fst,gcd,genericLength,genericTake,genericDrop,%
      genericSplitAt,genericIndex,genericReplicate,getArgs,getChar,%
      getContents,getEnv,getLine,getProgName,getStdGen,getStdRandom,%
      group,groupBy,guard,hClose,hFileSize,hFlush,hGetBuffering,%
      hGetChar,hGetContents,hGetLine,hGetPosn,hIsClosed,hIsEOF,hIsOpen,%
      hIsReadable,hIsSeekable,hIsWritable,hLookAhead,hPutChar,hPutStr,%
      hPutStrLn,hPrint,hReady,hSeek,hSetBuffering,hSetPosn,head,%
      hugsIsEOF,hugsHIsEOF,hugsIsSearchErr,hugsIsNameErr,%
      hugsIsWriteErr,id,ioError,imagPart,index,indices,init,inits,%
      inRange,insert,insertBy,interact,intersect,intersectBy,%
      intersperse,intToDigit,ioeGetErrorString,ioeGetFileName,%
      ioeGetHandle,isAlreadyExistsError,isAlreadyInUseError,isAlpha,%
      isAlphaNum,isAscii,isControl,isDenormalized,isDoesNotExistError,%
      isDigit,isEOF,isEOFError,isFullError,isHexDigit,isIEEE,%
      isIllegalOperation,isInfinite,isJust,isLower,isNaN,%
      isNegativeZero,isNothing,isOctDigit,isPermissionError,isPrefixOf,%
      isPrint,isSpace,isSuffixOf,isUpper,isUserError,iterate,ixmap,%
      join,last,lcm,length,lex,lexDigits,lexLitChar,liftM,liftM2,%
      liftM3,liftM4,liftM5,lines,listArray,listToMaybe,log,logBase,%
      lookup,magnitude,makePolar,map,mapAccumL,mapAccumR,mapAndUnzipM,%
      mapM,mapM_,mapMaybe,max,maxBound,maximum,maximumBy,maybe,%
      maybeToList,min,minBound,minimum,minimumBy,mkPolar,mkStdGen,%
      mplus,mod,msum,mzero,negate,next,newStdGen,not,notElem,nub,nubBy,%
      null,numerator,odd,openFile,or,ord,otherwise,partition,phase,pi,%
      polar,pred,print,product,properFraction,putChar,putStr,putStrLn,%
      quot,quotRem,random,randomIO,randomR,randomRIO,randomRs,randoms,%
      rangeSize,read,readDec,readFile,readFloat,readHex,readInt,readIO,%
      readList,readLitChar,readLn,readParen,readOct,readSigned,reads,%
      readsPrec,realPart,realToFrac,recip,rem,repeat,replicate,return,%
      reverse,round,scaleFloat,scanl,scanl1,scanr,scanr1,seq,sequence,%
      sequence_,setStdGen,show,showChar,showEFloat,showFFloat,%
      showFloat,showGFloat,showInt,showList,showLitChar,showParen,%
      showSigned,showString,shows,showsPrec,significand,signum,sin,%
      sinh,snd,sort,sortBy,span,split,splitAt,sqrt,stderr,stdin,stdout,%
      strict,subtract,succ,sum,system,tail,tails,take,takeWhile,tan,%
      tanh,toEnum,toInt,toInteger,toLower,toRational,toUpper,transpose,%
      truncate,try,uncurry,undefined,unfoldr,union,unionBy,unless,%
      unlines,until,unwords,unzip,unzip3,unzip4,unzip5,unzip6,unzip7,%
      userError,when,words,writeFile,zero,zip,zip3,zip4,zip5,zip6,zip7,%
      zipWith,zipWithM,zipWithM_,zipWith3,zipWith4,zipWith5,zipWith6,%
      zipWith7},%
   sensitive,%
   morecomment=[l]--,%
   morecomment=[n]{\{-}{-\}},%
   morestring=[b]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{HTML}
%
% I'm quite the opposite of a HTML wizard. In particular this is true for the
% defined keywords. \lstthanks{Matthias~Bethke}{-}{2003/09/01} helped me out
% and extended the list.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{HTML}%
  {morekeywords={A,ABBR,ACRONYM,ADDRESS,APPLET,AREA,B,BASE,BASEFONT,%
      BDO,BIG,BLOCKQUOTE,BODY,BR,BUTTON,CAPTION,CENTER,CITE,CODE,COL,%
      COLGROUP,DD,DEL,DFN,DIR,DIV,DL,DOCTYPE,DT,EM,FIELDSET,FONT,FORM,%
      FRAME,FRAMESET,HEAD,HR,H1,H2,H3,H4,H5,H6,HTML,I,IFRAME,IMG,INPUT,%
      INS,ISINDEX,KBD,LABEL,LEGEND,LH,LI,LINK,LISTING,MAP,META,MENU,%
      NOFRAMES,NOSCRIPT,OBJECT,OPTGROUP,OPTION,P,PARAM,PLAINTEXT,PRE,%
      OL,Q,S,SAMP,SCRIPT,SELECT,SMALL,SPAN,STRIKE,STRING,STRONG,STYLE,%
      SUB,SUP,TABLE,TBODY,TD,TEXTAREA,TFOOT,TH,THEAD,TITLE,TR,TT,U,UL,%
      VAR,XMP,%
      accesskey,action,align,alink,alt,archive,axis,background,bgcolor,%
      border,cellpadding,cellspacing,charset,checked,cite,class,classid,%
      code,codebase,codetype,color,cols,colspan,content,coords,data,%
      datetime,defer,disabled,dir,event,error,for,frameborder,headers,%
      height,href,hreflang,hspace,http-equiv,id,ismap,label,lang,link,%
      longdesc,marginwidth,marginheight,maxlength,media,method,multiple,%
      name,nohref,noresize,noshade,nowrap,onblur,onchange,onclick,%
      ondblclick,onfocus,onkeydown,onkeypress,onkeyup,onload,onmousedown,%
      profile,readonly,onmousemove,onmouseout,onmouseover,onmouseup,%
      onselect,onunload,rel,rev,rows,rowspan,scheme,scope,scrolling,%
      selected,shape,size,src,standby,style,tabindex,text,title,type,%
      units,usemap,valign,value,valuetype,vlink,vspace,width,xmlns},%
   tag=**[s]<>,%
   sensitive=f,%
   morestring=[d]",% ??? doubled
%    \end{macrocode}
% Now we take care of comments.
% We don't enter comment mode if we aren't inside |<>|.
%    \begin{macrocode}
   MoreSelectCharTable=%
      \lst@CArgX--\relax\lst@DefDelimB{}{}%
          {\ifnum\lst@mode=\lst@tagmode\else
               \expandafter\@gobblethree
           \fi}%
          \lst@BeginComment\lst@commentmode{{\lst@commentstyle}}%
      \lst@CArgX--\relax\lst@DefDelimE{}{}{}%
          \lst@EndComment\lst@commentmode
  }[keywords,comments,strings,html]%
%    \end{macrocode}
% \lsthelper{Peter~Biechele}{peter.biechele@physik.uni-freiburg.de}
% {1999/07/01}{! Missing
% $\}$ inserted} reported a problem which was due to missing |\@empty| in
% value of |SelectCharTable|. And after receiving a bug report from
% \lsthelper{Jochen Schneider}{jschneider@ds3.etech.haw-hamburg.de}
% {2002/04/05}{use of \lst@thestyle doesn't match its definition} I
% converted the version 0.21 contents of |MoreSelectCharTable| to version
% 1.0.
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{IDL}
%
% The definition is from \lstthanks{J\"urgen~Heim}
% {heim@astro.uni-tuebingen.de}{1998/07/27}.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% IDL definition (c) 1998 Juergen Heim
%%
\lst@definelanguage{IDL}%
  {morekeywords={and,begin,case,common,do,else,end,endcase,endelse,%
      endfor,endif,endrep,endwhile,eq,for,function,ge,goto,gt,if,le,lt,%
      mod,ne,not,of,on_ioerror,or,pro,repeat,return,then,until,while,%
      xor,on_error,openw,openr,openu,print,printf,printu,plot,read,%
      readf,readu,writeu,stop},%
   sensitive=f,%
   morecomment=[l];,%
   morestring=[d]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Inform}
%
% Thanks to \lstthanks{Jonathan~Sauer}{jonathan.sauer@gmx.de}{2003/11/10}
% for this language definition. \lsthelper{Ulrike Fischer}{-}{2004/04/21}
% {Bug in listings.sty} pointed out that |\lstdefinelanguage| should be
% |\lst@definelanguage|.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Inform definition (c) 2003 Jonathan Sauer
%%
\lst@definelanguage{Inform}{%
  % Language keywords
  morekeywords={breakdo,else,false,for,has,hasnt,if,%
    in,indirect,jump,notin,nothing,NULL,objectloop,ofclass,%
    private,property,provides,return,rfalse,rtrue,self,string,%
    switch,to,true,until,while,with,%
    creature,held,multiexcept,multiheld,multiinside,noun,number,%
    scope,topic},%
  %
  % Inform functions
  morekeywords=[2]{box,child,children,font,give,inversion,metaclass,move,%
    new_line,parent,print,print_ret,read,remove,restore,sibling,%
    save,spaces,quit,style,bold,underline,reverse,roman remaining,%
    create,destroy,recreate,copy},%
  %
  % Inform definitions
  morekeywords=[3]{Attribute,Array,Class,Constant,Default,End,Endif,Extend,%
    Global,Ifdef,Iffalse,Ifndef,Ifnot,Iftrue,Include,Object,%
    Property,Verb,Release,Serial,Statusline},%
  %
  % Library attributes
  morekeywords=[4]{absent,animate,clothing,concealed,container,door,edible,%
    enterable,female,general,light,lockable locked,male,moved,%
    neuter,on,open,openable,pluralname,proper,scenery,scored,%
    static,supporter,switchable,talkable,transparent,visited,%
    workflag,worn},%
  %
  % Library properties
  morekeywords=[5]{n_to,s_to,e_to,w_to,ne_to,nw_to,se_to,sw_to,in_to,%
    out_to,u_to,d_to,add_to_scope,after,article,articles,before,%
    cant_go,capacity,daemon,describe,description,door_dir,door_to,%
    each_turn,found_in,grammar,initial,inside_description,invent,%
    life,list_together,name number,orders,parse_name,plural,%
    react_after,react_before,short_name,short_name_indef,time_left,%
    time_out,when_closed,when_open,when_on,when_off,%
    with_key},%
  %
  % Library routines
  morekeywords=[6]{Achieved,AfterRoutines,AllowPushDir,Banner,ChangePlayer,%
    CommonAncestor,DictionaryLookup,GetGNAOfObject,HasLightSource,%
    IndirectlyContains,IsSeeThrough,Locale,LoopOverScope,LTI_Insert,%
    MoveFloatingObjects,NextWord,NextWordStopped,NounDomain,%
    ObjectIsUntouchable OffersLight,ParseToken,PlaceInScope,PlayerTo,%
    PronounNotice,PronounValue,ScopeWithin,SetPronoun,SetTime,%
    StartDaemon,StartTimer,StopDaemon,StopTimer,TestScope,TryNumber,%
    UnsignedCompare,WordAddress,WordInProperty,WordLength,%
    WriteListFrom,YesOrNo},%
  %
  % Library,entry points
  morekeywords=[7]{AfterLife,AfterPrompt,Amusing,BeforeParsing,ChooseObjects,%
    DarkToDark,DeathMessage,GamePostRoutine GamePreRoutine,%
    Initialise,InScope,LookRoutine,NewRoom,ParseNoun,ParseNumber,%
    ParserError,PrintRank,PrintTaskName,PrintVerb,TimePasses,%
    UnknownVerb},%
  %
  % Library constants
  morekeywords=[8]{NEWLINE_BIT,INDENT_BIT,FULLINV_BIT,ENGLISH_BIT,%
    RECURSE_BIT,ALWAYS_BIT,TERSE_BIT,PARTINV_BIT,DEFART_BIT,%
    WORKFLAG_BIT,ISARE_BIT,CONCEAL_BIT},%
  %
  % Library,meta actions
  morekeywords=[9]{Pronouns,Quit,Restart,Restore,Save,Verify,ScriptOn,%
    ScriptOff,NotifyOn,NotifyOff,Places,Objects,Score,FullScore,Version,%
    LMode1,LMode2,LMode3},%
  %
  % Library,main actions
  morekeywords=[10]{Close,Disrobe,Drop,Eat,Empty,EmptyT,Enter,Examine,%
    Exit,GetOff,Give,Go,GoIn,Insert,Inv,InvTall,InvWide,Lock,Look,Open,%
    PutOn,Remove,Search,Show,SwitchOff,SwitchOn,Take,Transfer,%
    Unlock VagueGo, Wear},%
  %
  % Library,stub actions
  morekeywords=[11]{Answer,Ask,AskFor,Attack,Blow,Burn,Buy,Climb,%
    Consult,Cut,Dig,Drink,Fill,Jump,JumpOver,Kiss,Listen,LookUnder,%
    Mild,No,Pray,Pull,Push,PushDir,Rub,Set,SetTo,Sing,Sleep,Smell,%
    Sleep,Smell,Sorry,Squeeze,Strong,Swim,Swing,Taste,Tell,Think,%
    ThrowAt,Tie,Touch,Turn,
    Wait,Wake,WakeOther,Wave,WaveHands,Yes},%
  %
  otherkeywords={->,-->},%
  sensitive=false,%
  morestring=[d]{"},%
  morecomment=[l]{!}%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Java and other JVM based languages}
%
% \lstthanks{Robert~Wenner}{robert.wenner@gmx.de}{2003/03/27} sent in the
% first of the following two definitions.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% AspectJ definition (c) Robert Wenner
%%
\lst@definelanguage[AspectJ]{Java}[]{Java}%
  {morekeywords={%
      adviceexecution,after,args,around,aspect,aspectOf,before,%
      call,cflow,cflowbelow,%
% declare error,declare parents,declare precedence,
% declare soft,declare warning,
      execution,get,handler,if,initialization,issingleton,pointcut,%
      percflow,percflowbelow,perthis,pertarget,preinitialization,%
      privileged,proceed,returning,set,staticinitialization,strictfp,%
      target,this,thisEnclosingJoinPoint,thisJoinPoint,throwing,%
      within,withincode},%
   MoreSelectCharTable=%
     \lst@DefSaveDef{`.}\lst@umdot{\lst@umdot\global\let\lst@derefop\@empty}%
     \ifx\lst@derefinstalled\@empty\else
        \global\let\lst@derefinstalled\@empty
\lst@AddToHook{Output}%
{\lst@ifkeywords
    \ifx\lst@derefop\@empty
       \global\let\lst@derefop\relax
       \ifx\lst@thestyle\lst@gkeywords@sty
          \ifx\lst@currstyle\relax
             \let\lst@thestyle\lst@identifierstyle
          \else
             \let\lst@thestyle\lst@currstyle
          \fi
       \fi
    \fi
 \fi}
\lst@AddToHook{BOL}{\global\let\lst@derefop\relax}%
\lst@AddTo\lst@ProcessSpace{\global\let\lst@derefop\relax}%
     \fi
  }%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
% Got data from \texttt{http://java.sun.com}.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Java}%
  {morekeywords={abstract,boolean,break,byte,case,catch,char,class,%
      const,continue,default,do,double,else,extends,false,final,%
      finally,float,for,goto,if,implements,import,instanceof,int,%
      interface,label,long,native,new,null,package,private,protected,%
      public,return,short,static,super,switch,synchronized,this,throw,%
      throws,transient,true,try,void,volatile,while},%
   sensitive,%
   morecomment=[l]//,%
   morecomment=[s]{/*}{*/},%
   morestring=[b]",%
   morestring=[b]',%
  }[keywords,comments,strings]
%    \end{macrocode}
% \lsthelper{Herbert Voss}{Herbert.Voss@alumni.TU-Berlin.de}{2002/07/30}
% {missing keyword label} added the keyword \texttt{label}.
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsubsection[JVMIS---Java bytecode instructions]{JVMIS---The Java bytecode instructions}
%
% \lstthanks{Martine~Gautier}{Martine.Gautier@loria.fr}{2004/03/30} made the
% following contribution.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% ByteCodeJava definition (c) 2004 Martine Gautier
%%
\lst@definelanguage{JVMIS}%
  {morekeywords={aaload,astore,aconst_null,aload,aload_0,aload_1,%
      aload_2,aload_3,anewarray,areturn,arraylength,astore,astore_0,%
      astore_1,astore_2,astore_3,athrow,baload,bastore,bipush,caload,%
      castore,checkcast,d2f,d2i,d2l,dadd,daload,dastore,dcmpg,dcmpl,%
      dconst_0,dconst_1,ddiv,dload,dload_0,dload_1,dload_2,dload_3,%
      dmul,dneg,drem,dreturn,dstore,dstore_0,dstore_1,dstore_2,%
      dstore_3,dsub,dup,dup_x1,dup_x2,dup2,dup2_x1,dup2_x2,f2d,%
      f2i,f2l,fadd,faload,fastore,fcmpg,fcmpl,fconst_0,fconst_1,%
      fconst_2,fdiv,fload,fload_0,fload_1,fload_2,fload_3,fmul,%
      fneg,frem,freturn,fstore,fstore_0,fstore_1,fstore_2,fstore_3,%
      fsub,getfield,getstatic,goto,goto_w,i2b,i2c,i2d,i2f,i2l,i2s,%
      iadd,iaload,iand,iastore,iconst_0,iconst_1,iconst_2,iconst_3,%
      iconst_4,iconst_5,idiv,if_acmpeq,if_acmpne,if_icmpeq,if_icmpne,%
      if_icmplt,if_cmpge,if_cmpgt,if_cmple,ifeq,ifne,iflt,ifge,ifgt,%
      ifle,ifnonnull,ifnull,iinc,iload,iload_0,iload_1,iload_2,%
      iload_3,imul,ineg,instanceof,invokeinterface,invokespecial,%
      invokestatic,invokevirtual,ior,irem,ireturn,ishl,ishr,istore,%
      istore_0,istore_1,istore_2,istore_3,isub,iushr,ixor,jsr,jsr_w,%
      l2d,l2f,l2i,ladd,laload,land,lastore,lcmp,lconst_0,lconst_1,%
      ldc,ldc_w,ldc2_w,ldiv,lload,lload_0,lload_1,lload_2,lload_3,%
      lmul,lneg,lookupswitch,lor,lrem,lreturn,lshl,lshr,lstore,%
      lstore_0,lstore_1,lstore_2,lstore_3,lsub,lushr,lxor,%
      monitorenter,monitorexit,multianewarray,new,newarray,nop,pop,%
      pop2,putfield,putstatic,ret,return,saload,sastore,sipush,swap,%
      tableswitch,wide,limit,locals,stack},%
  }[keywords]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsubsection{Scala}
%
% \lstthanks{Bastian Germann}{bastian.germann@nordakademie.de}{2013/10/19}
% asked to include the Scala definition provided by Frank Teubler
% (2009). Here it is---the definition has got a small overhaul according to
% the Scala syntax published for version 2.13
% (\url{https://scala-lang.org/files/archive/spec/2.13/spec.pdf}):
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Scala}{%
  morekeywords={abstract,case,catch,class,def,%
    do,else,extends,false,final,finally,%
    for,forSome,if,implicit,import,lazy,macro,match,%
    mixin,new,null,object,override,package,%
    private,protected,requires,return,sealed,%
    super,this,trait,true,try,%
    type,val,var,while,with,yield},%+
  otherkeywords={_, :, =, =>, <-, <\%, <:, >:, \#, @},%
  sensitive,%
  morecomment=[l]//,%
  morecomment=[n]{/*}{*/},%
  morestring=[b]",%
  morestring=[b]',%
  morestring=[b]""",%
}[keywords,comments,strings]
%    \end{macrocode}
% Remark: This definition contains the keywords |mixin| and |requires|,
% which don't belong to the official Scala 2.13 language definition, the
% keywords |forSome|, |macro|, and |throw|, which were missing in listings
% prior than v1.10a, are added silently. The Unicode operators |\u21D2| and
% |\u2190|, which have the ASCII equivalents |=>| and |<-|,  are also
% reserved but cannot be used with PDF\TeX.
%
% \lstthanks{Deloo}{lucadelu97@gmail.com}{2024-03-02} asked for Scala 3.0
% support. The following code according to
% \url{https://docs.scala-lang.org/scala3/reference/syntax.html} is a
% simple approach, \textsf{listings} cannot correctly support soft
% keywords, because they are context dependent.
%    \begin{macrocode}
\lst@definelanguage[3.0]{Scala}[]{Scala}{%
  morekeywords={as, derives, end, enum, export, extension, given},
  morekeywords=[2]{infix, inline, opaque, open, transparent}
  otherkeywords={=>>, ?=>, =>}, % =>> isn't recognized, even after
                                % the keyword => is deleted
  alsoletter={*, +, -, |},
  deletekeywords={<\%, _, forSome, macro, mixin, requires, this},
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{ksh}
%
% Thanks to \lstthanks{Jeffrey Ratcliffe}{Jeffrey.Ratcliffe@m.eads.net}
% {2002/02/21} for this language definition.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \lsthelper{Herbert Voss}{Herbert.Voss@alumni.TU-Berlin.de}{2002/10/28}
% {[Fwd: Re: Probleme mit Paket listings bei ksh]} suggested to add the
% string delimiter |`|.
% \endgroup
%
%
% \subsection{Lingo}
%
% Thanks to \lstthanks{Mark Schade}{-}{2006/07/26} for this language
% definition.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Lingo}{%
  morekeywords={abort, after, and, before, do, down, halt, me, new, not,%
    of, on, or, otherwise, pass, put, result, return, set, tell, the, then,%
    to, with, repeat, while, case, if, else, true, false, global, property,%
    \_global, \_key, \_mouse, \_movie, \_player, \_sound, \_system, abbr,%
    abbrev, abbreviated, abs, actionsenabled, activateapplication,%
    activatewindow, active3drenderer, activecastlib, activewindow,%
    actorlist, add, addat, addbackdrop, addcamera, addchild, addmodifier,%
    addoverlay, addprop, addtoworld, addvertex, alert, alerthook,%
    alignment, allowcustomcaching, allowgraphicmenu, allowsavelocal,%
    allowtransportcontrol, allowvolumecontrol, allowzooming,%
    alphathreshold, ambient, ambientcolor, ancestor, angle, anglebetween,%
    animationenabled, antialias, antialiasthreshold, append,%
    applicationname, applicationpath, appminimize, atan, attenuation,%
    attributevalue, auto, autoblend, automask, autotab, axisangle, back,%
    backcolor, backdrop, backgroundcolor, backspace, beep, beepon,%
    beginrecording, beginsprite, beveldepth, beveltype, bgcolor, bias,%
    bitand, bitmap, bitmapsizes, bitnot, bitor, bitrate, bitspersample,%
    bitxor, blend, blendconstant, blendconstantlist, blendfactor,%
    blendfunction, blendfunctionlist, blendlevel, blendrange, blendsource,%
    blendsourcelist, blendtime, bone, bonesplayer, border, both, bottom,%
    bottomcap, bottomradius, bottomspacing, boundary, boundingsphere, box,%
    boxdropshadow, boxtype, breakconnection, breakloop, brightness,%
    broadcastprops, browsername, buffersize, build, buttonsenabled,%
    buttonstyle, buttontype, bytesstreamed, boolean, cachedocverify,%
    cachesize, call, callancestor, camera, cameracount, cameraposition,%
    camerarotation, cancelidleload, castlib, castlibnum, castmemberlist,%
    center, centerregpoint, centerstage, changearea, channelcount, char,%
    characterset, charpostoloc, chars, charspacing, chartonum,%
    checkboxaccess, checkboxtype, checkmark, checknetmessages, child,%
    chunksize, clearatrender, clearcache, clearerror, clearframe,%
    clearglobals, clearvalue, clickloc, clickmode, clickon, clone,%
    clonedeep, clonemodelfromcastmember, clonemotionfromcastmember, close,%
    closed, closewindow, closexlib, collision, collisiondata,%
    collisionnormal, color, world, colorbuffer, colorbufferdepth,%
    colordepth, colorlist, colorrange, colors, colorsteps, commanddown,%
    comments, compressed, connecttonetserver, constrainh, constraint,%
    constrainv, continue, controldown, controller, copypixels,%
    copyrightinfo, copyto, copytoclipboard, cos, count, cpuhogticks,%
    creaseangle, creases, [contains], createfolder, createmask,%
    creatematte, creationdate, creator, crop, cross, crossproduct,%
    cuepassed, cuepointnames, cuepointtimes, currentloopstate,%
    currentspritenum, currenttime, cursor, cursorsize, curve, cylinder,%
    ate, day, deactivateapplication, deactivatewindow, debug,%
    debugplaybackenabled, decaymode, defaultrect, defaultrectmode, delay,%
    delete, deleteall, deleteat, deletecamera, deletefolder, deleteframe,%
    deletegroup, deletelight, deletemodel, deletemodelresource,%
    deletemotion, deleteone, deleteprop, deleteshader, deletetexture,%
    deletevertex, density, depth, depthbufferdepth, desktoprectlist,%
    diffuse, diffusecolor, diffuselightmap, digitalvideotimescale,%
    digitalvideotype, direction, directionalcolor, directionalpreset,%
    directtostage, disableimagingtransformation, displayface, displaymode,%
    distanceto, distribution, dither, done, doneparsing, dot, dotproduct,%
    doubleclick, downloadnetthing, drag, draw, drawrect, dropshadow,%
    duplicate, duplicateframe, duration, editable, editshortcutsenabled,%
    elapsedtime, emissive, emitter, empty, emulatemultibuttonmouse,%
    enabled, enablehotspot, end, endangle, endcolor, endframe,%
    endrecording, endsprite, endtime, enter, enterframe, environment,%
    erase, error, eventpassmode, exchange, exists, exit, exitframe,%
    exitlock, exp, externalevent, externalparamcount, externalparamname,%
    externalparamvalue, extractalpha, extrude3d, face, fadein, fadeout,%
    fadeto, far, field, fieldofview, filename, fill, fillcolor, fillcycles,%
    filldirection, filled, fillmode, filloffset, fillscale, findempty,%
    findlabel, findpos, findposnear, finishidleload, firstindent,%
    fixedlinespace, fixedrate, fixstagesize, flashrect, flashtostage, flat,%
    fliph, flipv, float, floatp, floatprecision, flush, flushinputevents,%
    fog, folderchar, font, fontsize, fontstyle, forecolor, forget, frame,%
    framecount, framelabel, framepalette, framerate, frameready,%
    framescript, framesound1, framesound2, framestohms, frametempo,%
    frametransition, freeblock, freebytes, fromcastmember, fromimageobject,%
    front, frontwindow, generatenormals, getaprop, getat,%
    getbehaviordescription, getbehaviortooltip, getboneid, geterror,%
    geterrorstring, gethardwareinfo, gethotspotrect, getlast,%
    getlatestnetid, getnetaddresscookie, getneterrorstring, getnetmessage,%
    getnetoutgoingbytes, getnettext, getnormalized, getnthfilenameinfolder,%
    getnumberwaitingnetmessages, getone, getpeerconnectionlist, getpixel,%
    getplaylist, getpos, getpref, getprop, getpropat,%
    getpropertydescriptionlist, getrendererservices, getstreamstatus,%
    gettemppath, getworldtransform, globals, glossmap, go, gotoframe,%
    gotonetmovie, gotonetpage, gradienttype, gravity, group, handler,%
    handlers, height, heightvertices, high, highlightpercentage,%
    highlightstrength, hilite, hither, hittest, hmstoframes, hold, hotspot,%
    html, hyperlink, hyperlinkclicked, hyperlinkrange, hyperlinks,%
    hyperlinkstate, id3tags, identity, idle, idlehandlerperiod,%
    idleloaddone, idleloadmode, idleloadperiod, idleloadtag,%
    idlereadchunksize, ilk, image, imagecompression, imageenabled,%
    imagequality, immovable, importfileinto, inflate, ink, inker,%
    inlineimeenabled, insertbackdrop, insertframe, insertoverlay, inside,%
    installmenu, instance, integer, integerp, interface, interpolate,%
    interpolateto, intersect, index, interval, inverse, invert, invertmask,%
    isbusy, isinworld, isoktoattach, ispastcuepoint, item, itemdelimiter,%
    kerning, kerningthreshold, key, keyboardfocussprite, keycode, keydown,%
    keydownscript, keyframeplayer, keypressed, keyup, keyupscript, label,%
    labellist, last, lastchannel, lastclick, lastevent, lastframe, lastkey,%
    lastroll, left, leftindent, length, lengthvertices, level, lifetime,%
    light, line, linearlist, linecolor, linecount, linedirection,%
    lineheight, lineoffset, linepostolocv, linesize, linkas, linked, list,%
    listp, loaded, loadfile, loc, loch, locked, locktranslation,%
    loctocharpos, locv, locvtolinepos, locz, lod, log, long, loop,%
    loopcount, loopendtime, loopsremaining, loopstarttime, machinetype,%
    magnitude, map, mapImageToStage, mapmembertostage, mapstagetomember,%
    margin, marker, markerlist, mask, max, maxinteger, maxspeed, mci,%
    media, mediaready, member, membernum, members, memorysize, menu, mesh,%
    meshdeform, milliseconds, min, minspeed, modal, mode, model, modela,%
    modelb, modelresource, modelsunderloc, modelsunderray, modelunderloc,%
    modified, modifiedby, modifieddate, modifier, modifiers, month,%
    mostrecentcuepoint, motion, mousechar, mousedown, mousedownscript,%
    mouseenter, mouseh, mouseitem, mouseleave, mouselevel, mouseline,%
    mouseloc, mousemember, mouseoverbutton, mouseup, mouseupoutside,%
    mouseupscript, mousev, mousewithin, mouseword, move, moveablesprite,%
    movetoback, movetofront, movevertex, movevertexhandle, movewindow,%
    movie, movieaboutinfo, moviecopyrightinfo, moviefilefreesize,%
    moviefilesize, moviefileversion, movieimagecompression,%
    movieimagequality, moviename, moviepath, movierate, movietime,%
    moviextralist, mpeglayer, multiply, multisound, name, near,%
    nearfiltering, neighbor, netabort, netdone, neterror, netlastmoddate,%
    netmime, netpresent, netstatus, nettextresult, netthrottleticks,%
    newcamera, newcurve, newgroup, newlight, newmesh, newmodel,%
    newmodelresource, newmotion, newshader, newtexture, next, none,%
    normalize, normallist, normals, nothing, notify, nudge, number,%
    numchannels, numparticles, numsegments, numtochar, objectp, offset,%
    open, openresfile, openwindow, openxlib, optiondown, organizationname,%
    originalfont, originh, originmode, originpoint, originv, orthoheight,%
    overlay, pageheight, palette, palettemapping, paletteref, paletteindex,%
    pan, paragraph, param, paramcount, parent, parsestring, particle,%
    pasteclipboardinto, path, pathname, pathstrength, pattern, pause,%
    pausedatstart, pausestate, percentplayed, percentstreamed, period,%
    perpendicularto, persistent, pi, picture, picturep, plane, platform,%
    play, playbackmode, playfile, playing, playlist, playnext, playrate,%
    point, pointat, pointatorientation, pointinhyperlink, pointofcontact,%
    pointtochar, pointtoitem, pointtoline, pointtoparagraph, pointtoword,%
    position, positionreset, posterframe, postnettext, power,%
    preferred3drenderer, preload, preloadbuffer, preloadeventabort,%
    preloadmember, preloadmode, preloadmovie, preloadnetthing, preloadram,%
    preloadtime, premultiply, prepareframe, preparemovie, prerotate,%
    prescale, pretranslate, previous, primitives, printfrom,%
    productversion, projection, projectionangle, propList, proxyserver,%
    pttohotspotid, puppet, puppetpalette, puppetsound, puppetsprite,%
    puppettempo, puppettransition, purgepriority, qtregisteraccesskey,%
    qtunregisteraccesskey, quad, quality, queue, quit, quote, radius,%
    ramneeded, random, randomseed, randomvector, rateshift, rawnew, read,%
    readvalue, recordfont, rect, ref, reflectionmap, reflectivity, region,%
    registerforevent, registerscript, regpoint, regpointvertex,%
    removebackdrop, removefromworld, removelast, removemodifier,%
    removeoverlay, rename, renderer, rendererdevicelist, renderformat,%
    renderstyle, resetworld, resizewindow, resolution, resolve, resolvea,%
    resolveb, resource, restart, resume, reverttoworlddefaults, rewind,%
    rgb, rgba4444, rgba5550, rgba5551, rgba5650, rgba8880, rgba8888, right,%
    rightindent, rightmousedown, rightmouseup, rollover, romanlingo,%
    rootlock, rootnode, rotate, rotation, rotationreset, rtf, runmode,%
    runpropertydialog, safeplayer, samplecount, samplerate, samplesize,%
    save, savedlocal, savemovie, scale, scalemode, score, scorecolor,%
    scoreselection, script, scriptexecutionstyle, scriptinstancelist,%
    scriptlist, scriptnum, scriptsenabled, scripttext, scripttype,%
    scrollbyline, scrollbypage, scrolltop, sds, searchcurrentfolder,%
    searchpath, searchpaths, seconds, selectedtext, selection, selend,%
    selstart, sendallsprites, sendevent, sendnetmessage, sendsprite,%
    serialnumber, setalpha, setaprop, setat, setcollisioncallback,%
    setflashproperty, setnetbufferlimits, setnetmessagehandler, setpixel,%
    setplaylist, setpref, setprop, setscriptlist, settrackenabled,%
    setvariable, shader, shaderlist, shadowpercentage, shadowstrength,%
    shapetype, shiftdown, shininess, shockwave3d, short, showglobals,%
    showlocals, showprops, showresfile, showxlib, shutdown, silhouettes,%
    sin, size, sizerange, skew, sleep, smoothness, sort, sound, soundbusy,%
    soundchannel, sounddevice, sounddevicelist, soundenabled,%
    soundkeepdevice, soundlevel, soundmixmedia, source, sourcerect, space,%
    specular, specularcolor, specularlightmap, sphere, spotangle,%
    spotdecay, sprite, spritenum, spritespacetoworldspace, sqrt, stage,%
    stagebottom, stagecolor, stageleft, stageright, stagetoflash, stagetop,%
    standard, startangle, startframe, startmovie, starttime, starttimer,%
    state, static, status, stepframe, stilldown, stop, stopevent,%
    stopmovie, stoptime, stream, streammode, streamname, streamsize,%
    streamstatus, string, stringp, strokecolor, strokewidth, style,%
    subdivision, sweep, swing, switchcolordepth, symbol, symbolp,%
    systemdate, tab, tabcount, tabs, tan, target, tellstreamstatus,%
    tension, text, texture, texturecoordinatelist, texturecoordinates,%
    texturelayer, texturelist, texturemember, texturemode, texturemodelist,%
    texturerenderformat, texturerepeat, texturerepeatlist,%
    texturetransform, texturetransformlist, texturetype, thumbnail, ticks,%
    tilt, time, timeout, timeouthandler, timeoutkeydown, timeoutlapsed,%
    timeoutlength, timeoutlist, timeoutmouse, timeoutplay, timeoutscript,%
    timer, timescale, title, titlevisible, toon, top, topcap, topradius,%
    topspacing, trace, traceload, tracelogfile, trackcount, trackenabled,%
    tracknextkeytime, tracknextsampletime, trackpreviouskeytime,%
    trackprevioussampletime, trackstarttime, trackstoptime, tracktext,%
    tracktype, trails, transform, transitiontype, translate,%
    triggercallback, trimwhitespace, tunneldepth, tweened, tweenmode, type,%
    [transparent], union, unload, unloadmember, unloadmovie,%
    unregisterallevents, update, updateframe, updatelock,%
    updatemovieenabled, updatestage, url, usealpha, usediffusewithtexture,%
    usefastquads, usehypertextstyles, uselineoffset, userdata, username,%
    value, vector, version, vertex, vertexlist, vertices, video,%
    videoforwindowspresent, viewh, viewpoint, viewscale, viewv, visibility,%
    visible, void, voidp, volume, volumeinfo, wait, waitfornetconnection,%
    warpmode, width, widthvertices, wind, window, windowlist,%
    windowpresent, windowtype, word, wordwrap, world, worldposition,%
    worldspacetospritespace, worldtransform, wraptransform,%
    wraptransformlist, write, writevalue, xaxis, xtra, xtralist, xtras,%
    yaxis, year, yon, zaxis, zoombox, zoomwindow, repeat, Conditional,%
    Boolean, TypeDef, Statement, Operator, String, Comment, Identifier,%
    Special, x, y, z},%
  sensitive=false,%
  morecomment=[l]{--},%
  morestring=[b]",%
}[keywords,comments,strings]
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Lisp, AutoLisp and Emacs Lisp (elisp)}
%
% Most data are from
% \begin{itemize}
% \item
%		\textsc{Guy Steele}:
%		\textbf{Common Lisp};
%		Copyright 1990 by Digital Equipment Corporation;
%		ISBN 1-55558-042-4.
% \end{itemize}
% Thanks to \lsthelper{Aslak Raanes}{araanes@ifi.ntnu.no}{1997/11/24}{single
% comment in Lisp} for the `single comment' delimiters. The keywords are the
% `one-word' functions and macros of Common Lisp, i.e.~words not containing a
% minus. But I left out the \texttt{caaaar}, \ldots{} functions.
% If anyone types them in, I'd like to get them. \lsthelper{Hilmar
% Preuße}{hille42@web.de}{2019/01/28}{sensitive is false} informed about an
% issue mentioned at \url{https://bugs.debian.org/499422}, the issue got
% corrected.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Lisp}%
  {morekeywords={abort,abs,acons,acos,acosh,adjoin,alphanumericp,alter,%
      append,apply,apropos,aref,arrayp,ash,asin,asinh,assoc,atan,atanh,%
      atom,bit,boole,boundp,break,butlast,byte,catenate,ceiling,cerror,%
      char,character,characterp,choose,chunk,cis,close,clrhash,coerce,%
      collect,commonp,compile,complement,complex,complexp,concatenate,%
      conjugate,cons,consp,constantp,continue,cos,cosh,cotruncate,%
      count,delete,denominator,describe,directory,disassemble,%
      documentation,dpb,dribble,ed,eighth,elt,enclose,endp,eq,eql,%
      equal,equalp,error,eval,evalhook,evenp,every,exp,expand,export,%
      expt,fboundp,fceiling,fdefinition,ffloor,fifth,fill,find,first,%
      float,floatp,floor,fmakunbound,format,fourth,fround,ftruncate,%
      funcall,functionp,gatherer,gcd,generator,gensym,gentemp,get,getf,%
      gethash,identity,imagpart,import,inspect,integerp,intern,%
      intersection,tively,isqrt,keywordp,last,latch,lcm,ldb,ldiff,%
      length,list,listen,listp,load,log,logand,logbitp,logcount,logeqv,%
      logior,lognand,lognor,lognot,logtest,logxor,macroexpand,%
      makunbound,map,mapc,mapcan,mapcar,mapcon,maphash,mapl,maplist,%
      mask,max,member,merge,min,mingle,minusp,mismatch,mod,namestring,%
      nbutlast,nconc,nintersection,ninth,not,notany,notevery,nreconc,%
      nreverse,nsublis,nsubst,nth,nthcdr,null,numberp,numerator,nunion,%
      oddp,open,packagep,pairlis,pathname,pathnamep,phase,plusp,%
      position,positions,pprint,previous,princ,print,proclaim,provide,%
      random,rassoc,rational,rationalize,rationalp,read,readtablep,%
      realp,realpart,reduce,rem,remhash,remove,remprop,replace,require,%
      rest,revappend,reverse,room,round,rplaca,rplacd,sbit,scan,schar,%
      search,second,series,set,seventh,shadow,signal,signum,sin,sinh,%
      sixth,sleep,some,sort,split,sqrt,streamp,string,stringp,sublis,%
      subseq,subseries,subsetp,subst,substitute,subtypep,svref,sxhash,%
      symbolp,tailp,tan,tanh,tenth,terpri,third,truename,truncate,%
      typep,unexport,unintern,union,until,values,vector,vectorp,warn,%
      write,zerop,and,assert,case,ccase,cond,ctypecase,decf,declaim,%
      defclass,defconstant,defgeneric,defmacro,defmethod,defpackage,%
      defparameter,defsetf,defstruct,deftype,defun,defvar,do,dolist,%
      dotimes,ecase,encapsulated,etypecase,flet,formatter,gathering,%
      incf,iterate,labels,let,locally,loop,macrolet,mapping,or,pop,%
      producing,prog,psetf,psetq,push,pushnew,remf,return,rotatef,%
      setf,shiftf,step,time,trace,typecase,unless,untrace,when},%
   sensitive=false,% ???
   alsodigit=-,%
   morecomment=[l];,%
   morecomment=[s]{\#|}{|\#},% 1997 Aslak Raanes
   morestring=[b]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
% \lstthanks{Stefan Lagotzki}{info@lagotzki.de}{2001/10/28} warned me to
% define this as a lisp dialect \ldots
%    \begin{macrocode}
%%
%% AutoLISP/VisualLISP - Stefan Lagotzki, info@lagotzki.de
%%
\lst@definelanguage[Auto]{Lisp}%
  {morekeywords={abs,acad_colordlg,acad_helpdlg,acad_strlsort,%
      action_tile,add_list,alert,alloc,and,angle,angtof,angtos,append,%
      apply,arx,arxload,arxunload,ascii,assoc,atan,atof,atoi,atom,%
      atoms-family,autoarxload,autoload,Boole,boundp,caddr,cadr,car,%
      cdr,chr,client_data_tile,close,command,cond,cons,cos,cvunit,%
      defun,defun-q,defun-q-list-ref,defun-q-list-set,dictadd,dictnext,%
      dictremove,dictrename,dictsearch,dimx_tile,dimy_tile,distance,%
      distof,done_dialog,end_image,end_list,entdel,entget,entlast,%
      entmake,entmakex,entmod,entnext,entsel,entupd,eq,equal,*error*,%
      eval,exit,exp,expand,expt,fill_image,findfile,fix,float,foreach,%
      function,gc,gcd,get_attr,get_tile,getangle,getcfg,getcname,%
      getcorner,getdist,getenv,getfiled,getint,getkword,getorient,%
      getpoint,getreal,getstring,getvar,graphscr,grclear,grdraw,grread,%
      grtext,grvecs,handent,help,if,initdia,initget,inters,itoa,lambda,%
      last,layoutlist,length,list,listp,load,load_dialog,log,logand,%
      logior,lsh,mapcar,max,mem,member,menucmd,menugroup,min,minusp,%
      mode_tile,namedobjdict,nentsel,nentselp,new_dialog,not,nth,%
      null,numberp,open,or,osnap,polar,prin1,princ,print,progn,prompt,%
      quit,quote,read,read-char,read-line,redraw,regapp,rem,repeat,%
      reverse,rtos,set,set_tile,setcfg,setenv,setfunhelp,setq,%
      setvar,setview,sin,slide_image,snvalid,sqrt,ssadd,ssdel,ssget,%
      ssgetfirst,sslength,ssmemb,ssname,ssnamex,sssetfirst,startapp,%
      start_dialog,start_image,start_list,strcase,strcat,strlen,subst,%
      substr,tablet,tblnext,tblobjname,tblsearch,term_dialog,terpri,%
      textbox,textpage,textscr,trace,trans,type,unload_dialog,untrace,%
      vector_image,ver,vl-acad-defun,vl-acad-undefun,vl-arx-import,%
      vl-bb-ref,vl-bb-set,vl-catch-all-apply,%
      vl-catch-all-error-message,vl-catch-all-error-p,vl-cmdf,vl-consp,%
      vl-directory-files,vl-doc-export,vl-doc-import,vl-doc-ref,%
      vl-doc-set,vl-every,vl-exit-with-error,vl-exit-with-value,%
      vl-file-copy,vl-file-delete,vl-file-directory-p,vl-file-rename,%
      vl-file-size,vl-file-systime,vl-filename-base,%
      vl-filename-directory,vl-filename-extension,vl-filename-mktemp,%
      vl-get-resource,vl-list*,vl-list->string,%
      vl-list-exported-functions,vl-list-length,vl-list-loaded-vlx,%
      vl-load-all,vl-load-com,vl-load-reactors,vl-member-if,%
      vl-member-if-not,vl-position,vl-prin1-to-string,%
      vl-princ-to-string,vl-propagate,vl-registry-delete,%
      vl-registry-descendents,vl-registry-read,vl-registry-write,%
      vl-remove,vl-remove-if,vl-remove-if-not,vl-some,vl-sort,%
      vl-sort-i,vl-string->list,vl-string-elt,vl-string-left-trim,%
      vl-string-mismatch,vl-string-position,vl-string-right-trim,%
      vl-string-search,vl-string-subst,vl-string-translate,%
      vl-string-trim,vl-symbol-name,vl-symbol-value,vl-symbolp,%
      vl-unload-vlx,vl-vbaload,vl-vbarun,vl-vlx-loaded-p,vlax-3D-point,%
      vlax-add-cmd,vlax-create-object,vlax-curve-getArea,%
      vlax-curve-getDistAtParam,vlax-curve-getDistAtPoint,%
      vlax-curve-getEndParam,vlax-curve-getEndPoint,%
      vlax-curve-getParamAtDist,vlax-curve-getParamAtPoint,%
      vlax-curve-getPointAtDist,vlax-curve-getPointAtParam,%
      vlax-curve-getStartParam,vlax-curve-getStartPoint,%
      vlax-curve-isClosed,vlax-curve-isPeriodic,vlax-curve-isPlanar,%
      vlax-curve-getClosestPointTo,%
      vlax-curve-getClosestPointToProjection,vlax-curve-getFirstDeriv,%
      vlax-curve-getSecondDeriv,vlax-dump-object,%
      vlax-ename->vla-object,vlax-erased-p,vlax-for,%
      vlax-get-acad-object,vlax-get-object,vlax-get-or-create-object,%
      vlax-get-property,vlax-import-type-library,vlax-invoke-method,%
      vlax-ldata-delete,vlax-ldata-get,vlax-ldata-list,vlax-ldata-put,%
      vlax-ldata-test,vlax-make-safearray,vlax-make-variant,%
      vlax-map-collection,vlax-method-applicable-p,%
      vlax-object-released-p,vlax-product-key,%
      vlax-property-available-p,vlax-put-property,vlax-read-enabled-p,%
      vlax-release-object,vlax-remove-cmd,vlax-safearray-fill,%
      vlax-safearray-get-dim,vlax-safearray-get-element,%
      vlax-safearray-get-l-bound,vlax-safearray-get-u-bound,%
      vlax-safearray-put-element,vlax-safearray-type,%
      vlax-safearray->list,vlax-tmatrix,vlax-typeinfo-available-p,%
      vlax-variant-change-type,vlax-variant-type,vlax-variant-value,%
      vlax-vla-object->ename,vlax-write-enabled-p,vlisp-compile,%
      vlr-acdb-reactor,vlr-add,vlr-added-p,vlr-beep-reaction,%
      vlr-command-reactor,vlr-current-reaction-name,vlr-data,%
      vlr-data-set,vlr-deepclone-reactor,vlr-docmanager-reactor,%
      vlr-dwg-reactor,vlr-dxf-reactor,vlr-editor-reactor,%
      vlr-insert-reactor,vlr-linker-reactor,vlr-lisp-reactor,%
      vlr-miscellaneous-reactor,vlr-mouse-reactor,vlr-notification,%
      vlr-object-reactor,vlr-owner-add,vlr-owner-remove,vlr-owners,%
      vlr-pers,vlr-pers-list,vlr-pers-p,vlr-pers-release,%
      vlr-reaction-names,vlr-reaction-set,vlr-reactions,vlr-reactors,%
      vlr-remove,vlr-remove-all,vlr-set-notification,%
      vlr-sysvar-reactor,vlr-toolbar-reactor,vlr-trace-reaction,%
      vlr-type,vlr-types,vlr-undo-reactor,vlr-wblock-reactor,%
      vlr-window-reactor,vlr-xref-reactor,vports,wcmatch,while,%
      write-char,write-line,xdroom,xdsize,zerop},%
   alsodigit=->,%
   otherkeywords={1+,1-},%
   sensitive=false,%
   morecomment=[l];,%
   morecomment=[l];;,%
   morestring=[b]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
% A first approch to elisp by one of the maintainers (\lstthanks{Jobst
% Hoffmann}{j.hoffmann@fh-aachen.de}{2018/08/31}), it is far away from
% completeness, the list of keywords is defined according the to the needs
% of the maintainer\ldots
%    \begin{macrocode}
\lst@definelanguage{elisp}[]{Lisp}{%
  morekeywords={begin, car, cdr, cons, define, display, drop, filter,%
    hash-ref, hash-set, if, load-file, lambda, length, map, message,%
    progn, quote, require, setq, string-append, take, vector,%
  },%
  sensitive,%
  alsodigit=->,%
  otherkeywords={1+,1-},%
  sensitive=true,%
  morecomment=[l];,%
  morecomment=[l];;,%
  morestring=[b]"%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% \subsection{LLVM}
%\label{sec:llvm}
%
% LLVM provides a collection of modular and reusable compiler and toolchain
% technologies, all further information can be found at its home page
% \url{http://llvm.org/}. \lstthanks{Scott
% Pakin}{scott@pakin.org}{2013/07/31}
% provided a language definition for the LLVM intermediate presentation
% according to \url{http://llvm.org/docs/}.\footnote{In this section `I'
% is Scott Pakin.} The language provides
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{LLVM}{%
  morekeywords={%
%    \end{macrocode}
% \begin{itemize}
% \item Instructions
%    \begin{macrocode}
    ret,br,switch,indirectbr,invoke,resume,unreachable,%
    add,fadd,sub,fsub,mul,fmul,udiv,sdiv,fdiv,urem,srem,frem,%
    shl,lshr,ashr,and,or,xor,%
    extractelement,insertelement,shufflevector,%
    extractvalue,insertvalue,%
    alloca,load,store,fence,cmpxchg,atomicrmw,getelementptr,%
    trunc,zext,sext,fptrunc,fpext,fptoui,fptosi,uitofp,sitofp,ptrtoint,%
    inttoptr,bitcast,to,%
    icmp,fcmp,phi,select,call,va_arg,landingpad,%
%    \end{macrocode}
% \item Atomic operations -- some duplication with the above
%    \begin{macrocode}
    xchg,add,sub,and,nand,or,xor,max,min,umax,umin,%
%    \end{macrocode}
% \item Comparisons
%    \begin{macrocode}
    eq,ne,ugt,uge,ult,ule,sgt,sge,slt,sle,%
    false,oeq,ogt,oge,olt,ole,one,ord,ueq,ugt,uge,ult,ule,une,uno,true,%
%    \end{macrocode}
% \item Linkage types
%    \begin{macrocode}
    private,linker_private,linker_private_weak,linker_private_weak_def_auto,%
    internal,available_externally,linkonce,common,weak,appending,extern_weak,%
    linkonce_odr,weak_odr,external,dllimport,dllexport,%
%    \end{macrocode}
% \item Function headers
%    \begin{macrocode}
    define,declare,%
%    \end{macrocode}
% \item Parameter attributes
%    \begin{macrocode}
    zeroext,signext,inreg,byval,sret,noalias,nocapture,next,%
%    \end{macrocode}
% \item Garbage collector names
%    \begin{macrocode}
    gc,%
%    \end{macrocode}
% \item Function attributes
%    \begin{macrocode}
    address_safety,alignstack,alwaysinline,nonlazybind,inlinehint,naked,%
    noimplicitfloat,noinline,noredzone,noreturn,nounwind,optsize,readnone,%
    readonly,returns_twice,ssp,sspreq,uwtable,%
%    \end{macrocode}
% \item Module-level inline assembly
%    \begin{macrocode}
    module,asm,%
%    \end{macrocode}
% \item Data layout
%    \begin{macrocode}
    target,datalayout,%
%    \end{macrocode}
% \item Inline assembler expressions
%    \begin{macrocode}
    sideeffect,alignstack,%
%    \end{macrocode}
% \item Other keywords -- I'm probably missing some here.
%    \begin{macrocode}
    nuw,nsw,exact,inbounds,unnamed_addr},%
  morekeywords=[2]{%
%    \end{macrocode}
% \item Types
%    \begin{macrocode}
    i1,i2,i4,i8,i16,i32,i64,i128,i256,i512,i1024,% <-- Most common integers
    half,float,double,x86_fp80,fp128,ppc_fp128,x86mmx,%
    void,label,metadata},%
  alsoletter=.,%
  sensitive=false,%
  morecomment=[l];,%
  morestring=[b]"%
}
%    \end{macrocode}
% \end{itemize}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Logo}
%
% I don't know where the keywords are from and what kind of Logo it is.
% Help me!
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Logo}%
% ??? {end,unix} also keywords
  {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]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Lua}
%
% \lstthanks{Stephan Hennig}{sh2d@arcor.de}{2013/06/14} contributed the Lua
% keywords.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
% We begin with the keywords for Lua 5.0:
%    \begin{macrocode}
%%
%% Lua definitions (c) 2013 Stephan Hennig
%%
\lst@definelanguage[5.0]{Lua}{%
%    \end{macrocode}
% To enable highlighting of library keywords, the dot needs to be a
% letter.
%    \begin{macrocode}
  alsoletter={.},%
%    \end{macrocode}
% The language definition knows
% \begin{itemize}
%   \item language keywords
%    \begin{macrocode}
  morekeywords=[1]{%
    and, break, do, else, elseif, end, false, for, function, if, in,%
    local, nil, not, or, repeat, return, then, true, until, while,%
  },%
%    \end{macrocode}
%   \item the standard library identifiers
%    \begin{macrocode}
  morekeywords=[2]{%
%    \end{macrocode}
%   \begin{itemize}
%     \item coming from the base library
%    \begin{macrocode}
    _G, _LOADED, _REQUIREDNAME, _VERSION, LUA_PATH,%
    assert, collectgarbage, dofile, error, gcinfo, getfenv,%
    getmetatable, ipairs, loadfile, loadlib, loadstring, newproxy,%
    next, pairs, pcall, print, rawequal, rawget, rawset, require,%
    setfenv, setmetatable, tonumber, tostring, type, unpack, xpcall,%
%    \end{macrocode}
%     \item coming from the coroutine library
%    \begin{macrocode}
    coroutine, coroutine.create, coroutine.resume,%
    coroutine.status, coroutine.wrap, coroutine.yield,%
%    \end{macrocode}
%     \item the debug library
%    \begin{macrocode}
    _TRACEBACK, debug, debug.debug, debug.gethook, debug.getinfo,%
    debug.getlocal, debug.getupvalue, debug.sethook, debug.setlocal,%
    debug.setupvalue,debug.traceback,%
%    \end{macrocode}
%     \item the io library
%    \begin{macrocode}
    io, io.close, io.flush, io.input, io.lines, io.open, io.output,%
    io.popen, io.read, io.stderr, io.stdin, io.stdout, io.tmpfile,%
    io.type, io.write,%
%    \end{macrocode}
%     \item the mathematical library
%    \begin{macrocode}
    __pow, math, math.abs, math.acos, math.asin, math.atan, math.atan2,%
    math.ceil, math.cos, math.deg, math.exp, math.floor, math.frexp,%
    math.ldexp, math.log, math.log10, math.max, math.min, math.mod,%
    math.pi, math.pow, math.rad, math.random, math.randomseed, math.sin,%
    math.sqrt, math.tan,%
%    \end{macrocode}
%     \item the os library
%    \begin{macrocode}
    os, os.clock, os.date, os.difftime, os.execute, os.exit, os.getenv,%
    os.remove, os.rename, os.setlocale, os.time, os.tmpname,%
%    \end{macrocode}
%     \item the string library
%    \begin{macrocode}
    string, string.byte, string.char, string.dump, string.find,%
    string.format, string.gfind, string.gsub, string.len, string.lower,%
    string.rep, string.sub, string.upper,%
%    \end{macrocode}
%     \item the table library
%    \begin{macrocode}
    table, table.concat, table.foreach, table.foreachi, table.getn,%
    table.insert, table.remove, table.setn, table.sort,%
  },%
%    \end{macrocode}
%   \end{itemize}
% \end{itemize}
% and some additional identifiers
%    \begin{macrocode}
  morekeywords=[2]{%
    _PROMPT, _PROMPT2, arg,%
  },%
%    \end{macrocode}
% These are the common language settings
%    \begin{macrocode}
  sensitive=true,%
  % single line comments
  morecomment=[l]{--},%
  % multi line comments
  morecomment=[s]{--[[}{]]},%
  % backslash escaped strings
  morestring=[b]",%
  morestring=[b]',%
  % multi line strings
  morestring=[s]{[[}{]]},%
}[keywords,comments,strings]
%    \end{macrocode}
% \endgroup
% And here are the new definitions for Lua 5.1:
% \begingroup
%    \begin{macrocode}
\lst@definelanguage[5.1]{Lua}[5.0]{Lua}{%
%    \end{macrocode}
%  There are some deletions
%    \begin{macrocode}
  deletekeywords=[2]{%
%    \end{macrocode}
% concerning
% \begin{itemize}
% \item the base library
%    \begin{macrocode}
    _LOADED, _REQUIREDNAME, LUA_PATH, gcinfo, loadlib,%
%    \end{macrocode}
% \item the debug library
%    \begin{macrocode}
    _TRACEBACK,%
%    \end{macrocode}
% \item the mathematical library
%    \begin{macrocode}
    __pow, math.mod,%
%    \end{macrocode}
% \item the string library
%    \begin{macrocode}
    string.gfind,%
%    \end{macrocode}
% \item the table library
%    \begin{macrocode}
    table.foreach, table.foreachi, table.getn, table.setn,%
  },%
%    \end{macrocode}
% \end{itemize}
%  and some new identifiers in standard libraries like
%    \begin{macrocode}
  morekeywords=[2]{%
%    \end{macrocode}
% \begin{itemize}
% \item the base library
%    \begin{macrocode}
    load, select,%
%    \end{macrocode}
%   \item coroutine library
%    \begin{macrocode}
    coroutine.running,%
%    \end{macrocode}
%   \item debug library
%    \begin{macrocode}
    debug.getfenv, debug.getmetatable, debug.getregistry, debug.setfenv,%
    debug.setmetatable,%
%    \end{macrocode}
%   \item the mathematical library
%    \begin{macrocode}
    math.cosh, math.fmod, math.huge, math.modf, math.sinh, math.tanh,%
%    \end{macrocode}
%   \item the package library which itself is new in Lua 5.1
%    \begin{macrocode}
    module, package, package.config, package.cpath, package.loaded,%
    package.loaders, package.loadlib, package.path, package.preload,%
    package.seeall,%
%    \end{macrocode}
%   \item the string library and
%    \begin{macrocode}
    string.gmatch, string.match, string.reverse,%
%    \end{macrocode}
%   \item the table library
%    \begin{macrocode}
    table.maxn,%
  },%
%    \end{macrocode}
% \end{itemize}
% In Lua 5.1 long bracket comments were introduced also
%    \begin{macrocode}
  morecomment=[s]{--[=[}{]=]},%
  morecomment=[s]{--[==[}{]==]},%
  morecomment=[s]{--[===[}{]===]},%
  morecomment=[s]{--[====[}{]====]},%
  morecomment=[s]{--[=====[}{]=====]},%
  morecomment=[s]{--[======[}{]======]},%
  morecomment=[s]{--[=======[}{]=======]},%
  morecomment=[s]{--[========[}{]========]},%
  morecomment=[s]{--[=========[}{]=========]},%
  morecomment=[s]{--[==========[}{]==========]},%
%    \end{macrocode}
% as well as long bracket strings
%    \begin{macrocode}
  morestring=[s]{[=[}{]=]},%
  morestring=[s]{[==[}{]==]},%
  morestring=[s]{[===[}{]===]},%
  morestring=[s]{[====[}{]====]},%
  morestring=[s]{[=====[}{]=====]},%
  morestring=[s]{[======[}{]======]},%
  morestring=[s]{[=======[}{]=======]},%
  morestring=[s]{[========[}{]========]},%
  morestring=[s]{[=========[}{]=========]},%
  morestring=[s]{[==========[}{]==========]},%
}[keywords,comments,strings]
%    \end{macrocode}
% \endgroup
%
% Lua 5.2 again has some changed features. These are
% \begingroup
%    \begin{macrocode}
\lst@definelanguage[5.2]{Lua}[5.1]{Lua}{%
%    \end{macrocode}
% \begin{itemize}
%   \item new language keywords
%    \begin{macrocode}
  morekeywords=[1]{%
    goto,%
  },%
%    \end{macrocode}
%   \item deleted identifiers from the standard libraries like
%    \begin{macrocode}
  deletekeywords=[2]{%
%    \end{macrocode}
%   \begin{itemize}
%     \item the base library
%    \begin{macrocode}
    getfenv, loadstring, module, newproxy, setfenv, unpack,%
%    \end{macrocode}
%     \item the debug library
%    \begin{macrocode}
    debug.getfenv, debug.setfenv,%
%    \end{macrocode}
%     \item the mathematical library
%    \begin{macrocode}
    math.log10,%
%    \end{macrocode}
%     \item the package library and
%    \begin{macrocode}
    package.loaders, package.seeall,%
%    \end{macrocode}
%     \item the table library
%    \begin{macrocode}
    table.maxn,%
  },%
%    \end{macrocode}
%   \end{itemize}
% \end{itemize}
% Again there are some new identifiers in the standard libraries
%    \begin{macrocode}
  morekeywords=[2]{%
%    \end{macrocode}
% like
% \begin{itemize}
% \item the base library
%    \begin{macrocode}
    rawlen,%
%    \end{macrocode}
% \item the bit library
%    \begin{macrocode}
    bit32, bit32.arshift, bit32.band, bit32.bnot, bit32.bor,%
    bit32.btest, bit32.bxor, bit32.extract, bit32.lrotate,%
    bit32.lshift, bit32.replace, bit32.rrotate, bit32.rshift,%
%    \end{macrocode}
%   \item the debug library
%    \begin{macrocode}
    debug.getuservalue, debug.setuservalue, debug.upvalueid,%
    debug.upvaluejoin,%
%    \end{macrocode}
%   \item the package library
%    \begin{macrocode}
    package.searchers, package.searchpath,%
%    \end{macrocode}
%   \item the table library
%    \begin{macrocode}
    table.pack, table.unpack,%
  },%
%    \end{macrocode}
%   \end{itemize}
% There is a new additional identifier
%    \begin{macrocode}
  morekeywords=[2]{%
    _ENV,%
  },%
%    \end{macrocode}
% and labels are also new in Lua 5.2
%    \begin{macrocode}
  moredelim=[s][keywordstyle3]{::}{::},%
}[keywords,comments,strings]
%    \end{macrocode}
% \endgroup
%
% In January 2015 Lua 5.3 was released, \lstthanks{Stephan
% Hennig}{sh2d@posteo.net}{2015/03/28} again contributed the Lua
% keywords.
% \begingroup
%    \begin{macrocode}
\lst@definelanguage[5.3]{Lua}[5.2]{Lua}{%
%    \end{macrocode}
% \begin{itemize}
%   \item some libraries are deprecated, so the following identifiers
%   are deleted
%    \begin{macrocode}
  deletekeywords=[2]{%
%    \end{macrocode}
%   \begin{itemize}
%     \item the |bit32| library
%    \begin{macrocode}
    bit32, bit32.arshift, bit32.band, bit32.bnot, bit32.bor,%
    bit32.btest, bit32.bxor, bit32.extract, bit32.lrotate,%
    bit32.lshift, bit32.replace, bit32.rrotate, bit32.rshift,%
%    \end{macrocode}
%     \item the mathematical library
%    \begin{macrocode}
    math.atan2, math.cosh, math.frexp, math.ldexp, math.pow,%
    math.sinh, math.tanh,%
  },%
%    \end{macrocode}
%   \end{itemize}
% \end{itemize}
% Again there are some new identifiers in the standard libraries
%    \begin{macrocode}
  morekeywords=[2]{%
%    \end{macrocode}
% like
% \begin{itemize}
% \item the coroutine library
%    \begin{macrocode}
    coroutine.isyieldable,%
%    \end{macrocode}
%   \item the mathematical library
%    \begin{macrocode}
    math.maxinteger, math.mininteger, math.tointeger, math.type,%
    math.ult,%
%    \end{macrocode}
%   \item the string library
%    \begin{macrocode}
    string.pack, string.packsize, string.unpack,%
%    \end{macrocode}
%   \item the table library
%    \begin{macrocode}
    table.move,%
%    \end{macrocode}
%   \item the utf-8 library
%    \begin{macrocode}
    utf8, utf8.char, utf8.charpattern, utf8.codepoint, utf8.codes,%
    utf8.len, utf8.offset,%
  },%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% \begingroup
% Stephan Hennig also supplied a definition of a style for printing Lua code:
%    \begin{macrocode}
%<*lua-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage[rgb, x11names]{xcolor}
\lstdefinestyle{Lua}{%
  language=[5.2]Lua,
  basicstyle=\ttfamily,
  columns=spaceflexible,
  keywordstyle=\bfseries\color{Blue4},% language keywords
  keywordstyle=[2]\bfseries\color{RoyalBlue3},% std. library identifiers
  keywordstyle=[3]\bfseries\color{Purple3},% labels
  stringstyle=\bfseries\color{Coral4},% strings
  commentstyle=\itshape\color{Green4},% comments
}
%    \end{macrocode}
% This code is provided in the file |listings-lua.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</lua-prf>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Make}
%
% \lstthanks{Rolf~Niepraschk}{niepraschk@ptb.de}{2000/01/10} sent me the
% new definitions.
% \lstthanks{Markus~Pahlow}{pahlowm@mar.dfo-mpo.gc.ca}{2001/10/12}
% found a missing comma and added some keywords, which improve the
% highlighting with |makemacrouse=true| (but I haven't tested this).
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Make definitions (c) 2000 Rolf Niepraschk
%%
\lst@definelanguage[gnu]{make}%
  {morekeywords={SHELL,MAKE,MAKEFLAGS,$@,$\%,$<,$?,$^,$+,$*,%
      @,^,<,\%,+,?,*,% Markus Pahlow
      export,unexport,include,override,define,ifdef,ifneq,ifeq,else,%
      endif,vpath,subst,patsubst,strip,findstring,filter,filter-out,%
      sort,dir,notdir,suffix,basename,addsuffix,addprefix,join,word,%
      words,firstword,wildcard,shell,origin,foreach,%
      @D,@F,*D,*F,\%D,\%F,<D,<F,^D,^F,+D,+F,?D,?F,%
      AR,AS,CC,CXX,CO,CPP,FC,GET,LEX,PC,YACC,YACCR,MAKEINFO,TEXI2DVI,%
      WEAVE,CWEAVE,TANGLE,CTANGLE,RM,M2C,LINT,COMPILE,LINK,PREPROCESS,%
      CHECKOUT,%
      ARFLAGS,ASFLAGS,CFLAGS,CXXFLAGS,COFLAGS,CPPFLAGS,FFLAGS,GFLAGS,%
      LDFLAGS,LOADLIBES,LFLAGS,PFLAGS,RFLAGS,YFLAGS,M2FLAGS,MODFLAGS,%
      LINTFLAGS,MAKEINFO_FLAGS,TEXI2DVI_FLAGS,COFLAGS,GFLAGS,%
      OUTPUT_OPTION,SCCS_OUTPUT_OPTION,% missing comma: Markus Pahlow
      .PHONY,.SUFFIXES,.DEFAULT,.PRECIOUS,.INTERMEDIATE,.SECONDARY,%
      .IGNORE,.SILENT,.EXPORT_ALL_VARIABLES,MAKEFILES,VPATH,MAKESHELL,%
      MAKELEVEL,MAKECMDGOALS,SUFFIXES},%
   sensitive=true,
   morecomment=[l]\#,%
   morestring=[b]"%
  }[keywords,comments,strings,make]%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{make}
  {morekeywords={SHELL,MAKE,MAKEFLAGS,$@,$\%,$<,$?,$^,$+,$*},%
   sensitive=true,%
   morecomment=[l]\#,%
   morestring=[b]"%
  }[keywords,comments,strings,make]%
%    \end{macrocode}
% The two \texttt{[b]}-arguments have been added after a bug report by
% \lsthelper{Dr.~Jobst~Hoffmann}{2002/06/24,2002/09/05}{language=make leads
% to: Use of \lst@FindAlias doesn't match its definition}.
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Matlab}
%
% I (C.\,H.?) took the keywords from \texttt{http://www.utexas.edu/math/Matlab/Manual},
% but I removed the keywords |i|, |j| and |tmp|---the change was proposed by
% \lsthelper{Kai Below}{below@tu-harburg.de}{1998/09/21}{Matlab: keywords
% i,j,tmp removed}.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
% From the revision history one can conclude that ``Matlab´´ means ``Matlab
% 5.1´´ which was released in 1997
%    \begin{macrocode}
\lst@definelanguage[5.1]{Matlab}[]{Matlab}{}
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Matlab}%
  {morekeywords={gt,lt,gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,%
      all,angle,ans,any,asec,asech,asin,asinh,atan,atan2,atanh,auread,%
      auwrite,axes,axis,balance,bar,bessel,besselk,bessely,beta,%
      betainc,betaln,blanks,bone,break,brighten,capture,cart2pol,%
      cart2sph,caxis,cd,cdf2rdf,cedit,ceil,chol,cla,clabel,clc,clear,%
      clf,clock,close,colmmd,Colon,colorbar,colormap,ColorSpec,colperm,%
      comet,comet3,compan,compass,computer,cond,condest,conj,contour,%
      contour3,contourc,contrast,conv,conv2,cool,copper,corrcoef,cos,%
      cosh,cot,coth,cov,cplxpair,cputime,cross,csc,csch,csvread,%
      csvwrite,cumprod,cumsum,cylinder,date,dbclear,dbcont,dbdown,%
      dbquit,dbstack,dbstatus,dbstep,dbstop,dbtype,dbup,ddeadv,ddeexec,%
      ddeinit,ddepoke,ddereq,ddeterm,ddeunadv,deblank,dec2hex,deconv,%
      del2,delete,demo,det,diag,diary,diff,diffuse,dir,disp,dlmread,%
      dlmwrite,dmperm,dot,drawnow,echo,eig,ellipj,ellipke,else,elseif,%
      end,engClose,engEvalString,engGetFull,engGetMatrix,engOpen,%
      engOutputBuffer,engPutFull,engPutMatrix,engSetEvalCallback,%
      engSetEvalTimeout,engWinInit,eps,erf,erfc,erfcx,erfinv,error,%
      errorbar,etime,etree,eval,exist,exp,expint,expm,expo,eye,fclose,%
      feather,feof,ferror,feval,fft,fft2,fftshift,fgetl,fgets,figure,%
      fill,fill3,filter,filter2,find,findstr,finite,fix,flag,fliplr,%
      flipud,floor,flops,fmin,fmins,fopen,for,format,fplot,fprintf,%
      fread,frewind,fscanf,fseek,ftell,full,function,funm,fwrite,fzero,%
      gallery,gamma,gammainc,gammaln,gca,gcd,gcf,gco,get,getenv,%
      getframe,ginput,global,gplot,gradient,gray,graymon,grid,griddata,%
      gtext,hadamard,hankel,help,hess,hex2dec,hex2num,hidden,hilb,hist,%
      hold,home,hostid,hot,hsv,hsv2rgb,if,ifft,ifft2,imag,image,%
      imagesc,Inf,info,input,int2str,interp1,interp2,interpft,inv,%
      invhilb,isempty,isglobal,ishold,isieee,isinf,isletter,isnan,%
      isreal,isspace,issparse,isstr,jet,keyboard,kron,lasterr,lcm,%
      legend,legendre,length,lin2mu,line,linspace,load,log,log10,log2,%
      loglog,logm,logspace,lookfor,lower,ls,lscov,lu,magic,matClose,%
      matDeleteMatrix,matGetDir,matGetFp,matGetFull,matGetMatrix,%
      matGetNextMatrix,matGetString,matlabrc,matlabroot,matOpen,%
      matPutFull,matPutMatrix,matPutString,max,mean,median,menu,mesh,%
      meshc,meshgrid,meshz,mexAtExit,mexCallMATLAB,mexdebug,%
      mexErrMsgTxt,mexEvalString,mexFunction,mexGetFull,mexGetMatrix,%
      mexGetMatrixPtr,mexPrintf,mexPutFull,mexPutMatrix,mexSetTrapFlag,%
      min,more,movie,moviein,mu2lin,mxCalloc,mxCopyCharacterToPtr,%
      mxCopyComplex16ToPtr,mxCopyInteger4ToPtr,mxCopyPtrToCharacter,%
      mxCopyPtrToComplex16,mxCopyPtrToInteger4,mxCopyPtrToReal8,%
      mxCopyReal8ToPtr,mxCreateFull,mxCreateSparse,mxCreateString,%
      mxFree,mxFreeMatrix,mxGetIr,mxGetJc,mxGetM,mxGetN,mxGetName,%
      mxGetNzmax,mxGetPi,mxGetPr,mxGetScalar,mxGetString,mxIsComplex,%
      mxIsFull,mxIsNumeric,mxIsSparse,mxIsString,mxIsTypeDouble,%
      mxSetIr,mxSetJc,mxSetM,mxSetN,mxSetName,mxSetNzmax,mxSetPi,%
      mxSetPr,NaN,nargchk,nargin,nargout,newplot,nextpow2,nnls,nnz,%
      nonzeros,norm,normest,null,num2str,nzmax,ode23,ode45,orient,orth,%
      pack,pascal,patch,path,pause,pcolor,pi,pink,pinv,plot,plot3,%
      pol2cart,polar,poly,polyder,polyeig,polyfit,polyval,polyvalm,%
      pow2,print,printopt,prism,prod,pwd,qr,qrdelete,qrinsert,quad,%
      quad8,quit,quiver,qz,rand,randn,randperm,rank,rat,rats,rbbox,%
      rcond,real,realmax,realmin,refresh,rem,reset,reshape,residue,%
      return,rgb2hsv,rgbplot,rootobject,roots,rose,rosser,rot90,rotate,%
      round,rref,rrefmovie,rsf2csf,save,saxis,schur,sec,sech,semilogx,%
      semilogy,set,setstr,shading,sign,sin,sinh,size,slice,sort,sound,%
      spalloc,sparse,spaugment,spconvert,spdiags,specular,speye,spfun,%
      sph2cart,sphere,spinmap,spline,spones,spparms,sprandn,sprandsym,%
      sprank,sprintf,spy,sqrt,sqrtm,sscanf,stairs,startup,std,stem,%
      str2mat,str2num,strcmp,strings,strrep,strtok,subplot,subscribe,%
      subspace,sum,surf,surface,surfc,surfl,surfnorm,svd,symbfact,%
      symmmd,symrcm,tan,tanh,tempdir,tempname,terminal,text,tic,title,%
      toc,toeplitz,trace,trapz,tril,triu,type,uicontrol,uigetfile,%
      uimenu,uiputfile,unix,unwrap,upper,vander,ver,version,view,%
      viewmtx,waitforbuttonpress,waterfall,wavread,wavwrite,what,%
      whatsnew,which,while,white,whitebg,who,whos,wilkinson,wk1read,%
      wk1write,xlabel,xor,ylabel,zeros,zlabel,zoom},%
   sensitive,%
   morecomment=[l]\%,%
   morestring=[m]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Mathematica}
%
% \lstthanks{Michael Wiese}{wiese@itwm.uni-kl.de}{1999/02/25} typed in all the
% keywords for the 1.0 and 3.0 versions.
% \lstthanks{Oliver~Ruebenkoenig}{-}{2006/07/17} wrote a script to generate
% the lists for the 5.2 version.
% \lstthanks{Simon Pearce}{-}{2017/01/04} provided the list of keywords for
% Mathematica 11.0.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[11.0]{Mathematica}[5.2]{Mathematica}{%
  morekeywords={
    "AASTriangle", "AbelianGroup", "Abort", "AbortKernels",%
    "AbortProtect", "AbortScheduledTask", "Above", "Abs", "AbsArg",%
    "Absolute", "AbsoluteCorrelation", "AbsoluteCorrelationFunction",%
    "AbsoluteCurrentValue", "AbsoluteDashing", "AbsoluteFileName",%
    "AbsoluteOptions", "AbsolutePointSize", "AbsoluteThickness",%
    "AbsoluteTime", "AbsoluteTiming", "AccountingForm", "Accumulate",%
    "Accuracy", "AccuracyGoal", "ActionDelay", "ActionMenu",%
    "ActionMenuBox", "ActionMenuBoxOptions", "Activate", "Active",%
    "ActiveItem", "ActiveStyle", "AcyclicGraphQ", "AddOnHelpPath",%
    "AddTo", "AddUsers", "AdjacencyGraph", "AdjacencyList",%
    "AdjacencyMatrix", "AdjustmentBox", "AdjustmentBoxOptions",%
    "AdjustTimeSeriesForecast", "AdministrativeDivisionData",%
    "AffineHalfSpace", "AffineSpace", "AffineStateSpaceModel",%
    "AffineTransform", "After", "AircraftData", "AirportData",%
    "AirPressureData", "AirTemperatureData", "AiryAi", "AiryAiPrime",%
    "AiryAiZero", "AiryBi", "AiryBiPrime", "AiryBiZero",%
    "AlgebraicIntegerQ", "AlgebraicNumber", "AlgebraicNumberDenominator",%
    "AlgebraicNumberNorm", "AlgebraicNumberPolynomial",%
    "AlgebraicNumberTrace", "AlgebraicRules", "AlgebraicRulesData",%
    "Algebraics", "AlgebraicUnitQ", "Alignment", "AlignmentMarker",%
    "AlignmentPoint", "All", "AllowedDimensions", "AllowedHeads",%
    "AllowGroupClose", "AllowIncomplete", "AllowInlineCells",%
    "AllowKernelInitialization", "AllowLooseGrammar",%
    "AllowReverseGroupClose", "AllowScriptLevelChange", "AllTrue",%
    "Alphabet", "AlphabeticOrder", "AlphabeticSort", "AlphaChannel",%
    "AlternateImage", "AlternatingFactorial", "AlternatingGroup",%
    "AlternativeHypothesis", "Alternatives", "AltitudeMethod",%
    "AmbientLight", "AmbiguityFunction", "AmbiguityList", "Analytic",%
    "AnatomyData", "AnatomyForm", "AnatomyPlot3D", "AnchoredSearch",%
    "And", "AndersonDarlingTest", "AngerJ", "AngleBracket", "AnglePath",%
    "AngleVector", "AngularGauge", "Animate", "AnimationCycleOffset",%
    "AnimationCycleRepetitions", "AnimationDirection",%
    "AnimationDisplayTime", "AnimationRate", "AnimationRepetitions",%
    "AnimationRunning", "AnimationRunTime", "AnimationTimeIndex",%
    "Animator", "AnimatorBox", "AnimatorBoxOptions", "AnimatorElements",%
    "Annotation", "Annuity", "AnnuityDue", "Annulus", "Anonymous",%
    "Antialiasing", "AntihermitianMatrixQ", "Antisymmetric",%
    "AntisymmetricMatrixQ", "AnyOrder", "AnySubset", "AnyTrue", "Apart",%
    "ApartSquareFree", "APIFunction", "Appearance", "AppearanceElements",%
    "AppearanceRules", "AppellF1", "Append", "AppendTo", "Apply",%
    "ArcCos", "ArcCosh", "ArcCot", "ArcCoth", "ArcCsc", "ArcCsch",%
    "ArcCurvature", "ARCHProcess", "ArcLength", "ArcSec", "ArcSech",%
    "ArcSin", "ArcSinDistribution", "ArcSinh", "ArcTan", "ArcTanh",%
    "Area", "Arg", "ArgMax", "ArgMin", "ArgumentCountQ", "ARIMAProcess",%
    "ArithmeticGeometricMean", "ARMAProcess", "ARProcess", "Array",%
    "ArrayComponents", "ArrayDepth", "ArrayFilter", "ArrayFlatten",%
    "ArrayMesh", "ArrayPad", "ArrayPlot", "ArrayQ", "ArrayResample",%
    "ArrayReshape", "ArrayRules", "Arrays", "Arrow", "Arrow3DBox",%
    "ArrowBox", "Arrowheads", "ASATriangle", "Ask", "AskAppend",%
    "AskConfirm", "AskDisplay", "AskedQ", "AskedValue", "AskFunction",%
    "AskTemplateDisplay", "AspectRatio", "AspectRatioFixed", "Assert",%
    "AssociateTo", "Association", "AssociationFormat", "AssociationMap",%
    "AssociationQ", "AssociationThread", "AssumeDeterministic",%
    "Assuming", "Assumptions", "AstronomicalData",%
    "AsymptoticOutputTracker", "Asynchronous", "AsynchronousTaskObject",%
    "AsynchronousTasks", "AtomQ", "Attributes", "Audio", "AudioAmplify",%
    "AudioBlockMap", "AudioChannelCombine", "AudioChannelMix",%
    "AudioChannels", "AudioChannelSeparate", "AudioData", "AudioDelay",%
    "AudioDelete", "AudioDevice", "AudioFade", "AudioFrequencyShift",%
    "AudioGenerator", "AudioIntervals", "AudioJoin", "AudioLabel",%
    "AudioLength", "AudioLocalMeasurements", "AudioMeasurements",%
    "AudioNormalize", "AudioOverlay", "AudioPad", "AudioPan",%
    "AudioPartition", "AudioPitchShift", "AudioPlot", "AudioQ",%
    "AudioResample", "AudioReverb", "AudioSampleRate", "AudioSplit",%
    "AudioTimeStretch", "AudioTrim", "AudioType",%
    "AugmentedSymmetricPolynomial", "Authentication", "AutoAction",%
    "Autocomplete", "AutocompletionFunction", "AutoCopy",%
    "AutocorrelationTest", "AutoDelete", "AutoEvaluateEvents",%
    "AutoGeneratedPackage", "AutoIndent", "AutoIndentSpacings",%
    "AutoItalicWords", "AutoloadPath", "AutoMatch", "Automatic",%
    "AutomaticImageSize", "AutoMultiplicationSymbol",%
    "AutoNumberFormatting", "AutoOpenNotebooks", "AutoOpenPalettes",%
    "AutoRefreshed", "AutoRemove", "AutorunSequencing", "AutoScaling",%
    "AutoScroll", "AutoSpacing", "AutoStyleOptions", "AutoStyleWords",%
    "AutoSubmitting", "Axes", "AxesEdge", "AxesLabel", "AxesOrigin",%
    "AxesStyle", "Axis", "BabyMonsterGroupB", "Back", "Background",%
    "BackgroundTasksSettings", "Backslash", "Backsubstitution",%
    "Backward", "Ball", "Band", "BandpassFilter", "BandstopFilter",%
    "BarabasiAlbertGraphDistribution", "BarChart", "BarChart3D",%
    "BarcodeImage", "BarcodeRecognize", "BaringhausHenzeTest",%
    "BarLegend", "BarlowProschanImportance", "BarnesG", "BarOrigin",%
    "BarSpacing", "BartlettHannWindow", "BartlettWindow", "BaseForm",%
    "Baseline", "BaselinePosition", "BaseStyle",%
    "BatchNormalizationLayer", "BatchSize", "BatesDistribution",%
    "BattleLemarieWavelet", "BayesianMaximization",%
    "BayesianMaximizationObject", "BayesianMinimization",%
    "BayesianMinimizationObject", "Because", "BeckmannDistribution",%
    "Beep", "Before", "Begin", "BeginDialogPacket",%
    "BeginFrontEndInteractionPacket", "BeginPackage", "BellB", "BellY",%
    "Below", "BenfordDistribution", "BeniniDistribution",%
    "BenktanderGibratDistribution", "BenktanderWeibullDistribution",%
    "BernoulliB", "BernoulliDistribution", "BernoulliGraphDistribution",%
    "BernoulliProcess", "BernsteinBasis", "BesselFilterModel", "BesselI",%
    "BesselJ", "BesselJZero", "BesselK", "BesselY", "BesselYZero",%
    "Beta", "BetaBinomialDistribution", "BetaDistribution",%
    "BetaNegativeBinomialDistribution", "BetaPrimeDistribution",%
    "BetaRegularized", "Between", "BetweennessCentrality", "BezierCurve",%
    "BezierCurve3DBox", "BezierCurve3DBoxOptions", "BezierCurveBox",%
    "BezierCurveBoxOptions", "BezierFunction", "BilateralFilter",%
    "Binarize", "BinaryDistance", "BinaryFormat", "BinaryImageQ",%
    "BinaryRead", "BinaryReadList", "BinaryWrite", "BinCounts",%
    "BinLists", "Binomial", "BinomialDistribution", "BinomialProcess",%
    "BinormalDistribution", "BiorthogonalSplineWavelet",%
    "BipartiteGraphQ", "BiquadraticFilterModel", "BirnbaumImportance",%
    "BirnbaumSaundersDistribution", "BitAnd", "BitClear", "BitGet",%
    "BitLength", "BitNot", "BitOr", "BitSet", "BitShiftLeft",%
    "BitShiftRight", "BitXor", "Black", "BlackmanHarrisWindow",%
    "BlackmanNuttallWindow", "BlackmanWindow", "Blank", "BlankForm",%
    "BlankNullSequence", "BlankSequence", "Blend", "Block", "BlockMap",%
    "BlockRandom", "BlomqvistBeta", "BlomqvistBetaTest", "Blue", "Blur",%
    "BodePlot", "BohmanWindow", "Bold", "Bookmarks", "Boole",%
    "BooleanConsecutiveFunction", "BooleanConvert",%
    "BooleanCountingFunction", "BooleanFunction", "BooleanGraph",%
    "BooleanMaxterms", "BooleanMinimize", "BooleanMinterms", "BooleanQ",%
    "BooleanRegion", "Booleans", "BooleanStrings", "BooleanTable",%
    "BooleanVariables", "BorderDimensions", "BorelTannerDistribution",%
    "Bottom", "BottomHatTransform", "BoundaryDiscretizeGraphics",%
    "BoundaryDiscretizeRegion", "BoundaryMesh", "BoundaryMeshRegion",%
    "BoundaryMeshRegionQ", "BoundaryStyle", "BoundedRegionQ",%
    "BoundingRegion", "Bounds", "Box", "BoxBaselineShift", "BoxData",%
    "BoxDimensions", "Boxed", "Boxes", "BoxForm", "BoxFormFormatTypes",%
    "BoxFrame", "BoxID", "BoxMargins", "BoxMatrix", "BoxObject",%
    "BoxRatios", "BoxRotation", "BoxRotationPoint", "BoxStyle",%
    "BoxWhiskerChart", "Bra", "BracketingBar", "BraKet",%
    "BrayCurtisDistance", "BreadthFirstScan", "Break", "BridgeData",%
    "BroadcastStationData", "Brown", "BrownForsytheTest",%
    "BrownianBridgeProcess", "BrowserCategory", "BSplineBasis",%
    "BSplineCurve", "BSplineCurve3DBox", "BSplineCurve3DBoxOptions",%
    "BSplineCurveBox", "BSplineCurveBoxOptions", "BSplineFunction",%
    "BSplineSurface", "BSplineSurface3DBox",%
    "BSplineSurface3DBoxOptions", "BubbleChart", "BubbleChart3D",%
    "BubbleScale", "BubbleSizes", "BuildingData", "BulletGauge",%
    "BusinessDayQ", "ButterflyGraph", "ButterworthFilterModel", "Button",%
    "ButtonBar", "ButtonBox", "ButtonBoxOptions", "ButtonCell",%
    "ButtonContents", "ButtonData", "ButtonEvaluator",%
    "ButtonExpandable", "ButtonFrame", "ButtonFunction", "ButtonMargins",%
    "ButtonMinHeight", "ButtonNote", "ButtonNotebook", "ButtonSource",%
    "ButtonStyle", "ButtonStyleMenuListing", "Byte", "ByteArray",%
    "ByteArrayQ", "ByteCount", "ByteOrdering", "C", "CachedValue",%
    "CacheGraphics", "CachePersistence", "CalendarConvert",%
    "CalendarData", "CalendarType", "Callout", "CalloutMarker",%
    "CalloutStyle", "CallPacket", "CanberraDistance", "Cancel",%
    "CancelButton", "CandlestickChart", "CanonicalGraph",%
    "CanonicalName", "CanonicalWarpingCorrespondence",%
    "CanonicalWarpingDistance", "CantorStaircase", "Cap", "CapForm",%
    "CapitalDifferentialD", "Capitalize", "CapsuleShape",%
    "CardinalBSplineBasis", "CarlemanLinearize", "CarmichaelLambda",%
    "CaseOrdering", "Cases", "CaseSensitive", "Cashflow", "Casoratian",%
    "Catalan", "CatalanNumber", "Catch", "Catenate", "CatenateLayer",%
    "CauchyDistribution", "CauchyWindow", "CayleyGraph", "CDF",%
    "CDFDeploy", "CDFInformation", "CDFWavelet", "Ceiling",%
    "CelestialSystem", "Cell", "CellAutoOverwrite", "CellBaseline",%
    "CellBoundingBox", "CellBracketOptions", "CellChangeTimes",%
    "CellContents", "CellContext", "CellDingbat",%
    "CellDynamicExpression", "CellEditDuplicate",%
    "CellElementsBoundingBox", "CellElementSpacings", "CellEpilog",%
    "CellEvaluationDuplicate", "CellEvaluationFunction",%
    "CellEventActions", "CellFrame", "CellFrameColor",%
    "CellFrameLabelMargins", "CellFrameLabels", "CellFrameMargins",%
    "CellGroup", "CellGroupData", "CellGrouping", "CellGroupingRules",%
    "CellHorizontalScrolling", "CellID", "CellLabel",%
    "CellLabelAutoDelete", "CellLabelMargins", "CellLabelPositioning",%
    "CellMargins", "CellObject", "CellOpen", "CellPrint", "CellProlog",%
    "Cells", "CellSize", "CellStyle", "CellTags", "CellularAutomaton",%
    "CensoredDistribution", "Censoring", "Center", "CenterArray",%
    "CenterDot", "CentralMoment", "CentralMomentGeneratingFunction",%
    "CForm", "ChampernowneNumber", "ChangeOptions", "ChannelBase",%
    "ChannelDatabin", "ChannelHistoryLength", "ChannelListen",%
    "ChannelListener", "ChannelListeners", "ChannelListenerWait",%
    "ChannelObject", "ChannelPreSendFunction", "ChannelSend",%
    "ChannelSubscribers", "ChanVeseBinarize", "Character",%
    "CharacterCounts", "CharacterEncoding", "CharacterEncodingsPath",%
    "CharacteristicFunction", "CharacteristicPolynomial",%
    "CharacterName", "CharacterRange", "Characters", "ChartBaseStyle",%
    "ChartElementData", "ChartElementDataFunction",%
    "ChartElementFunction", "ChartElements", "ChartLabels",%
    "ChartLayout", "ChartLegends", "ChartStyle", "Chebyshev1FilterModel",%
    "Chebyshev2FilterModel", "ChebyshevDistance", "ChebyshevT",%
    "ChebyshevU", "Check", "CheckAbort", "CheckAll", "Checkbox",%
    "CheckboxBar", "CheckboxBox", "CheckboxBoxOptions", "ChemicalData",%
    "ChessboardDistance", "ChiDistribution", "ChineseRemainder",%
    "ChiSquareDistribution", "ChoiceButtons", "ChoiceDialog",%
    "CholeskyDecomposition", "Chop", "ChromaticityPlot",%
    "ChromaticityPlot3D", "ChromaticPolynomial", "Circle", "CircleBox",%
    "CircleDot", "CircleMinus", "CirclePlus", "CirclePoints",%
    "CircleTimes", "CirculantGraph",%
    "CircularOrthogonalMatrixDistribution",%
    "CircularQuaternionMatrixDistribution",%
    "CircularRealMatrixDistribution",%
    "CircularSymplecticMatrixDistribution",%
    "CircularUnitaryMatrixDistribution", "Circumsphere", "CityData",%
    "ClassifierFunction", "ClassifierInformation",%
    "ClassifierMeasurements", "ClassifierMeasurementsObject", "Classify",%
    "ClassPriors", "Clear", "ClearAll", "ClearAttributes",%
    "ClearCookies", "ClearPermissions", "ClearSystemCache",%
    "ClebschGordan", "ClickPane", "Clip", "ClipboardNotebook",%
    "ClipFill", "ClippingStyle", "ClipPlanes", "ClipPlanesStyle",%
    "ClipRange", "Clock", "ClockGauge", "ClockwiseContourIntegral",%
    "Close", "Closed", "CloseKernels", "ClosenessCentrality", "Closing",%
    "ClosingAutoSave", "ClosingEvent", "CloudAccountData", "CloudBase",%
    "CloudConnect", "CloudDeploy", "CloudDirectory", "CloudDisconnect",%
    "CloudEvaluate", "CloudExport", "CloudExpression",%
    "CloudExpressions", "CloudFunction", "CloudGet", "CloudImport",%
    "CloudLoggingData", "CloudObject", "CloudObjectInformation",%
    "CloudObjectInformationData", "CloudObjects", "CloudPublish",%
    "CloudPut", "CloudSave", "CloudShare", "CloudSubmit", "CloudSymbol",%
    "ClusterClassify", "ClusterDissimilarityFunction",%
    "ClusteringComponents", "ClusteringTree", "CMYKColor", "Coarse",%
    "CodeAssistOptions", "Coefficient", "CoefficientArrays",%
    "CoefficientDomain", "CoefficientList", "CoefficientRules",%
    "CoifletWavelet", "Collect", "Colon", "ColonForm", "ColorBalance",%
    "ColorCombine", "ColorConvert", "ColorCoverage", "ColorData",%
    "ColorDataFunction", "ColorDistance", "ColorFunction",%
    "ColorFunctionScaling", "Colorize", "ColorNegate", "ColorOutput",%
    "ColorProfileData", "ColorQ", "ColorQuantize", "ColorReplace",%
    "ColorRules", "ColorSelectorSettings", "ColorSeparate",%
    "ColorSetter", "ColorSetterBox", "ColorSetterBoxOptions",%
    "ColorSlider", "ColorSpace", "ColorToneMapping", "Column",%
    "ColumnAlignments", "ColumnBackgrounds", "ColumnForm", "ColumnLines",%
    "ColumnsEqual", "ColumnSpacings", "ColumnWidths", "CombinerFunction",%
    "CometData", "CommonDefaultFormatTypes", "Commonest",%
    "CommonestFilter", "CommonName", "CommonUnits",%
    "CommunityBoundaryStyle", "CommunityGraphPlot", "CommunityLabels",%
    "CommunityRegionStyle", "CompanyData", "CompatibleUnitQ",%
    "CompilationOptions", "CompilationTarget", "Compile", "Compiled",%
    "CompiledFunction", "Complement", "CompleteGraph", "CompleteGraphQ",%
    "CompleteKaryTree", "CompletionsListPacket", "Complex", "Complexes",%
    "ComplexExpand", "ComplexInfinity", "ComplexityFunction",%
    "ComponentMeasurements", "ComponentwiseContextMenu", "Compose",%
    "ComposeList", "ComposeSeries", "CompositeQ", "Composition",%
    "CompoundElement", "CompoundExpression",%
    "CompoundPoissonDistribution", "CompoundPoissonProcess",%
    "CompoundRenewalProcess", "Compress", "CompressedData", "Condition",%
    "ConditionalExpression", "Conditioned", "Cone", "ConeBox",%
    "ConfidenceLevel", "ConfidenceRange", "ConfidenceTransform",%
    "ConfigurationPath", "ConformationRules", "ConformAudio",%
    "ConformImages", "Congruent", "ConicHullRegion",%
    "ConicHullRegion3DBox", "ConicHullRegionBox", "Conjugate",%
    "ConjugateTranspose", "Conjunction", "Connect",%
    "ConnectedComponents", "ConnectedGraphComponents", "ConnectedGraphQ",%
    "ConnectedMeshComponents", "ConnectLibraryCallbackFunction",%
    "ConnesWindow", "ConoverTest", "ConsoleMessage",%
    "ConsoleMessagePacket", "ConsolePrint", "Constant", "ConstantArray",%
    "ConstantImage", "ConstantRegionQ", "Constants", "ConstellationData",%
    "ConstrainedMax", "ConstrainedMin", "Containing", "ContainsAll",%
    "ContainsAny", "ContainsExactly", "ContainsNone", "ContainsOnly",%
    "ContentFieldOptions", "ContentLocationFunction", "ContentObject",%
    "ContentPadding", "ContentsBoundingBox", "ContentSelectable",%
    "ContentSize", "Context", "ContextMenu", "Contexts",%
    "ContextToFileName", "Continuation", "Continue", "ContinuedFraction",%
    "ContinuedFractionK", "ContinuousAction", "ContinuousMarkovProcess",%
    "ContinuousTask", "ContinuousTimeModelQ", "ContinuousWaveletData",%
    "ContinuousWaveletTransform", "ContourDetect", "ContourGraphics",%
    "ContourIntegral", "ContourLabels", "ContourLines", "ContourPlot",%
    "ContourPlot3D", "Contours", "ContourShading", "ContourSmoothing",%
    "ContourStyle", "ContraharmonicMean", "Control", "ControlActive",%
    "ControlAlignment", "ControllabilityGramian",%
    "ControllabilityMatrix", "ControllableDecomposition",%
    "ControllableModelQ", "ControllerDuration", "ControllerInformation",%
    "ControllerInformationData", "ControllerLinking",%
    "ControllerManipulate", "ControllerMethod", "ControllerPath",%
    "ControllerState", "ControlPlacement", "ControlsRendering",%
    "ControlType", "Convergents", "ConversionOptions", "ConversionRules",%
    "ConvertToBitmapPacket", "ConvertToPostScript",%
    "ConvertToPostScriptPacket", "ConvexHullMesh", "ConvolutionLayer",%
    "Convolve", "ConwayGroupCo1", "ConwayGroupCo2", "ConwayGroupCo3",%
    "CookieFunction", "Cookies", "CoordinateBoundingBox",%
    "CoordinateBoundingBoxArray", "CoordinateBounds",%
    "CoordinateBoundsArray", "CoordinateChartData",%
    "CoordinatesToolOptions", "CoordinateTransform",%
    "CoordinateTransformData", "CoprimeQ", "Coproduct",%
    "CopulaDistribution", "Copyable", "CopyDatabin", "CopyDirectory",%
    "CopyFile", "CopyTag", "CopyToClipboard", "CornerFilter",%
    "CornerNeighbors", "Correlation", "CorrelationDistance",%
    "CorrelationFunction", "CorrelationTest", "Cos", "Cosh",%
    "CoshIntegral", "CosineDistance", "CosineWindow", "CosIntegral",%
    "Cot", "Coth", "Count", "CountDistinct", "CountDistinctBy",%
    "CounterAssignments", "CounterBox", "CounterBoxOptions",%
    "CounterClockwiseContourIntegral", "CounterEvaluator",%
    "CounterFunction", "CounterIncrements", "CounterStyle",%
    "CounterStyleMenuListing", "CountRoots", "CountryData", "Counts",%
    "CountsBy", "Covariance", "CovarianceEstimatorFunction",%
    "CovarianceFunction", "CoxianDistribution",%
    "CoxIngersollRossProcess", "CoxModel", "CoxModelFit",%
    "CramerVonMisesTest", "CreateArchive", "CreateCellID",%
    "CreateChannel", "CreateCloudExpression", "CreateDatabin",%
    "CreateDialog", "CreateDirectory", "CreateDocument", "CreateFile",%
    "CreateIntermediateDirectories", "CreateManagedLibraryExpression",%
    "CreateNotebook", "CreatePalette", "CreatePalettePacket",%
    "CreatePermissionsGroup", "CreateScheduledTask", "CreateSearchIndex",%
    "CreateTemporary", "CreateUUID", "CreateWindow", "CriterionFunction",%
    "CriticalityFailureImportance", "CriticalitySuccessImportance",%
    "CriticalSection", "Cross", "CrossEntropyLossLayer",%
    "CrossingDetect", "CrossMatrix", "Csc", "Csch", "CubeRoot", "Cubics",%
    "Cuboid", "CuboidBox", "Cumulant", "CumulantGeneratingFunction",%
    "Cup", "CupCap", "Curl", "CurlyDoubleQuote", "CurlyQuote",%
    "CurrencyConvert", "CurrentImage", "CurrentlySpeakingPacket",%
    "CurrentValue", "CurvatureFlowFilter", "CurveClosed", "Cyan",%
    "CycleGraph", "CycleIndexPolynomial", "Cycles", "CyclicGroup",%
    "Cyclotomic", "Cylinder", "CylinderBox", "CylindricalDecomposition",%
    "D", "DagumDistribution", "DamData", "DamerauLevenshteinDistance",%
    "DampingFactor", "Darker", "Dashed", "Dashing", "Databin",%
    "DatabinAdd", "DatabinRemove", "Databins", "DatabinUpload",%
    "DataCompression", "DataDistribution", "DataRange", "DataReversed",%
    "Dataset", "Date", "DateBounds", "Dated", "DateDelimiters",%
    "DateDifference", "DatedUnit", "DateFormat", "DateFunction",%
    "DateHistogram", "DateList", "DateListLogPlot", "DateListPlot",%
    "DateListStepPlot", "DateObject", "DateObjectQ", "DatePattern",%
    "DatePlus", "DateRange", "DateReduction", "DateString",%
    "DateTicksFormat", "DateValue", "DaubechiesWavelet",%
    "DavisDistribution", "DawsonF", "DayCount", "DayCountConvention",%
    "DayHemisphere", "DaylightQ", "DayMatchQ", "DayName",%
    "DayNightTerminator", "DayPlus", "DayRange", "DayRound",%
    "DeBruijnGraph", "Debug", "DebugTag", "Decapitalize", "Decimal",%
    "DeclareKnownSymbols", "DeclarePackage", "Decompose",%
    "DeconvolutionLayer", "Decrement", "Decrypt", "DedekindEta",%
    "DeepSpaceProbeData", "Default", "DefaultAxesStyle",%
    "DefaultBaseStyle", "DefaultBoxStyle", "DefaultButton",%
    "DefaultColor", "DefaultControlPlacement",%
    "DefaultDuplicateCellStyle", "DefaultDuration", "DefaultElement",%
    "DefaultFaceGridsStyle", "DefaultFieldHintStyle", "DefaultFont",%
    "DefaultFontProperties", "DefaultFormatType",%
    "DefaultFormatTypeForStyle", "DefaultFrameStyle",%
    "DefaultFrameTicksStyle", "DefaultGridLinesStyle",%
    "DefaultInlineFormatType", "DefaultInputFormatType",%
    "DefaultLabelStyle", "DefaultMenuStyle", "DefaultNaturalLanguage",%
    "DefaultNewCellStyle", "DefaultNewInlineCellStyle",%
    "DefaultNotebook", "DefaultOptions", "DefaultOutputFormatType",%
    "DefaultStyle", "DefaultStyleDefinitions", "DefaultTextFormatType",%
    "DefaultTextInlineFormatType", "DefaultTicksStyle",%
    "DefaultTooltipStyle", "DefaultValue", "DefaultValues", "Defer",%
    "DefineExternal", "DefineInputStreamMethod",%
    "DefineOutputStreamMethod", "Definition", "Degree",%
    "DegreeCentrality", "DegreeGraphDistribution", "DegreeLexicographic",%
    "DegreeReverseLexicographic", "DEigensystem", "DEigenvalues",%
    "Deinitialization", "Del", "DelaunayMesh", "Delayed", "Deletable",%
    "Delete", "DeleteBorderComponents", "DeleteCases", "DeleteChannel",%
    "DeleteCloudExpression", "DeleteContents", "DeleteDirectory",%
    "DeleteDuplicates", "DeleteDuplicatesBy", "DeleteFile",%
    "DeleteMissing", "DeletePermissionsKey", "DeleteSearchIndex",%
    "DeleteSmallComponents", "DeleteStopwords", "DeleteWithContents",%
    "DeletionWarning", "DelimitedArray", "DelimitedSequence",%
    "Delimiter", "DelimiterFlashTime", "DelimiterMatching", "Delimiters",%
    "DeliveryFunction", "Dendrogram", "Denominator", "DensityGraphics",%
    "DensityHistogram", "DensityPlot", "DensityPlot3D",%
    "DependentVariables", "Deploy", "Deployed", "Depth",%
    "DepthFirstScan", "Derivative", "DerivativeFilter",%
    "DescriptorStateSpace", "DesignMatrix", "DestroyAfterEvaluation",%
    "Det", "DeviceClose", "DeviceConfigure", "DeviceExecute",%
    "DeviceExecuteAsynchronous", "DeviceObject", "DeviceOpen",%
    "DeviceOpenQ", "DeviceRead", "DeviceReadBuffer", "DeviceReadLatest",%
    "DeviceReadList", "DeviceReadTimeSeries", "Devices", "DeviceStreams",%
    "DeviceWrite", "DeviceWriteBuffer", "DGaussianWavelet",%
    "DiacriticalPositioning", "Diagonal", "DiagonalizableMatrixQ",%
    "DiagonalMatrix", "Dialog", "DialogIndent", "DialogInput",%
    "DialogLevel", "DialogNotebook", "DialogProlog", "DialogReturn",%
    "DialogSymbols", "Diamond", "DiamondMatrix", "DiceDissimilarity",%
    "DictionaryLookup", "DictionaryWordQ", "DifferenceDelta",%
    "DifferenceOrder", "DifferenceQuotient", "DifferenceRoot",%
    "DifferenceRootReduce", "Differences", "DifferentialD",%
    "DifferentialRoot", "DifferentialRootReduce", "DifferentiatorFilter",%
    "DigitBlock", "DigitBlockMinimum", "DigitCharacter", "DigitCount",%
    "DigitQ", "DihedralGroup", "Dilation", "DimensionalCombinations",%
    "DimensionalMeshComponents", "DimensionReduce",%
    "DimensionReducerFunction", "DimensionReduction", "Dimensions",%
    "DiracComb", "DiracDelta", "DirectedEdge", "DirectedEdges",%
    "DirectedGraph", "DirectedGraphQ", "DirectedInfinity", "Direction",%
    "Directive", "Directory", "DirectoryName", "DirectoryQ",%
    "DirectoryStack", "DirichletBeta", "DirichletCharacter",%
    "DirichletCondition", "DirichletConvolve", "DirichletDistribution",%
    "DirichletEta", "DirichletL", "DirichletLambda",%
    "DirichletTransform", "DirichletWindow", "DisableConsolePrintPacket",%
    "DiscreteChirpZTransform", "DiscreteConvolve", "DiscreteDelta",%
    "DiscreteHadamardTransform", "DiscreteIndicator",%
    "DiscreteLQEstimatorGains", "DiscreteLQRegulatorGains",%
    "DiscreteLyapunovSolve", "DiscreteMarkovProcess", "DiscretePlot",%
    "DiscretePlot3D", "DiscreteRatio", "DiscreteRiccatiSolve",%
    "DiscreteShift", "DiscreteTimeModelQ", "DiscreteUniformDistribution",%
    "DiscreteVariables", "DiscreteWaveletData",%
    "DiscreteWaveletPacketTransform", "DiscreteWaveletTransform",%
    "DiscretizeGraphics", "DiscretizeRegion", "Discriminant",%
    "DisjointQ", "Disjunction", "Disk", "DiskBox", "DiskMatrix",%
    "DiskSegment", "Dispatch", "DispatchQ",%
    "DispersionEstimatorFunction", "Display", "DisplayAllSteps",%
    "DisplayEndPacket", "DisplayFlushImagePacket", "DisplayForm",%
    "DisplayFunction", "DisplayPacket", "DisplayRules",%
    "DisplaySetSizePacket", "DisplayString", "DisplayTemporary",%
    "DisplayWith", "DisplayWithRef", "DisplayWithVariable",%
    "DistanceFunction", "DistanceMatrix", "DistanceTransform",%
    "Distribute", "Distributed", "DistributedContexts",%
    "DistributeDefinitions", "DistributionChart", "DistributionDomain",%
    "DistributionFitTest", "DistributionParameterAssumptions",%
    "DistributionParameterQ", "Dithering", "Div", "Divergence", "Divide",%
    "DivideBy", "Dividers", "Divisible", "Divisors", "DivisorSigma",%
    "DivisorSum", "DMSList", "DMSString", "Do", "DockedCells",%
    "DocumentGenerator", "DocumentGeneratorInformation",%
    "DocumentGeneratorInformationData", "DocumentGenerators",%
    "DocumentNotebook", "DominantColors", "DOSTextFormat", "Dot",%
    "DotDashed", "DotEqual", "DotPlusLayer", "Dotted",%
    "DoubleBracketingBar", "DoubleContourIntegral", "DoubleDownArrow",%
    "DoubleLeftArrow", "DoubleLeftRightArrow", "DoubleLeftTee",%
    "DoubleLongLeftArrow", "DoubleLongLeftRightArrow",%
    "DoubleLongRightArrow", "DoubleRightArrow", "DoubleRightTee",%
    "DoubleUpArrow", "DoubleUpDownArrow", "DoubleVerticalBar",%
    "DoublyInfinite", "Down", "DownArrow", "DownArrowBar",%
    "DownArrowUpArrow", "DownLeftRightVector", "DownLeftTeeVector",%
    "DownLeftVector", "DownLeftVectorBar", "DownRightTeeVector",%
    "DownRightVector", "DownRightVectorBar", "Downsample", "DownTee",%
    "DownTeeArrow", "DownValues", "DragAndDrop", "DrawEdges",%
    "DrawFrontFaces", "DrawHighlighted", "Drop", "DropoutLayer",%
    "DSolve", "DSolveValue", "Dt", "DualLinearProgramming",%
    "DualSystemsModel", "DumpGet", "DumpSave", "DuplicateFreeQ",%
    "Duration", "Dynamic", "DynamicBox", "DynamicBoxOptions",%
    "DynamicEvaluationTimeout", "DynamicGeoGraphics", "DynamicImage",%
    "DynamicLocation", "DynamicModule", "DynamicModuleBox",%
    "DynamicModuleBoxOptions", "DynamicModuleParent",%
    "DynamicModuleValues", "DynamicName", "DynamicNamespace",%
    "DynamicReference", "DynamicSetting", "DynamicUpdating",%
    "DynamicWrapper", "DynamicWrapperBox", "DynamicWrapperBoxOptions",%
    "E", "EarthImpactData", "EarthquakeData", "EccentricityCentrality",%
    "Echo", "EchoFunction", "EclipseType", "EdgeAdd",%
    "EdgeBetweennessCentrality", "EdgeCapacity", "EdgeCapForm",%
    "EdgeColor", "EdgeConnectivity", "EdgeContract", "EdgeCost",%
    "EdgeCount", "EdgeCoverQ", "EdgeCycleMatrix", "EdgeDashing",%
    "EdgeDelete", "EdgeDetect", "EdgeForm", "EdgeIndex", "EdgeJoinForm",%
    "EdgeLabeling", "EdgeLabels", "EdgeLabelStyle", "EdgeList",%
    "EdgeOpacity", "EdgeQ", "EdgeRenderingFunction", "EdgeRules",%
    "EdgeShapeFunction", "EdgeStyle", "EdgeThickness", "EdgeWeight",%
    "Editable", "EditButtonSettings", "EditCellTagsSettings",%
    "EditDistance", "EffectiveInterest", "Eigensystem", "Eigenvalues",%
    "EigenvectorCentrality", "Eigenvectors", "Element", "ElementData",%
    "ElementwiseLayer", "ElidedForms", "Eliminate", "EliminationOrder",%
    "Ellipsoid", "EllipticE", "EllipticExp", "EllipticExpPrime",%
    "EllipticF", "EllipticFilterModel", "EllipticK", "EllipticLog",%
    "EllipticNomeQ", "EllipticPi", "EllipticReducedHalfPeriods",%
    "EllipticTheta", "EllipticThetaPrime", "EmbedCode", "EmbeddedHTML",%
    "EmbeddedService", "EmbeddingLayer", "EmbeddingObject", "EmitSound",%
    "EmphasizeSyntaxErrors", "EmpiricalDistribution", "Empty",%
    "EmptyGraphQ", "EmptyRegion", "EnableConsolePrintPacket", "Enabled",%
    "Encode", "Encrypt", "EncryptedObject", "End", "EndAdd",%
    "EndDialogPacket", "EndFrontEndInteractionPacket", "EndOfBuffer",%
    "EndOfFile", "EndOfLine", "EndOfString", "EndPackage",%
    "EngineEnvironment", "EngineeringForm", "Enter",%
    "EnterExpressionPacket", "EnterTextPacket", "Entity", "EntityClass",%
    "EntityClassList", "EntityCopies", "EntityGroup", "EntityInstance",%
    "EntityList", "EntityProperties", "EntityProperty",%
    "EntityPropertyClass", "EntityStore", "EntityTypeName",%
    "EntityValue", "Entropy", "EntropyFilter", "Environment", "Epilog",%
    "EpilogFunction", "Equal", "EqualColumns", "EqualRows", "EqualTilde",%
    "EqualTo", "EquatedTo", "Equilibrium", "EquirippleFilterKernel",%
    "Equivalent", "Erf", "Erfc", "Erfi", "ErlangB", "ErlangC",%
    "ErlangDistribution", "Erosion", "ErrorBox", "ErrorBoxOptions",%
    "ErrorNorm", "ErrorPacket", "ErrorsDialogSettings", "EscapeRadius",%
    "EstimatedBackground", "EstimatedDistribution", "EstimatedProcess",%
    "EstimatorGains", "EstimatorRegulator", "EuclideanDistance",%
    "EulerAngles", "EulerE", "EulerGamma", "EulerianGraphQ",%
    "EulerMatrix", "EulerPhi", "Evaluatable", "Evaluate", "Evaluated",%
    "EvaluatePacket", "EvaluateScheduledTask", "EvaluationBox",%
    "EvaluationCell", "EvaluationCompletionAction", "EvaluationData",%
    "EvaluationElements", "EvaluationMode", "EvaluationMonitor",%
    "EvaluationNotebook", "EvaluationObject", "EvaluationOrder",%
    "Evaluator", "EvaluatorNames", "EvenQ", "EventData",%
    "EventEvaluator", "EventHandler", "EventHandlerTag", "EventLabels",%
    "EventSeries", "ExactBlackmanWindow", "ExactNumberQ",%
    "ExactRootIsolation", "ExampleData", "Except", "ExcludedForms",%
    "ExcludedLines", "ExcludedPhysicalQuantities", "ExcludePods",%
    "Exclusions", "ExclusionsStyle", "Exists", "Exit", "ExitDialog",%
    "ExoplanetData", "Exp", "Expand", "ExpandAll", "ExpandDenominator",%
    "ExpandFileName", "ExpandNumerator", "Expectation", "ExpectationE",%
    "ExpectedValue", "ExpGammaDistribution", "ExpIntegralE",%
    "ExpIntegralEi", "Exponent", "ExponentFunction",%
    "ExponentialDistribution", "ExponentialFamily",%
    "ExponentialGeneratingFunction", "ExponentialMovingAverage",%
    "ExponentialPowerDistribution", "ExponentPosition", "ExponentStep",%
    "Export", "ExportAutoReplacements", "ExportForm", "ExportPacket",%
    "ExportString", "Expression", "ExpressionCell", "ExpressionPacket",%
    "ExpressionUUID", "ExpToTrig", "ExtendedGCD", "ExtensibleParameters",%
    "Extension", "ExtentElementFunction", "ExtentMarkers", "ExtentSize",%
    "ExternalBundle", "ExternalCall", "ExternalDataCharacterEncoding",%
    "ExternalFunctionName", "ExternalOptions", "ExternalTypeSignature",%
    "Extract", "ExtractArchive", "ExtremeValueDistribution", "FaceForm",%
    "FaceGrids", "FaceGridsStyle", "Factor", "FactorComplete",%
    "Factorial", "Factorial2", "FactorialMoment",%
    "FactorialMomentGeneratingFunction", "FactorialPower",%
    "FactorInteger", "FactorList", "FactorSquareFree",%
    "FactorSquareFreeList", "FactorTerms", "FactorTermsList", "Fail",%
    "Failure", "FailureAction", "FailureDistribution", "FailureQ",%
    "False", "FareySequence", "FARIMAProcess", "FeatureDistance",%
    "FeatureExtract", "FeatureExtraction", "FeatureExtractor",%
    "FeatureExtractorFunction", "FeatureNames", "FeatureTypes",%
    "FEDisableConsolePrintPacket", "FeedbackLinearize", "FeedbackSector",%
    "FeedbackSectorStyle", "FeedbackType", "FEEnableConsolePrintPacket",%
    "FetalGrowthData", "Fibonacci", "Fibonorial", "FieldHint",%
    "FieldHintStyle", "FieldMasked", "FieldSize", "File", "FileBaseName",%
    "FileByteCount", "FileDate", "FileExistsQ", "FileExtension",%
    "FileFormat", "FileHash", "FileInformation", "FileName",%
    "FileNameDepth", "FileNameDialogSettings", "FileNameDrop",%
    "FileNameForms", "FileNameJoin", "FileNames", "FileNameSetter",%
    "FileNameSplit", "FileNameTake", "FilePrint", "FileSystemMap",%
    "FileSystemScan", "FileTemplate", "FileTemplateApply", "FileType",%
    "FilledCurve", "FilledCurveBox", "FilledCurveBoxOptions", "Filling",%
    "FillingStyle", "FillingTransform", "FilterRules", "FinancialBond",%
    "FinancialData", "FinancialDerivative", "FinancialIndicator", "Find",%
    "FindArgMax", "FindArgMin", "FindChannels", "FindClique",%
    "FindClusters", "FindCookies", "FindCurvePath", "FindCycle",%
    "FindDevices", "FindDistribution", "FindDistributionParameters",%
    "FindDivisions", "FindEdgeCover", "FindEdgeCut",%
    "FindEdgeIndependentPaths", "FindEulerianCycle", "FindFaces",%
    "FindFile", "FindFit", "FindFormula", "FindFundamentalCycles",%
    "FindGeneratingFunction", "FindGeoLocation",%
    "FindGeometricTransform", "FindGraphCommunities",%
    "FindGraphIsomorphism", "FindGraphPartition", "FindHamiltonianCycle",%
    "FindHamiltonianPath", "FindHiddenMarkovStates",%
    "FindIndependentEdgeSet", "FindIndependentVertexSet", "FindInstance",%
    "FindIntegerNullVector", "FindKClan", "FindKClique", "FindKClub",%
    "FindKPlex", "FindLibrary", "FindLinearRecurrence", "FindList",%
    "FindMaximum", "FindMaximumFlow", "FindMaxValue", "FindMeshDefects",%
    "FindMinimum", "FindMinimumCostFlow", "FindMinimumCut",%
    "FindMinValue", "FindPath", "FindPeaks", "FindPermutation",%
    "FindPostmanTour", "FindProcessParameters", "FindRoot",%
    "FindSequenceFunction", "FindSettings", "FindShortestPath",%
    "FindShortestTour", "FindSpanningTree", "FindThreshold",%
    "FindTransientRepeat", "FindVertexCover", "FindVertexCut",%
    "FindVertexIndependentPaths", "Fine", "FinishDynamic",%
    "FiniteAbelianGroupCount", "FiniteGroupCount", "FiniteGroupData",%
    "First", "FirstCase", "FirstPassageTimeDistribution",%
    "FirstPosition", "FischerGroupFi22", "FischerGroupFi23",%
    "FischerGroupFi24Prime", "FisherHypergeometricDistribution",%
    "FisherRatioTest", "FisherZDistribution", "Fit", "FitAll",%
    "FittedModel", "FixedOrder", "FixedPoint", "FixedPointList",%
    "FlashSelection", "Flat", "Flatten", "FlattenAt", "FlattenLayer",%
    "FlatTopWindow", "FlipView", "Floor", "FlowPolynomial",%
    "FlushPrintOutputPacket", "Fold", "FoldList", "FoldPair",%
    "FoldPairList", "FollowRedirects", "Font", "FontColor", "FontFamily",%
    "FontForm", "FontName", "FontOpacity", "FontPostScriptName",%
    "FontProperties", "FontReencoding", "FontSize", "FontSlant",%
    "FontSubstitutions", "FontTracking", "FontVariations", "FontWeight",%
    "For", "ForAll", "Format", "FormatRules", "FormatType",%
    "FormatTypeAutoConvert", "FormatValues", "FormBox", "FormBoxOptions",%
    "FormControl", "FormFunction", "FormLayoutFunction", "FormObject",%
    "FormPage", "FormTheme", "FormulaData", "FormulaLookup",%
    "FortranForm", "Forward", "ForwardBackward", "Fourier",%
    "FourierCoefficient", "FourierCosCoefficient", "FourierCosSeries",%
    "FourierCosTransform", "FourierDCT", "FourierDCTFilter",%
    "FourierDCTMatrix", "FourierDST", "FourierDSTMatrix",%
    "FourierMatrix", "FourierParameters", "FourierSequenceTransform",%
    "FourierSeries", "FourierSinCoefficient", "FourierSinSeries",%
    "FourierSinTransform", "FourierTransform", "FourierTrigSeries",%
    "FractionalBrownianMotionProcess", "FractionalGaussianNoiseProcess",%
    "FractionalPart", "FractionBox", "FractionBoxOptions",%
    "FractionLine", "Frame", "FrameBox", "FrameBoxOptions", "Framed",%
    "FrameInset", "FrameLabel", "Frameless", "FrameMargins",%
    "FrameStyle", "FrameTicks", "FrameTicksStyle", "FRatioDistribution",%
    "FrechetDistribution", "FreeQ", "FrenetSerretSystem",%
    "FrequencySamplingFilterKernel", "FresnelC", "FresnelF", "FresnelG",%
    "FresnelS", "Friday", "FrobeniusNumber", "FrobeniusSolve",%
    "FromCharacterCode", "FromCoefficientRules", "FromContinuedFraction",%
    "FromDate", "FromDigits", "FromDMS", "FromEntity", "FromJulianDate",%
    "FromLetterNumber", "FromPolarCoordinates", "FromRomanNumeral",%
    "FromSphericalCoordinates", "FromUnixTime", "Front",%
    "FrontEndDynamicExpression", "FrontEndEventActions",%
    "FrontEndExecute", "FrontEndObject", "FrontEndResource",%
    "FrontEndResourceString", "FrontEndStackSize", "FrontEndToken",%
    "FrontEndTokenExecute", "FrontEndValueCache", "FrontEndVersion",%
    "FrontFaceColor", "FrontFaceOpacity", "Full", "FullAxes",%
    "FullDefinition", "FullForm", "FullGraphics",%
    "FullInformationOutputRegulator", "FullOptions", "FullRegion",%
    "FullSimplify", "Function", "FunctionDomain", "FunctionExpand",%
    "FunctionInterpolation", "FunctionPeriod", "FunctionRange",%
    "FunctionSpace", "FussellVeselyImportance", "GaborFilter",%
    "GaborMatrix", "GaborWavelet", "GainMargins", "GainPhaseMargins",%
    "GalaxyData", "GalleryView", "Gamma", "GammaDistribution",%
    "GammaRegularized", "GapPenalty", "GARCHProcess", "Gather",%
    "GatherBy", "GaugeFaceElementFunction", "GaugeFaceStyle",%
    "GaugeFrameElementFunction", "GaugeFrameSize", "GaugeFrameStyle",%
    "GaugeLabels", "GaugeMarkers", "GaugeStyle", "GaussianFilter",%
    "GaussianIntegers", "GaussianMatrix",%
    "GaussianOrthogonalMatrixDistribution",%
    "GaussianSymplecticMatrixDistribution",%
    "GaussianUnitaryMatrixDistribution", "GaussianWindow", "GCD",%
    "GegenbauerC", "General", "GeneralizedLinearModelFit",%
    "GenerateAsymmetricKeyPair", "GenerateConditions", "GeneratedCell",%
    "GeneratedDocumentBinding", "GenerateDocument",%
    "GeneratedParameters", "GenerateHTTPResponse",%
    "GenerateSymmetricKey", "GeneratingFunction", "GeneratorDescription",%
    "GeneratorHistoryLength", "GeneratorOutputType", "Generic",%
    "GenericCylindricalDecomposition", "GenomeData", "GenomeLookup",%
    "GeoArea", "GeoBackground", "GeoBoundingBox", "GeoBounds",%
    "GeoBoundsRegion", "GeoCenter", "GeoCircle", "GeodesicClosing",%
    "GeodesicDilation", "GeodesicErosion", "GeodesicOpening",%
    "GeoDestination", "GeodesyData", "GeoDirection", "GeoDisk",%
    "GeoDisplacement", "GeoDistance", "GeoDistanceList",%
    "GeoElevationData", "GeoEntities", "GeoGraphics",%
    "GeogravityModelData", "GeoGridLines", "GeoGridLinesStyle",%
    "GeoGridPosition", "GeoGroup", "GeoHemisphere",%
    "GeoHemisphereBoundary", "GeoHistogram", "GeoIdentify", "GeoLabels",%
    "GeoLength", "GeoListPlot", "GeoLocation", "GeologicalPeriodData",%
    "GeomagneticModelData", "GeoMarker",%
    "GeometricBrownianMotionProcess", "GeometricDistribution",%
    "GeometricMean", "GeometricMeanFilter", "GeometricTransformation",%
    "GeometricTransformation3DBox",%
    "GeometricTransformation3DBoxOptions", "GeometricTransformationBox",%
    "GeometricTransformationBoxOptions", "GeoModel", "GeoNearest",%
    "GeoPath", "GeoPosition", "GeoPositionENU", "GeoPositionXYZ",%
    "GeoProjection", "GeoProjectionData", "GeoRange", "GeoRangePadding",%
    "GeoRegionValuePlot", "GeoScaleBar", "GeoServer", "GeoStyling",%
    "GeoStylingImageFunction", "GeoVariant", "GeoVisibleRegion",%
    "GeoVisibleRegionBoundary", "GeoWithinQ", "GeoZoomLevel",%
    "GestureHandler", "GestureHandlerTag", "Get",%
    "GetBoundingBoxSizePacket", "GetContext", "GetEnvironment",%
    "GetFileName", "GetFrontEndOptionsDataPacket",%
    "GetLinebreakInformationPacket", "GetMenusPacket",%
    "GetPageBreakInformationPacket", "Glaisher",%
    "GlobalClusteringCoefficient", "GlobalPreferences", "GlobalSession",%
    "Glow", "GoldenAngle", "GoldenRatio", "GompertzMakehamDistribution",%
    "GoodmanKruskalGamma", "GoodmanKruskalGammaTest", "Goto", "Grad",%
    "Gradient", "GradientFilter", "GradientOrientationFilter",%
    "GrammarApply", "GrammarRules", "GrammarToken", "Graph", "Graph3D",%
    "GraphAssortativity", "GraphAutomorphismGroup", "GraphCenter",%
    "GraphComplement", "GraphData", "GraphDensity", "GraphDiameter",%
    "GraphDifference", "GraphDisjointUnion", "GraphDistance",%
    "GraphDistanceMatrix", "GraphElementData", "GraphEmbedding",%
    "GraphHighlight", "GraphHighlightStyle", "GraphHub", "Graphics",%
    "Graphics3D", "Graphics3DBox", "Graphics3DBoxOptions",%
    "GraphicsArray", "GraphicsBaseline", "GraphicsBox",%
    "GraphicsBoxOptions", "GraphicsColor", "GraphicsColumn",%
    "GraphicsComplex", "GraphicsComplex3DBox",%
    "GraphicsComplex3DBoxOptions", "GraphicsComplexBox",%
    "GraphicsComplexBoxOptions", "GraphicsContents", "GraphicsData",%
    "GraphicsGrid", "GraphicsGridBox", "GraphicsGroup",%
    "GraphicsGroup3DBox", "GraphicsGroup3DBoxOptions",%
    "GraphicsGroupBox", "GraphicsGroupBoxOptions", "GraphicsGrouping",%
    "GraphicsHighlightColor", "GraphicsRow", "GraphicsSpacing",%
    "GraphicsStyle", "GraphIntersection", "GraphLayout",%
    "GraphLinkEfficiency", "GraphPeriphery", "GraphPlot", "GraphPlot3D",%
    "GraphPower", "GraphPropertyDistribution", "GraphQ", "GraphRadius",%
    "GraphReciprocity", "GraphRoot", "GraphStyle", "GraphUnion", "Gray",%
    "GrayLevel", "Greater", "GreaterEqual", "GreaterEqualLess",%
    "GreaterEqualThan", "GreaterFullEqual", "GreaterGreater",%
    "GreaterLess", "GreaterSlantEqual", "GreaterThan", "GreaterTilde",%
    "Green", "GreenFunction", "Grid", "GridBaseline", "GridBox",%
    "GridBoxAlignment", "GridBoxBackground", "GridBoxDividers",%
    "GridBoxFrame", "GridBoxItemSize", "GridBoxItemStyle",%
    "GridBoxOptions", "GridBoxSpacings", "GridCreationSettings",%
    "GridDefaultElement", "GridElementStyleOptions", "GridFrame",%
    "GridFrameMargins", "GridGraph", "GridLines", "GridLinesStyle",%
    "GroebnerBasis", "GroupActionBase", "GroupBy", "GroupCentralizer",%
    "GroupElementFromWord", "GroupElementPosition", "GroupElementQ",%
    "GroupElements", "GroupElementToWord", "GroupGenerators",%
    "Groupings", "GroupMultiplicationTable", "GroupOrbits", "GroupOrder",%
    "GroupPageBreakWithin", "GroupSetwiseStabilizer", "GroupStabilizer",%
    "GroupStabilizerChain", "GroupTogetherGrouping",%
    "GroupTogetherNestedGrouping", "GrowCutComponents", "Gudermannian",%
    "GuidedFilter", "GumbelDistribution", "HaarWavelet",%
    "HadamardMatrix", "HalfLine", "HalfNormalDistribution", "HalfPlane",%
    "HalfSpace", "HamiltonianGraphQ", "HammingDistance", "HammingWindow",%
    "HandlerFunctions", "HandlerFunctionsKeys", "HankelH1", "HankelH2",%
    "HankelMatrix", "HannPoissonWindow", "HannWindow",%
    "HaradaNortonGroupHN", "HararyGraph", "HarmonicMean",%
    "HarmonicMeanFilter", "HarmonicNumber", "Hash", "Haversine",%
    "HazardFunction", "Head", "HeadCompose", "HeaderLines", "Heads",%
    "HeavisideLambda", "HeavisidePi", "HeavisideTheta", "HeldGroupHe",%
    "HeldPart", "HelpBrowserLookup", "HelpBrowserNotebook",%
    "HelpBrowserSettings", "Here", "HermiteDecomposition", "HermiteH",%
    "HermitianMatrixQ", "HessenbergDecomposition", "Hessian",%
    "HexadecimalCharacter", "Hexahedron", "HexahedronBox",%
    "HexahedronBoxOptions", "HiddenMarkovProcess", "HiddenSurface",%
    "Highlighted", "HighlightGraph", "HighlightImage", "HighlightMesh",%
    "HighpassFilter", "HigmanSimsGroupHS", "HilbertFilter",%
    "HilbertMatrix", "Histogram", "Histogram3D", "HistogramDistribution",%
    "HistogramList", "HistogramTransform",%
    "HistogramTransformInterpolation", "HistoricalPeriodData",%
    "HitMissTransform", "HITSCentrality", "HodgeDual", "HoeffdingD",%
    "HoeffdingDTest", "Hold", "HoldAll", "HoldAllComplete",%
    "HoldComplete", "HoldFirst", "HoldForm", "HoldPattern", "HoldRest",%
    "HolidayCalendar", "HomeDirectory", "HomePage", "Horizontal",%
    "HorizontalForm", "HorizontalGauge", "HorizontalScrollPosition",%
    "HornerForm", "HostLookup", "HotellingTSquareDistribution",%
    "HoytDistribution", "HTMLSave", "HTTPErrorResponse", "HTTPRedirect",%
    "HTTPRequest", "HTTPRequestData", "HTTPResponse", "Hue",%
    "HumanGrowthData", "HumpDownHump", "HumpEqual", "HurwitzLerchPhi",%
    "HurwitzZeta", "HyperbolicDistribution", "HypercubeGraph",%
    "HyperexponentialDistribution", "Hyperfactorial",%
    "Hypergeometric0F1", "Hypergeometric0F1Regularized",%
    "Hypergeometric1F1", "Hypergeometric1F1Regularized",%
    "Hypergeometric2F1", "Hypergeometric2F1Regularized",%
    "HypergeometricDistribution", "HypergeometricPFQ",%
    "HypergeometricPFQRegularized", "HypergeometricU", "Hyperlink",%
    "HyperlinkCreationSettings", "Hyperplane", "Hyphenation",%
    "HyphenationOptions", "HypoexponentialDistribution",%
    "HypothesisTestData", "I", "IconData", "IconRules", "Identity",%
    "IdentityMatrix", "If", "IgnoreCase", "IgnoreDiacritics",%
    "IgnorePunctuation", "IgnoringInactive", "Im", "Image", "Image3D",%
    "Image3DSlices", "ImageAccumulate", "ImageAdd", "ImageAdjust",%
    "ImageAlign", "ImageApply", "ImageApplyIndexed", "ImageAspectRatio",%
    "ImageAssemble", "ImageCache", "ImageCacheValid", "ImageCapture",%
    "ImageChannels", "ImageClip", "ImageCollage", "ImageColorSpace",%
    "ImageCompose", "ImageConvolve", "ImageCooccurrence", "ImageCorners",%
    "ImageCorrelate", "ImageCorrespondingPoints", "ImageCrop",%
    "ImageData", "ImageDeconvolve", "ImageDemosaic", "ImageDifference",%
    "ImageDimensions", "ImageDisplacements", "ImageDistance",%
    "ImageEffect", "ImageExposureCombine", "ImageFeatureTrack",%
    "ImageFileApply", "ImageFileFilter", "ImageFileScan", "ImageFilter",%
    "ImageFocusCombine", "ImageForestingComponents",%
    "ImageFormattingWidth", "ImageForwardTransformation",%
    "ImageHistogram", "ImageIdentify", "ImageInstanceQ",%
    "ImageKeypoints", "ImageLevels", "ImageLines", "ImageMargins",%
    "ImageMarker", "ImageMarkers", "ImageMeasurements", "ImageMesh",%
    "ImageMultiply", "ImageOffset", "ImagePad", "ImagePadding",%
    "ImagePartition", "ImagePeriodogram",%
    "ImagePerspectiveTransformation", "ImageQ", "ImageRangeCache",%
    "ImageReflect", "ImageRegion", "ImageResize", "ImageResolution",%
    "ImageRotate", "ImageRotated", "ImageSaliencyFilter", "ImageScaled",%
    "ImageScan", "ImageSize", "ImageSizeAction", "ImageSizeCache",%
    "ImageSizeMultipliers", "ImageSizeRaw", "ImageSubtract", "ImageTake",%
    "ImageTransformation", "ImageTrim", "ImageType", "ImageValue",%
    "ImageValuePositions", "ImagingDevice", "ImplicitRegion", "Implies",%
    "Import", "ImportAutoReplacements", "ImportOptions", "ImportString",%
    "ImprovementImportance", "In", "Inactivate", "Inactive",%
    "IncidenceGraph", "IncidenceList", "IncidenceMatrix",%
    "IncludeConstantBasis", "IncludeFileExtension",%
    "IncludeGeneratorTasks", "IncludeInflections",%
    "IncludeMetaInformation", "IncludePods", "IncludeQuantities",%
    "IncludeSingularTerm", "IncludeWindowTimes", "Increment",%
    "IndefiniteMatrixQ", "Indent", "IndentingNewlineSpacings",%
    "IndentMaxFraction", "IndependenceTest", "IndependentEdgeSetQ",%
    "IndependentUnit", "IndependentVertexSetQ", "Indeterminate",%
    "IndeterminateThreshold", "IndexCreationOptions", "Indexed",%
    "IndexGraph", "IndexTag", "Inequality", "InexactNumberQ",%
    "InexactNumbers", "InfiniteLine", "InfinitePlane", "Infinity",%
    "Infix", "InflationAdjust", "InflationMethod", "Information",%
    "Inherited", "InheritScope", "InhomogeneousPoissonProcess",%
    "InitialEvaluationHistory", "Initialization", "InitializationCell",%
    "InitializationCellEvaluation", "InitializationCellWarning",%
    "InlineCounterAssignments", "InlineCounterIncrements", "InlinePart",%
    "InlineRules", "Inner", "Inpaint", "Input", "InputAliases",%
    "InputAssumptions", "InputAutoReplacements", "InputField",%
    "InputFieldBox", "InputFieldBoxOptions", "InputForm",%
    "InputGrouping", "InputNamePacket", "InputNotebook", "InputPacket",%
    "InputSettings", "InputStream", "InputString", "InputStringPacket",%
    "InputToBoxFormPacket", "Insert", "InsertionFunction",%
    "InsertionPointObject", "InsertLinebreaks", "InsertResults", "Inset",%
    "Inset3DBox", "Inset3DBoxOptions", "InsetBox", "InsetBoxOptions",%
    "Insphere", "Install", "InstallService", "InString", "Integer",%
    "IntegerDigits", "IntegerExponent", "IntegerLength", "IntegerName",%
    "IntegerPart", "IntegerPartitions", "IntegerQ", "IntegerReverse",%
    "Integers", "IntegerString", "Integral", "Integrate", "Interactive",%
    "InteractiveTradingChart", "Interlaced", "Interleaving",%
    "InternallyBalancedDecomposition", "InterpolatingFunction",%
    "InterpolatingPolynomial", "Interpolation", "InterpolationOrder",%
    "InterpolationPoints", "InterpolationPrecision", "Interpretation",%
    "InterpretationBox", "InterpretationBoxOptions",%
    "InterpretationFunction", "Interpreter", "InterpretTemplate",%
    "InterquartileRange", "Interrupt", "InterruptSettings",%
    "IntersectingQ", "Intersection", "Interval", "IntervalIntersection",%
    "IntervalMemberQ", "IntervalSlider", "IntervalUnion", "Into",%
    "Inverse", "InverseBetaRegularized", "InverseCDF",%
    "InverseChiSquareDistribution", "InverseContinuousWaveletTransform",%
    "InverseDistanceTransform", "InverseEllipticNomeQ", "InverseErf",%
    "InverseErfc", "InverseFourier", "InverseFourierCosTransform",%
    "InverseFourierSequenceTransform", "InverseFourierSinTransform",%
    "InverseFourierTransform", "InverseFunction", "InverseFunctions",%
    "InverseGammaDistribution", "InverseGammaRegularized",%
    "InverseGaussianDistribution", "InverseGudermannian",%
    "InverseHaversine", "InverseJacobiCD", "InverseJacobiCN",%
    "InverseJacobiCS", "InverseJacobiDC", "InverseJacobiDN",%
    "InverseJacobiDS", "InverseJacobiNC", "InverseJacobiND",%
    "InverseJacobiNS", "InverseJacobiSC", "InverseJacobiSD",%
    "InverseJacobiSN", "InverseLaplaceTransform",%
    "InverseMellinTransform", "InversePermutation", "InverseRadon",%
    "InverseSeries", "InverseSurvivalFunction",%
    "InverseTransformedRegion", "InverseWaveletTransform",%
    "InverseWeierstrassP", "InverseWishartMatrixDistribution",%
    "InverseZTransform", "Invisible", "InvisibleApplication",%
    "InvisibleTimes", "IPAddress", "IrreduciblePolynomialQ",%
    "IslandData", "IsolatingInterval", "IsomorphicGraphQ", "IsotopeData",%
    "Italic", "Item", "ItemAspectRatio", "ItemBox", "ItemBoxOptions",%
    "ItemSize", "ItemStyle", "ItoProcess", "JaccardDissimilarity",%
    "JacobiAmplitude", "Jacobian", "JacobiCD", "JacobiCN", "JacobiCS",%
    "JacobiDC", "JacobiDN", "JacobiDS", "JacobiNC", "JacobiND",%
    "JacobiNS", "JacobiP", "JacobiSC", "JacobiSD", "JacobiSN",%
    "JacobiSymbol", "JacobiZeta", "JankoGroupJ1", "JankoGroupJ2",%
    "JankoGroupJ3", "JankoGroupJ4", "JarqueBeraALMTest",%
    "JohnsonDistribution", "Join", "JoinAcross", "Joined", "JoinedCurve",%
    "JoinedCurveBox", "JoinedCurveBoxOptions", "JoinForm",%
    "JordanDecomposition", "JordanModelDecomposition", "JulianDate",%
    "JuliaSetBoettcher", "JuliaSetIterationCount", "JuliaSetPlot",%
    "JuliaSetPoints", "K", "KagiChart", "KaiserBesselWindow",%
    "KaiserWindow", "KalmanEstimator", "KalmanFilter",%
    "KarhunenLoeveDecomposition", "KaryTree", "KatzCentrality",%
    "KCoreComponents", "KDistribution", "KEdgeConnectedComponents",%
    "KEdgeConnectedGraphQ", "KelvinBei", "KelvinBer", "KelvinKei",%
    "KelvinKer", "KendallTau", "KendallTauTest", "KernelExecute",%
    "KernelMixtureDistribution", "Kernels", "Ket", "Key",%
    "KeyCollisionFunction", "KeyComplement", "KeyDrop", "KeyDropFrom",%
    "KeyExistsQ", "KeyFreeQ", "KeyIntersection", "KeyMap", "KeyMemberQ",%
    "KeypointStrength", "Keys", "KeySelect", "KeySort", "KeySortBy",%
    "KeyTake", "KeyUnion", "KeyValueMap", "KeyValuePattern", "Khinchin",%
    "KillProcess", "KirchhoffGraph", "KirchhoffMatrix",%
    "KleinInvariantJ", "KnapsackSolve", "KnightTourGraph", "KnotData",%
    "KnownUnitQ", "KolmogorovSmirnovTest", "KroneckerDelta",%
    "KroneckerModelDecomposition", "KroneckerProduct", "KroneckerSymbol",%
    "KuiperTest", "KumaraswamyDistribution", "Kurtosis",%
    "KuwaharaFilter", "KVertexConnectedComponents",%
    "KVertexConnectedGraphQ", "LABColor", "Label", "Labeled",%
    "LabeledSlider", "LabelingFunction", "LabelStyle", "LaguerreL",%
    "LakeData", "LambdaComponents", "LambertW", "LaminaData",%
    "LanczosWindow", "LandauDistribution", "Language",%
    "LanguageCategory", "LanguageData", "LanguageIdentify",%
    "LaplaceDistribution", "LaplaceTransform", "Laplacian",%
    "LaplacianFilter", "LaplacianGaussianFilter", "Large", "Larger",%
    "Last", "Latitude", "LatitudeLongitude", "LatticeData",%
    "LatticeReduce", "Launch", "LaunchKernels", "LayeredGraphPlot",%
    "LayerSizeFunction", "LayoutInformation", "LCHColor", "LCM",%
    "LeaderSize", "LeafCount", "LeapYearQ", "LeastSquares",%
    "LeastSquaresFilterKernel", "Left", "LeftArrow", "LeftArrowBar",%
    "LeftArrowRightArrow", "LeftDownTeeVector", "LeftDownVector",%
    "LeftDownVectorBar", "LeftRightArrow", "LeftRightVector", "LeftTee",%
    "LeftTeeArrow", "LeftTeeVector", "LeftTriangle", "LeftTriangleBar",%
    "LeftTriangleEqual", "LeftUpDownVector", "LeftUpTeeVector",%
    "LeftUpVector", "LeftUpVectorBar", "LeftVector", "LeftVectorBar",%
    "LegendAppearance", "Legended", "LegendFunction", "LegendLabel",%
    "LegendLayout", "LegendMargins", "LegendMarkers", "LegendMarkerSize",%
    "LegendreP", "LegendreQ", "LegendreType", "Length", "LengthWhile",%
    "LerchPhi", "Less", "LessEqual", "LessEqualGreater", "LessEqualThan",%
    "LessFullEqual", "LessGreater", "LessLess", "LessSlantEqual",%
    "LessThan", "LessTilde", "LetterCharacter", "LetterCounts",%
    "LetterNumber", "LetterQ", "Level", "LeveneTest", "LeviCivitaTensor",%
    "LevyDistribution", "Lexicographic", "LibraryDataType",%
    "LibraryFunction", "LibraryFunctionError",%
    "LibraryFunctionInformation", "LibraryFunctionLoad",%
    "LibraryFunctionUnload", "LibraryLoad", "LibraryUnload", "LicenseID",%
    "LiftingFilterData", "LiftingWaveletTransform", "LightBlue",%
    "LightBrown", "LightCyan", "Lighter", "LightGray", "LightGreen",%
    "Lighting", "LightingAngle", "LightMagenta", "LightOrange",%
    "LightPink", "LightPurple", "LightRed", "LightSources",%
    "LightYellow", "Likelihood", "Limit", "LimitsPositioning",%
    "LimitsPositioningTokens", "LindleyDistribution", "Line",%
    "Line3DBox", "Line3DBoxOptions", "LinearFilter",%
    "LinearFractionalTransform", "LinearGradientImage",%
    "LinearizingTransformationData", "LinearModelFit",%
    "LinearOffsetFunction", "LinearProgramming", "LinearRecurrence",%
    "LinearSolve", "LinearSolveFunction", "LineBox", "LineBoxOptions",%
    "LineBreak", "LinebreakAdjustments", "LineBreakChart",%
    "LinebreakSemicolonWeighting", "LineBreakWithin", "LineColor",%
    "LineGraph", "LineIndent", "LineIndentMaxFraction",%
    "LineIntegralConvolutionPlot", "LineIntegralConvolutionScale",%
    "LineLegend", "LineOpacity", "LineSpacing", "LineWrapParts",%
    "LinkActivate", "LinkClose", "LinkConnect", "LinkConnectedQ",%
    "LinkCreate", "LinkError", "LinkFlush", "LinkFunction", "LinkHost",%
    "LinkInterrupt", "LinkLaunch", "LinkMode", "LinkObject", "LinkOpen",%
    "LinkOptions", "LinkPatterns", "LinkProtocol", "LinkRankCentrality",%
    "LinkRead", "LinkReadHeld", "LinkReadyQ", "Links", "LinkService",%
    "LinkWrite", "LinkWriteHeld", "LiouvilleLambda", "List", "Listable",%
    "ListAnimate", "ListContourPlot", "ListContourPlot3D",%
    "ListConvolve", "ListCorrelate", "ListCurvePathPlot",%
    "ListDeconvolve", "ListDensityPlot", "ListDensityPlot3D", "Listen",%
    "ListFormat", "ListFourierSequenceTransform", "ListInterpolation",%
    "ListLineIntegralConvolutionPlot", "ListLinePlot",%
    "ListLogLinearPlot", "ListLogLogPlot", "ListLogPlot", "ListPicker",%
    "ListPickerBox", "ListPickerBoxBackground", "ListPickerBoxOptions",%
    "ListPlay", "ListPlot", "ListPlot3D", "ListPointPlot3D",%
    "ListPolarPlot", "ListQ", "ListSliceContourPlot3D",%
    "ListSliceDensityPlot3D", "ListSliceVectorPlot3D", "ListStepPlot",%
    "ListStreamDensityPlot", "ListStreamPlot", "ListSurfacePlot3D",%
    "ListVectorDensityPlot", "ListVectorPlot", "ListVectorPlot3D",%
    "ListZTransform", "Literal", "LiteralSearch",%
    "LocalAdaptiveBinarize", "LocalCache", "LocalClusteringCoefficient",%
    "LocalizeDefinitions", "LocalizeVariables", "LocalObject",%
    "LocalObjects", "LocalSymbol", "LocalTime", "LocalTimeZone",%
    "LocationEquivalenceTest", "LocationTest", "Locator",%
    "LocatorAutoCreate", "LocatorBox", "LocatorBoxOptions",%
    "LocatorCentering", "LocatorPane", "LocatorPaneBox",%
    "LocatorPaneBoxOptions", "LocatorRegion", "Locked", "Log", "Log10",%
    "Log2", "LogBarnesG", "LogGamma", "LogGammaDistribution",%
    "LogicalExpand", "LogIntegral", "LogisticDistribution",%
    "LogisticSigmoid", "LogitModelFit", "LogLikelihood", "LogLinearPlot",%
    "LogLogisticDistribution", "LogLogPlot",%
    "LogMultinormalDistribution", "LogNormalDistribution", "LogPlot",%
    "LogRankTest", "LogSeriesDistribution", "LongEqual", "Longest",%
    "LongestCommonSequence", "LongestCommonSequencePositions",%
    "LongestCommonSubsequence", "LongestCommonSubsequencePositions",%
    "LongestMatch", "LongestOrderedSequence", "LongForm", "Longitude",%
    "LongLeftArrow", "LongLeftRightArrow", "LongRightArrow", "Lookup",%
    "Loopback", "LoopFreeGraphQ", "LowerCaseQ", "LowerLeftArrow",%
    "LowerRightArrow", "LowerTriangularize", "LowpassFilter",%
    "LQEstimatorGains", "LQGRegulator", "LQOutputRegulatorGains",%
    "LQRegulatorGains", "LUBackSubstitution", "LucasL",%
    "LuccioSamiComponents", "LUDecomposition", "LunarEclipse",%
    "LUVColor", "LyapunovSolve", "LyonsGroupLy", "MachineID",%
    "MachineName", "MachineNumberQ", "MachinePrecision",%
    "MacintoshSystemPageSetup", "Magenta", "Magnification", "Magnify",%
    "MailReceiverFunction", "MailResponseFunction", "MainSolve",%
    "MaintainDynamicCaches", "Majority", "MakeBoxes", "MakeExpression",%
    "MakeRules", "ManagedLibraryExpressionID",%
    "ManagedLibraryExpressionQ", "MandelbrotSetBoettcher",%
    "MandelbrotSetDistance", "MandelbrotSetIterationCount",%
    "MandelbrotSetMemberQ", "MandelbrotSetPlot", "MangoldtLambda",%
    "ManhattanDistance", "Manipulate", "Manipulator",%
    "MannedSpaceMissionData", "MannWhitneyTest", "MantissaExponent",%
    "Manual", "Map", "MapAll", "MapAt", "MapIndexed", "MAProcess",%
    "MapThread", "MarchenkoPasturDistribution", "MarcumQ",%
    "MardiaCombinedTest", "MardiaKurtosisTest", "MardiaSkewnessTest",%
    "MarginalDistribution", "MarkovProcessProperties", "Masking",%
    "MatchingDissimilarity", "MatchLocalNameQ", "MatchLocalNames",%
    "MatchQ", "Material", "MathematicalFunctionData",%
    "MathematicaNotation", "MathieuC", "MathieuCharacteristicA",%
    "MathieuCharacteristicB", "MathieuCharacteristicExponent",%
    "MathieuCPrime", "MathieuGroupM11", "MathieuGroupM12",%
    "MathieuGroupM22", "MathieuGroupM23", "MathieuGroupM24", "MathieuS",%
    "MathieuSPrime", "MathMLForm", "MathMLText", "Matrices", "MatrixExp",%
    "MatrixForm", "MatrixFunction", "MatrixLog",%
    "MatrixNormalDistribution", "MatrixPlot", "MatrixPower",%
    "MatrixPropertyDistribution", "MatrixQ", "MatrixRank",%
    "MatrixTDistribution", "Max", "MaxBend", "MaxCellMeasure",%
    "MaxDetect", "MaxExtraBandwidths", "MaxExtraConditions",%
    "MaxFeatureDisplacement", "MaxFeatures", "MaxFilter", "MaximalBy",%
    "Maximize", "MaxItems", "MaxIterations", "MaxMemoryUsed",%
    "MaxMixtureKernels", "MaxPlotPoints", "MaxPoints", "MaxRecursion",%
    "MaxStableDistribution", "MaxStepFraction", "MaxSteps",%
    "MaxStepSize", "MaxTrainingRounds", "MaxValue",%
    "MaxwellDistribution", "MaxWordGap", "McLaughlinGroupMcL", "Mean",%
    "MeanAbsoluteLossLayer", "MeanClusteringCoefficient",%
    "MeanDegreeConnectivity", "MeanDeviation", "MeanFilter",%
    "MeanGraphDistance", "MeanNeighborDegree", "MeanShift",%
    "MeanShiftFilter", "MeanSquaredLossLayer", "Median",%
    "MedianDeviation", "MedianFilter", "MedicalTestData", "Medium",%
    "MeijerG", "MeijerGReduce", "MeixnerDistribution", "MellinConvolve",%
    "MellinTransform", "MemberQ", "MemoryConstrained",%
    "MemoryConstraint", "MemoryInUse", "Menu", "MenuAppearance",%
    "MenuCommandKey", "MenuEvaluator", "MenuItem", "MenuPacket",%
    "MenuSortingValue", "MenuStyle", "MenuView", "Merge",%
    "MergeDifferences", "MersennePrimeExponent",%
    "MersennePrimeExponentQ", "Mesh", "MeshCellCentroid",%
    "MeshCellCount", "MeshCellHighlight", "MeshCellIndex",%
    "MeshCellLabel", "MeshCellMarker", "MeshCellMeasure",%
    "MeshCellQuality", "MeshCells", "MeshCellShapeFunction",%
    "MeshCellStyle", "MeshCoordinates", "MeshFunctions",%
    "MeshPrimitives", "MeshQualityGoal", "MeshRange",%
    "MeshRefinementFunction", "MeshRegion", "MeshRegionQ", "MeshShading",%
    "MeshStyle", "Message", "MessageDialog", "MessageList",%
    "MessageName", "MessageOptions", "MessagePacket", "Messages",%
    "MessagesNotebook", "MetaCharacters", "MetaInformation",%
    "MetaParameters", "MeteorShowerData", "Method", "MethodOptions",%
    "MexicanHatWavelet", "MeyerWavelet", "Min", "MinColorDistance",%
    "MinDetect", "MineralData", "MinFilter", "MinimalBy",%
    "MinimalPolynomial", "MinimalStateSpaceModel", "Minimize",%
    "MinimumTimeIncrement", "MinIntervalSize", "MinkowskiQuestionMark",%
    "MinMax", "MinorPlanetData", "Minors", "MinRecursion", "MinSize",%
    "MinStableDistribution", "Minus", "MinusPlus", "MinValue", "Missing",%
    "MissingBehavior", "MissingDataMethod", "MissingDataRules",%
    "MissingQ", "MissingString", "MissingStyle", "MittagLefflerE",%
    "MixedGraphQ", "MixedMagnitude", "MixedRadix", "MixedRadixQuantity",%
    "MixedUnit", "MixtureDistribution", "Mod", "Modal", "Mode",%
    "Modular", "ModularLambda", "Module", "Modulus", "MoebiusMu",%
    "Moment", "Momentary", "MomentConvert", "MomentEvaluate",%
    "MomentGeneratingFunction", "MomentOfInertia", "Monday", "Monitor",%
    "MonomialList", "MonomialOrder", "MonsterGroupM", "MoonPhase",%
    "MoonPosition", "MorletWavelet", "MorphologicalBinarize",%
    "MorphologicalBranchPoints", "MorphologicalComponents",%
    "MorphologicalEulerNumber", "MorphologicalGraph",%
    "MorphologicalPerimeter", "MorphologicalTransform", "MortalityData",%
    "Most", "MountainData", "MouseAnnotation", "MouseAppearance",%
    "MouseAppearanceTag", "MouseButtons", "Mouseover",%
    "MousePointerNote", "MousePosition", "MovieData", "MovingAverage",%
    "MovingMap", "MovingMedian", "MoyalDistribution", "Multicolumn",%
    "MultiedgeStyle", "MultigraphQ", "MultilaunchWarning",%
    "MultiLetterItalics", "MultiLetterStyle", "MultilineFunction",%
    "Multinomial", "MultinomialDistribution", "MultinormalDistribution",%
    "MultiplicativeOrder", "Multiplicity", "Multiselection",%
    "MultivariateHypergeometricDistribution",%
    "MultivariatePoissonDistribution", "MultivariateTDistribution", "N",%
    "NakagamiDistribution", "NameQ", "Names", "NamespaceBox", "Nand",%
    "NArgMax", "NArgMin", "NBernoulliB", "NCache", "NDEigensystem",%
    "NDEigenvalues", "NDSolve", "NDSolveValue", "Nearest",%
    "NearestFunction", "NearestNeighborGraph", "NebulaData",%
    "NeedCurrentFrontEndPackagePacket",%
    "NeedCurrentFrontEndSymbolsPacket", "NeedlemanWunschSimilarity",%
    "Needs", "Negative", "NegativeBinomialDistribution",%
    "NegativeDefiniteMatrixQ", "NegativeMultinomialDistribution",%
    "NegativeSemidefiniteMatrixQ", "NeighborhoodData",%
    "NeighborhoodGraph", "Nest", "NestedGreaterGreater",%
    "NestedLessLess", "NestedScriptRules", "NestGraph", "NestList",%
    "NestWhile", "NestWhileList", "NetChain", "NetDecoder", "NetEncoder",%
    "NetExtract", "NetGraph", "NetInitialize", "NetPort", "NetTrain",%
    "NeumannValue", "NevilleThetaC", "NevilleThetaD", "NevilleThetaN",%
    "NevilleThetaS", "NewPrimitiveStyle", "NExpectation", "Next",%
    "NextCell", "NextPrime", "NextScheduledTaskTime", "NHoldAll",%
    "NHoldFirst", "NHoldRest", "NicholsGridLines", "NicholsPlot",%
    "NightHemisphere", "NIntegrate", "NMaximize", "NMaxValue",%
    "NMinimize", "NMinValue", "NominalVariables", "NonAssociative",%
    "NoncentralBetaDistribution", "NoncentralChiSquareDistribution",%
    "NoncentralFRatioDistribution", "NoncentralStudentTDistribution",%
    "NonCommutativeMultiply", "NonConstants", "None", "NoneTrue",%
    "NonlinearModelFit", "NonlinearStateSpaceModel",%
    "NonlocalMeansFilter", "NonNegative", "NonPositive", "Nor",%
    "NorlundB", "Norm", "Normal", "NormalDistribution", "NormalGrouping",%
    "Normalize", "Normalized", "NormalizedSquaredEuclideanDistance",%
    "NormalMatrixQ", "NormalsFunction", "NormFunction", "Not",%
    "NotCongruent", "NotCupCap", "NotDoubleVerticalBar", "Notebook",%
    "NotebookApply", "NotebookAutoSave", "NotebookClose",%
    "NotebookConvertSettings", "NotebookCreate",%
    "NotebookCreateReturnObject", "NotebookDefault", "NotebookDelete",%
    "NotebookDirectory", "NotebookDynamicExpression", "NotebookEvaluate",%
    "NotebookEventActions", "NotebookFileName", "NotebookFind",%
    "NotebookFindReturnObject", "NotebookGet",%
    "NotebookGetLayoutInformationPacket",%
    "NotebookGetMisspellingsPacket", "NotebookImport",%
    "NotebookInformation", "NotebookInterfaceObject", "NotebookLocate",%
    "NotebookObject", "NotebookOpen", "NotebookOpenReturnObject",%
    "NotebookPath", "NotebookPrint", "NotebookPut",%
    "NotebookPutReturnObject", "NotebookRead",%
    "NotebookResetGeneratedCells", "Notebooks", "NotebookSave",%
    "NotebookSaveAs", "NotebookSelection",%
    "NotebookSetupLayoutInformationPacket", "NotebooksMenu",%
    "NotebookTemplate", "NotebookWrite", "NotElement", "NotEqualTilde",%
    "NotExists", "NotGreater", "NotGreaterEqual", "NotGreaterFullEqual",%
    "NotGreaterGreater", "NotGreaterLess", "NotGreaterSlantEqual",%
    "NotGreaterTilde", "Nothing", "NotHumpDownHump", "NotHumpEqual",%
    "NotificationFunction", "NotLeftTriangle", "NotLeftTriangleBar",%
    "NotLeftTriangleEqual", "NotLess", "NotLessEqual",%
    "NotLessFullEqual", "NotLessGreater", "NotLessLess",%
    "NotLessSlantEqual", "NotLessTilde", "NotNestedGreaterGreater",%
    "NotNestedLessLess", "NotPrecedes", "NotPrecedesEqual",%
    "NotPrecedesSlantEqual", "NotPrecedesTilde", "NotReverseElement",%
    "NotRightTriangle", "NotRightTriangleBar", "NotRightTriangleEqual",%
    "NotSquareSubset", "NotSquareSubsetEqual", "NotSquareSuperset",%
    "NotSquareSupersetEqual", "NotSubset", "NotSubsetEqual",%
    "NotSucceeds", "NotSucceedsEqual", "NotSucceedsSlantEqual",%
    "NotSucceedsTilde", "NotSuperset", "NotSupersetEqual", "NotTilde",%
    "NotTildeEqual", "NotTildeFullEqual", "NotTildeTilde",%
    "NotVerticalBar", "Now", "NoWhitespace", "NProbability", "NProduct",%
    "NProductFactors", "NRoots", "NSolve", "NSum", "NSumTerms",%
    "NuclearExplosionData", "NuclearReactorData", "Null", "NullRecords",%
    "NullSpace", "NullWords", "Number", "NumberCompose",%
    "NumberDecompose", "NumberExpand", "NumberFieldClassNumber",%
    "NumberFieldDiscriminant", "NumberFieldFundamentalUnits",%
    "NumberFieldIntegralBasis", "NumberFieldNormRepresentatives",%
    "NumberFieldRegulator", "NumberFieldRootsOfUnity",%
    "NumberFieldSignature", "NumberForm", "NumberFormat",%
    "NumberLinePlot", "NumberMarks", "NumberMultiplier", "NumberPadding",%
    "NumberPoint", "NumberQ", "NumberSeparator", "NumberSigns",%
    "NumberString", "Numerator", "NumericFunction", "NumericQ",%
    "NuttallWindow", "NValues", "NyquistGridLines", "NyquistPlot", "O",%
    "ObservabilityGramian", "ObservabilityMatrix",%
    "ObservableDecomposition", "ObservableModelQ", "OceanData", "OddQ",%
    "Off", "Offset", "OLEData", "On", "ONanGroupON", "Once",%
    "OneIdentity", "Opacity", "OpacityFunction",%
    "OpacityFunctionScaling", "Open", "OpenAppend", "Opener",%
    "OpenerBox", "OpenerBoxOptions", "OpenerView",%
    "OpenFunctionInspectorPacket", "Opening", "OpenRead",%
    "OpenSpecialOptions", "OpenTemporary", "OpenWrite", "Operate",%
    "OperatingSystem", "OptimumFlowData", "Optional", "OptionalElement",%
    "OptionInspectorSettings", "OptionQ", "Options", "OptionsPacket",%
    "OptionsPattern", "OptionValue", "OptionValueBox",%
    "OptionValueBoxOptions", "Or", "Orange", "Order",%
    "OrderDistribution", "OrderedQ", "Ordering", "Orderless",%
    "OrderlessPatternSequence", "OrnsteinUhlenbeckProcess",%
    "Orthogonalize", "OrthogonalMatrixQ", "Out", "Outer",%
    "OutputAutoOverwrite", "OutputControllabilityMatrix",%
    "OutputControllableModelQ", "OutputForm", "OutputFormData",%
    "OutputGrouping", "OutputMathEditExpression", "OutputNamePacket",%
    "OutputResponse", "OutputSizeLimit", "OutputStream", "Over",%
    "OverBar", "OverDot", "Overflow", "OverHat", "Overlaps", "Overlay",%
    "OverlayBox", "OverlayBoxOptions", "Overscript", "OverscriptBox",%
    "OverscriptBoxOptions", "OverTilde", "OverVector", "OverwriteTarget",%
    "OwenT", "OwnValues", "Package", "PackingMethod", "PaddedForm",%
    "Padding", "PaddingSize", "PadeApproximant", "PadLeft", "PadRight",%
    "PageBreakAbove", "PageBreakBelow", "PageBreakWithin",%
    "PageFooterLines", "PageFooters", "PageHeaderLines", "PageHeaders",%
    "PageHeight", "PageRankCentrality", "PageTheme", "PageWidth",%
    "Pagination", "PairedBarChart", "PairedHistogram",%
    "PairedSmoothHistogram", "PairedTTest", "PairedZTest",%
    "PaletteNotebook", "PalettePath", "PalindromeQ", "Pane", "PaneBox",%
    "PaneBoxOptions", "Panel", "PanelBox", "PanelBoxOptions", "Paneled",%
    "PaneSelector", "PaneSelectorBox", "PaneSelectorBoxOptions",%
    "PaperWidth", "ParabolicCylinderD", "ParagraphIndent",%
    "ParagraphSpacing", "ParallelArray", "ParallelCombine", "ParallelDo",%
    "Parallelepiped", "ParallelEvaluate", "Parallelization",%
    "Parallelize", "ParallelMap", "ParallelNeeds", "Parallelogram",%
    "ParallelProduct", "ParallelSubmit", "ParallelSum", "ParallelTable",%
    "ParallelTry", "Parameter", "ParameterEstimator",%
    "ParameterMixtureDistribution", "ParameterVariables",%
    "ParametricFunction", "ParametricNDSolve", "ParametricNDSolveValue",%
    "ParametricPlot", "ParametricPlot3D", "ParametricRegion",%
    "ParentBox", "ParentCell", "ParentConnect", "ParentDirectory",%
    "ParentForm", "Parenthesize", "ParentList", "ParentNotebook",%
    "ParetoDistribution", "ParkData", "Part", "PartBehavior",%
    "PartialCorrelationFunction", "PartialD", "ParticleAcceleratorData",%
    "ParticleData", "Partition", "PartitionGranularity", "PartitionsP",%
    "PartitionsQ", "PartOfSpeech", "PartProtection", "ParzenWindow",%
    "PascalDistribution", "PassEventsDown", "PassEventsUp", "Paste",%
    "PasteBoxFormInlineCells", "PasteButton", "Path", "PathGraph",%
    "PathGraphQ", "Pattern", "PatternSequence", "PatternTest",%
    "PauliMatrix", "PaulWavelet", "Pause", "PausedTime", "PDF",%
    "PeakDetect", "PearsonChiSquareTest", "PearsonCorrelationTest",%
    "PearsonDistribution", "PerfectNumber", "PerfectNumberQ",%
    "PerformanceGoal", "PeriodicBoundaryCondition",%
    "PeriodicInterpolation", "Periodogram", "PeriodogramArray",%
    "Permanent", "Permissions", "PermissionsGroup", "PermissionsGroups",%
    "PermissionsKey", "PermissionsKeys", "PermutationCycles",%
    "PermutationCyclesQ", "PermutationGroup", "PermutationLength",%
    "PermutationList", "PermutationListQ", "PermutationMax",%
    "PermutationMin", "PermutationOrder", "PermutationPower",%
    "PermutationProduct", "PermutationReplace", "Permutations",%
    "PermutationSupport", "Permute", "PeronaMalikFilter",%
    "Perpendicular", "PersonData", "PERTDistribution", "PetersenGraph",%
    "PhaseMargins", "PhaseRange", "PhysicalSystemData", "Pi", "Pick",%
    "PIDData", "PIDDerivativeFilter", "PIDFeedforward", "PIDTune",%
    "Piecewise", "PiecewiseExpand", "PieChart", "PieChart3D",%
    "PillaiTrace", "PillaiTraceTest", "PingTime", "Pink", "Pivoting",%
    "PixelConstrained", "PixelValue", "PixelValuePositions", "Placed",%
    "Placeholder", "PlaceholderReplace", "Plain", "PlanarGraph",%
    "PlanarGraphQ", "PlanckRadiationLaw", "PlaneCurveData",%
    "PlanetaryMoonData", "PlanetData", "PlantData", "Play", "PlayRange",%
    "Plot", "Plot3D", "Plot3Matrix", "PlotDivision", "PlotJoined",%
    "PlotLabel", "PlotLabels", "PlotLayout", "PlotLegends",%
    "PlotMarkers", "PlotPoints", "PlotRange", "PlotRangeClipping",%
    "PlotRangeClipPlanesStyle", "PlotRangePadding", "PlotRegion",%
    "PlotStyle", "PlotTheme", "Pluralize", "Plus", "PlusMinus",%
    "Pochhammer", "PodStates", "PodWidth", "Point", "Point3DBox",%
    "Point3DBoxOptions", "PointBox", "PointBoxOptions",%
    "PointFigureChart", "PointLegend", "PointSize",%
    "PoissonConsulDistribution", "PoissonDistribution", "PoissonProcess",%
    "PoissonWindow", "PolarAxes", "PolarAxesOrigin", "PolarGridLines",%
    "PolarPlot", "PolarTicks", "PoleZeroMarkers",%
    "PolyaAeppliDistribution", "PolyGamma", "Polygon", "Polygon3DBox",%
    "Polygon3DBoxOptions", "PolygonalNumber", "PolygonBox",%
    "PolygonBoxOptions", "PolygonHoleScale", "PolygonIntersections",%
    "PolygonScale", "PolyhedronData", "PolyLog", "PolynomialExtendedGCD",%
    "PolynomialForm", "PolynomialGCD", "PolynomialLCM", "PolynomialMod",%
    "PolynomialQ", "PolynomialQuotient", "PolynomialQuotientRemainder",%
    "PolynomialReduce", "PolynomialRemainder", "Polynomials",%
    "PoolingLayer", "PopupMenu", "PopupMenuBox", "PopupMenuBoxOptions",%
    "PopupView", "PopupWindow", "Position", "PositionIndex", "Positive",%
    "PositiveDefiniteMatrixQ", "PositiveSemidefiniteMatrixQ",%
    "PossibleZeroQ", "Postfix", "PostScript", "Power",%
    "PowerDistribution", "PowerExpand", "PowerMod", "PowerModList",%
    "PowerRange", "PowerSpectralDensity", "PowersRepresentations",%
    "PowerSymmetricPolynomial", "Precedence", "PrecedenceForm",%
    "Precedes", "PrecedesEqual", "PrecedesSlantEqual", "PrecedesTilde",%
    "Precision", "PrecisionGoal", "PreDecrement", "Predict",%
    "PredictionRoot", "PredictorFunction", "PredictorInformation",%
    "PredictorMeasurements", "PredictorMeasurementsObject",%
    "PreemptProtect", "PreferencesPath", "Prefix", "PreIncrement",%
    "Prepend", "PrependTo", "PreserveImageOptions", "Previous",%
    "PreviousCell", "PriceGraphDistribution", "PrimaryPlaceholder",%
    "Prime", "PrimeNu", "PrimeOmega", "PrimePi", "PrimePowerQ", "PrimeQ",%
    "Primes", "PrimeZetaP", "PrimitiveRoot", "PrimitiveRootList",%
    "PrincipalComponents", "PrincipalValue", "Print", "PrintableASCIIQ",%
    "PrintAction", "PrintForm", "PrintingCopies", "PrintingOptions",%
    "PrintingPageRange", "PrintingStartingPageNumber",%
    "PrintingStyleEnvironment", "Printout3D", "Printout3DPreviewer",%
    "PrintPrecision", "PrintTemporary", "Prism", "PrismBox",%
    "PrismBoxOptions", "PrivateCellOptions", "PrivateEvaluationOptions",%
    "PrivateFontOptions", "PrivateFrontEndOptions", "PrivateKey",%
    "PrivateNotebookOptions", "PrivatePaths", "Probability",%
    "ProbabilityDistribution", "ProbabilityPlot", "ProbabilityPr",%
    "ProbabilityScalePlot", "ProbitModelFit", "ProcessConnection",%
    "ProcessDirectory", "ProcessEnvironment", "Processes",%
    "ProcessEstimator", "ProcessInformation", "ProcessObject",%
    "ProcessParameterAssumptions", "ProcessParameterQ",%
    "ProcessStateDomain", "ProcessStatus", "ProcessTimeDomain",%
    "Product", "ProductDistribution", "ProductLog", "ProgressIndicator",%
    "ProgressIndicatorBox", "ProgressIndicatorBoxOptions", "Projection",%
    "Prolog", "PromptForm", "Properties", "Property", "PropertyList",%
    "PropertyValue", "Proportion", "Proportional", "Protect",%
    "Protected", "ProteinData", "Pruning", "PseudoInverse", "PublicKey",%
    "PulsarData", "PunctuationCharacter", "Purple", "Put", "PutAppend",%
    "Pyramid", "PyramidBox", "PyramidBoxOptions", "QBinomial",%
    "QFactorial", "QGamma", "QHypergeometricPFQ", "QPochhammer",%
    "QPolyGamma", "QRDecomposition", "QuadraticIrrationalQ", "Quantile",%
    "QuantilePlot", "Quantity", "QuantityArray", "QuantityDistribution",%
    "QuantityForm", "QuantityMagnitude", "QuantityQ", "QuantityThread",%
    "QuantityUnit", "QuantityVariable", "QuantityVariableCanonicalUnit",%
    "QuantityVariableDimensions", "QuantityVariableIdentifier",%
    "QuantityVariablePhysicalQuantity", "Quartics", "QuartileDeviation",%
    "Quartiles", "QuartileSkewness", "Query", "QueueingNetworkProcess",%
    "QueueingProcess", "QueueProperties", "Quiet", "Quit", "Quotient",%
    "QuotientRemainder", "RadialGradientImage", "RadialityCentrality",%
    "RadicalBox", "RadicalBoxOptions", "RadioButton", "RadioButtonBar",%
    "RadioButtonBox", "RadioButtonBoxOptions", "Radon", "RamanujanTau",%
    "RamanujanTauL", "RamanujanTauTheta", "RamanujanTauZ", "Ramp",%
    "Random", "RandomChoice", "RandomColor", "RandomComplex",%
    "RandomEntity", "RandomFunction", "RandomGraph", "RandomImage",%
    "RandomInteger", "RandomPermutation", "RandomPoint", "RandomPrime",%
    "RandomReal", "RandomSample", "RandomSeed", "RandomVariate",%
    "RandomWalkProcess", "RandomWord", "Range", "RangeFilter",%
    "RangeSpecification", "RankedMax", "RankedMin", "Raster", "Raster3D",%
    "Raster3DBox", "Raster3DBoxOptions", "RasterArray", "RasterBox",%
    "RasterBoxOptions", "Rasterize", "RasterSize", "Rational",%
    "RationalFunctions", "Rationalize", "Rationals", "Ratios", "Raw",%
    "RawArray", "RawBoxes", "RawData", "RawMedium",%
    "RayleighDistribution", "Re", "Read", "ReadLine", "ReadList",%
    "ReadProtected", "ReadString", "Real", "RealBlockDiagonalForm",%
    "RealDigits", "RealExponent", "Reals", "Reap", "RecognitionPrior",%
    "RecognitionThreshold", "Record", "RecordLists", "RecordSeparators",%
    "Rectangle", "RectangleBox", "RectangleBoxOptions", "RectangleChart",%
    "RectangleChart3D", "RecurrenceFilter", "RecurrenceTable",%
    "RecurringDigitsForm", "Red", "Reduce", "RefBox",%
    "ReferenceLineStyle", "ReferenceMarkers", "ReferenceMarkerStyle",%
    "Refine", "ReflectionMatrix", "ReflectionTransform", "Refresh",%
    "RefreshRate", "RegionBinarize", "RegionBoundary", "RegionBounds",%
    "RegionCentroid", "RegionDifference", "RegionDimension",%
    "RegionDistance", "RegionDistanceFunction",%
    "RegionEmbeddingDimension", "RegionFunction", "RegionIntersection",%
    "RegionMeasure", "RegionMember", "RegionMemberFunction",%
    "RegionMoment", "RegionNearest", "RegionNearestFunction",%
    "RegionPlot", "RegionPlot3D", "RegionProduct", "RegionQ",%
    "RegionResize", "RegionSize", "RegionSymmetricDifference",%
    "RegionUnion", "RegularExpression", "Regularization",%
    "RegularlySampledQ", "RegularPolygon", "ReIm", "Reinstall",%
    "RelationGraph", "Release", "ReleaseHold", "ReliabilityDistribution",%
    "ReliefImage", "ReliefPlot", "Remove", "RemoveAlphaChannel",%
    "RemoveAsynchronousTask", "RemoveBackground",%
    "RemoveChannelListener", "Removed", "RemoveDiacritics",%
    "RemoveInputStreamMethod", "RemoveOutputStreamMethod",%
    "RemoveProperty", "RemoveScheduledTask", "RemoveUsers",%
    "RenameDirectory", "RenameFile", "RenderAll", "RenderingOptions",%
    "RenewalProcess", "RenkoChart", "RepairMesh", "Repeated",%
    "RepeatedNull", "RepeatedString", "RepeatedTiming",%
    "RepeatingElement", "Replace", "ReplaceAll", "ReplaceHeldPart",%
    "ReplaceImageValue", "ReplaceList", "ReplacePart",%
    "ReplacePixelValue", "ReplaceRepeated", "RequiredPhysicalQuantities",%
    "Resampling", "ResamplingAlgorithmData", "ResamplingMethod",%
    "Rescale", "RescalingTransform", "ResetDirectory",%
    "ResetMenusPacket", "ResetScheduledTask", "ReshapeLayer", "Residue",%
    "Resolve", "ResourceAcquire", "ResourceData", "ResourceObject",%
    "ResourceRemove", "ResourceSearch", "ResourceSubmissionObject",%
    "ResourceSubmit", "ResponseForm", "Rest", "RestartInterval",%
    "Restricted", "Resultant", "ResumePacket", "Return",%
    "ReturnExpressionPacket", "ReturnInputFormPacket", "ReturnPacket",%
    "ReturnReceiptFunction", "ReturnTextPacket", "Reverse",%
    "ReverseBiorthogonalSplineWavelet", "ReverseElement",%
    "ReverseEquilibrium", "ReverseGraph", "ReverseUpEquilibrium",%
    "RevolutionAxis", "RevolutionPlot3D", "RGBColor", "RiccatiSolve",%
    "RiceDistribution", "RidgeFilter", "RiemannR", "RiemannSiegelTheta",%
    "RiemannSiegelZ", "RiemannXi", "Riffle", "Right", "RightArrow",%
    "RightArrowBar", "RightArrowLeftArrow", "RightComposition",%
    "RightCosetRepresentative", "RightDownTeeVector", "RightDownVector",%
    "RightDownVectorBar", "RightTee", "RightTeeArrow", "RightTeeVector",%
    "RightTriangle", "RightTriangleBar", "RightTriangleEqual",%
    "RightUpDownVector", "RightUpTeeVector", "RightUpVector",%
    "RightUpVectorBar", "RightVector", "RightVectorBar",%
    "RiskAchievementImportance", "RiskReductionImportance",%
    "RogersTanimotoDissimilarity", "RollPitchYawAngles",%
    "RollPitchYawMatrix", "RomanNumeral", "Root", "RootApproximant",%
    "RootIntervals", "RootLocusPlot", "RootMeanSquare", "RootOfUnityQ",%
    "RootReduce", "Roots", "RootSum", "Rotate", "RotateLabel",%
    "RotateLeft", "RotateRight", "RotationAction", "RotationBox",%
    "RotationBoxOptions", "RotationMatrix", "RotationTransform", "Round",%
    "RoundImplies", "RoundingRadius", "Row", "RowAlignments",%
    "RowBackgrounds", "RowBox", "RowHeights", "RowLines", "RowMinHeight",%
    "RowReduce", "RowsEqual", "RowSpacings", "RSolve", "RSolveValue",%
    "RudinShapiro", "RudvalisGroupRu", "Rule", "RuleCondition",%
    "RuleDelayed", "RuleForm", "RulePlot", "RulerUnits", "Run",%
    "RunProcess", "RunScheduledTask", "RunThrough", "RuntimeAttributes",%
    "RuntimeOptions", "RussellRaoDissimilarity", "SameQ", "SameTest",%
    "SampleDepth", "SampledSoundFunction", "SampledSoundList",%
    "SampleRate", "SamplingPeriod", "SARIMAProcess", "SARMAProcess",%
    "SASTriangle", "SatelliteData", "SatisfiabilityCount",%
    "SatisfiabilityInstances", "SatisfiableQ", "Saturday", "Save",%
    "Saveable", "SaveAutoDelete", "SaveDefinitions",%
    "SavitzkyGolayMatrix", "SawtoothWave", "Scale", "Scaled",%
    "ScaleDivisions", "ScaledMousePosition", "ScaleOrigin",%
    "ScalePadding", "ScaleRanges", "ScaleRangeStyle", "ScalingFunctions",%
    "ScalingMatrix", "ScalingTransform", "Scan", "ScheduledTask",%
    "ScheduledTaskActiveQ", "ScheduledTaskInformation",%
    "ScheduledTaskInformationData", "ScheduledTaskObject",%
    "ScheduledTasks", "SchurDecomposition", "ScientificForm", "ScorerGi",%
    "ScorerGiPrime", "ScorerHi", "ScorerHiPrime", "ScreenRectangle",%
    "ScreenStyleEnvironment", "ScriptBaselineShifts", "ScriptForm",%
    "ScriptLevel", "ScriptMinSize", "ScriptRules",%
    "ScriptSizeMultipliers", "Scrollbars", "ScrollingOptions",%
    "ScrollPosition", "SearchAdjustment", "SearchBoost",%
    "SearchIndexObject", "SearchIndices", "SearchQueryString",%
    "SearchResultObject", "SearchSynonyms", "Sec", "Sech",%
    "SechDistribution", "SectionGrouping", "SectorChart",%
    "SectorChart3D", "SectorOrigin", "SectorSpacing", "SeedRandom",%
    "Select", "Selectable", "SelectComponents", "SelectedCells",%
    "SelectedNotebook", "SelectFirst", "Selection", "SelectionAnimate",%
    "SelectionCell", "SelectionCellCreateCell",%
    "SelectionCellDefaultStyle", "SelectionCellParentStyle",%
    "SelectionCreateCell", "SelectionDebuggerTag",%
    "SelectionDuplicateCell", "SelectionEvaluate",%
    "SelectionEvaluateCreateCell", "SelectionMove",%
    "SelectionPlaceholder", "SelectionSetStyle", "SelectWithContents",%
    "SelfLoops", "SelfLoopStyle", "SemanticImport",%
    "SemanticImportString", "SemanticInterpretation",%
    "SemialgebraicComponentInstances", "SendMail", "SendMessage",%
    "Sequence", "SequenceAlignment", "SequenceCases", "SequenceCount",%
    "SequenceFold", "SequenceFoldList", "SequenceForm", "SequenceHold",%
    "SequenceLimit", "SequencePosition", "Series", "SeriesCoefficient",%
    "SeriesData", "ServiceConnect", "ServiceDisconnect",%
    "ServiceExecute", "ServiceObject", "SessionTime", "Set",%
    "SetAccuracy", "SetAlphaChannel", "SetAttributes", "Setbacks",%
    "SetBoxFormNamesPacket", "SetCloudDirectory", "SetCookies",%
    "SetDelayed", "SetDirectory", "SetEnvironment",%
    "SetEvaluationNotebook", "SetFileDate", "SetFileLoadingContext",%
    "SetNotebookStatusLine", "SetOptions", "SetOptionsPacket",%
    "SetPermissions", "SetPrecision", "SetProperty",%
    "SetSelectedNotebook", "SetSharedFunction", "SetSharedVariable",%
    "SetSpeechParametersPacket", "SetStreamPosition", "SetSystemOptions",%
    "Setter", "SetterBar", "SetterBox", "SetterBoxOptions", "Setting",%
    "SetUsers", "SetValue", "Shading", "Shallow", "ShannonWavelet",%
    "ShapiroWilkTest", "Share", "SharingList", "Sharpen",%
    "ShearingMatrix", "ShearingTransform", "ShellRegion",%
    "ShenCastanMatrix", "ShiftedGompertzDistribution",%
    "ShiftRegisterSequence", "Short", "ShortDownArrow", "Shortest",%
    "ShortestMatch", "ShortestPathFunction", "ShortLeftArrow",%
    "ShortRightArrow", "ShortUpArrow", "Show", "ShowAutoSpellCheck",%
    "ShowAutoStyles", "ShowCellBracket", "ShowCellLabel", "ShowCellTags",%
    "ShowClosedCellArea", "ShowContents", "ShowControls",%
    "ShowCursorTracker", "ShowGroupOpenCloseIcon", "ShowGroupOpener",%
    "ShowInvisibleCharacters", "ShowPageBreaks",%
    "ShowPredictiveInterface", "ShowSelection", "ShowShortBoxForm",%
    "ShowSpecialCharacters", "ShowStringCharacters", "ShowSyntaxStyles",%
    "ShrinkingDelay", "ShrinkWrapBoundingBox", "SiderealTime",%
    "SiegelTheta", "SiegelTukeyTest", "Sign", "Signature",%
    "SignedRankTest", "SignedRegionDistance", "SignificanceLevel",%
    "SignPadding", "SignTest", "SimilarityRules", "SimpleGraph",%
    "SimpleGraphQ", "Simplex", "Simplify", "Sin", "Sinc",%
    "SinghMaddalaDistribution", "SingleEvaluation",%
    "SingleLetterItalics", "SingleLetterStyle",%
    "SingularValueDecomposition", "SingularValueList",%
    "SingularValuePlot", "SingularValues", "Sinh", "SinhIntegral",%
    "SinIntegral", "SixJSymbol", "Skeleton", "SkeletonTransform",%
    "SkellamDistribution", "Skewness", "SkewNormalDistribution",%
    "SkinStyle", "Skip", "SliceContourPlot3D", "SliceDensityPlot3D",%
    "SliceDistribution", "SliceVectorPlot3D", "Slider", "Slider2D",%
    "Slider2DBox", "Slider2DBoxOptions", "SliderBox", "SliderBoxOptions",%
    "SlideView", "Slot", "SlotSequence", "Small", "SmallCircle",%
    "Smaller", "SmithDecomposition", "SmithDelayCompensator",%
    "SmithWatermanSimilarity", "SmoothDensityHistogram",%
    "SmoothHistogram", "SmoothHistogram3D", "SmoothKernelDistribution",%
    "Snippet", "SocialMediaData", "Socket", "SocketConnect",%
    "SocketObject", "SoftmaxLayer", "SokalSneathDissimilarity",%
    "SolarEclipse", "SolarSystemFeatureData", "SolidData",%
    "SolidRegionQ", "Solve", "SolveAlways", "SolveDelayed", "Sort",%
    "SortBy", "Sound", "SoundAndGraphics", "SoundNote", "SoundVolume",%
    "SourceLink", "Sow", "Space", "SpaceCurveData", "SpaceForm",%
    "Spacer", "Spacings", "Span", "SpanAdjustments",%
    "SpanCharacterRounding", "SpanFromAbove", "SpanFromBoth",%
    "SpanFromLeft", "SpanLineThickness", "SpanMaxSize", "SpanMinSize",%
    "SpanningCharacters", "SpanSymmetric", "SparseArray",%
    "SpatialGraphDistribution", "Speak", "SpeakTextPacket",%
    "SpearmanRankTest", "SpearmanRho", "SpeciesData", "SpecificityGoal",%
    "Spectrogram", "SpectrogramArray", "Specularity",%
    "SpellingCorrection", "SpellingCorrectionList",%
    "SpellingDictionaries", "SpellingDictionariesPath",%
    "SpellingOptions", "SpellingSuggestionsPacket", "Sphere",%
    "SphereBox", "SphericalBesselJ", "SphericalBesselY",%
    "SphericalHankelH1", "SphericalHankelH2", "SphericalHarmonicY",%
    "SphericalPlot3D", "SphericalRegion", "SphericalShell",%
    "SpheroidalEigenvalue", "SpheroidalJoiningFactor", "SpheroidalPS",%
    "SpheroidalPSPrime", "SpheroidalQS", "SpheroidalQSPrime",%
    "SpheroidalRadialFactor", "SpheroidalS1", "SpheroidalS1Prime",%
    "SpheroidalS2", "SpheroidalS2Prime", "Splice", "SplicedDistribution",%
    "SplineClosed", "SplineDegree", "SplineKnots", "SplineWeights",%
    "Split", "SplitBy", "SpokenString", "Sqrt", "SqrtBox",%
    "SqrtBoxOptions", "Square", "SquaredEuclideanDistance",%
    "SquareFreeQ", "SquareIntersection", "SquareMatrixQ", "SquaresR",%
    "SquareSubset", "SquareSubsetEqual", "SquareSuperset",%
    "SquareSupersetEqual", "SquareUnion", "SquareWave", "SSSTriangle",%
    "StabilityMargins", "StabilityMarginsStyle", "StableDistribution",%
    "Stack", "StackBegin", "StackComplete", "StackInhibit",%
    "StadiumShape", "StandardAtmosphereData", "StandardDeviation",%
    "StandardDeviationFilter", "StandardForm", "Standardize",%
    "Standardized", "StandardOceanData", "StandbyDistribution", "Star",%
    "StarClusterData", "StarData", "StarGraph", "StartAsynchronousTask",%
    "StartingStepSize", "StartOfLine", "StartOfString", "StartProcess",%
    "StartScheduledTask", "StartupSound", "StateDimensions",%
    "StateFeedbackGains", "StateOutputEstimator", "StateResponse",%
    "StateSpaceModel", "StateSpaceRealization", "StateSpaceTransform",%
    "StateTransformationLinearize", "StationaryDistribution",%
    "StationaryWaveletPacketTransform", "StationaryWaveletTransform",%
    "StatusArea", "StatusCentrality", "StepMonitor", "StieltjesGamma",%
    "StirlingS1", "StirlingS2", "StopAsynchronousTask",%
    "StoppingPowerData", "StopScheduledTask", "StrataVariables",%
    "StratonovichProcess", "StreamColorFunction",%
    "StreamColorFunctionScaling", "StreamDensityPlot", "StreamPlot",%
    "StreamPoints", "StreamPosition", "Streams", "StreamScale",%
    "StreamStyle", "String", "StringBreak", "StringByteCount",%
    "StringCases", "StringContainsQ", "StringCount", "StringDelete",%
    "StringDrop", "StringEndsQ", "StringExpression", "StringExtract",%
    "StringForm", "StringFormat", "StringFreeQ", "StringInsert",%
    "StringJoin", "StringLength", "StringMatchQ", "StringPadLeft",%
    "StringPadRight", "StringPart", "StringPartition", "StringPosition",%
    "StringQ", "StringRepeat", "StringReplace", "StringReplaceList",%
    "StringReplacePart", "StringReverse", "StringRiffle",%
    "StringRotateLeft", "StringRotateRight", "StringSkeleton",%
    "StringSplit", "StringStartsQ", "StringTake", "StringTemplate",%
    "StringToStream", "StringTrim", "StripBoxes", "StripOnInput",%
    "StripWrapperBoxes", "StrokeForm", "StructuralImportance",%
    "StructuredArray", "StructuredSelection", "StruveH", "StruveL",%
    "Stub", "StudentTDistribution", "Style", "StyleBox",%
    "StyleBoxAutoDelete", "StyleData", "StyleDefinitions", "StyleForm",%
    "StyleHints", "StyleKeyMapping", "StyleMenuListing",%
    "StyleNameDialogSettings", "StyleNames", "StylePrint",%
    "StyleSheetPath", "Subdivide", "Subfactorial", "Subgraph",%
    "SubMinus", "SubPlus", "SubresultantPolynomialRemainders",%
    "SubresultantPolynomials", "Subresultants", "Subscript",%
    "SubscriptBox", "SubscriptBoxOptions", "Subscripted", "Subsequences",%
    "Subset", "SubsetEqual", "SubsetQ", "Subsets", "SubStar",%
    "SubstitutionSystem", "Subsuperscript", "SubsuperscriptBox",%
    "SubsuperscriptBoxOptions", "Subtract", "SubtractFrom", "SubValues",%
    "Succeeds", "SucceedsEqual", "SucceedsSlantEqual", "SucceedsTilde",%
    "SuchThat", "Sum", "SumConvergence", "SummationLayer", "Sunday",%
    "SunPosition", "Sunrise", "Sunset", "SuperDagger", "SuperMinus",%
    "SupernovaData", "SuperPlus", "Superscript", "SuperscriptBox",%
    "SuperscriptBoxOptions", "Superset", "SupersetEqual", "SuperStar",%
    "Surd", "SurdForm", "SurfaceColor", "SurfaceData", "SurfaceGraphics",%
    "SurvivalDistribution", "SurvivalFunction", "SurvivalModel",%
    "SurvivalModelFit", "SuspendPacket", "SuzukiDistribution",%
    "SuzukiGroupSuz", "SwatchLegend", "Switch", "Symbol", "SymbolName",%
    "SymletWavelet", "Symmetric", "SymmetricGroup", "SymmetricKey",%
    "SymmetricMatrixQ", "SymmetricPolynomial", "SymmetricReduction",%
    "Symmetrize", "SymmetrizedArray", "SymmetrizedArrayRules",%
    "SymmetrizedDependentComponents", "SymmetrizedIndependentComponents",%
    "SymmetrizedReplacePart", "SynchronousInitialization",%
    "SynchronousUpdating", "Syntax", "SyntaxForm", "SyntaxInformation",%
    "SyntaxLength", "SyntaxPacket", "SyntaxQ", "SystemDialogInput",%
    "SystemException", "SystemGet", "SystemHelpPath",%
    "SystemInformation", "SystemInformationData", "SystemOpen",%
    "SystemOptions", "SystemsModelDelay", "SystemsModelDelayApproximate",%
    "SystemsModelDelete", "SystemsModelDimensions",%
    "SystemsModelExtract", "SystemsModelFeedbackConnect",%
    "SystemsModelLabels", "SystemsModelLinearity", "SystemsModelMerge",%
    "SystemsModelOrder", "SystemsModelParallelConnect",%
    "SystemsModelSeriesConnect", "SystemsModelStateFeedbackConnect",%
    "SystemsModelVectorRelativeOrders", "SystemStub", "Tab",%
    "TabFilling", "Table", "TableAlignments", "TableDepth",%
    "TableDirections", "TableForm", "TableHeadings", "TableSpacing",%
    "TableView", "TableViewBox", "TabSpacings", "TabView", "TabViewBox",%
    "TabViewBoxOptions", "TagBox", "TagBoxNote", "TagBoxOptions",%
    "TaggingRules", "TagSet", "TagSetDelayed", "TagStyle", "TagUnset",%
    "Take", "TakeDrop", "TakeLargest", "TakeLargestBy", "TakeSmallest",%
    "TakeSmallestBy", "TakeWhile", "Tally", "Tan", "Tanh",%
    "TargetDevice", "TargetFunctions", "TargetUnits", "TautologyQ",%
    "TelegraphProcess", "TemplateApply", "TemplateArgBox", "TemplateBox",%
    "TemplateBoxOptions", "TemplateEvaluate", "TemplateExpression",%
    "TemplateIf", "TemplateObject", "TemplateSequence", "TemplateSlot",%
    "TemplateSlotSequence", "TemplateUnevaluated", "TemplateVerbatim",%
    "TemplateWith", "TemporalData", "TemporalRegularity", "Temporary",%
    "TemporaryVariable", "TensorContract", "TensorDimensions",%
    "TensorExpand", "TensorProduct", "TensorQ", "TensorRank",%
    "TensorReduce", "TensorSymmetry", "TensorTranspose", "TensorWedge",%
    "TestID", "TestReport", "TestReportObject", "TestResultObject",%
    "Tetrahedron", "TetrahedronBox", "TetrahedronBoxOptions", "TeXForm",%
    "TeXSave", "Text", "Text3DBox", "Text3DBoxOptions", "TextAlignment",%
    "TextBand", "TextBoundingBox", "TextBox", "TextCases", "TextCell",%
    "TextClipboardType", "TextData", "TextElement", "TextForm",%
    "TextGrid", "TextJustification", "TextLine", "TextPacket",%
    "TextParagraph", "TextPosition", "TextRecognize", "TextSearch",%
    "TextSearchPage", "TextSearchReport", "TextSentences", "TextString",%
    "TextStructure", "TextStyle", "Texture", "TextureCoordinateFunction",%
    "TextureCoordinateScaling", "TextWords", "Therefore",%
    "ThermodynamicData", "ThermometerGauge", "Thick", "Thickness",%
    "Thin", "Thinning", "ThisLink", "ThompsonGroupTh", "Thread",%
    "ThreadDepth", "ThreeJSymbol", "Threshold", "Through", "Throw",%
    "ThueMorse", "Thumbnail", "Thursday", "Ticks", "TicksStyle", "Tilde",%
    "TildeEqual", "TildeFullEqual", "TildeTilde", "TimeConstrained",%
    "TimeConstraint", "TimeDirection", "TimeFormat", "TimelinePlot",%
    "TimeObject", "TimeObjectQ", "Times", "TimesBy", "TimeSeries",%
    "TimeSeriesAggregate", "TimeSeriesForecast", "TimeSeriesInsert",%
    "TimeSeriesInvertibility", "TimeSeriesMap", "TimeSeriesMapThread",%
    "TimeSeriesModel", "TimeSeriesModelFit", "TimeSeriesResample",%
    "TimeSeriesRescale", "TimeSeriesShift", "TimeSeriesThread",%
    "TimeSeriesWindow", "TimeUsed", "TimeValue",%
    "TimeWarpingCorrespondence", "TimeWarpingDistance", "TimeZone",%
    "TimeZoneConvert", "TimeZoneOffset", "Timing", "Tiny",%
    "TitleGrouping", "TitsGroupT", "ToBoxes", "ToCharacterCode",%
    "ToColor", "ToContinuousTimeModel", "ToDate", "Today",%
    "ToDiscreteTimeModel", "ToEntity", "ToeplitzMatrix", "ToExpression",%
    "ToFileName", "Together", "Toggle", "ToggleFalse", "Toggler",%
    "TogglerBar", "TogglerBox", "TogglerBoxOptions", "ToHeldExpression",%
    "ToInvertibleTimeSeries", "TokenWords", "Tolerance", "ToLowerCase",%
    "Tomorrow", "ToNumberField", "TooBig", "Tooltip", "TooltipBox",%
    "TooltipBoxOptions", "TooltipDelay", "TooltipStyle", "Top",%
    "TopHatTransform", "ToPolarCoordinates", "TopologicalSort",%
    "ToRadicals", "ToRules", "ToSphericalCoordinates", "ToString",%
    "Total", "TotalHeight", "TotalLayer", "TotalVariationFilter",%
    "TotalWidth", "TouchPosition", "TouchscreenAutoZoom",%
    "TouchscreenControlPlacement", "ToUpperCase", "Tr", "Trace",%
    "TraceAbove", "TraceAction", "TraceBackward", "TraceDepth",%
    "TraceDialog", "TraceForward", "TraceInternal", "TraceLevel",%
    "TraceOff", "TraceOn", "TraceOriginal", "TracePrint", "TraceScan",%
    "TrackedSymbols", "TrackingFunction", "TracyWidomDistribution",%
    "TradingChart", "TraditionalForm", "TraditionalFunctionNotation",%
    "TraditionalNotation", "TraditionalOrder", "TransferFunctionCancel",%
    "TransferFunctionExpand", "TransferFunctionFactor",%
    "TransferFunctionModel", "TransferFunctionPoles",%
    "TransferFunctionTransform", "TransferFunctionZeros",%
    "TransformationClass", "TransformationFunction",%
    "TransformationFunctions", "TransformationMatrix",%
    "TransformedDistribution", "TransformedField", "TransformedProcess",%
    "TransformedRegion", "TransitionDirection", "TransitionDuration",%
    "TransitionEffect", "TransitiveClosureGraph",%
    "TransitiveReductionGraph", "Translate", "TranslationOptions",%
    "TranslationTransform", "Transliterate", "Transparent",%
    "TransparentColor", "Transpose", "TrapSelection", "TravelDirections",%
    "TravelDirectionsData", "TravelDistance", "TravelDistanceList",%
    "TravelMethod", "TravelTime", "TreeForm", "TreeGraph", "TreeGraphQ",%
    "TreePlot", "TrendStyle", "Triangle", "TriangleWave",%
    "TriangularDistribution", "TriangulateMesh", "Trig", "TrigExpand",%
    "TrigFactor", "TrigFactorList", "Trigger", "TrigReduce", "TrigToExp",%
    "TrimmedMean", "TropicalStormData", "True", "TrueQ",%
    "TruncatedDistribution", "TsallisQExponentialDistribution",%
    "TsallisQGaussianDistribution", "TTest", "Tube",%
    "TubeBezierCurveBox", "TubeBezierCurveBoxOptions", "TubeBox",%
    "TubeBoxOptions", "TubeBSplineCurveBox",%
    "TubeBSplineCurveBoxOptions", "Tuesday", "TukeyLambdaDistribution",%
    "TukeyWindow", "TunnelData", "Tuples", "TuranGraph", "TuringMachine",%
    "TuttePolynomial", "UnateQ", "Uncompress", "Undefined", "UnderBar",%
    "Underflow", "Underlined", "Underoverscript", "UnderoverscriptBox",%
    "UnderoverscriptBoxOptions", "Underscript", "UnderscriptBox",%
    "UnderscriptBoxOptions", "UnderseaFeatureData", "UndirectedEdge",%
    "UndirectedGraph", "UndirectedGraphQ", "UndoOptions",%
    "UndoTrackedVariables", "Unequal", "UnequalTo", "Unevaluated",%
    "UniformDistribution", "UniformGraphDistribution",%
    "UniformSumDistribution", "Uninstall", "Union", "UnionPlus",%
    "Unique", "UnitaryMatrixQ", "UnitBox", "UnitConvert",%
    "UnitDimensions", "Unitize", "UnitRootTest", "UnitSimplify",%
    "UnitStep", "UnitSystem", "UnitTriangle", "UnitVector",%
    "UnityDimensions", "UniverseModelData", "UniversityData", "UnixTime",%
    "Unprotect", "UnsameQ", "UnsavedVariables", "Unset", "UnsetShared",%
    "UntrackedVariables", "Up", "UpArrow", "UpArrowBar",%
    "UpArrowDownArrow", "Update", "UpdateDynamicObjects",%
    "UpdateDynamicObjectsSynchronous", "UpdateInterval",%
    "UpdateSearchIndex", "UpDownArrow", "UpEquilibrium", "UpperCaseQ",%
    "UpperLeftArrow", "UpperRightArrow", "UpperTriangularize",%
    "Upsample", "UpSet", "UpSetDelayed", "UpTee", "UpTeeArrow", "UpTo",%
    "UpValues", "URL", "URLBuild", "URLDecode", "URLDispatcher",%
    "URLDownload", "URLEncode", "URLExecute", "URLExistsQ", "URLExpand",%
    "URLFetch", "URLFetchAsynchronous", "URLParse", "URLQueryDecode",%
    "URLQueryEncode", "URLRead", "URLSave", "URLSaveAsynchronous",%
    "URLShorten", "URLSubmit", "UseGraphicsRange", "UserDefinedWavelet",%
    "Using", "UsingFrontEnd", "UtilityFunction", "V2Get",%
    "ValidationLength", "ValidationSet", "Value", "ValueBox",%
    "ValueBoxOptions", "ValueDimensions", "ValueForm", "ValueQ",%
    "Values", "ValuesData", "Variables", "Variance",%
    "VarianceEquivalenceTest", "VarianceEstimatorFunction",%
    "VarianceGammaDistribution", "VarianceTest", "VectorAngle",%
    "VectorColorFunction", "VectorColorFunctionScaling",%
    "VectorDensityPlot", "VectorGlyphData", "VectorPlot", "VectorPlot3D",%
    "VectorPoints", "VectorQ", "Vectors", "VectorScale", "VectorStyle",%
    "Vee", "Verbatim", "Verbose", "VerboseConvertToPostScriptPacket",%
    "VerificationTest", "VerifyConvergence",%
    "VerifySecurityCertificates", "VerifySolutions",%
    "VerifyTestAssumptions", "Version", "VersionNumber", "VertexAdd",%
    "VertexCapacity", "VertexColors", "VertexComponent",%
    "VertexConnectivity", "VertexContract", "VertexCoordinateRules",%
    "VertexCoordinates", "VertexCorrelationSimilarity",%
    "VertexCosineSimilarity", "VertexCount", "VertexCoverQ",%
    "VertexDataCoordinates", "VertexDegree", "VertexDelete",%
    "VertexDiceSimilarity", "VertexEccentricity", "VertexInComponent",%
    "VertexInDegree", "VertexIndex", "VertexJaccardSimilarity",%
    "VertexLabeling", "VertexLabels", "VertexLabelStyle", "VertexList",%
    "VertexNormals", "VertexOutComponent", "VertexOutDegree", "VertexQ",%
    "VertexRenderingFunction", "VertexReplace", "VertexShape",%
    "VertexShapeFunction", "VertexSize", "VertexStyle",%
    "VertexTextureCoordinates", "VertexWeight", "Vertical",%
    "VerticalBar", "VerticalForm", "VerticalGauge", "VerticalSeparator",%
    "VerticalSlider", "VerticalTilde", "ViewAngle", "ViewCenter",%
    "ViewMatrix", "ViewPoint", "ViewPointSelectorSettings", "ViewPort",%
    "ViewRange", "ViewVector", "ViewVertical", "VirtualGroupData",%
    "Visible", "VisibleCell", "VoigtDistribution", "VolcanoData",%
    "Volume", "VonMisesDistribution", "VoronoiMesh", "WaitAll",%
    "WaitAsynchronousTask", "WaitNext", "WaitUntil",%
    "WakebyDistribution", "WalleniusHypergeometricDistribution",%
    "WaringYuleDistribution", "WarpingCorrespondence", "WarpingDistance",%
    "WatershedComponents", "WatsonUSquareTest",%
    "WattsStrogatzGraphDistribution", "WaveletBestBasis",%
    "WaveletFilterCoefficients", "WaveletImagePlot", "WaveletListPlot",%
    "WaveletMapIndexed", "WaveletMatrixPlot", "WaveletPhi", "WaveletPsi",%
    "WaveletScale", "WaveletScalogram", "WaveletThreshold",%
    "WeaklyConnectedComponents", "WeaklyConnectedGraphComponents",%
    "WeaklyConnectedGraphQ", "WeakStationarity", "WeatherData",%
    "WeatherForecastData", "WeberE", "Wedge", "Wednesday",%
    "WeibullDistribution", "WeierstrassHalfPeriods",%
    "WeierstrassInvariants", "WeierstrassP", "WeierstrassPPrime",%
    "WeierstrassSigma", "WeierstrassZeta", "WeightedAdjacencyGraph",%
    "WeightedAdjacencyMatrix", "WeightedData", "WeightedGraphQ",%
    "Weights", "WelchWindow", "WheelGraph", "WhenEvent", "Which",%
    "While", "White", "WhiteNoiseProcess", "WhitePoint", "Whitespace",%
    "WhitespaceCharacter", "WhittakerM", "WhittakerW", "WienerFilter",%
    "WienerProcess", "WignerD", "WignerSemicircleDistribution",%
    "WikipediaData", "WikipediaSearch", "WilksW", "WilksWTest",%
    "WindDirectionData", "WindowClickSelect", "WindowElements",%
    "WindowFloating", "WindowFrame", "WindowFrameElements",%
    "WindowMargins", "WindowMovable", "WindowOpacity", "WindowSelected",%
    "WindowSize", "WindowStatusArea", "WindowTitle", "WindowToolbars",%
    "WindowWidth", "WindSpeedData", "WindVectorData",%
    "WishartMatrixDistribution", "With", "WolframAlpha",%
    "WolframAlphaDate", "WolframAlphaQuantity", "WolframAlphaResult",%
    "WolframLanguageData", "Word", "WordBoundary", "WordCharacter",%
    "WordCloud", "WordCount", "WordCounts", "WordData", "WordDefinition",%
    "WordFrequency", "WordFrequencyData", "WordList", "WordOrientation",%
    "WordSearch", "WordSeparators", "WordSpacings", "WordStem",%
    "WordTranslation", "WorkingPrecision", "WrapAround", "Write",%
    "WriteLine", "WriteString", "Wronskian", "XMLElement", "XMLObject",%
    "XMLTemplate", "Xnor", "Xor", "XYZColor", "Yellow", "Yesterday",%
    "YuleDissimilarity", "ZernikeR", "ZeroSymmetric", "ZeroTest",%
    "ZeroWidthTimes", "Zeta", "ZetaZero", "ZIPCodeData",%
    "ZipfDistribution", "ZoomCenter", "ZoomFactor", "ZTest",%
    "ZTransform"%
  }%
  morendkeywords={%
    "$Aborted", "$ActivationGroupID", "$ActivationKey",%
    "$ActivationUserRegistered", "$AddOnsDirectory",%
    "$AllowExternalChannelFunctions", "$AssertFunction", "$Assumptions",%
    "$AsynchronousTask", "$AudioOutputDevices", "$BaseDirectory",%
    "$BatchInput", "$BatchOutput", "$BoxForms", "$ByteOrdering",%
    "$CacheBaseDirectory", "$Canceled", "$ChannelBase",%
    "$CharacterEncoding", "$CharacterEncodings", "$CloudBase",%
    "$CloudConnected", "$CloudCreditsAvailable", "$CloudEvaluation",%
    "$CloudExpressionBase", "$CloudRootDirectory", "$CloudSymbolBase",%
    "$CloudVersion", "$CloudVersionNumber", "$CommandLine",%
    "$CompilationTarget", "$ConditionHold", "$ConfiguredKernels",%
    "$Context", "$ContextPath", "$ControlActiveSetting", "$Cookies",%
    "$CookieStore", "$CreationDate", "$CurrentLink", "$DateStringFormat",%
    "$DefaultAudioOutputDevice", "$DefaultFont", "$DefaultFrontEnd",%
    "$DefaultImagingDevice", "$DefaultLocalBase", "$DefaultPath",%
    "$Display", "$DisplayFunction", "$DistributedContexts",%
    "$DynamicEvaluation", "$Echo", "$EmbedCodeEnvironments",%
    "$EmbeddableServices", "$EntityStores", "$Epilog",%
    "$EvaluationCloudObject", "$EvaluationEnvironment", "$ExportFormats",%
    "$Failed", "$FinancialDataSource", "$FontFamilies", "$FormatType",%
    "$FrontEnd", "$FrontEndSession", "$GeoEntityTypes", "$GeoLocation",%
    "$GeoLocationCity", "$GeoLocationCountry", "$GeoLocationPrecision",%
    "$GeoLocationSource", "$HistoryLength", "$HomeDirectory",%
    "$HTMLExportRules", "$HTTPCookies", "$HTTPRequest", "$IgnoreEOF",%
    "$ImageFormattingWidth", "$ImagingDevice", "$ImagingDevices",%
    "$ImportFormats", "$InitialDirectory", "$Input", "$InputFileName",%
    "$InputStreamMethods", "$Inspector", "$InstallationDate",%
    "$InstallationDirectory", "$InterfaceEnvironment",%
    "$InterpreterTypes", "$IterationLimit", "$KernelCount", "$KernelID",%
    "$Language", "$LaunchDirectory", "$LibraryPath",%
    "$LicenseExpirationDate", "$LicenseID", "$LicenseProcesses",%
    "$LicenseServer", "$LicenseSubprocesses", "$LicenseType", "$Line",%
    "$Linked", "$LinkSupported", "$LoadedFiles", "$LocalBase",%
    "$LocalSymbolBase", "$MachineAddresses", "$MachineDomain",%
    "$MachineDomains", "$MachineEpsilon", "$MachineID", "$MachineName",%
    "$MachinePrecision", "$MachineType", "$MaxExtraPrecision",%
    "$MaxLicenseProcesses", "$MaxLicenseSubprocesses",%
    "$MaxMachineNumber", "$MaxNumber", "$MaxPiecewiseCases",%
    "$MaxPrecision", "$MaxRootDegree", "$MessageGroups", "$MessageList",%
    "$MessagePrePrint", "$Messages", "$MinMachineNumber", "$MinNumber",%
    "$MinorReleaseNumber", "$MinPrecision", "$ModuleNumber",%
    "$NetworkLicense", "$NewMessage", "$NewSymbol", "$Notebooks",%
    "$NumberMarks", "$Off", "$OperatingSystem", "$Output",%
    "$OutputForms", "$OutputSizeLimit", "$OutputStreamMethods",%
    "$Packages", "$ParentLink", "$ParentProcessID", "$PasswordFile",%
    "$PatchLevelID", "$Path", "$PathnameSeparator", "$PerformanceGoal",%
    "$Permissions", "$PermissionsGroupBase", "$PhoneNumber",%
    "$PipeSupported", "$PlotTheme", "$Post", "$Pre",%
    "$PreferencesDirectory", "$PrePrint", "$PreRead", "$PrintForms",%
    "$PrintLiteral", "$Printout3DPreviewer", "$ProcessID",%
    "$ProcessorCount", "$ProcessorType", "$ProductInformation",%
    "$ProgramName", "$RandomState", "$RecursionLimit",%
    "$RegisteredDeviceClasses", "$RegisteredUserName", "$ReleaseNumber",%
    "$RequesterAddress", "$RequesterWolframID", "$RequesterWolframUUID",%
    "$RootDirectory", "$ScheduledTask", "$ScriptCommandLine",%
    "$ScriptInputString", "$Services", "$SessionID", "$SetParentLink",%
    "$SharedFunctions", "$SharedVariables", "$SMSDestination",%
    "$SoundDisplay", "$SoundDisplayFunction", "$SourceLink",%
    "$SuppressInputFormHeads", "$SynchronousEvaluation",%
    "$SyntaxHandler", "$System", "$SystemCharacterEncoding", "$SystemID",%
    "$SystemMemory", "$SystemShell", "$SystemTimeZone",%
    "$SystemWordLength", "$TemplatePath", "$TemporaryDirectory",%
    "$TemporaryPrefix", "$TextStyle", "$TimedOut", "$TimeUnit",%
    "$TimeZone", "$TimeZoneEntity", "$TopDirectory", "$TraceOff",%
    "$TraceOn", "$TracePattern", "$TracePostAction", "$TracePreAction",%
    "$UnitSystem", "$Urgent", "$UserAddOnsDirectory",%
    "$UserAgentLanguages", "$UserAgentMachine", "$UserAgentName",%
    "$UserAgentOperatingSystem", "$UserAgentString", "$UserAgentVersion",%
    "$UserBaseDirectory", "$UserDocumentsDirectory", "$UserName",%
    "$Version", "$VersionNumber", "$WolframID", "$WolframUUID"%
  }%
}
%    \end{macrocode}
%^^A $ to make emacs font locking happy
%
%    \begin{macrocode}
\lst@definelanguage[5.2]{Mathematica}[3.0]{Mathematica}{%
  morekeywords={Above, AbsoluteOptions, AbsoluteTiming, AccountingForm,%
    AccuracyGoal, Active, ActiveItem, AddOnHelpPath, AdjustmentBox,%
    AdjustmentBoxOptions, After, AiryAiPrime, AlgebraicRulesData,%
    Algebraics, Alias, AlignmentMarker, AllowInlineCells,%
    AllowScriptLevelChange, Analytic, AnimationCycleOffset,%
    AnimationCycleRepetitions, AnimationDirection, AnimationDisplayTime,%
    ApartSquareFree, AppellF1, ArgumentCountQ, ArrayDepth, ArrayPlot,%
    ArrayQ, ArrayRules, AspectRatioFixed, Assuming, Assumptions,%
    AutoDelete, AutoEvaluateEvents, AutoGeneratedPackage, AutoIndent,%
    AutoIndentSpacings, AutoItalicWords, AutoloadPath, AutoOpenNotebooks,%
    AutoOpenPalettes, AutoScroll, AutoSpacing, AutoStyleOptions, Axis,%
    BackgroundTasksSettings, Backsubstitution, Backward, Baseline, Before,%
    BeginDialogPacket, BeginFrontEndInteractionPacket, Below, BezoutMatrix,%
    BinaryFormat, BinaryGet, BinaryRead, BinaryReadList, BinaryWrite,%
    BitAnd, BitNot, BitOr, BitXor, Black, BlankForm, Blue, Boole, Booleans,%
    Bottom, Bounds, Box, BoxBaselineShift, BoxData, BoxDimensions,%
    BoxFormFormatTypes, BoxFrame, BoxMargins, BoxRegion, Brown, Buchberger,%
    Button, ButtonBox, ButtonBoxOptions, ButtonCell, ButtonContents,%
    ButtonData, ButtonEvaluator, ButtonExpandable, ButtonFrame,%
    ButtonFunction, ButtonMargins, ButtonMinHeight, ButtonNote,%
    ButtonNotebook, ButtonSource, ButtonStyle, ButtonStyleMenuListing,%
    ByteOrdering, CallPacket, CarmichaelLambda, Cell, CellAutoOverwrite,%
    CellBaseline, CellBoundingBox, CellBracketOptions, CellContents,%
    CellDingbat, CellEditDuplicate, CellElementsBoundingBox,%
    CellElementSpacings, CellEvaluationDuplicate, CellFrame,%
    CellFrameColor, CellFrameLabelMargins, CellFrameLabels,%
    CellFrameMargins, CellGroup, CellGroupData, CellGrouping,%
    CellGroupingRules, CellHorizontalScrolling, CellLabel,%
    CellLabelAutoDelete, CellLabelMargins, CellLabelPositioning,%
    CellMargins, CellObject, CellOpen, CellPasswords, CellPrint, CellSize,%
    CellStyle, CellTags, CellularAutomaton, Center, CharacterEncoding,%
    CharacterEncodingsPath, CharacteristicPolynomial, CharacterRange,%
    CheckAll, CholeskyDecomposition, Clip, ClipboardNotebook, Closed,%
    ClosingAutoSave, CoefficientArrays, CoefficientDomain,%
    CofactorExpansion, ColonForm, ColorFunctionScaling, ColorRules,%
    ColorSelectorSettings, Column, ColumnAlignments, ColumnLines,%
    ColumnsEqual, ColumnSpacings, ColumnWidths, CommonDefaultFormatTypes,%
    CompileOptimizations, CompletionsListPacket, Complexes,%
    ComplexityFunction, Compose, ComposeSeries, ConfigurationPath,%
    ConjugateTranspose, Connect, ConsoleMessage, ConsoleMessagePacket,%
    ConsolePrint, ContentsBoundingBox, ContextToFileName,%
    ContinuedFraction, ConversionOptions, ConversionRules,%
    ConvertToBitmapPacket, ConvertToPostScript, ConvertToPostScriptPacket,%
    Copyable, CoshIntegral, CounterAssignments, CounterBox,%
    CounterBoxOptions, CounterEvaluator, CounterFunction,%
    CounterIncrements, CounterStyle, CounterStyleMenuListing,%
    CreatePalettePacket, Cross, CurrentlySpeakingPacket, Cyan,%
    CylindricalDecomposition, DampingFactor, DataRange, Debug, DebugTag,%
    Decimal, DedekindEta, DefaultDuplicateCellStyle, DefaultFontProperties,%
    DefaultFormatType, DefaultFormatTypeForStyle, DefaultInlineFormatType,%
    DefaultInputFormatType, DefaultNaturalLanguage, DefaultNewCellStyle,%
    DefaultNewInlineCellStyle, DefaultNotebook, DefaultOutputFormatType,%
    DefaultStyleDefinitions, DefaultTextFormatType,%
    DefaultTextInlineFormatType, DefaultValues, DefineExternal,%
    DegreeLexicographic, DegreeReverseLexicographic, Deletable,%
    DeleteContents, DeletionWarning, DelimiterFlashTime, DelimiterMatching,%
    Delimiters, DependentVariables, DiacriticalPositioning, DialogLevel,%
    DifferenceOrder, DigitCharacter, DigitCount, DiracDelta, Direction,%
    DirectoryName, DisableConsolePrintPacket, DiscreteDelta,%
    DisplayAnimation, DisplayEndPacket, DisplayFlushImagePacket,%
    DisplayForm, DisplayPacket, DisplayRules, DisplaySetSizePacket,%
    DisplayString, DivisionFreeRowReduction, DOSTextFormat,%
    DoubleExponential, DoublyInfinite, Down, DragAndDrop, DrawHighlighted,%
    DualLinearProgramming, DumpGet, DumpSave, Edit, Editable,%
    EditButtonSettings, EditCellTagsSettings, EditDefinition, EditIn,%
    Element, EliminationOrder, EllipticExpPrime, EllipticNomeQ,%
    EllipticReducedHalfPeriods, EllipticThetaPrime, Empty,%
    EnableConsolePrintPacket, Encoding, EndAdd, EndDialogPacket,%
    EndFrontEndInteractionPacket, EndOfLine, EndOfString, Enter,%
    EnterExpressionPacket, EnterTextPacket, EqualColumns, EqualRows,%
    EquatedTo, Erfi, ErrorBox, ErrorBoxOptions, ErrorNorm, ErrorPacket,%
    ErrorsDialogSettings, Evaluatable, EvaluatePacket, EvaluationCell,%
    EvaluationCompletionAction, EvaluationMonitor, EvaluationNotebook,%
    Evaluator, EvaluatorNames, EventEvaluator, ExactNumberQ,%
    ExactRootIsolation, Except, ExcludedForms, Exists, ExitDialog,%
    ExponentPosition, ExponentStep, Export, ExportAutoReplacements,%
    ExportPacket, ExportString, ExpressionPacket, ExpToTrig, Extension,%
    ExternalCall, ExternalDataCharacterEncoding, Extract, Fail,%
    FEDisableConsolePrintPacket, FEEnableConsolePrintPacket, Fibonacci,%
    File, FileFormat, FileInformation, FileName, FileNameDialogSettings,%
    FindFit, FindInstance, FindMaximum, FindSettings, FitAll,%
    FlushPrintOutputPacket, Font, FontColor, FontFamily, FontName,%
    FontPostScriptName, FontProperties, FontReencoding, FontSize,%
    FontSlant, FontSubstitutions, FontTracking, FontVariations, FontWeight,%
    ForAll, FormatRules, FormatTypeAutoConvert, FormatValues, FormBox,%
    FormBoxOptions, Forward, ForwardBackward, FourierCosTransform,%
    FourierParameters, FourierSinTransform, FourierTransform,%
    FractionalPart, FractionBox, FractionBoxOptions, FractionLine,%
    FrameBox, FrameBoxOptions, FresnelC, FresnelS, FromContinuedFraction,%
    FromDigits, FrontEndExecute, FrontEndObject, FrontEndStackSize,%
    FrontEndToken, FrontEndTokenExecute, FrontEndVersion, Full, FullAxes,%
    FullSimplify, FunctionExpand, FunctionInterpolation, GaussKronrod,%
    GaussPoints, GenerateBitmapCaches, GenerateConditions, GeneratedCell,%
    GeneratedParameters, Generic, GetBoundingBoxSizePacket, GetContext,%
    GetFileName, GetFrontEndOptionsDataPacket,%
    GetLinebreakInformationPacket, GetMenusPacket,%
    GetPageBreakInformationPacket, Glaisher, GlobalPreferences,%
    GlobalSession, Gradient, GraphicsData, GraphicsGrouping, Gray, Green,%
    Grid, GridBaseline, GridBox, GridBoxOptions, GridCreationSettings,%
    GridDefaultElement, GridFrame, GridFrameMargins, GroupPageBreakWithin,%
    HarmonicNumber, Hash, HashTable, HeadCompose, HelpBrowserLookup,%
    HelpBrowserNotebook, HelpBrowserSettings, HessenbergDecomposition,%
    Hessian, HoldAllComplete, HoldComplete, HoldPattern, Horizontal,%
    HorizontalForm, HorizontalScrollPosition, HTMLSave,%
    Hypergeometric0F1Regularized, Hypergeometric1F1Regularized,%
    Hypergeometric2F1Regularized, HypergeometricPFQ,%
    HypergeometricPFQRegularized, HyperlinkCreationSettings, Hyphenation,%
    HyphenationOptions, IgnoreCase, ImageCache, ImageCacheValid,%
    ImageMargins, ImageOffset, ImageRangeCache, ImageRegion,%
    ImageResolution, ImageRotated, ImageSize, Import,%
    ImportAutoReplacements, ImportString, IncludeFileExtension,%
    IncludeSingularTerm, IndentingNewlineSpacings, IndentMaxFraction,%
    IndexCreationOptions, Inequality, InexactNumberQ, InexactNumbers,%
    Inherited, InitializationCell, InitializationCellEvaluation,%
    InitializationCellWarning, InlineCounterAssignments,%
    InlineCounterIncrements, InlineRules, InputAliases, InputAutoFormat,%
    InputAutoReplacements, InputGrouping, InputNamePacket, InputNotebook,%
    InputPacket, InputSettings, InputStringPacket, InputToBoxFormPacket,%
    InputToInputForm, InputToStandardForm, InsertionPointObject,%
    IntegerExponent, IntegerPart, Integers, Interactive, Interlaced,%
    InterpolationOrder, InterpolationPoints, InterpolationPrecision,%
    InterpretationBox, InterpretationBoxOptions, InterpretTemplate,%
    InterruptSettings, Interval, IntervalIntersection, IntervalMemberQ,%
    IntervalUnion, InverseBetaRegularized, InverseEllipticNomeQ,%
    InverseErf, InverseErfc, InverseFourierCosTransform,%
    InverseFourierSinTransform, InverseFourierTransform,%
    InverseGammaRegularized, InverseJacobiCD, InverseJacobiCN,%
    InverseJacobiCS, InverseJacobiDC, InverseJacobiDN, InverseJacobiDS,%
    InverseJacobiNC, InverseJacobiND, InverseJacobiNS, InverseJacobiSC,%
    InverseJacobiSD, InverseLaplaceTransform, InverseWeierstrassP,%
    InverseZTransform, Jacobian, JacobiCD, JacobiCN, JacobiCS, JacobiDC,%
    JacobiDN, JacobiDS, JacobiNC, JacobiND, JacobiNS, JacobiSC, JacobiSD,%
    JordanDecomposition, K, Khinchin, KleinInvariantJ, KroneckerDelta,%
    Language, LanguageCategory, LaplaceTransform, Larger, Launch,%
    LayoutInformation, Left, LetterCharacter, Lexicographic, LicenseID,%
    LimitsPositioning, LimitsPositioningTokens, LinearSolveFunction,%
    LinebreakAdjustments, LineBreakWithin, LineForm, LineIndent,%
    LineSpacing, LineWrapParts, LinkActivate, LinkClose, LinkConnect,%
    LinkConnectedQ, LinkCreate, LinkError, LinkFlush, LinkHost,%
    LinkInterrupt, LinkLaunch, LinkMode, LinkObject, LinkOpen, LinkOptions,%
    LinkPatterns, LinkProtocol, LinkRead, LinkReadHeld, LinkReadyQ, Links,%
    LinkWrite, LinkWriteHeld, ListConvolve, ListCorrelate, Listen,%
    ListInterpolation, ListQ, LiteralSearch, LongestMatch, LongForm,%
    Loopback, LUBackSubstitution, LUDecomposition, MachineID, MachineName,%
    MachinePrecision, MacintoshSystemPageSetup, Magenta, Magnification,%
    MakeBoxes, MakeExpression, MakeRules, Manual, MatchLocalNameQ,%
    MathematicaNotation, MathieuC, MathieuCharacteristicA,%
    MathieuCharacteristicB, MathieuCharacteristicExponent, MathieuCPrime,%
    MathieuS, MathieuSPrime, MathMLForm, MathMLText, MatrixRank, Maximize,%
    MaxIterations, MaxPlotPoints, MaxPoints, MaxRecursion, MaxStepFraction,%
    MaxSteps, MaxStepSize, Mean, Median, MeijerG, MenuPacket,%
    MessageOptions, MessagePacket, MessagesNotebook, MetaCharacters,%
    Method, MethodOptions, Minimize, MinRecursion, MinSize, Mode,%
    ModularLambda, MonomialOrder, MonteCarlo, Most, MousePointerNote,%
    MultiDimensional, MultilaunchWarning, MultilineFunction,%
    MultiplicativeOrder, Multiplicity, Nand,%
    NeedCurrentFrontEndPackagePacket, NeedCurrentFrontEndSymbolsPacket,%
    NestedScriptRules, NestWhile, NestWhileList, NevilleThetaC,%
    NevilleThetaD, NevilleThetaN, NevilleThetaS, Newton, Next, NHoldAll,%
    NHoldFirst, NHoldRest, NMaximize, NMinimize, NonAssociative,%
    NonPositive, Nor, Norm, NormalGrouping, NormalSelection, NormFunction,%
    Notebook, NotebookApply, NotebookAutoSave, NotebookClose,%
    NotebookConvert, NotebookConvertSettings, NotebookCreate,%
    NotebookCreateReturnObject, NotebookDefault, NotebookDelete,%
    NotebookDirectory, NotebookFind, NotebookFindReturnObject, NotebookGet,%
    NotebookGetLayoutInformationPacket, NotebookGetMisspellingsPacket,%
    NotebookInformation, NotebookLocate, NotebookObject, NotebookOpen,%
    NotebookOpenReturnObject, NotebookPath, NotebookPrint, NotebookPut,%
    NotebookPutReturnObject, NotebookRead, NotebookResetGeneratedCells,%
    Notebooks, NotebookSave, NotebookSaveAs, NotebookSelection,%
    NotebookSetupLayoutInformationPacket, NotebooksMenu, NotebookWrite,%
    NotElement, NProductExtraFactors, NProductFactors, NRoots,%
    NSumExtraTerms, NSumTerms, NumberMarks, NumberMultiplier, NumberString,%
    NumericFunction, NumericQ, NValues, Offset, OLEData,%
    OneStepRowReduction, Open, OpenFunctionInspectorPacket,%
    OpenSpecialOptions, OptimizationLevel, OptionInspectorSettings,%
    OptionQ, OptionsPacket, OptionValueBox, OptionValueBoxOptions, Orange,%
    Ordering, Oscillatory, OutputAutoOverwrite, OutputFormData,%
    OutputGrouping, OutputMathEditExpression, OutputNamePacket,%
    OutputToOutputForm, OutputToStandardForm, Over, Overflow, Overlaps,%
    Overscript, OverscriptBox, OverscriptBoxOptions, OwnValues, PadLeft,%
    PadRight, PageBreakAbove, PageBreakBelow, PageBreakWithin,%
    PageFooterLines, PageFooters, PageHeaderLines, PageHeaders,%
    PalettePath, PaperWidth, ParagraphIndent, ParagraphSpacing,%
    ParameterVariables, ParentConnect, ParentForm, Parenthesize,%
    PasteBoxFormInlineCells, Path, PatternTest, PeriodicInterpolation,%
    Pick, Piecewise, PiecewiseExpand, Pink, Pivoting, PixelConstrained,%
    Placeholder, Plain, Plot3Matrix, PointForm, PolynomialForm,%
    PolynomialReduce, Polynomials, PowerModList, Precedence,%
    PreferencesPath, PreserveStyleSheet, Previous, PrimaryPlaceholder,%
    Primes, PrincipalValue, PrintAction, PrintingCopies, PrintingOptions,%
    PrintingPageRange, PrintingStartingPageNumber,%
    PrintingStyleEnvironment, PrintPrecision, PrivateCellOptions,%
    PrivateEvaluationOptions, PrivateFontOptions, PrivateNotebookOptions,%
    PrivatePaths, ProductLog, PromptForm, Purple, Quantile,%
    QuasiMonteCarlo, QuasiNewton, RadicalBox, RadicalBoxOptions,%
    RandomSeed, RationalFunctions, Rationals, RawData, RawMedium,%
    RealBlockForm, Reals, Reap, Red, Refine, Refresh, RegularExpression,%
    Reinstall, Release, Removed, RenderingOptions, RepeatedString,%
    ReplaceList, Rescale, ResetMenusPacket, Resolve, ResumePacket,%
    ReturnExpressionPacket, ReturnInputFormPacket, ReturnPacket,%
    ReturnTextPacket, Right, Root, RootReduce, RootSum, Row, RowAlignments,%
    RowBox, RowLines, RowMinHeight, RowsEqual, RowSpacings, RSolve,%
    RuleCondition, RuleForm, RulerUnits, Saveable, SaveAutoDelete,%
    ScreenRectangle, ScreenStyleEnvironment, ScriptBaselineShifts,%
    ScriptLevel, ScriptMinSize, ScriptRules, ScriptSizeMultipliers,%
    ScrollingOptions, ScrollPosition, Second, SectionGrouping, Selectable,%
    SelectedNotebook, Selection, SelectionAnimate, SelectionCell,%
    SelectionCellCreateCell, SelectionCellDefaultStyle,%
    SelectionCellParentStyle, SelectionCreateCell, SelectionDuplicateCell,%
    SelectionEvaluate, SelectionEvaluateCreateCell, SelectionMove,%
    SelectionSetStyle, SelectionStrategy, SendFontInformationToKernel,%
    SequenceHold, SequenceLimit, SeriesCoefficient, SetBoxFormNamesPacket,%
    SetEvaluationNotebook, SetFileLoadingContext, SetNotebookStatusLine,%
    SetOptionsPacket, SetSelectedNotebook, SetSpeechParametersPacket,%
    SetValue, ShortestMatch, ShowAutoStyles, ShowCellBracket,%
    ShowCellLabel, ShowCellTags, ShowClosedCellArea, ShowContents,%
    ShowCursorTracker, ShowGroupOpenCloseIcon, ShowPageBreaks,%
    ShowSelection, ShowShortBoxForm, ShowSpecialCharacters,%
    ShowStringCharacters, ShrinkWrapBoundingBox, SingleLetterItalics,%
    SingularityDepth, SingularValueDecomposition, SingularValueList,%
    SinhIntegral, Smaller, Socket, SolveDelayed, SoundAndGraphics, Sow,%
    Space, SpaceForm, SpanAdjustments, SpanCharacterRounding,%
    SpanLineThickness, SpanMaxSize, SpanMinSize, SpanningCharacters,%
    SpanSymmetric, Sparse, SparseArray, SpeakTextPacket,%
    SpellingDictionaries, SpellingDictionariesPath, SpellingOptions,%
    SpellingSuggestionsPacket, Spherical, Split, SqrtBox, SqrtBoxOptions,%
    StandardDeviation, StandardForm, StartingStepSize, StartOfLine,%
    StartOfString, StartupSound, StepMonitor, StieltjesGamma, StoppingTest,%
    StringCases, StringCount, StringExpression, StringFreeQ, StringQ,%
    StringReplaceList, StringReplacePart, StringSplit, StripBoxes,%
    StripWrapperBoxes, StructuredSelection, StruveH, StruveL, StyleBox,%
    StyleBoxAutoDelete, StyleBoxOptions, StyleData, StyleDefinitions,%
    StyleForm, StyleMenuListing, StyleNameDialogSettings, StylePrint,%
    StyleSheetPath, Subresultants, SubscriptBox, SubscriptBoxOptions,%
    Subsets, Subsuperscript, SubsuperscriptBox, SubsuperscriptBoxOptions,%
    SubtractFrom, SubValues, SugarCube, SuperscriptBox,%
    SuperscriptBoxOptions, SuspendPacket, SylvesterMatrix, SymbolName,%
    Syntax, SyntaxForm, SyntaxPacket, SystemException, SystemHelpPath,%
    SystemStub, Tab, TabFilling, TabSpacings, TagBox, TagBoxOptions,%
    TaggingRules, TagStyle, TargetFunctions, TemporaryVariable, TensorQ,%
    TeXSave, TextAlignment, TextBoundingBox, TextData, TextJustification,%
    TextLine, TextPacket, TextParagraph, TextRendering, TextStyle,%
    ThisLink, TimeConstraint, TimeVariable, TitleGrouping, ToBoxes,%
    ToColor, ToFileName, Toggle, ToggleFalse, Tolerance, TooBig, Top,%
    ToRadicals, Total, Tr, TraceAction, TraceInternal, TraceLevel,%
    TraditionalForm, TraditionalFunctionNotation, TraditionalNotation,%
    TraditionalOrder, TransformationFunctions, TransparentColor,%
    Trapezoidal, TrigExpand, TrigFactor, TrigFactorList, TrigReduce,%
    TrigToExp, Tuples, UnAlias, Underflow, Underoverscript,%
    UnderoverscriptBox, UnderoverscriptBoxOptions, Underscript,%
    UnderscriptBox, UnderscriptBoxOptions, UndocumentedTestFEParserPacket,%
    UndocumentedTestGetSelectionPacket, UnitStep, Up, URL, Using, V2Get,%
    Value, ValueBox, ValueBoxOptions, ValueForm, Variance, Verbatim,%
    Verbose, VerboseConvertToPostScriptPacket, VerifyConvergence,%
    VerifySolutions, Version, VersionNumber, Vertical, VerticalForm,%
    ViewPointSelectorSettings, Visible, VisibleCell,%
    WeierstrassHalfPeriods, WeierstrassInvariants, WeierstrassSigma,%
    WeierstrassZeta, White, Whitespace, WhitespaceCharacter,%
    WindowClickSelect, WindowElements, WindowFloating, WindowFrame,%
    WindowFrameElements, WindowMargins, WindowMovable, WindowSize,%
    WindowTitle, WindowToolbars, WindowWidth, WordBoundary, WordCharacter,%
    WynnDegree, XMLElement},%
  morendkeywords={$,$AddOnsDirectory,$AnimationDisplayFunction,%
    $AnimationFunction,%
    $Assumptions,$BaseDirectory,$BoxForms,$ByteOrdering,%
    $CharacterEncoding,$ConditionHold,$CurrentLink,$DefaultPath,%
    $ExportEncodings,$ExportFormats,$FormatType,$FrontEnd,%
    $HistoryLength,$HomeDirectory,$ImportEncodings,$ImportFormats,%
    $InitialDirectory,$InstallationDate,$InstallationDirectory,%
    $InterfaceEnvironment,%
    $LaunchDirectory,$LicenseExpirationDate,$LicenseID,$LicenseProcesses,%
    $LicenseServer,$MachineDomain,$MaxExtraPrecision,$MaxLicenseProcesses,%
    $MaxNumber,$MaxPiecewiseCases,$MaxPrecision,$MaxRootDegree,%
    $MinNumber,$MinPrecision,$NetworkLicense,$NumberMarks,%
    $Off,$OutputForms,$ParentLink,$ParentProcessID,%
    $PasswordFile,$PathnameSeparator,$PreferencesDirectory,$PrintForms,%
    $PrintLiteral,$ProcessID,$ProcessorType,$ProductInformation,%
    $ProgramName,$PSDirectDisplay,$RandomState,$RasterFunction,%
    $RootDirectory,$SetParentLink,$SoundDisplay,$SuppressInputFormHeads,%
    $SystemCharacterEncoding,$SystemID,$TemporaryPrefix,$TextStyle,%
    $TopDirectory,$TraceOff,$TraceOn,$TracePattern,%
    $TracePostAction,$TracePreAction,$UserAddOnsDirectory,$UserBaseDirectory,%
    $UserName,Constant,Flat,HoldAll,%
    HoldAllComplete,HoldFirst,HoldRest,Listable,%
    Locked,NHoldAll,NHoldFirst,NHoldRest,%
    NumericFunction,OneIdentity,Orderless,Protected,%
    ReadProtected,SequenceHold},%
}%
%    \end{macrocode}
%^^A $ to make emacs font locking happy
%    \begin{macrocode}
%%
%% Mathematica definitions (c) 1999 Michael Wiese
%%
\lst@definelanguage[3.0]{Mathematica}[1.0]{Mathematica}%
  {morekeywords={Abort,AbortProtect,AbsoluteDashing,AbsolutePointSize,%
      AbsoluteThickness,AbsoluteTime,AccountingFormAiry,AiPrime,AiryBi,%
      AiryBiPrime,Alternatives,AnchoredSearch,AxesEdge,AxesOrigin,%
      AxesStyle,Background,BetaRegularized,BoxStyle,C,CheckAbort,%
      Circle,ClebschGordan,CMYKColor,ColorFunction,ColorOutput,Compile,%
      Compiled,CompiledFunction,ComplexExpand,ComposeList,Composition,%
      ConstrainedMax,ConstrainedMin,Contexts,ContextToFilename,%
      ContourLines,Contours,ContourShading,ContourSmoothing,%
      ContourStyle,CopyDirectory,CopyFile,CosIntegral,CreateDirectory,%
      Cuboid,Date,DeclarePackage,DefaultColor,DefaultFont,Delete,%
      DeleteCases,DeleteDirectory,DeleteFile,Dialog,DialogIndent,%
      DialogProlog,DialogSymbols,DigitQ,Directory,DirectoryStack,Disk,%
      Dispatch,DownValues,DSolve,Encode,Epilog,Erfc,Evaluate,%
      ExponentFunction,FaceGrids,FileByteCount,FileDate,FileNames,%
      FileType,Find,FindList,FixedPointList,FlattenAt,Fold,FoldList,%
      Frame,FrameLabel,FrameStyle,FrameTicks,FromCharacterCode,%
      FromDate,FullGraphics,FullOptions,GammaRegularized,%
      GaussianIntegers,GraphicsArray,GraphicsSpacing,GridLines,%
      GroebnerBasis,Heads,HeldPart,HomeDirectory,Hue,IgnoreCases,%
      InputStream,Install,InString,IntegerDigits,InterpolatingFunction,%
      InterpolatingPolynomial,Interpolation,Interrupt,InverseFunction,%
      InverseFunctions,JacobiZeta,LetterQ,LinearProgramming,ListPlay,%
      LogGamma,LowerCaseQ,MachineNumberQ,MantissaExponent,MapIndexed,%
      MapThread,MatchLocalNames,MatrixExp,MatrixPower,MeshRange,%
      MeshStyle,MessageList,Module,NDSolve,NSolve,NullRecords,%
      NullWords,NumberFormat,NumberPadding,NumberSigns,OutputStream,%
      PaddedForm,ParentDirectory,Pause,Play,PlayRange,PlotRegion,%
      PolygonIntersections,PolynomialGCD,PolynomialLCM,PolynomialMod,%
      PostScript,PowerExpand,PrecisionGoal,PrimePi,Prolog,%
      QRDecomposition,Raster,RasterArray,RealDigits,Record,RecordLists,%
      RecordSeparators,ReleaseHold,RenameDirectory,RenameFile,%
      ReplaceHeldPart,ReplacePart,ResetDirectory,Residue,%
      RiemannSiegelTheta,RiemannSiegelZ,RotateLabel,SameTest,%
      SampleDepth,SampledSoundFunction,SampledSoundList,SampleRate,%
      SchurDecomposition,SessionTime,SetAccuracy,SetDirectory,%
      SetFileDate,SetPrecision,SetStreamPosition,Shallow,SignPadding,%
      SinIntegral,SixJSymbol,Skip,Sound,SpellingCorrection,%
      SphericalRegion,Stack,StackBegin,StackComplete,StackInhibit,%
      StreamPosition,Streams,StringByteCount,StringConversion,%
      StringDrop,StringInsert,StringPosition,StringReplace,%
      StringReverse,StringTake,StringToStream,SurfaceColor,%
      SyntaxLength,SyntaxQ,TableAlignments,TableDepth,%
      TableDirections,TableHeadings,TableSpacing,ThreeJSymbol,TimeUsed,%
      TimeZone,ToCharacterCode,ToDate,ToHeldExpression,TokenWords,%
      ToLowerCase,ToUpperCase,Trace,TraceAbove,TraceBackward,%
      TraceDepth,TraceDialog,TraceForward,TraceOff,TraceOn,%
      TraceOriginal,TracePrint,TraceScan,Trig,Unevaluated,Uninstall,%
      UnsameQ,UpperCaseQ,UpValues,ViewCenter,ViewVertical,With,Word,%
      WordSearch,WordSeparators},%
   morendkeywords={Stub,Temporary,$Aborted,$BatchInput,$BatchOutput,%
      $CreationDate,$DefaultFont,$DumpDates,$DumpSupported,$Failed,%
      $Input,$Inspector,$IterationLimit,$Language,$Letters,$Linked,%
      $LinkSupported,$MachineEpsilon,$MachineID,$MachineName,%
      $MachinePrecision,$MachineType,$MaxMachineNumber,$MessageList,%
      $MessagePrePrint,$MinMachineNumber,$ModuleNumber,$NewMessage,%
      $NewSymbol,$Notebooks,$OperatingSystem,$Packages,$PipeSupported,%
      $PreRead,$ReleaseNumber,$SessionID,$SoundDisplayFunction,%
      $StringConversion,$StringOrder,$SyntaxHandler,$TimeUnit,%
      $VersionNumber}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[1.0]{Mathematica}%
  {morekeywords={Abs,Accuracy,AccurayGoal,AddTo,AiryAi,AlgebraicRules,%
      AmbientLight,And,Apart,Append,AppendTo,Apply,ArcCos,ArcCosh,%
      ArcCot,ArcCoth,ArcCsc,ArcCsch,ArcSec,ArcSech,ArcSin,ArcSinh,%
      ArcTan,ArcTanh,Arg,ArithmeticGeometricMean,Array,AspectRatio,%
      AtomQ,Attributes,Axes,AxesLabel,BaseForm,Begin,BeginPackage,%
      BernoulliB,BesselI,BesselJ,BesselK,BesselY,Beta,Binomial,Blank,%
      BlankNullSequence,BlankSequence,Block,Boxed,BoxRatios,Break,Byte,%
      ByteCount,Cancel,Cases,Catch,Ceiling,CForm,Character,Characters,%
      ChebyshevT,ChebyshevU,Check,Chop,Clear,ClearAll,ClearAttributes,%
      ClipFill,Close,Coefficient,CoefficientList,Collect,ColumnForm,%
      Complement,Complex,CompoundExpression,Condition,Conjugate,%
      Constants,Context,Continuation,Continue,ContourGraphics,%
      ContourPlot,Cos,Cosh,Cot,Coth,Count,Csc,Csch,Cubics,Cyclotomic,%
      D,Dashing,Decompose,Decrement,Default,Definition,Denominator,%
      DensityGraphics,DensityPlot,Depth,Derivative,Det,DiagonalMatrix,%
      DigitBlock,Dimensions,DirectedInfinity,Display,DisplayFunction,%
      Distribute,Divide,DivideBy,Divisors,DivisorSigma,Do,Dot,Drop,Dt,%
      Dump,EdgeForm,Eigensystem,Eigenvalues,Eigenvectors,Eliminate,%
      EllipticE,EllipticExp,EllipticF,EllipticK,EllipticLog,EllipticPi,%
      EllipticTheta,End,EndPackage,EngineeringForm,Environment,Equal,%
      Erf,EulerE,EulerPhi,EvenQ,Exit,Exp,Expand,ExpandAll,%
      ExpandDenominator,ExpandNumerator,ExpIntegralE,ExpIntegralEi,%
      Exponent,Expression,ExtendedGCD,FaceForm,Factor,FactorComplete,%
      Factorial,Factorial2,FactorInteger,FactorList,FactorSquareFree,%
      FactorSquareFreeList,FactorTerms,FactorTermsList,FindMinimum,%
      FindRoot,First,Fit,FixedPoint,Flatten,Floor,FontForm,For,Format,%
      FormatType,FortranForm,Fourier,FreeQ,FullDefinition,FullForm,%
      Function,Gamma,GCD,GegenbauerC,General,Get,Goto,Graphics,%
      Graphics3D,GrayLevel,Greater,GreaterEqual,Head,HermiteH,%
      HiddenSurface,Hold,HoldForm,Hypergeometric0F1,Hypergeometric1F1,%
      Hypergeometric2F1,HypergeometricU,Identity,IdentityMatrix,If,Im,%
      Implies,In,Increment,Indent,Infix,Information,Inner,Input,%
      InputForm,InputString,Insert,Integer,IntegerQ,Integrate,%
      Intersection,Inverse,InverseFourier,InverseJacobiSN,%
      InverseSeries,JacobiAmplitude,JacobiP,JacobiSN,JacobiSymbol,Join,%
      Label,LaguerreL,Last,LatticeReduce,LCM,LeafCount,LegendreP,%
      LegendreQ,LegendreType,Length,LerchPhi,Less,LessEqual,Level,%
      Lighting,LightSources,Limit,Line,LinearSolve,LineBreak,List,%
      ListContourPlot,ListDensityPlot,ListPlot,ListPlot3D,Literal,Log,%
      LogicalExpand,LogIntegral,MainSolve,Map,MapAll,MapAt,MatchQ,%
      MatrixForm,MatrixQ,Max,MaxBend,MaxMemoryUsed,MemberQ,%
      MemoryConstrained,MemoryInUse,Mesh,Message,MessageName,Messages,%
      Min,Minors,Minus,Mod,Modulus,MoebiusMu,Multinomial,N,NameQ,Names,%
      NBernoulliB,Needs,Negative,Nest,NestList,NIntegrate,%
      NonCommutativeMultiply,NonConstants,NonNegative,Normal,Not,%
      NProduct,NSum,NullSpace,Number,NumberForm,NumberPoint,NumberQ,%
      NumberSeparator,Numerator,O,OddQ,Off,On,OpenAppend,OpenRead,%
      OpenTemporary,OpenWrite,Operate,Optional,Options,Or,Order,%
      OrderedQ,Out,Outer,OutputForm,PageHeight,PageWidth,%
      ParametricPlot,ParametricPlot3D,Part,Partition,PartitionsP,%
      PartitionsQ,Pattern,Permutations,Plot,Plot3D,PlotDivision,%
      PlotJoined,PlotLabel,PlotPoints,PlotRange,PlotStyle,Pochhammer,%
      Plus,Point,PointSize,PolyGamma,Polygon,PolyLog,PolynomialQ,%
      PolynomialQuotient,PolynomialRemainder,Position,Positive,Postfix,%
      Power,PowerMod,PrecedenceForm,Precision,PreDecrement,Prefix,%
      PreIncrement,Prepend,PrependTo,Prime,PrimeQ,Print,PrintForm,%
      Product,Protect,PseudoInverse,Put,PutAppend,Quartics,Quit,%
      Quotient,Random,Range,Rational,Rationalize,Raw,Re,Read,ReadList,%
      Real,Rectangle,Reduce,Remove,RenderAll,Repeated,RepeatedNull,%
      Replace,ReplaceAll,ReplaceRepeated,Rest,Resultant,Return,Reverse,%
      RGBColor,Roots,RotateLeft,RotateRight,Round,RowReduce,Rule,%
      RuleDelayed,Run,RunThrough,SameQ,Save,Scaled,Scan,ScientificForm,%
      Sec,Sech,SeedRandom,Select,Sequence,SequenceForm,Series,%
      SeriesData,Set,SetAttributes,SetDelayed,SetOptions,Shading,Share,%
      Short,Show,Sign,Signature,Simplify,Sin,SingularValues,Sinh,%
      Skeleton,Slot,SlotSequence,Solve,SolveAlways,Sort,%
      SphericalHarmonicY,Splice,Sqrt,StirlingS1,StirlingS2,String,%
      StringBreak,StringForm,StringJoin,StringLength,StringMatchQ,%
      StringSkeleton,Subscript,Subscripted,Subtract,SubtractForm,Sum,%
      Superscript,SurfaceGraphics,Switch,Symbol,Table,TableForm,TagSet,%
      TagSetDelayed,TagUnset,Take,Tan,Tanh,ToString,TensorRank,TeXForm,%
      Text,TextForm,Thickness,Thread,Through,Throw,Ticks,%
      TimeConstrained,Times,TimesBy,Timing,ToExpression,Together,%
      ToRules,ToString,TotalHeight,TotalWidth,Transpose,TreeForm,TrueQ,%
      Unequal,Union,Unique,Unprotect,Unset,Update,UpSet,UpSetDelayed,%
      ValueQ,Variables,VectorQ,ViewPoint,WeierstrassP,%
      WeierstrassPPrime,Which,While,WorkingPrecision,Write,WriteString,%
      Xor,ZeroTest,Zeta},%
   morendkeywords={All,Automatic,Catalan,ComplexInfinity,Constant,%
      Degree,E,EndOfFile,EulerGamma,False,Flat,GoldenRatio,HoldAll,%
      HoldFirst,HoldRest,I,Indeterminate,Infinity,Listable,Locked,%
      Modular,None,Null,OneIdentity,Orderless,Pi,Protected,%
      ReadProtected,True,$CommandLine,$Context,$ContextPath,$Display,%
      $DisplayFunction,$Echo,$Epilog,$IgnoreEOF,$Line,$Messages,%
      $Output,$Path,$Post,$Pre,$PrePrint,$RecursionLimit,$System,%
      $Urgent,$Version},%
   sensitive,%
   morecomment=[s]{(*}{*)},%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%^^A $ to make emacs font locking happy
%
%
% \subsection{Mercury}
%
% \lstthanks{Dominique~de~Waleffe}{ddw@miscrit.be}{1997/11/24} mailed me the
% data and \lstthanks{Ralph~Becket}{rbeck@microsoft.com}{2001/05/01} extended
% the definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Mercury definition (c) 1997 Dominique de Waleffe
%% Extended (c) 2001 Ralph Becket
%%
\lst@definelanguage{Mercury}%
  {otherkeywords={::,->,-->,--->,:-,==,=>,<=,<=>},%
   morekeywords={module,include_module,import_module,interface,%
      end_module,implementation,mode,is,failure,semidet,nondet,det,%
      multi,erroneous,inst,in,out,di,uo,ui,type,typeclass,instance,%
      where,with_type,pred,func,lambda,impure,semipure,if,then,else,%
      some,all,not,true,fail,pragma,memo,no_inline,inline,loop_check,%
      minimal_model,fact_table,type_spec,terminates,does_not_terminate,%
      check_termination,promise_only_solution,unsafe_promise_unique,%
      source_file,obsolete,import,export,c_header_code,c_code,%
      foreign_code,foreign_proc,may_call_mercury,will_not_call_mercury,%
      thread_safe,not_thread_safe},%
   sensitive=t,%
   morecomment=[l]\%,%
   morecomment=[s]{/*}{*/},%
   morestring=[bd]",%
   morestring=[bd]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{MetaPost}
%
% \lstthanks{Uwe~Siart}{uwe.siart@ei.tum.de}{2003/03/28} provided the
% keywords for a previous version. The current language definition comes
% from \lstthanks{Brooks~Moses}{}{2004/08/07}.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% MetaPost definition (c) 2004 Brooks Moses
%%   This definition is based on the language specifications
%%   contained in the _User's Manual for Metapost_, with the core
%%   language enhancements that are described in the _Drawing
%%   Graphs with MetaPost_ documentation.
%%
\lst@definelanguage{MetaPost}%
  {% keywords[1] = MetaPost primitives (not found in following tables)
   morekeywords={end,begingroup,endgroup,beginfig,endfig,def,vardef,%
      primary,secondary,tertiary,primarydef,secondarydef,tertiarydef,%
      expr,suffix,text,enddef,if,fi,else,elseif,for,forsuffixes,%
      forever,endfor,upto,downto,stop,until,tension,controls,on,off,%
      btex,etex,within,input},
   % keywords[2] = Operators (Tables 6-9 in MetaPost User's manual)
   morekeywords=[2]{abs,and,angle,arclength,arctime,ASCII,bbox,bluepart,%
      boolean,bot,ceiling,center,char,color,cosd,cutafter,cutbefore,%
      cycle,decimal,dir,direction,directionpoint,directiontime,div,%
      dotprod,floor,fontsize,greenpart,hex,infont,intersectionpoint,%
      intersectiontimes,inverse,known,length,lft,llcorner,lrcorner,%
      makepath,makepen,mexp,mlog,mod,normaldeviate,not,numeric,oct,%
      odd,or,pair,path,pen,penoffset,picture,point,postcontrol,%
      precontrol,redpart,reverse,rotated,round,rt,scaled,shifted,%
      sind,slanted,sqrt,str,string,subpath,substring,top,transform,%
      transformed,ulcorner,uniformdeviate,unitvector,unknown,%
      urcorner,whatever,xpart,xscaled,xxpart,xypart,ypart,yscaled,%
      yxpart,yypart,zscaled,of,reflectedabout,rotatedaround,ulft,urt,%
      llft,lrt,readfrom,write,stroked,filled,textual,clipped,bounded,%
      pathpart,penpart,dashpart,textpart,fontpart},%
   % keywords[3] = Commands (Table 10)
   morekeywords=[3]{addto,clip,cutdraw,draw,drawarrow,drawdblarrow,%
      fill,filldraw,interim,let,loggingall,newinternal,pickup,%
      save,setbounds,shipout,show,showdependencies,showtoken,%
      showvariable,special,tracingall,tracingnone,undraw,unfill,%
      unfilldraw,to,also,contour,doublepath,withcolor,withpen,%
      dashed,randomseed},%
   % keywords[4] = Function-Like Macros (Table 11)
   morekeywords=[4]{boxit,boxjoin,bpath,buildcycle,circleit,dashpattern,%
      decr,dotlabel,dotlabels,drawboxed,drawboxes,drawoptions,%
      drawunboxed,fixpos,fixsize,incr,interpath,label,labels,max,min,pic,%
      thelabel,z,image},%
   % keywords[5] = Internal and Predefined Variables (Tables 3, 4)
   morekeywords=[5]{ahangle,ahlength,bboxmargin,charcode,circmargin,%
      day,defaultdx,defaultdy,defaultpen,defaultscale,labeloffset,%
      linecap,linejoin,miterlimit,month,pausing,prologues,showstopping,%
      time,tracingcapsules,tracingchoices,tracingcommands,%
      tracingequations,tracinglostchars,tracingmacros,tracingonline,%
      tracingoutput,tracingrestores,tracingspecs,tracingstats,%
      tracingtitles,truecorners,warningcheck,year},
   morekeywords=[5]{background,currentpen,currentpicture,cuttings,%
      defaultfont},%
   % keywords[6] = Predefined Constants (Table 5)
   morekeywords=[6]{beveled,black,blue,bp,butt,cc,cm,dd,ditto,down,%
      epsilon,evenly,false,fullcircle,green,halfcircle,identity,%
      in,infinity,left,mitered,mm,nullpicture,origin,pc,pencircle,%
      pt,quartercircle,red,right,rounded,squared,true,unitsquare,%
      up,white,withdots},
   sensitive=false,%
   alsoother={0123456789$},%
   morecomment=[l]\%,%
   morestring=[mf]{input\ },%
   morestring=[b]"%
  }[keywords,comments,strings,mf]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Miranda}
%
% Thanks to \lstthanks{Peter~Bartke}{bartke@inf.fu-berlin.de}{1999/01/30}
% for providing the definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Miranda definition (c) 1998 Peter Bartke
%%
%% Miranda: pure lazy functional language with polymorphic type system,
%%          garbage collection and functions as first class citizens
%%
\lst@definelanguage{Miranda}%
  {morekeywords={abstype,div,if,mod,otherwise,readvals,show,type,where,%
     with,bool,char,num,sys_message,False,True,Appendfile,Closefile,%
     Exit,Stderr,Stdout,System,Tofile,\%include,\%export,\%free,%
     \%insert,abs,and,arctan,cjustify,code,concat,const,converse,cos,%
     decode,digit,drop,dropwhile,entier,error,exp,filemode,filter,%
     foldl,foldl1,foldr,foldr1,force,fst,getenv,hd,hugenum,id,index,%
     init,integer,iterate,last,lay,layn,letter,limit,lines,ljustify,%
     log,log10,map,map2,max,max2,member,merge,min,min2,mkset,neg,%
     numval,or,pi,postfix,product,read,rep,repeat,reverse,rjustify,%
     scan,seq,showfloat,shownum,showscaled,sin,snd,sort,spaces,sqrt,%
     subtract,sum,system,take,takewhile,tinynum,tl,transpose,undef,%
     until,zip2,zip3,zip4,zip5,zip6,zip},%
   sensitive,%
   morecomment=[l]||,%
   morestring=[b]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
%
% \subsection{Mizar}
%
% As you can read below, \lstthanks{Adam~Grabowski}{adam@mizar.org}
% {2003/03/29} provided this language definition.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% 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]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{ML}
%
% Thanks to \lstthanks{Torben~Hoffmann}{toho@it.dtu.dk}{1999/02/18} for
% providing the definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% ML definition (c) 1999 Torben Hoffmann
%%
\lst@definelanguage{ML}%
  {morekeywords={abstype,and,andalso,as,case,do,datatype,else,end,%
       eqtype,exception,fn,fun,functor,handle,if,in,include,infix,%
       infixr,let,local,nonfix,of,op,open,orelse,raise,rec,sharing,sig,%
       signature,struct,structure,then,type,val,with,withtype,while},%
   sensitive,%
   morecomment=[n]{(*}{*)},%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Modula-2}
%
% Took data from
% \begin{itemize}
% \item
%       \textsc{Niklaus Wirth}: \textbf{Programmieren in Modula-2},
%       \"Ubers.\ Guido Pfeiffer;
%       2.\ Auflage -- Berlin; Heidelberg; New York; London; Paris; Tokyo;
%               Hong Kong: Springer, 1991;
%       ISBN 3-540-51689-1.
% \end{itemize}
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{MuPAD}
%
% This definition was provided by \lstthanks{Christopher~Creutzig}
% {ccr@mupad.de}{2002/10/15}. Again thanks to \lsthelper{Ulrike Fischer}
% {-}{2004/04/23}{Re: Bug in listings.sty} for pointing to a missing |@|
% in |\lstdefinelanguage|.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{NASTRAN}
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
% The definition is from \lsthelper{Jeffrey Ratcliffe}
% {Jeffrey.Ratcliffe@m.eads.net}{2002/02/21}{}---except the
% \texttt{MoreSelectCharTable} part which simulates the keyword
% \texttt{BEGIN BULK}.
%    \begin{macrocode}
\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]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%^^A $ to make emacs font locking happy
%
% \subsection{Oberon-2}
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{OCL}
%
% This definition is based on chapter 7 of the OMG UML standard version 1.3:
% \begin{itemize}
% \item
%   \textsc{OMG}:
%   \textbf{OMG Unified Modeling Language Specification};
%   {\copyright} 1999 OMG;
%   Available at \texttt{ftp://ftp.omg.org/pub/docs/ad/99-06-08.pdf}.
% \end{itemize}%
% This language is due to \lstthanks{Achim~D.~Brucker}
% {brucker@informatik.uni-freiburg.de}{2000/08/14}.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% 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).
%%
%    \end{macrocode}
% First we define are very decorative style. In the OMG standard only the
% boolean (infix (?)) operations are highlighted, but I think all OCL-defined
% operations should be highlighted, because they are \emph{guaranteed} to be
% side-effect-free (in OCL only side effect free evaluations or path
% expressions are allowed).
%    \begin{macrocode}
\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}%
  }%
%    \end{macrocode}
% Remark: "isQuery" is not real OCL, but a important attribute of the
% underlying UML model.
%
% The dialect called \texttt{OMG} is a very spare version. If you use
% this variant with bold style for first and second order keywords you
% get the look and feel of the OMG standard. First order keywords are the
% OCL context declarations (see section 7.3 of the OMG standard):
%    \begin{macrocode}
\lst@definelanguage[OMG]{OCL}%
    {morekeywords={context,pre,inv,post},%
%    \end{macrocode}
% Second order keywords are the operation which are defined for type
% Boolean (see pages 7-34/35 of the OMG standard) and the let-operation
% (in principle these are the infix operations):
%    \begin{macrocode}
    ndkeywords={or,xor,and,not,implies,if,then,else,endif},%
%    \end{macrocode}
% Third order keywords are the basic data types as declared in section 7.4 of
% the OMG standard:
%    \begin{macrocode}
    morekeywords=[3]{Boolean,Integer,Real,String,Set,Sequence,Bag,%
       OclType,OclAny,OclExpression,Enumeration,Collection,},%
    sensitive=t,%
    morecomment=[l]--,%
    morestring=[d]'%
   }[keywords,comments,strings]
%    \end{macrocode}
% After a bug report by \lsthelper{Martin~S\"u\ss kraut}{Edon.Myder@web.de}
% {2003/01/30}{morerdkeywords doesn't exist any more} \texttt{morerdkeywords}
% has been changed to the correct optional argument \texttt{[3]}.
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Octave}
%
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
% As you can read below the definition is due to
% \lstthanks{Ulrich~G.~Wortmann} {uliw@erdw.ethz.ch}{2002/02/18}{}.
% Additions due to \lstthanks{Sebastian~%
% Schubert}{-}{2006/05/11}.
%    \begin{macrocode}
%%
%% Octave definition (c) 2001,2002 Ulrich G. Wortmann
%%
\lst@definelanguage{Octave}%
  {morekeywords={gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,%
      all,angle,ans,any,asec,asech,asin,asinh,atan,atan2,atanh,auread,%
      auwrite,axes,axis,balance,bar,bessel,besselk,bessely,beta,%
      betainc,betaln,blanks,bone,break,brighten,capture,cart2pol,%
      cart2sph,caxis,cd,cdf2rdf,cedit,ceil,chol,cla,clabel,clc,clear,%
      clf,clock,close,colmmd,Colon,colorbar,colormap,ColorSpec,colperm,%
      comet,comet3,compan,compass,computer,cond,condest,conj,contour,%
      contour3,contourc,contrast,conv,conv2,cool,copper,corrcoef,cos,%
      cosh,cot,coth,cov,cplxpair,cputime,cross,csc,csch,csvread,%
      csvwrite,cumprod,cumsum,cylinder,date,dbclear,dbcont,dbdown,%
      dbquit,dbstack,dbstatus,dbstep,dbstop,dbtype,dbup,ddeadv,ddeexec,%
      ddeinit,ddepoke,ddereq,ddeterm,ddeunadv,deblank,dec2hex,deconv,%
      del2,delete,demo,det,diag,diary,diff,diffuse,dir,disp,dlmread,%
      dlmwrite,dmperm,dot,drawnow,echo,eig,ellipj,ellipke,else,elseif,%
      end,engClose,engEvalString,engGetFull,engGetMatrix,engOpen,%
      engOutputBuffer,engPutFull,engPutMatrix,engSetEvalCallback,%
      engSetEvalTimeout,engWinInit,eps,erf,erfc,erfcx,erfinv,%
      errorbar,etime,etree,eval,exist,exp,expint,expm,expo,eye,fclose,%
      feather,feof,ferror,feval,fft,fft2,fftshift,fgetl,fgets,figure,%
      fill,fill3,filter,filter2,find,findstr,finite,fix,flag,fliplr,%
      flipud,floor,flops,fmin,fmins,fopen,for,format,fplot,fprintf,%
      fread,frewind,fscanf,fseek,ftell,full,function,funm,fwrite,fzero,%
      gallery,gamma,gammainc,gammaln,gca,gcd,gcf,gco,get,getenv,%
      getframe,ginput,global,gplot,gradient,gray,graymon,grid,griddata,%
      gtext,hadamard,hankel,help,hess,hex2dec,hex2num,hidden,hilb,hist,%
      hold,home,hostid,hot,hsv,hsv2rgb,if,ifft,ifft2,imag,image,%
      imagesc,Inf,info,input,int2str,interp1,interp2,interpft,inv,%
      invhilb,isempty,isglobal,ishold,isieee,isinf,isletter,isnan,%
      isreal,isspace,issparse,isstr,jet,keyboard,kron,lasterr,lcm,%
      legend,legendre,length,lin2mu,line,linspace,load,log,log10,log2,%
      loglog,logm,logspace,lookfor,lower,ls,lscov,lu,magic,matClose,%
      matDeleteMatrix,matGetDir,matGetFp,matGetFull,matGetMatrix,%
      matGetNextMatrix,matGetString,matlabrc,matlabroot,matOpen,%
      matPutFull,matPutMatrix,matPutString,max,mean,median,menu,mesh,%
      meshc,meshgrid,meshz,mexAtExit,mexCallMATLAB,mexdebug,%
      mexErrMsgTxt,mexEvalString,mexFunction,mexGetFull,mexGetMatrix,%
      mexGetMatrixPtr,mexPrintf,mexPutFull,mexPutMatrix,mexSetTrapFlag,%
      min,more,movie,moviein,mu2lin,mxCalloc,mxCopyCharacterToPtr,%
      mxCopyComplex16ToPtr,mxCopyInteger4ToPtr,mxCopyPtrToCharacter,%
      mxCopyPtrToComplex16,mxCopyPtrToInteger4,mxCopyPtrToReal8,%
      mxCopyReal8ToPtr,mxCreateFull,mxCreateSparse,mxCreateString,%
      mxFree,mxFreeMatrix,mxGetIr,mxGetJc,mxGetM,mxGetN,mxGetName,%
      mxGetNzmax,mxGetPi,mxGetPr,mxGetScalar,mxGetString,mxIsComplex,%
      mxIsFull,mxIsNumeric,mxIsSparse,mxIsString,mxIsTypeDouble,%
      mxSetIr,mxSetJc,mxSetM,mxSetN,mxSetName,mxSetNzmax,mxSetPi,%
      mxSetPr,NaN,nargchk,nargin,nargout,newplot,nextpow2,nnls,nnz,%
      nonzeros,norm,normest,null,num2str,nzmax,ode23,ode45,orient,orth,%
      pack,pascal,patch,path,pause,pcolor,pi,pink,pinv,plot,plot3,%
      pol2cart,polar,poly,polyder,polyeig,polyfit,polyval,polyvalm,%
      pow2,print,printopt,prism,prod,pwd,qr,qrdelete,qrinsert,quad,%
      quad8,quit,quiver,qz,rand,randn,randperm,rank,rat,rats,rbbox,%
      rcond,real,realmax,realmin,refresh,rem,reset,reshape,residue,%
      return,rgb2hsv,rgbplot,rootobject,roots,rose,rosser,rot90,rotate,%
      round,rref,rrefmovie,rsf2csf,save,saxis,schur,sec,sech,semilogx,%
      semilogy,set,setstr,shading,sign,sin,sinh,size,slice,sort,sound,%
      spalloc,sparse,spaugment,spconvert,spdiags,specular,speye,spfun,%
      sph2cart,sphere,spinmap,spline,spones,spparms,sprandn,sprandsym,%
      sprank,sprintf,spy,sqrt,sqrtm,sscanf,stairs,startup,std,stem,%
      str2mat,str2num,strcmp,strings,strrep,strtok,subplot,subscribe,%
      subspace,sum,surf,surface,surfc,surfl,surfnorm,svd,symbfact,%
      symmmd,symrcm,tan,tanh,tempdir,tempname,terminal,text,tic,title,%
      toc,toeplitz,trace,trapz,tril,triu,type,uicontrol,uigetfile,%
      uimenu,uiputfile,unix,unwrap,upper,vander,ver,version,view,%
      viewmtx,waitforbuttonpress,waterfall,wavread,wavwrite,what,%
      whatsnew,which,while,white,whitebg,who,whos,wilkinson,wk1read,%
      stderr,stdout,plot,set,endif,wk1write,xlabel,xor,ylabel,zeros,%
      zlabel,zoom,endwhile,endfunction,printf,case,switch,otherwise,%
      system,lsode,endfor,error,ones,oneplot,__gnuplot_set__,do,until},%
   sensitive=t,%
   morecomment=[l]\#,%
   morecomment=[l]\#\#,%
   morecomment=[l]\%,%
   morestring=[m]',%
   morestring=[m]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Oz}
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
% Thanks to \lstthanks{Andres~Becerra~Sandoval}{abecerra@univalle.edu.co}
% {2003/10/02} for providing this language definition.
%    \begin{macrocode}
%%
%% Oz definition (c) Andres Becerra Sandoval
%%
\lst@definelanguage{Oz}%
  {morekeywords={andthen,at,attr,case,catch,choice,class,%
      cond,declare,define,dis,div,else,elsecase,%
      elseif,end,export,fail,false,feat,finally,%
      from,fun,functor,if,import,in,local,%
      lock,meth,mod,not,of,or,orelse,%
      prepare,proc,prop,raise,require,self,skip,%
      then,thread,true,try,unit},%
   sensitive=true,%
   morecomment=[l]{\%},%
   morecomment=[s]{/*}{*/},%
   morestring=[b]",%
   morestring=[d]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Pascal}
%
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
% Thanks to \lsthelper{Andreas Stephan}{Andreas.Stephan@victoria.de}%
% {1998/04/07}{alpha, byte, pack, unpack} for reporting non-keywords alpha,
% byte, pack and unpack.
%    \begin{macrocode}
\lst@definelanguage[XSC]{Pascal}[Standard]{Pascal}
  {deletekeywords={alfa,byte,pack,unpack},% 1998 Andreas Stephan
   morekeywords={dynamic,external,forward,global,module,nil,operator,%
      priority,sum,type,use,dispose,mark,page,release,cimatrix,%
      cinterval,civector,cmatrix,complex,cvector,dotprecision,imatrix,%
      interval,ivector,rmatrix,rvector,string,im,inf,re,sup,chr,comp,%
      eof,eoln,expo,image,ival,lb,lbound,length,loc,mant,maxlength,odd,%
      ord,pos,pred,round,rval,sign,substring,succ,trunc,ub,ubound}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[Borland6]{Pascal}[Standard]{Pascal}
  {morekeywords={asm,constructor,destructor,implementation,inline,%
      interface,nil,object,shl,shr,string,unit,uses,xor},%
   morendkeywords={Abs,Addr,ArcTan,Chr,Concat,Copy,Cos,CSeg,DiskFree,%
      DiskSize,DosExitCode,DosVersion,DSeg,EnvCount,EnvStr,Eof,Eoln,%
      Exp,FExpand,FilePos,FileSize,Frac,FSearch,GetBkColor,GetColor,%
      GetDefaultPalette,GetDriverName,GetEnv,GetGraphMode,GetMaxMode,%
      GetMaxX,GetMaxY,GetModeName,GetPaletteSize,GetPixel,GetX,GetY,%
      GraphErrorMsg,GraphResult,Hi,ImageSize,InstallUserDriver,%
      InstallUserFont,Int,IOResult,KeyPressed,Length,Lo,MaxAvail,%
      MemAvail,MsDos,Odd,Ofs,Ord,OvrGetBuf,OvrGetRetry,ParamCount,%
      ParamStr,Pi,Pos,Pred,Ptr,Random,ReadKey,Round,SeekEof,SeekEoln,%
      Seg,SetAspectRatio,Sin,SizeOf,Sound,SPtr,Sqr,Sqrt,SSeg,Succ,%
      Swap,TextHeight,TextWidth,Trunc,TypeOf,UpCase,WhereX,WhereY,%
      Append,Arc,Assign,AssignCrt,Bar,Bar3D,BlockRead,BlockWrite,ChDir,%
      Circle,ClearDevice,ClearViewPort,Close,CloseGraph,ClrEol,ClrScr,%
      Dec,Delay,Delete,DelLine,DetectGraph,Dispose,DrawPoly,Ellipse,%
      Erase,Exec,Exit,FillChar,FillEllipse,FillPoly,FindFirst,FindNext,%
      FloodFill,Flush,FreeMem,FSplit,GetArcCoords,GetAspectRatio,%
      GetDate,GetDefaultPalette,GetDir,GetCBreak,GetFAttr,%
      GetFillSettings,GetFTime,GetImage,GetIntVec,GetLineSettings,%
      GetMem,GetPalette,GetTextSettings,GetTime,GetVerify,%
      GetViewSettings,GoToXY,Halt,HighVideo,Inc,InitGraph,Insert,%
      InsLine,Intr,Keep,Line,LineRel,LineTo,LowVideo,Mark,MkDir,Move,%
      MoveRel,MoveTo,MsDos,New,NormVideo,NoSound,OutText,OutTextXY,%
      OvrClearBuf,OvrInit,OvrInitEMS,OvrSetBuf,PackTime,PieSlice,%
      PutImage,PutPixel,Randomize,Rectangle,Release,Rename,%
      RestoreCrtMode,RmDir,RunError,Sector,Seek,SetActivePage,%
      SetAllPalette,SetBkColor,SetCBreak,SetColor,SetDate,SetFAttr,%
      SetFillPattern,SetFillStyle,SetFTime,SetGraphBufSize,%
      SetGraphMode,SetIntVec,SetLineStyle,SetPalette,SetRGBPalette,%
      SetTextBuf,SetTextJustify,SetTextStyle,SetTime,SetUserCharSize,%
      SetVerify,SetViewPort,SetVisualPage,SetWriteMode,Sound,Str,%
      SwapVectors,TextBackground,TextColor,TextMode,Truncate,%
      UnpackTime,Val,Window}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[Standard]{Pascal}%
  {morekeywords={alfa,and,array,begin,boolean,byte,case,char,const,div,%
      do,downto,else,end,false,file,for,function,get,goto,if,in,%
      integer,label,maxint,mod,new,not,of,or,pack,packed,page,program,%
      put,procedure,read,readln,real,record,repeat,reset,rewrite,set,%
      text,then,to,true,type,unpack,until,var,while,with,write,%
      writeln},%
   sensitive=f,%
   morecomment=[s]{(*}{*)},%
   morecomment=[s]{\{}{\}},%
   morestring=[d]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Perl}
%
% I got the data from \texttt{http://www.perl.com}. But I wish to thank
% \lsthelper{Herbert~Weinhandl}{weinhand@grz08u.unileoben.ac.at}{}{} for the
% book `Learning Perl'.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Perl}%
  {morekeywords={abs,accept,alarm,atan2,bind,binmode,bless,caller,%
      chdir,chmod,chomp,chop,chown,chr,chroot,close,closedir,connect,%
      continue,cos,crypt,dbmclose,dbmopen,defined,delete,die,do,dump,%
      each,else,elsif,endgrent,endhostent,endnetent,endprotoent,%
      endpwent,endservent,eof,eval,exec,exists,exit,exp,fcntl,fileno,%
      flock,for,foreach,fork,format,formline,getc,getgrent,getgrgid,%
      getgrnam,gethostbyaddr,gethostbyname,gethostent,getlogin,%
      getnetbyaddr,getnetbyname,getnetent,getpeername,getpgrp,%
      getppid,getpriority,getprotobyname,getprotobynumber,getprotoent,%
      getpwent,getpwnam,getpwuid,getservbyname,getservbyport,%
      getservent,getsockname,getsockopt,glob,gmtime,goto,grep,hex,if,%
      import,index,int,ioctl,join,keys,kill,last,lc,lcfirst,length,%
      link,listen,local,localtime,log,lstat,m,map,mkdir,msgctl,msgget,%
      msgrcv,msgsnd,my,next,no,oct,open,opendir,ord,pack,package,pipe,%
      pop,pos,print,printf,prototype,push,q,qq,quotemeta,qw,qx,rand,%
      read,readdir,readlink,recv,redo,ref,rename,require,reset,return,%
      reverse,rewinddir,rindex,rmdir,s,scalar,seek,seekdir,select,%
      semctl,semget,semop,send,setgrent,sethostent,setnetent,setpgrp,%
      setpriority,setprotoent,setpwent,setservent,setsockopt,shift,%
      shmctl,shmget,shmread,shmwrite,shutdown,sin,sleep,socket,%
      socketpair,sort,splice,split,sprintf,sqrt,srand,stat,study,sub,%
      substr,symlink,syscall,sysopen,sysread,system,syswrite,tell,%
      telldir,tie,tied,time,times,tr,truncate,uc,ucfirst,umask,undef,%
      unless,unlink,unpack,unshift,untie,until,use,utime,values,vec,%
      wait,waitpid,wantarray,warn,while,write,y},%
   sensitive,%
   morecomment=[l]\#,%
   morestring=[b]",%
   morestring=[b]',%
   MoreSelectCharTable=%
      \lst@ReplaceInput{\$\#}{\lst@ProcessOther\$\lst@ProcessOther\#}%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{PHP}
%
% \lstthanks{Luca Balzerani}{lou@latoserver.it}{2002/04/06,2002/04/16} sent me
% this language definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% PHP definition by Luca Balzerani
%%
\lst@definelanguage{PHP}%
  {morekeywords={%
  %--- core language
    <?,?>,::,break,case,continue,default,do,else,%
    elseif,for,foreach,if,include,require,phpinfo,%
    switch,while,false,FALSE,true,TRUE,%
  %--- apache functions
    apache_lookup_uri,apache_note,ascii2ebcdic,ebcdic2ascii,%
    virtual,apache_child_terminate,apache_setenv,%
  %--- array functions
    array,array_change_key_case,array_chunk,array_count_values,%
    array_filter,array_flip,array_fill,array_intersect,%
    array_keys,array_map,array_merge,array_merge_recursive,%
    array_pad,array_pop,array_push,array_rand,array_reverse,%
    array_shift,array_slice,array_splice,array_sum,array_unique,%
    array_values,array_walk,arsort,asort,compact,count,current,each,%
    extract,in_array,array_search,key,krsort,ksort,list,natsort,%
    next,pos,prev,range,reset,rsort,shuffle,sizeof,sort,uasort,%
    usort,%
  %--- aspell functions
    aspell_new,aspell_check,aspell_check_raw,aspell_suggest,%
  %--- bc functions
    bcadd,bccomp,bcdiv,bcmod,bcmul,bcpow,bcscale,bcsqrt,bcsub,%
  %--- bzip2 functions
    bzclose,bzcompress,bzdecompress,bzerrno,bzerror,bzerrstr,%
    bzopen,bzread,bzwrite,%
  %--- calendar functions
    JDToGregorian,GregorianToJD,JDToJulian,JulianToJD,JDToJewish,%
    JDToFrench,FrenchToJD,JDMonthName,JDDayOfWeek,easter_date,%
    unixtojd,jdtounix,cal_days_in_month,cal_to_jd,cal_from_jd,%
  %--- ccvs functions
    ccvs_init,ccvs_done,ccvs_new,ccvs_add,ccvs_delete,ccvs_auth,%
    ccvs_reverse,ccvs_sale,ccvs_void,ccvs_status,ccvs_count,%
    ccvs_report,ccvs_command,ccvs_textvalue,%
  %--- classobj functions
    call_user_method,call_user_method_array,class_exists,get_class,%
    get_class_vars,get_declared_classes,get_object_vars,%
    is_a,is_subclass_of,method_exists,%
  %--- com functions
    COM,VARIANT,com_load,com_invoke,com_propget,com_get,com_propput,%
    com_set,com_addref,com_release,com_isenum,com_load_typelib,%
  %--- cpdf functions
    cpdf_add_annotation,cpdf_add_outline,cpdf_arc,cpdf_begin_text,%
    cpdf_clip,cpdf_close,cpdf_closepath,cpdf_closepath_fill_stroke,%
    cpdf_continue_text,cpdf_curveto,cpdf_end_text,cpdf_fill,%
    cpdf_finalize,cpdf_finalize_page,%
    cpdf_import_jpeg,cpdf_lineto,cpdf_moveto,cpdf_newpath,cpdf_open,%
    cpdf_page_init,cpdf_place_inline_image,cpdf_rect,cpdf_restore,%
    cpdf_rmoveto,cpdf_rotate,cpdf_rotate_text,cpdf_save,%
    cpdf_scale,cpdf_set_char_spacing,cpdf_set_creator,%
    cpdf_set_font,cpdf_set_horiz_scaling,cpdf_set_keywords,%
    cpdf_set_page_animation,cpdf_set_subject,cpdf_set_text_matrix,%
    cpdf_set_text_rendering,cpdf_set_text_rise,cpdf_set_title,%
    cpdf_setdash,cpdf_setflat,cpdf_setgray,cpdf_setgray_fill,%
    cpdf_setlinecap,cpdf_setlinejoin,cpdf_setlinewidth,%
    cpdf_setrgbcolor,cpdf_setrgbcolor_fill,cpdf_setrgbcolor_stroke,%
    cpdf_show_xy,cpdf_stringwidth,cpdf_set_font_directories,%
    cpdf_set_viewer_preferences,cpdf_stroke,cpdf_text,%
    cpdf_set_action_url,%
  %--- crack functions
    crack_opendict,crack_closedict,crack_check,crack_getlastmessage,%
  %--- ctype functions
    ctype_alnum,ctype_alpha,ctype_cntrl,ctype_digit,ctype_lower,%
    ctype_print,ctype_punct,ctype_space,ctype_upper,ctype_xdigit,%
  %--- curl functions
    curl_init,curl_setopt,curl_exec,curl_close,curl_version,%
    curl_error,curl_getinfo,%
  %--- cybercash functions
    cybercash_encr,cybercash_decr,cybercash_base64_encode,%
  %--- cybermut functions
    cybermut_creerformulairecm,cybermut_testmac,%
  %--- cyrus functions
    cyrus_connect,cyrus_authenticate,cyrus_bind,cyrus_unbind,%
    cyrus_close,%
  %--- datetime functions
    checkdate,date,getdate,gettimeofday,gmdate,gmmktime,gmstrftime,%
    microtime,mktime,strftime,time,strtotime,%
  %--- dbase functions
    dbase_create,dbase_open,dbase_close,dbase_pack,dbase_add_record,%
    dbase_delete_record,dbase_get_record,%
    dbase_numfields,dbase_numrecords,%
  %--- dba functions
    dba_close,dba_delete,dba_exists,dba_fetch,dba_firstkey,%
    dba_nextkey,dba_popen,dba_open,dba_optimize,dba_replace,%
  %--- dbm functions
    dbmopen,dbmclose,dbmexists,dbmfetch,dbminsert,dbmreplace,%
    dbmfirstkey,dbmnextkey,dblist,%
  %--- dbx functions
    dbx_close,dbx_connect,dbx_error,dbx_query,dbx_sort,dbx_compare,%
  %--- dio functions
    dio_open,dio_read,dio_write,dio_truncate,dio_stat,dio_seek,%
    dio_close,%
  %--- dir functions
    chroot,chdir,dir,closedir,getcwd,opendir,readdir,rewinddir,%
  %--- dotnet functions
    dotnet_load,%
  %--- errorfunc functions
    error_log,error_reporting,restore_error_handler,%
    trigger_error,user_error,%
  %--- exec functions
    escapeshellarg,escapeshellcmd,exec,passthru,system,shell_exec,%
  %--- fbsql functions
    fbsql_affected_rows,fbsql_autocommit,fbsql_change_user,%
    fbsql_commit,fbsql_connect,fbsql_create_db,fbsql_create_blob,%
    fbsql_database_password,fbsql_data_seek,fbsql_db_query,%
    fbsql_drop_db,fbsql_errno,fbsql_error,fbsql_fetch_array,%
    fbsql_fetch_field,fbsql_fetch_lengths,fbsql_fetch_object,%
    fbsql_field_flags,fbsql_field_name,fbsql_field_len,%
    fbsql_field_table,fbsql_field_type,fbsql_free_result,%
    fbsql_list_dbs,fbsql_list_fields,fbsql_list_tables,%
    fbsql_num_fields,fbsql_num_rows,fbsql_pconnect,fbsql_query,%
    fbsql_read_clob,fbsql_result,fbsql_rollback,fbsql_set_lob_mode,%
    fbsql_start_db,fbsql_stop_db,fbsql_tablename,fbsql_warnings,%
    fbsql_get_autostart_info,fbsql_hostname,fbsql_password,%
    fbsql_username,%
  %--- fdf functions
    fdf_open,fdf_close,fdf_create,fdf_save,fdf_get_value,%
    fdf_next_field_name,fdf_set_ap,fdf_set_status,fdf_get_status,%
    fdf_get_file,fdf_set_flags,fdf_set_opt,%
    fdf_set_javascript_action,fdf_set_encoding,fdf_add_template,%
  %--- filepro functions
    filepro,filepro_fieldname,filepro_fieldtype,filepro_fieldwidth,%
    filepro_fieldcount,filepro_rowcount,%
  %--- filesystem functions
    basename,chgrp,chmod,chown,clearstatcache,copy,delete,dirname,%
    diskfreespace,disk_total_space,fclose,feof,fflush,fgetc,fgetcsv,%
    fgetss,file_get_contents,file,file_exists,fileatime,filectime,%
    fileinode,filemtime,fileowner,fileperms,filesize,filetype,flock,%
    fopen,fpassthru,fputs,fread,fscanf,fseek,fstat,ftell,ftruncate,%
    set_file_buffer,is_dir,is_executable,is_file,is_link,%
    is_writable,is_writeable,is_uploaded_file,link,linkinfo,mkdir,%
    parse_ini_file,pathinfo,pclose,popen,readfile,readlink,rename,%
    rmdir,stat,lstat,realpath,symlink,tempnam,tmpfile,touch,umask,%
  %--- fribidi functions
    fribidi_log2vis,%
  %--- ftp functions
    ftp_connect,ftp_login,ftp_pwd,ftp_cdup,ftp_chdir,ftp_mkdir,%
    ftp_nlist,ftp_rawlist,ftp_systype,ftp_pasv,ftp_get,ftp_fget,%
    ftp_fput,ftp_size,ftp_mdtm,ftp_rename,ftp_delete,ftp_site,%
    ftp_quit,ftp_exec,ftp_set_option,ftp_get_option,%
  %--- funchand functions
    call_user_func_array,call_user_func,create_function,%
    func_get_args,func_num_args,function_exists,%
    register_shutdown_function,register_tick_function,%
  %--- gettext functions
    bindtextdomain,bind_textdomain_codeset,dcgettext,dcngettext,%
    dngettext,gettext,ngettext,textdomain,%
  %--- gmp functions
    gmp_init,gmp_intval,gmp_strval,gmp_add,gmp_sub,gmp_mul,%
    gmp_div_r,gmp_div_qr,gmp_div,gmp_mod,gmp_divexact,gmp_cmp,%
    gmp_com,gmp_abs,gmp_sign,gmp_fact,gmp_sqrt,gmp_sqrtrm,%
    gmp_pow,gmp_powm,gmp_prob_prime,gmp_gcd,gmp_gcdext,gmp_invert,%
    gmp_jacobi,gmp_random,gmp_and,gmp_or,gmp_xor,gmp_setbit,%
    gmp_scan0,gmp_scan1,gmp_popcount,gmp_hamdist,%
  %--- http functions
    header,headers_sent,setcookie,%
  %--- hw functions
    hw_Array2Objrec,hw_Children,hw_ChildrenObj,hw_Close,hw_Connect,%
    hw_Deleteobject,hw_DocByAnchor,hw_DocByAnchorObj,%
    hw_Document_BodyTag,hw_Document_Content,hw_Document_SetContent,%
    hw_ErrorMsg,hw_EditText,hw_Error,hw_Free_Document,hw_GetParents,%
    hw_GetChildColl,hw_GetChildCollObj,hw_GetRemote,%
    hw_GetSrcByDestObj,hw_GetObject,hw_GetAndLock,hw_GetText,%
    hw_GetObjectByQueryObj,hw_GetObjectByQueryColl,%
    hw_GetChildDocColl,hw_GetChildDocCollObj,hw_GetAnchors,%
    hw_Mv,hw_Identify,hw_InCollections,hw_Info,hw_InsColl,hw_InsDoc,%
    hw_InsertObject,hw_mapid,hw_Modifyobject,hw_New_Document,%
    hw_Output_Document,hw_pConnect,hw_PipeDocument,hw_Root,%
    hw_Who,hw_getusername,hw_stat,hw_setlinkroot,hw_connection_info,%
    hw_insertanchors,hw_getrellink,hw_changeobject,%
  %--- ibase functions
    ibase_connect,ibase_pconnect,ibase_close,ibase_query,%
    ibase_fetch_row,ibase_fetch_object,ibase_field_info,%
    ibase_free_result,ibase_prepare,ibase_execute,ibase_trans,%
    ibase_rollback,ibase_timefmt,ibase_num_fields,ibase_blob_add,%
    ibase_blob_close,ibase_blob_create,ibase_blob_echo,%
    ibase_blob_import,ibase_blob_info,ibase_blob_open,%
  %--- icap functions
    icap_open,icap_close,icap_fetch_event,icap_list_events,%
    icap_delete_event,icap_snooze,icap_list_alarms,%
    icap_rename_calendar,icap_delete_calendar,icap_reopen,%
  %--- iconv functions
    iconv,iconv_get_encoding,iconv_set_encoding,ob_iconv_handler,%
  %--- ifx functions
    ifx_connect,ifx_pconnect,ifx_close,ifx_query,ifx_prepare,ifx_do,%
    ifx_errormsg,ifx_affected_rows,ifx_getsqlca,ifx_fetch_row,%
    ifx_fieldtypes,ifx_fieldproperties,ifx_num_fields,ifx_num_rows,%
    ifx_create_char,ifx_free_char,ifx_update_char,ifx_get_char,%
    ifx_copy_blob,ifx_free_blob,ifx_get_blob,ifx_update_blob,%
    ifx_textasvarchar,ifx_byteasvarchar,ifx_nullformat,%
    ifxus_free_slob,ifxus_close_slob,ifxus_open_slob,%
    ifxus_seek_slob,ifxus_read_slob,ifxus_write_slob,%
  %--- iisfunc functions
    iis_get_server_by_path,iis_get_server_by_comment,iis_add_server,%
    iis_set_dir_security,iis_get_dir_security,iis_set_server_rights,%
    iis_set_script_map,iis_get_script_map,iis_set_app_settings,%
    iis_stop_server,iis_stop_service,iis_start_service,%
  %--- image functions
    exif_imagetype,exif_read_data,exif_thumbnail,getimagesize,%
    imagealphablending,imagearc,imagefilledarc,imageellipse,%
    imagechar,imagecharup,imagecolorallocate,imagecolordeallocate,%
    imagecolorclosest,imagecolorclosestalpha,imagecolorclosestthwb,%
    imagecolorexactalpha,imagecolorresolve,imagecolorresolvealpha,%
    imagecolorset,imagecolorsforindex,imagecolorstotal,%
    imagecopy,imagecopymerge,imagecopymergegray,imagecopyresized,%
    imagecreate,imagecreatetruecolor,imagetruecolortopalette,%
    imagecreatefromgd2,imagecreatefromgd2part,imagecreatefromgif,%
    imagecreatefrompng,imagecreatefromwbmp,imagecreatefromstring,%
    imagecreatefromxpm,imagedashedline,imagedestroy,imagefill,%
    imagefilledrectangle,imagefilltoborder,imagefontheight,%
    imagegd,imagegd2,imagegif,imagepng,imagejpeg,imagewbmp,%
    imageline,imageloadfont,imagepalettecopy,imagepolygon,%
    imagepsencodefont,imagepsfreefont,imagepsloadfont,%
    imagepsslantfont,imagepstext,imagerectangle,imagesetpixel,%
    imagesetstyle,imagesettile,imagesetthickness,imagestring,%
    imagesx,imagesy,imagettfbbox,imageftbbox,imagettftext,%
    imagetypes,jpeg2wbmp,png2wbmp,iptcembed,read_exif_data,%
  %--- imap functions
    imap_8bit,imap_alerts,imap_append,imap_base64,imap_binary,%
    imap_bodystruct,imap_check,imap_clearflag_full,imap_close,%
    imap_delete,imap_deletemailbox,imap_errors,imap_expunge,%
    imap_fetchbody,imap_fetchheader,imap_fetchstructure,%
    imap_getmailboxes,imap_getsubscribed,imap_header,%
    imap_headers,imap_last_error,imap_listmailbox,%
    imap_mail,imap_mail_compose,imap_mail_copy,imap_mail_move,%
    imap_mime_header_decode,imap_msgno,imap_num_msg,imap_num_recent,%
    imap_ping,imap_popen,imap_qprint,imap_renamemailbox,imap_reopen,%
    imap_rfc822_parse_headers,imap_rfc822_write_address,%
    imap_search,imap_setacl,imap_set_quota,imap_setflag_full,%
    imap_status,imap_subscribe,imap_uid,imap_undelete,%
    imap_utf7_decode,imap_utf7_encode,imap_utf8,imap_thread,%
  %--- info functions
    assert,assert_options,extension_loaded,dl,getenv,get_cfg_var,%
    get_defined_constants,get_extension_funcs,getmygid,%
    get_loaded_extensions,get_magic_quotes_gpc,%
    getlastmod,getmyinode,getmypid,getmyuid,get_required_files,%
    ini_alter,ini_get,ini_get_all,ini_restore,ini_set,phpcredits,%
    phpversion,php_logo_guid,php_sapi_name,php_uname,putenv,%
    set_time_limit,version_compare,zend_logo_guid,zend_version,%
  %--- ircg functions
    ircg_pconnect,ircg_fetch_error_msg,ircg_set_current,ircg_join,%
    ircg_msg,ircg_notice,ircg_nick,ircg_topic,ircg_channel_mode,%
    ircg_whois,ircg_kick,ircg_ignore_add,ircg_ignore_del,%
    ircg_is_conn_alive,ircg_lookup_format_messages,%
    ircg_set_on_die,ircg_set_file,ircg_get_username,%
    ircg_nickname_unescape,%
  %--- java functions
    java_last_exception_clear,java_last_exception_get,%
  %--- ldap functions
    ldap_add,ldap_bind,ldap_close,ldap_compare,ldap_connect,%
    ldap_delete,ldap_dn2ufn,ldap_err2str,ldap_errno,ldap_error,%
    ldap_first_attribute,ldap_first_entry,ldap_free_result,%
    ldap_get_dn,ldap_get_entries,ldap_get_option,ldap_get_values,%
    ldap_list,ldap_modify,ldap_mod_add,ldap_mod_del,%
    ldap_next_attribute,ldap_next_entry,ldap_read,ldap_rename,%
    ldap_set_option,ldap_unbind,ldap_8859_to_t61,%
    ldap_next_reference,ldap_parse_reference,ldap_parse_result,%
    ldap_sort,ldap_start_tls,ldap_t61_to_8859,%
  %--- mail functions
    mail,ezmlm_hash,%
  %--- math functions
    abs,acos,acosh,asin,asinh,atan,atanh,atan2,base_convert,bindec,%
    cos,cosh,decbin,dechex,decoct,deg2rad,exp,expm1,floor,%
    hexdec,hypot,is_finite,is_infinite,is_nan,lcg_value,log,log10,%
    max,min,mt_rand,mt_srand,mt_getrandmax,number_format,octdec,pi,%
    rad2deg,rand,round,sin,sinh,sqrt,srand,tan,tanh,%
  %--- mbstring functions
    mb_language,mb_parse_str,mb_internal_encoding,mb_http_input,%
    mb_detect_order,mb_substitute_character,mb_output_handler,%
    mb_strlen,mb_strpos,mb_strrpos,mb_substr,mb_strcut,mb_strwidth,%
    mb_convert_encoding,mb_detect_encoding,mb_convert_kana,%
    mb_decode_mimeheader,mb_convert_variables,%
    mb_decode_numericentity,mb_send_mail,mb_get_info,%
    mb_ereg,mb_eregi,mb_ereg_replace,mb_eregi_replace,mb_split,%
    mb_ereg_search,mb_ereg_search_pos,mb_ereg_search_regs,%
    mb_ereg_search_getregs,mb_ereg_search_getpos,%
  %--- mcal functions
    mcal_open,mcal_popen,mcal_reopen,mcal_close,%
    mcal_rename_calendar,mcal_delete_calendar,mcal_fetch_event,%
    mcal_append_event,mcal_store_event,mcal_delete_event,%
    mcal_list_alarms,mcal_event_init,mcal_event_set_category,%
    mcal_event_set_description,mcal_event_set_start,%
    mcal_event_set_alarm,mcal_event_set_class,mcal_is_leap_year,%
    mcal_date_valid,mcal_time_valid,mcal_day_of_week,%
    mcal_date_compare,mcal_next_recurrence,%
    mcal_event_set_recur_daily,mcal_event_set_recur_weekly,%
    mcal_event_set_recur_monthly_wday,mcal_event_set_recur_yearly,%
    mcal_event_add_attribute,mcal_expunge,mcal_week_of_year,%
  %--- mcrypt functions
    mcrypt_get_cipher_name,mcrypt_get_block_size,%
    mcrypt_create_iv,mcrypt_cbc,mcrypt_cfb,mcrypt_ecb,mcrypt_ofb,%
    mcrypt_list_modes,mcrypt_get_iv_size,mcrypt_encrypt,%
    mcrypt_module_open,mcrypt_module_close,mcrypt_generic_deinit,%
    mcrypt_generic,mdecrypt_generic,mcrypt_generic_end,%
    mcrypt_enc_is_block_algorithm_mode,%
    mcrypt_enc_is_block_mode,mcrypt_enc_get_block_size,%
    mcrypt_enc_get_supported_key_sizes,mcrypt_enc_get_iv_size,%
    mcrypt_enc_get_modes_name,mcrypt_module_self_test,%
    mcrypt_module_is_block_algorithm,mcrypt_module_is_block_mode,%
    mcrypt_module_get_algo_key_size,%
  %--- mhash functions
    mhash_get_hash_name,mhash_get_block_size,mhash_count,mhash,%
  %--- misc functions
    connection_aborted,connection_status,connection_timeout,%
    define,defined,die,eval,exit,get_browser,highlight_file,%
    ignore_user_abort,iptcparse,leak,pack,show_source,sleep,uniqid,%
    usleep,%
  %--- mnogosearch functions
    udm_add_search_limit,udm_alloc_agent,udm_api_version,%
    udm_cat_list,udm_clear_search_limits,udm_errno,udm_error,%
    udm_free_agent,udm_free_ispell_data,udm_free_res,%
    udm_get_res_field,udm_get_res_param,udm_load_ispell_data,%
    udm_check_charset,udm_check_stored,udm_close_stored,udm_crc32,%
  %--- msession functions
    msession_connect,msession_disconnect,msession_count,%
    msession_destroy,msession_lock,msession_unlock,msession_set,%
    msession_uniq,msession_randstr,msession_find,msession_list,%
    msession_set_array,msession_listvar,msession_timeout,%
    msession_getdata,msession_setdata,msession_plugin,%
  %--- msql functions
    msql,msql_affected_rows,msql_close,msql_connect,msql_create_db,%
    msql_data_seek,msql_dbname,msql_drop_db,msql_dropdb,msql_error,%
    msql_fetch_field,msql_fetch_object,msql_fetch_row,%
    msql_field_seek,msql_fieldtable,msql_fieldtype,msql_fieldflags,%
    msql_free_result,msql_freeresult,msql_list_fields,%
    msql_list_dbs,msql_listdbs,msql_list_tables,msql_listtables,%
    msql_num_rows,msql_numfields,msql_numrows,msql_pconnect,%
    msql_regcase,msql_result,msql_select_db,msql_selectdb,%
  %--- mssql functions
    mssql_close,mssql_connect,mssql_data_seek,mssql_fetch_array,%
    mssql_fetch_object,mssql_fetch_row,mssql_field_length,%
    mssql_field_seek,mssql_field_type,mssql_free_result,%
    mssql_min_error_severity,mssql_min_message_severity,%
    mssql_num_fields,mssql_num_rows,mssql_pconnect,mssql_query,%
    mssql_select_db,mssql_bind,mssql_execute,mssql_fetch_assoc,%
    mssql_guid_string,mssql_init,mssql_rows_affected,%
  %--- muscat functions
    muscat_setup,muscat_setup_net,muscat_give,muscat_get,%
  %--- mysql functions
    mysql_affected_rows,mysql_change_user,mysql_character_set_name,%
    mysql_connect,mysql_create_db,mysql_data_seek,mysql_db_name,%
    mysql_drop_db,mysql_errno,mysql_error,mysql_escape_string,%
    mysql_fetch_assoc,mysql_fetch_field,mysql_fetch_lengths,%
    mysql_fetch_row,mysql_field_flags,mysql_field_name,%
    mysql_field_seek,mysql_field_table,mysql_field_type,%
    mysql_info,mysql_insert_id,mysql_list_dbs,mysql_list_fields,%
    mysql_list_tables,mysql_num_fields,mysql_num_rows,%
    mysql_ping,mysql_query,mysql_unbuffered_query,%
    mysql_result,mysql_select_db,mysql_tablename,mysql_thread_id,%
    mysql_get_host_info,mysql_get_proto_info,mysql_get_server_info,%
  %--- network functions
    checkdnsrr,closelog,debugger_off,debugger_on,%
    fsockopen,gethostbyaddr,gethostbyname,gethostbynamel,getmxrr,%
    getprotobynumber,getservbyname,getservbyport,ip2long,long2ip,%
    pfsockopen,socket_get_status,socket_set_blocking,%
    syslog,%
  %--- nis functions
    yp_get_default_domain,yp_order,yp_master,yp_match,yp_first,%
    yp_errno,yp_err_string,yp_all,yp_cat,%
  %--- oci8 functions
    OCIDefineByName,OCIBindByName,OCILogon,OCIPLogon,OCINLogon,%
    OCIExecute,OCICommit,OCIRollback,OCINewDescriptor,OCIRowCount,%
    OCIResult,OCIFetch,OCIFetchInto,OCIFetchStatement,%
    OCIColumnName,OCIColumnSize,OCIColumnType,OCIServerVersion,%
    OCINewCursor,OCIFreeStatement,OCIFreeCursor,OCIFreeDesc,%
    OCIError,OCIInternalDebug,OCICancel,OCISetPrefetch,%
    OCISaveLobFile,OCISaveLob,OCILoadLob,OCIColumnScale,%
    OCIColumnTypeRaw,OCINewCollection,OCIFreeCollection,%
    OCICollAppend,OCICollAssignElem,OCICollGetElem,OCICollMax,%
    OCICollTrim,%
  %--- oracle functions
    Ora_Bind,Ora_Close,Ora_ColumnName,Ora_ColumnSize,Ora_ColumnType,%
    Ora_CommitOff,Ora_CommitOn,Ora_Do,Ora_Error,Ora_ErrorCode,%
    Ora_Fetch,Ora_Fetch_Into,Ora_GetColumn,Ora_Logoff,Ora_Logon,%
    Ora_Numcols,Ora_Numrows,Ora_Open,Ora_Parse,Ora_Rollback,%
  %--- outcontrol functions
    flush,ob_start,ob_get_contents,ob_get_length,ob_get_level,%
    ob_flush,ob_clean,ob_end_flush,ob_end_clean,ob_implicit_flush,%
  %--- ovrimos functions
    ovrimos_connect,ovrimos_close,ovrimos_longreadlen,%
    ovrimos_execute,ovrimos_cursor,ovrimos_exec,ovrimos_fetch_into,%
    ovrimos_result,ovrimos_result_all,ovrimos_num_rows,%
    ovrimos_field_name,ovrimos_field_type,ovrimos_field_len,%
    ovrimos_free_result,ovrimos_commit,ovrimos_rollback,%
  %--- pcntl functions
    pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,%
    pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,%
    pcntl_exec,%
  %--- pcre functions
    preg_match,preg_match_all,preg_replace,preg_replace_callback,%
    preg_quote,preg_grep,Pattern Modifiers,Pattern Syntax,%
  %--- pdf functions
    pdf_add_annotation,pdf_add_bookmark,pdf_add_launchlink,%
    pdf_add_note,pdf_add_outline,pdf_add_pdflink,pdf_add_thumbnail,%
    pdf_arc,pdf_arcn,pdf_attach_file,pdf_begin_page,%
    pdf_begin_template,pdf_circle,pdf_clip,pdf_close,pdf_closepath,%
    pdf_closepath_stroke,pdf_close_image,pdf_close_pdi,%
    pdf_concat,pdf_continue_text,pdf_curveto,pdf_delete,%
    pdf_endpath,pdf_end_pattern,pdf_end_template,pdf_fill,%
    pdf_findfont,pdf_get_buffer,pdf_get_font,pdf_get_fontname,%
    pdf_get_image_height,pdf_get_image_width,pdf_get_parameter,%
    pdf_get_pdi_value,pdf_get_majorversion,pdf_get_minorversion,%
    pdf_initgraphics,pdf_lineto,pdf_makespotcolor,pdf_moveto,%
    pdf_open,pdf_open_CCITT,pdf_open_file,pdf_open_gif,%
    pdf_open_image_file,pdf_open_jpeg,pdf_open_memory_image,%
    pdf_open_pdi_page,pdf_open_png,pdf_open_tiff,pdf_place_image,%
    pdf_rect,pdf_restore,pdf_rotate,pdf_save,pdf_scale,pdf_setcolor,%
    pdf_setflat,pdf_setfont,pdf_setgray,pdf_setgray_fill,%
    pdf_setlinecap,pdf_setlinejoin,pdf_setlinewidth,pdf_setmatrix,%
    pdf_setpolydash,pdf_setrgbcolor,pdf_setrgbcolor_fill,%
    pdf_set_border_color,pdf_set_border_dash,pdf_set_border_style,%
    pdf_set_duration,pdf_set_font,pdf_set_horiz_scaling,%
    pdf_set_info_author,pdf_set_info_creator,pdf_set_info_keywords,%
    pdf_set_info_title,pdf_set_leading,pdf_set_parameter,%
    pdf_set_text_rendering,pdf_set_text_rise,pdf_set_text_matrix,%
    pdf_set_word_spacing,pdf_show,pdf_show_boxed,pdf_show_xy,%
    pdf_stringwidth,pdf_stroke,pdf_translate,%
  %--- pfpro functions
    pfpro_init,pfpro_cleanup,pfpro_process,pfpro_process_raw,%
  %--- pgsql functions
    pg_close,pg_affected_rows,pg_connect,pg_dbname,pg_end_copy,%
    pg_query,pg_fetch_array,pg_fetch_object,pg_fetch_row,%
    pg_field_name,pg_field_num,pg_field_prtlen,pg_field_size,%
    pg_free_result,pg_last_oid,pg_host,pg_last_notice,pg_lo_close,%
    pg_lo_export,pg_lo_import,pg_lo_open,pg_lo_read,pg_lo_seek,%
    pg_lo_read_all,pg_lo_unlink,pg_lo_write,pg_num_fields,%
    pg_options,pg_pconnect,pg_port,pg_put_line,pg_fetch_result,%
    pg_client_encoding,pg_trace,pg_tty,pg_untrace,pg_get_result,%
    pg_send_query,pg_cancel_query,pg_connection_busy,%
    pg_connection_status,pg_copy_from,pg_copy_to,pg_escape_bytea,%
    pg_result_error,%
  %--- posix functions
    posix_kill,posix_getpid,posix_getppid,posix_getuid,%
    posix_getgid,posix_getegid,posix_setuid,posix_seteuid,%
    posix_setegid,posix_getgroups,posix_getlogin,posix_getpgrp,%
    posix_setpgid,posix_getpgid,posix_getsid,posix_uname,%
    posix_ctermid,posix_ttyname,posix_isatty,posix_getcwd,%
    posix_getgrnam,posix_getgrgid,posix_getpwnam,posix_getpwuid,%
  %--- printer functions
    printer_open,printer_abort,printer_close,printer_write,%
    printer_set_option,printer_get_option,printer_create_dc,%
    printer_start_doc,printer_end_doc,printer_start_page,%
    printer_create_pen,printer_delete_pen,printer_select_pen,%
    printer_delete_brush,printer_select_brush,printer_create_font,%
    printer_select_font,printer_logical_fontheight,%
    printer_draw_rectangle,printer_draw_elipse,printer_draw_text,%
    printer_draw_chord,printer_draw_pie,printer_draw_bmp,%
  %--- pspell functions
    pspell_add_to_personal,pspell_add_to_session,pspell_check,%
    pspell_config_create,pspell_config_ignore,pspell_config_mode,%
    pspell_config_repl,pspell_config_runtogether,%
    pspell_new,pspell_new_config,pspell_new_personal,%
    pspell_store_replacement,pspell_suggest,%
  %--- qtdom functions
    qdom_tree,qdom_error,%
  %--- readline functions
    readline,readline_add_history,readline_clear_history,%
    readline_info,readline_list_history,readline_read_history,%
  %--- recode functions
    recode_string,recode,recode_file,%
  %--- regex functions
    ereg,ereg_replace,eregi,eregi_replace,split,spliti,sql_regcase,%
  %--- sem functions
    sem_get,sem_acquire,sem_release,sem_remove,shm_attach,%
    shm_remove,shm_put_var,shm_get_var,shm_remove_var,ftok,%
  %--- sesam functions
    sesam_connect,sesam_disconnect,sesam_settransaction,%
    sesam_rollback,sesam_execimm,sesam_query,sesam_num_fields,%
    sesam_diagnostic,sesam_fetch_result,sesam_affected_rows,%
    sesam_field_array,sesam_fetch_row,sesam_fetch_array,%
    sesam_free_result,%
  %--- session functions
    session_start,session_destroy,session_name,session_module_name,%
    session_id,session_register,session_unregister,session_unset,%
    session_get_cookie_params,session_set_cookie_params,%
    session_encode,session_set_save_handler,session_cache_limiter,%
    session_write_close,%
  %--- shmop functions
    shmop_open,shmop_read,shmop_write,shmop_size,shmop_delete,%
  %--- snmp functions
    snmpget,snmpset,snmpwalk,snmpwalkoid,snmp_get_quick_print,%
    snmprealwalk,%
  %--- strings functions
    addcslashes,addslashes,bin2hex,chop,chr,chunk_split,%
    count_chars,crc32,crypt,echo,explode,get_html_translation_table,%
    hebrev,hebrevc,htmlentities,htmlspecialchars,implode,join,%
    localeconv,ltrim,md5,md5_file,metaphone,nl_langinfo,nl2br,ord,%
    print,printf,quoted_printable_decode,quotemeta,str_rot13,rtrim,%
    setlocale,similar_text,soundex,sprintf,strncasecmp,strcasecmp,%
    strcmp,strcoll,strcspn,strip_tags,stripcslashes,stripslashes,%
    strlen,strnatcmp,strnatcasecmp,strncmp,str_pad,strpos,strrchr,%
    strrev,strrpos,strspn,strstr,strtok,strtolower,strtoupper,%
    strtr,substr,substr_count,substr_replace,trim,ucfirst,ucwords,%
    vsprintf,wordwrap,%
  %--- swf functions
    swf_openfile,swf_closefile,swf_labelframe,swf_showframe,%
    swf_getframe,swf_mulcolor,swf_addcolor,swf_placeobject,%
    swf_removeobject,swf_nextid,swf_startdoaction,%
    swf_actiongeturl,swf_actionnextframe,swf_actionprevframe,%
    swf_actionstop,swf_actiontogglequality,swf_actionwaitforframe,%
    swf_actiongotolabel,swf_enddoaction,swf_defineline,%
    swf_definepoly,swf_startshape,swf_shapelinesolid,%
    swf_shapefillsolid,swf_shapefillbitmapclip,%
    swf_shapemoveto,swf_shapelineto,swf_shapecurveto,%
    swf_shapearc,swf_endshape,swf_definefont,swf_setfont,%
    swf_fontslant,swf_fonttracking,swf_getfontinfo,swf_definetext,%
    swf_definebitmap,swf_getbitmapinfo,swf_startsymbol,%
    swf_startbutton,swf_addbuttonrecord,swf_oncondition,%
    swf_viewport,swf_ortho,swf_ortho2,swf_perspective,swf_polarview,%
    swf_pushmatrix,swf_popmatrix,swf_scale,swf_translate,swf_rotate,%
  %--- sybase functions
    sybase_affected_rows,sybase_close,sybase_connect,%
    sybase_fetch_array,sybase_fetch_field,sybase_fetch_object,%
    sybase_field_seek,sybase_free_result,sybase_get_last_message,%
    sybase_min_error_severity,sybase_min_message_severity,%
    sybase_num_fields,sybase_num_rows,sybase_pconnect,sybase_query,%
    sybase_select_db,%
  %--- uodbc functions
    odbc_autocommit,odbc_binmode,odbc_close,odbc_close_all,%
    odbc_connect,odbc_cursor,odbc_do,odbc_error,odbc_errormsg,%
    odbc_execute,odbc_fetch_into,odbc_fetch_row,odbc_fetch_array,%
    odbc_fetch_object,odbc_field_name,odbc_field_num,%
    odbc_field_len,odbc_field_precision,odbc_field_scale,%
    odbc_longreadlen,odbc_num_fields,odbc_pconnect,odbc_prepare,%
    odbc_result,odbc_result_all,odbc_rollback,odbc_setoption,%
    odbc_tableprivileges,odbc_columns,odbc_columnprivileges,%
    odbc_primarykeys,odbc_foreignkeys,odbc_procedures,%
    odbc_specialcolumns,odbc_statistics,%
  %--- url functions
    base64_decode,base64_encode,parse_url,rawurldecode,rawurlencode,%
    urlencode,%
  %--- var functions
    doubleval,empty,floatval,gettype,get_defined_vars,%
    import_request_variables,intval,is_array,is_bool,is_double,%
    is_int,is_integer,is_long,is_null,is_numeric,is_object,is_real,%
    is_scalar,is_string,isset,print_r,serialize,settype,strval,%
    unset,var_dump,var_export,is_callable,%
  %--- vpopmail functions
    vpopmail_add_domain,vpopmail_del_domain,%
    vpopmail_add_domain_ex,vpopmail_del_domain_ex,%
    vpopmail_add_user,vpopmail_del_user,vpopmail_passwd,%
    vpopmail_auth_user,vpopmail_alias_add,vpopmail_alias_del,%
    vpopmail_alias_get,vpopmail_alias_get_all,vpopmail_error,%
  %--- w32api functions
    w32api_set_call_method,w32api_register_function,%
    w32api_deftype,w32api_init_dtype,%
  %--- wddx functions
    wddx_serialize_value,wddx_serialize_vars,wddx_packet_start,%
    wddx_add_vars,wddx_deserialize,%
  %--- xml functions
    xml_parser_create,xml_set_object,xml_set_element_handler,%
    xml_set_processing_instruction_handler,xml_set_default_handler,%
    xml_set_notation_decl_handler,%
    xml_parse,xml_get_error_code,xml_error_string,%
    xml_get_current_column_number,xml_get_current_byte_index,%
    xml_parser_free,xml_parser_set_option,xml_parser_get_option,%
    utf8_encode,xml_parser_create_ns,%
    xml_set_start_namespace_decl_handler,%
  %--- xslt functions
    xslt_set_log,xslt_create,xslt_errno,xslt_error,xslt_free,%
    xslt_set_sax_handler,xslt_set_scheme_handler,%
    xslt_set_base,xslt_set_encoding,xslt_set_sax_handlers,%
  %--- yaz functions
    yaz_addinfo,yaz_close,yaz_connect,yaz_errno,yaz_error,yaz_hits,%
    yaz_database,yaz_range,yaz_record,yaz_search,yaz_present,%
    yaz_scan,yaz_scan_result,yaz_ccl_conf,yaz_ccl_parse,%
    yaz_wait,yaz_sort,%
  %--- zip functions
    zip_close,zip_entry_close,zip_entry_compressedsize,%
    zip_entry_filesize,zip_entry_name,zip_entry_open,zip_entry_read,%
    zip_read,%
  %--- zlib functions
    gzclose,gzeof,gzfile,gzgetc,gzgets,gzgetss,gzopen,gzpassthru,%
    gzread,gzrewind,gzseek,gztell,gzwrite,readgzfile,gzcompress,%
    gzdeflate,gzinflate,gzencode,},%
   sensitive,%
   morecomment=[l]\#,%
   morecomment=[l]//,%
   morecomment=[s]{/*}{*/},%
   morestring=[b]",%
   morestring=[b]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Plasm}
%
% \lstthanks{Alessio~Pace}{}{2004/09/01} provided the following definition.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Plasm}%
  {sensitive=false,%
   morekeywords={aa,abs,ac,acolor,acos,actor,al,alias,align,and,%
      animation,animation,appearance,apply,ar,arc,as,asin,assoc,atan,%
      axialcamera,axialcameras,basehermite,bbox,bbox,bernstein,%
      bernsteinbasis,bezier,beziercurve,beziermanifold,bezierstripe,%
      beziersurface,bigger,biggest,bilinearsurface,binormal,%
      biquadraticsurface,black,blend,blue,bottom,box,brown,bspize,%
      bspline,bsplinebasis,c,cabinet,camera,cart,case,cat,catch,ceil,%
      centeredcameras,centralcavalier,char,charseq,choose,circle,%
      circumference,class,cmap,color,comp,computecoords,cone,%
      conicalsurface,cons,control,convexcoords,convexhull,coonspatch,%
      copy,cos,cosh,crease,crosspolytope,cube,cubiccardinal,%
      cubiccardinalbasis,cubichermite,cubicubspline,cubicubsplinebasis,%
      cuboid,curl,curvature,curve2cspath,curve2mapvect,cyan,cylinder,%
      cylindricalsurface,d,deboor,def,depol,depth_sort,depth_test,%
      derbernstein,derbernsteinbase,derbezier,determinant,difference,%
      differencepr,dim,dimetric,dirproject,displaygraph,displaynubspline,%
      displaynurbspline,distl,distr,div,divergence,dodecahedron,dot,down,%
      dp,drawedges,drawforks,drawtree,ds,dsphere,dump,dumprep,ellipse,%
      embed,end,eq,ex,exp,explode,export,extract_bodies,extract_polygons,%
      extract_wires,extrude,extrusion,fact,false,feature,ff,fillcolor,%
      filter,finitecone,first,flash,flashani,floor,fontcolor,fontheight,%
      fontspacing,fontwidth,fractalsimplex,frame,frame,frameflash,fromto,%
      gausscurvature,ge,grad,gradient,gradmap,gray,green,gt,help,hermite,%
      hermitebasis,hermitesurface,hexahedron,icosahedron,id,idnt,if,in,%
      inarcs,innerprod,inset,insl,insr,intersection,intersectionpr,%
      intervals,intmax,intmin,intsto,inv,isa,isanimpol,isbool,ischar,%
      isclosedshape,iscloseto,isempty,iseven,isfun,isfunvect,isge,isgt,%
      isint,isintneg,isinto,isintpos,isle,islt,ismat,ismatof,isnat,%
      isnull,isnum,isnumneg,isnumpos,isodd,isometric,isorthoshape,ispair,%
      ispoint,ispointseq,ispol,ispoldim,ispolytope,ispurepol,isreal,%
      isrealneg,isrealpos,isrealvect,isseq,isseqof,isshape,issimplex,%
      issqrmat,isstring,isvect,iszero,jacobian,join,joints,k,last,le,%
      left,leftcavalier,len,less,lesseq,lex,lift,light,linecolor,%
      linesize,list,ln,load,loadlib,loop,lt,lxmy,magenta,map,mapshapes,%
      markersize,mat,matdotprod,material,mathom,max,mean,meanpoint,med,%
      merge,mesh,min,minkowski,mirror,mixedprod,mk,mkframe,mkpol,%
      mkvector,mkversork,mod,model,move,mul,multextrude,mxby,mxmy,mxty,%
      myfont,n,nat2string,neq,ngon,norm2,normalmap,not,nu_grid,nubspline,%
      nubsplineknots,nurbspline,nurbsplineknots,octahedron,offset,%
      onepoint,open,optimize,or,orange,ord,ortho,orthoproject,orthox,%
      orthoy,orthoz,outarcs,outerloop,outerwarp,pairdiff,parallel,%
      pascaltriangle,pdiff,pdifference,permutahedron,permutations,%
      perspective,perspective,pi,pivotop,plane,planemapping,pmap,%
      points2shape,polar,polyline,polymarker,polypoint,power,powerset,%
      presort,principalnormal,print,prism,profileprodsurface,%
      progressivesum,project,projection,purple,pyramid,q,quadarray,%
      quadmesh,quote,r,raise,range,rationalbezier,rationalblend,%
      rationalbspline,rationalize,red,rev,reverse,rgbacolor,right,%
      rightcavalier,ring,rn,rotatedtext,rotationalsurface,rotn,rtail,%
      ruledsurface,rxmy,s,save,scalarmatprod,scalarvectprod,schlegel2d,%
      schlegel3d,sdifference,sdifferencepr,segment,sel,setand,setdiff,%
      setfontcolor,setor,setxor,sex,shape_0,shape_1,shape2points,%
      shape2pol,shapeclosed,shapecomb,shapediff,shapedist,%
      shapeinbetweening,shapeinf,shapejoin,shapelen,shapenorm,%
      shapenormal,shapeprod,shaperot,shapesum,shapesup,shapezero,shift,%
      showprop,sign,signal,simplex,simplexpile,sin,sinh,size,skeleton,%
      skew,smaller,smallest,solidifier,solidify,sort,sphere,spline,%
      splinesampling,splitcells,splitpols,sqr,sqrt,star,string,%
      stringtokens,struct,sub,svg,sweep,t,tail,tan,tangent,tanh,%
      tensorprodsurface,tetrahedron,text,texture,textwithattributes,%
      thinsolid,threepoints,time,tmax,tmin,top,torus,torusmap,trace,%
      trans,tree,trianglefan,trianglestripe,trimetric,true,truncone,tt,%
      tube,twopoints,uk,ukpol,ukpolf,union,unionpr,unitvect,unprune,up,%
      vect2dtoangle,vect2mat,vectdiff,vectnorm,vectprod,vectsum,view,%
      viewmodel,viewmodel,vrml,warp,warp,where,white,with,xcavalier,xor,%
      xquadarray,xx,ycavalier,yellow},%
   moredirectives={loadlib},%
   otherkeywords={-,+,*,**,/,~,|,..,^,\&,\&\&,\#,\#\#},%
   morecomment=[s]{\%}{\%},%
   morestring=[b]',%
   literate={~}{{$\sim$}}{1} {^}{$\wedge$}{1},%
  }[keywords,directives,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{PL/I}
%
% Found the data in
% \begin{itemize}
% \item
%		\textsc{Bernhard Fischer, Herman Fischer}:
%		\textbf{Structured Programming in PL/I and PL/C};
%		Copyright {\copyright} 1976 by Marcel Dekker, Inc.;
%		ISBN 0-8247-6394-7
% \end{itemize}
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{PostScript}
%
% Herbert Voss provided the following definition, written by
% \lstthanks{Christophe~Jorssen}{}{2004/09/17} provided the following
% definition.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% PostScript language definition (c) 2005 Christophe Jorssen.
%%
\lst@definelanguage{PostScript}{%
  morekeywords={abs, add, aload, anchorsearch, and, arc, arcn, arct, arcto,%
    array, ashow, astore, atan, awidthshow, begin, bind, bitshift,%
    bytesavailable, cachestatus, ceiling, charpath, clear, cleartomark,%
    cleardictstack, clip, clippath, closefile, closepath, colorimage,%
    concat, concatmatrix, condition, copy, copypage, cos, count,%
    countdictstack, countexecstack, counttomark, cshow,%
    currentblackgeneration, currentcacheparams, currentcmykcolor,%
    currentcolor, currentcolorrendering, currentcolorscreen,%
    currentcolorspace, currentcolortransfer, currentcontext, currentdash,%
    currentdevparams, currentdict, currentfile, currentflat, currentfont,%
    currentglobal, currentgray, currentgstate, currenthalftone,%
    currenthalftonephase, currenthsbcolor, currentlinecap, currentlinejoin,%
    currentlinewidth, currentmatrix, currentmiterlimit,%
    currentobjectformat, currentpacking, currentpagedevice, currentpoint,%
    currentrgbcolor, currentscreen, currentshared, currentstrokeadjust,%
    currentsystemparams, currenttransfer, currentundercolorremoval,%
    currentuserparams, curveto, cvi, cvlit, cvn, cvr, cvrs, cvs, cvx, def,%
    defaultmatrix, definefont, defineresource, defineusername,%
    defineuserobject, deletefile, detach, deviceinfo, dict, dictstack, div,%
    dtransform, dup, echo, eexec, end, eoclip, eofill, eoviewclip, eq,%
    erasepage, errordict, exch, exec, execform, execstack, execuserobject,%
    executeonly, executive, exit, exp, false, file, filenameforall,%
    fileposition, fill, filter, findencoding, findfont, findresource,%
    flattenpath, floor, flush, flushfile, FontDirectory, for, forall, fork,%
    ge, get, getinterval, globaldict, GlobalFontDirectory, glyphshow,%
    grestore, grestoreall, gsave, gstate, gt, identmatrix, idiv,%
    idtransform, if, ifelse, image, imagemask, index, ineofill, infill,%
    initclip, initgraphics, initmatrix, initviewclip, instroke,%
    internaldict, inueofill, inufill, inustroke, invertmatrix,%
    ISOLatin1Encoding, itransform, join, kshow, known, languagelevel, le,%
    length, lineto, ln, load, lock, log, loop, lt, makefont, makepattern,%
    mark, matrix, maxlength, mod, monitor, moveto, mul, ne, neg, newpath,%
    noaccess, not, notify, null, nulldevice, or, packedarray, pathbbox,%
    pathforall, pop, print, printobject, product, prompt, pstack, put,%
    putinterval, quit, rand, rcurveto, read, readhexstring, readline,%
    readonly, readstring, realtime, rectclip, rectfill, rectstroke,%
    rectviewclip, renamefile, repeat, resetfile, resourceforall,%
    resourcestatus, restore, reversepath, revision, rlineto, rmoveto, roll,%
    rootfont, rotate, round, rrand, run, save, scale, scalefont, scheck,%
    search, selectfont, serialnumber, setbbox, setblackgeneration,%
    setcachedevice, setcachedevice2, setcachelimit, setcacheparams,%
    setcharwidth, setcmykcolor, setcolor, setcolorrendering,%
    setcolorscreen, setcolorspace, setcolortransfer, setdash, setdevparams,%
    setfileposition, setflat, setfont, setglobal, setgray, setgstate,%
    sethalftone, sethalftonephase, sethsbcolor, setlinecap, setlinejoin,%
    setlinewidth, setmatrix, setmiterlimit, setobjectformat, setoverprint,%
    setpacking, setpagedevice, setpattern, setrgbcolor, setscreen,%
    setshared, setstrokeadjust, setsystemparams, settransfer,%
    setucacheparams, setundercolorremoval, setuserparams, setvmthreshold,%
    shareddict, show, showpage, sin, sqrt, srand, stack, StandardEncoding,%
    start, startjob, status, statusdict, stop, stopped, store, string,%
    stringwidth, stroke, strokepath, sub, systemdict, transform, translate,%
    true, truncate, type, token, uappend, ucache, ucachestatus, ueofill,%
    ufill, undef, upath, userdict, UserObjects, usertime, ustroke,%
    ustrokepath, version, viewclip, viewclippath, vmreclaim, vmstatus,%
    wait, wcheck, where, widthshow, write, writehexstring, writeobject,%
    writestring, wtranslation, xcheck, xor, xshow, xyshow, yield, yshow},%
  sensitive,%
  morecomment=[l]\%}[keywords,comments]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{POV-Ray}
%
% \lstthanks{Berthold~H\"ollmann}{bhoel@starship.python.net}{1999/04/15} sent
% me the definition. But I removed |blankstring=false| and
% |flexiblecolumns=true| from the driver since they have nothing to do with a
% language definition.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% POV definition (c) 1999 Berthold H\"ollmann
%%
\lst@definelanguage{POV}%
  {morekeywords={abs,absorption,acos,acosh,adaptive,adc_bailout,agate,%
      agate_turb,all,alpha,ambient,ambient_light,angle,aperture,append,%
      arc_angle,area_light,array,asc,asin,asinh,assumed_gamma,atan,%
      atan2,atanh,average,background,bezier_spline,bicubic_patch,%
      black_hole,blob,blue,blur_samples,bounded_by,box,boxed,bozo,%
      break,brick,brick_size,brightness,brilliance,bumps,bump_map,%
      bump_size,camera,case,caustics,ceil,checker,chr,clipped_by,clock,%
      clock_delta,color,color_map,colour,colour_map,component,%
      composite,concat,cone,confidence,conic_sweep,control0,control1,%
      cos,cosh,count,crackle,crand,cube,cubic,cubic_spline,cubic_wave,%
      cylinder,cylindrical,debug,declare,default,defined,degrees,%
      density,density_file,density_map,dents,difference,diffuse,%
      dimensions,dimension_size,direction,disc,distance,%
      distance_maximum,div,eccentricity,else,emission,end,error,%
      error_bound,exp,extinction,fade_distance,fade_power,falloff,%
      falloff_angle,false,fclose,file_exists,filter,finish,fisheye,%
      flatness,flip,floor,focal_point,fog,fog_alt,fog_offset,fog_type,%
      fopen,frequency,gif,global_settings,gradient,granite,%
      gray_threshold,green,height_field,hexagon,hf_gray_16,hierarchy,%
      hollow,hypercomplex,if,ifdef,iff,ifndef,image_map,include,int,%
      interior,interpolate,intersection,intervals,inverse,ior,irid,%
      irid_wavelength,jitter,julia_fractal,lambda,lathe,leopard,%
      light_source,linear_spline,linear_sweep,local,location,log,%
      looks_like,look_at,low_error_factor,macro,mandel,map_type,marble,%
      material,material_map,matrix,max,max_intersections,max_iteration,%
      max_trace_level,media,media_attenuation,media_interaction,merge,%
      mesh,metallic,min,minimum_reuse,mod,mortar,nearest_count,no,%
      normal,normal_map,no_shadow,number_of_waves,object,octaves,off,%
      offset,omega,omnimax,on,once,onion,open,orthographic,panoramic,%
      perspective,pgm,phase,phong,phong_size,pi,pigment,pigment_map,%
      planar,plane,png,point_at,poly,polygon,poly_wave,pot,pow,ppm,%
      precision,prism,pwr,quadratic_spline,quadric,quartic,quaternion,%
      quick_color,quick_colour,quilted,radial,radians,radiosity,radius,%
      rainbow,ramp_wave,rand,range,ratio,read,reciprocal,%
      recursion_limit,red,reflection,reflection_exponent,refraction,%
      render,repeat,rgb,rgbf,rgbft,rgbt,right,ripples,rotate,roughness,%
      samples,scale,scallop_wave,scattering,seed,shadowless,sin,%
      sine_wave,sinh,sky,sky_sphere,slice,slope_map,smooth,%
      smooth_triangle,sor,specular,sphere,spherical,spiral1,spiral2,%
      spotlight,spotted,sqr,sqrt,statistics,str,strcmp,strength,strlen,%
      strlwr,strupr,sturm,substr,superellipsoid,switch,sys,t,tan,tanh,%
      text,texture,texture_map,tga,thickness,threshold,tightness,tile2,%
      tiles,torus,track,transform,translate,transmit,triangle,%
      triangle_wave,true,ttf,turbulence,turb_depth,type,u,%
      ultra_wide_angle,undef,union,up,use_color,use_colour,use_index,%
      u_steps,v,val,variance,vaxis_rotate,vcross,vdot,version,vlength,%
      vnormalize,vrotate,v_steps,warning,warp,water_level,waves,while,%
      width,wood,wrinkles,write,x,y,yes,z},%
   moredirectives={break,case,debug,declare,default,else,end,fclose,%
      fopen,local,macro,read,render,statistics,switch,undef,version,%
      warning,write},%
   moredelim=*[directive]\#,%
   sensitive,%
   morecomment=[l]//,%
   morecomment=[s]{/*}{*/},%
   morestring=[d]",%
  }[keywords,directives,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Prolog}
%
% \lsthelper{Dominique~de~Waleffe}{ddw@miscrit.be}{1997/11/24}{Prolog} mailed
% me the data for Prolog. He took the keywords from the \textsf{LGrind}
% language definition file.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Prolog definition (c) 1997 Dominique de Waleffe
%%
\lst@definelanguage{Prolog}%
  {morekeywords={op,mod,abort,ancestors,arg,ascii,ask,assert,asserta,%
      assertz,atom,atomic,char,clause,close,concat,consult,ed,ef,em,%
      eof,fail,file,findall,write,functor,getc,integer,is,length,%
      listing,load,name,nl,nonvar,not,numbervars,op,or,pp,prin,print,%
      private,prompt,putc,ratom,read,read_from_this_file,rename,repeat,%
      retract,retractall,save,see,seeing,seen,sh,skip,statistics,%
      subgoal_of,system,tab,tell,telling,time,told,trace,true,unload,%
      untrace,var,write},%
   sensitive=f,%
   morecomment=[l]\%,%
   morecomment=[s]{/*}{*/},%
   morestring=[bd]",%
   morestring=[bd]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Promela}
%
% Thanks to \lstthanks{William~Thimbleby}{-}{1997/11/24}{Promela} for this
% language definition.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Promela definition (c) 2004 William Thimbleby
%%
\lst@definelanguage{Promela}
  {morekeywords={active,assert,atomic,bit,bool,break,byte,chan,d_step,%
      Dproctype,do,else,empty,enabled,fi,full,goto,hidden,if,init,int,%
      len,mtype,nempty,never,nfull,od,of,pcvalue,printf,priority,%
      proctype,provided,run,short,skip,timeout,typedef,unless,unsigned,%
      xr,xs,true,false,inline,eval},%
   moredirectives={define,ifdef,ifndef,if,if,else,endif,undef,include},%
   moredelim=*[directive]\#,%
   morecomment=[s]{/*}{*/},%
   morestring=[b]"%
  }[keywords,comments,strings,directives]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{PSTricks}
%
% PSTricks is a \TeX\ macro package bundle.
% \lstthanks{Herbert~Voss}{}{2004/09/17} provided the following definition.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% PSTricks definition (c) 2006 Herbert Voss
%%
\lst@definelanguage{PSTricks}%
  {morekeywords={%
    begin,end,definecolor,multido,%
    KillGlue,DontKillGlue,pslbrace,bsrbrace,psscalebox,psset,pstVerb,pstverb,%
    pst@def,psframebox,psclip,endclip,endpspicture,psframe,%
%%    pspicture,%
    multirput,multips,Rput,rput,uput,cput,lput,%
    newrgbcolor,newgray,newcmykcolor,%
%%
%% pstricks-add
    psStep,psgraph,psbrace,psPrintValue,%
%%
%% pst-plot
    psvlabel,pshlabel,psplot,psline,pscustom,pscurve,psccurve,%
    readdata,savedata,fileplot,dataplot,listplot,%
    psecurce,psgraph,parametricplot,%
    psellipse,psaxes,ncline,nccurve,psbezier,parabola,%
    qdisk,qline,clipbox,endpsclip,%
    psgrid,pscircle,pscirclebox,psdiabox,pstribox,%
    newpsfontdot,psdot,psdots,%
    pspolygon,psdiamond,psoval,pstriangle,%
    psarc,psarcn,psellipticarc,psellipticarcn,pswedge,psellipticwedge,%
    pcline,pcdiag,pcdiagg,pccurve,pccurve,pcecurve,%
    scalebox,scaleboxto,psmathboxtrue,everypsbox,psverbboxtrue,overlaybox,%
    psoverlay,putoverlaybox,%
    newpsstyle,newpsobject,%
    moveto,newpath,closepath,stroke,fill,gsave,grestore,msave,mrestore,%
    translate,scale,swapaxes,rotate,openshadow,closedshadow,movepath,%
    lineto,rlineto,curveto,rcurveto,code,dim,coor,rcoor,file,arrows,%
    setcolor,rotateleft,rotateright,rotatedown,%
%%
%% pst-node
    nput,naput,nbput,ncput,%
    ncarc,ncbox,ncangle,ncangles,ncloop,ncdiag,ncdiagg,ncarcbox,ncbar,%
    cnodeput,nccircle,%
    pnode,rnode,Rnode,Cnode,cnode,fnode,%
    circlenode,ovalnode,trinode,dianode,%
    psmatrix,endpsmatrix,psspan,%
%%
%% pst-tree
    pstree,Tcircle,TCircle,Ttri,Tn,TC,Tc,Tfan,TR,Tr,Tdia,Toval,Tdot,Tp,Tf,%
    skiplevel,skiplevels,endskiplevels,tspace,tlput,%
%%
%% pst-text
    pscharpath,pstextpath,%
%%
%% pst-barcode
    psbarcode,%
%%
%% pst-coil
    psboxfill,pscoil,psCoil,pszigzag,nccoil,%
    psshadow,pstilt,psTilt,ThreeDput,%
%%
%% pst-gr3d
    PstGridThreeDNodeProcessor,%
%%
%% pst-vue3d
    PstGridThreeD,%
    AxesThreeD,LineThreeD,DieThreeD,FrameThreeD,SphereCircleThreeD,%
    SphereMeridienThreeD,QuadrillageThreeD,TetraedreThreeD,%
    PyramideThreeD,ConeThreeD,CylindreThreeD,DodecahedronThreeD,%
    ConeThreeD,SphereThreeD,SphereInverseThreeD,DemiSphereThreeD,%
    SphereCreuseThreeD,SphereCircledThreeD,PortionSphereThreeD,%
    pNodeThreeD,CubeThreeD,%
%%
%% pst-3dplot
    pstThreeDCoor, pstThreeDDot, pstThreeDTriangle, pstThreeDCircle,%
    pstPlanePut, pstThreeDBox, pstThreeDEllipse, pstThreeDLine,%
    pstThreeDPut, pstThreeDNode, pstThreeDSquare, psplotThreeD,%
    parametricplotThreeD, fileplotThreeD, dataplotThreeD,%
    pstScalePoints,%
%%
%% pst-circ
    resistor,battery,Ucc,Icc,capacitor,coil,diode,Zener,LED,lamp,switch,%
    wire,tension,circledipole,multidipole,OA,transistor,Tswitch,%
    potentiometer,transformer,optoCoupler,logic,%
%%
%% pst-eucl
    pstTriangle,pstMediatorAB,pstInterLL,pstMiddleAB,pstProjection,%
    pstCircleOA,pstLineAB,%
%%
%% pst-func
    psBessel,psPolynomial,psFourier,psGaussI,psGauss,psSi,pssi,psCi,psci,%
%%
%% pst-infixplot
    psPlot,%
%%
%% pst-ob3d
    PstDie,PstCube,%
%%
%% pst-poly
    PstPolygon,pspolygonbox,%
%%
%% pst-bar
    psbarchart,readpsbardata,psbarscale,newpsbarstyle,%
%%
%% pst-lens
    PstLens,%
%%
%% pst-geo
    WorldMap,WorldMapII,WorldMapThreeD,WorldMapThreeDII,pnodeMap,MapPut,%
%%
%% pst-autoseg
    asr,firstnode,merge,massoc,labelmerge,%
%%
%% gastex
    node,imark,fmark,rmark,drawqbpedge,drawedge,drawloop,%
%%
%% pst-labo
    Distillation,Ballon,%
%%
%% pst-optic
    lens,Transform,%
%%
%% pst-light3d
    PstLightThreeDText,%
%%
%% calendrier
    Calendrier,%
%%
%% pst-osci
    Oscillo%
  },%
   sensitive,%
   alsoother={0123456789$_},%
   morecomment=[l]\% %
  }[keywords,comments]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%^^A $ to make emacs font locking happy
%
%
% \subsection{Python}
%
% \lstthanks{Michael~Weber}{mweber@informatik.hu-berlin.de}{1998/12/21}
% sent me the definition. He got data from \textsc{Mark Lutz}:
% \textbf{Programming Python}; O'Reilly 1996; ISBN 1-56592-197-6.
% \lstthanks{Stephen Kelly}{-}{2007/01/14} reported some problems that
% indicated that the comment definitions needed to be moved after the
% string definitions to work correctly.
%
% In August 2013
% \lstthanks{Alexis~Dimitriadis}{A.Dimitriadis@uu.nl}{2013/08/15} reworked
% the definition by supplying the builtins. The current version is based on
% \url{https://docs.python.org/2/reference/lexical_analysis.html#identifiers}.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Python definition (c) 1998 Michael Weber
%% Additional definitions (2013) Alexis Dimitriadis
%% small corrections based on
%% https://docs.python.org/2/reference/lexical_analysis.html#identifiers
%%
\lst@definelanguage[2]{Python}{%
  morekeywords={and, as, assert, break, class, continue, def, del, elif,%
    else, except, exec, finally, for, from, global, if, import, in, is,%
    lambda, not, or, pass, print, raise, return, try, while, with, yield},%
%    \end{macrocode}
% Python has a long list of builtin-in functions (altogether 76 entries
% plus 5 special ones)
% (\url{http://docs.python.org/2/library/functions.html}) and it is a good
% idea to make them visible in printed code.
%    \begin{macrocode}
  % Built-ins according to
  % http://docs.python.org/2/library/functions.html,
  % the last five entries are known as advanced or not essential
  morekeywords=[2]{abs, all, any, basestring, bin, bool, bytearray,%
    callable, chr, classmethod, cmp, compile, complex, delattr, dict, dir,%
    divmod, enumerate, eval, execfile, file, filter, float, format,%
    frozenset, getattr, globals, hasattr, hash, help, hex, id, input, int,%
    isinstance, issubclass, iter, len, list, locals, long, map, max,%
    memoryview, min, next, object, oct, open, ord, pow, property, range,%
    raw_input, reduce, reload, repr, reversed, round, set, setattr, slice,%
    sorted, staticmethod, str, sum, super, tuple, type, unichr, unicode,%
    vars, xrange, zip, __import__, apply, buffer, coerce, intern},%
  sensitive=true,%
  morecomment=[l]\#,%
  morestring=[s]{'''}{'''},% used for documentation text
                           % (multiline strings)
  morestring=[s]{"""}{"""},% added by Philipp Matthias Hahn
  morestring=[b]',%
  morestring=[b]"%
}
%    \end{macrocode}
% \lsthelper{Philipp Matthias Hahn}{pmhahn@titan.lahn.de}{2002/04/18}{}
% added the third comment above.
% \lsthelper{eRreuR}{rogspr@newdeal.ch}{2002/05/28} {probl\`eme avec
% "listings" et le langage Python} found a bug using Python and
% \lsthelper{Nicolas Markey}{markey@lsv.ens-cachan.fr}{2002/05/29}
% {listings and Python} informed me about the corresponding thread on
% \texttt{fr.comp.text.tex} and provided the fix---adding \texttt{[b]} to
% both \texttt{morestring} declarations.
%
% \lsthelper{J\"urgen Dietel}{j.dietel@rz.rwth-aachen}{2015/05/05}{}
% provided an example with a wrong representation of documentation strings,
% so the two lines added by Philipp Matthias Hahn got changed from
% |morestring| $\rightarrow$ |morecomment|.\footnote{According to PEP
% (Python Enhancement Proposals---\url{https://peps.python.org/pep-0257/})
% comment should be distinguished from documentation strings.}
%
% Python 3.0 was released in December 2008 and brought with it a number of
% new features. \lsthelper{Naoki Sean
% Pross}{npross@student.ethz.ch}{2024/05/25}{Python 3 syntax support for
% the listings LaTeX package} provided the lists of new keywords and
% built-in functions as well as the support for special strings.
%    \begin{macrocode}
\lst@definelanguage[3]{Python}[2]{Python}{%
  % keywords
  deletekeywords={exec, print},
  morekeywords={False, None, True, async, await, nonlocal,
%    \end{macrocode}
% Python knows so called soft keywords:
%    \begin{macrocode}
                match, case},
%    \end{macrocode}
% The list of built-in functions has changed considerably (only 71 entries,
% no special ones):
%    \begin{macrocode}
  % built-in functions
  deletekeywords=[2]{apply, basestring, buffer, cmp, coerce, execfile, %
    file, intern, long, raw_input, reduce, reload, unichr, unicode, xrange},
  morekeywords=[2]{aiter, anext, ascii, breakpoint, bytes, exec},
%    \end{macrocode}
% Python now supports special strings like \emph{raw strings}, Unicode
% strings, and some more. Here is the definition of these strings:
%    \begin{macrocode}
  % `raw' strings
  morestring=[s]{r'}{'},
  morestring=[s]{r"}{"},
  morestring=[s]{r'''}{'''},
  morestring=[s]{r"""}{"""},
  morestring=[s]{R'}{'},
  morestring=[s]{R"}{"},
  morestring=[s]{R'''}{'''},
  morestring=[s]{R"""}{"""},
  % Unicode strings
  morestring=[s]{u'}{'},
  morestring=[s]{u"}{"},
  morestring=[s]{u'''}{'''},
  morestring=[s]{u"""}{"""},
  morestring=[s]{U'}{'},
  morestring=[s]{U"}{"},
  morestring=[s]{U'''}{'''},
  morestring=[s]{U"""}{"""},
  % Format strings
  morestring=[s]{f'}{'},
  morestring=[s]{f"}{"},
  morestring=[s]{f'''}{'''},
  morestring=[s]{f"""}{"""},
  morestring=[s]{F'}{'},
  morestring=[s]{F"}{"},
  morestring=[s]{F'''}{'''},
  morestring=[s]{F"""}{"""},
  % Byte literals
  morestring=[s]{b'}{'},
  morestring=[s]{b"}{"},
  morestring=[s]{b'''}{'''},
  morestring=[s]{b"""}{"""},
  morestring=[s]{B'}{'},
  morestring=[s]{B"}{"},
  morestring=[s]{B'''}{'''},
  morestring=[s]{B"""}{"""},
}%
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \begingroup
% Alexis Dimitriadis also proposes the following configuration for printing
% Python code which simulates colorizing the code as it's done by the IDLE
% GUI:
%    \begin{macrocode}
%<*python-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage{xcolor}
\usepackage{textcomp}

%% Actual colors from idlelib/config-highlight.def
%%     --> corrected to ``web-safe''
%% Unimplemented IDLE syntax: function/class names being
%% defined should be blue
%% strings  = #00aa00 / 0,170,0      (a darker green)
%% builtins = #900090 / 144,0,144    (purple-ish)
%% keywords = #FF7700 / 255,119,0    (quite close to plain `orange')
%\definecolor{IDLEorange}{RGB}{255,119,0} % pretty close to real orange
%\definecolor{IDLEpurple}{RGB}{144,0,144}
%\definecolor{IDLEgreen}{RGB}{0,170,0}
%\definecolor{IDLEred}{RGB}{221,0,0}
%% Corrected to ``web-safe''
%\definecolor{orange2}{RGB}{255,102,0}
\definecolor{purple2}{RGB}{153,0,153} % there's actually no standard purple
\definecolor{green2}{RGB}{0,153,0} % a darker green
%\definecolor{red2}{RGB}{221,0,0}

% Except for green and purple, the other colors are pretty good in standard
% hue
\lstdefinestyle{python-idle-code}{%
  language=Python,                   % the language
  basicstyle=\normalsize\ttfamily,   % size of the fonts for the code
  % Color settings to match IDLE style
  keywordstyle=\color{orange},       % core keywords
  keywordstyle={[2]\color{purple2}}, % built-ins
  stringstyle=\color{green2},%
  commentstyle=\color{red},%
  upquote=true,                      % requires textcomp
}
% Unimplemented IDLE syntax: function/class names being defined should be
% blue
%    \end{macrocode}
% This code is provided in the file |listings-python.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</python-prf>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Rexx}
%
% \lstthanks{Patrick~TJ~McPhee}{ptjm@interlog.com}{2003/10/24} provided this
% definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% classic rexx listings definition
%% by Patrick TJ McPhee <ptjm@interlog.com>
%%
\lst@definelanguage{Rexx}{%
   morekeywords={address,arg,call,do,drop,else,end,exit,if,interpret,%
                 iterate,leave,nop,numeric,options,otherwise,parse,%
                 procedure,pull,push,queue,return,say,select,signal,then,%
                 to,trace,when},%
   sensitive=false,%
   morecomment=[l]{--},%
   morecomment=[n]{/*}{*/},%
   morestring=[d]{'},%
   morestring=[d]{"},%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
% There are two dialects of Rexx: the one from System Product Interpreter
% Reference, VM/XA SP Release 1 and Release 2 and the modern version
% ooRexx (see \url{http://www.oorexx.org/}).
%
%
% \subsubsection{Rexx---VM/XA}
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% REXX keywords from System Product Interpreter Reference, VM/XA SP Release 1
%% and Release 2
\lst@definelanguage[VM/XA]{Rexx}[]{Rexx}{%
  morekeywords={all,by,digits,commands,end,engineering,error,errors,expose,%
    external,for,form,fuzz,halt,labels,intermediates,negative,normal,novalue,%
    on,off,results,scan,scientific,select,source,stream,syntax,until,upper,%
    value,var,version,while,with},%
  morekeywords=[2]{abbrev,abs,address,bitand,bitor,bitxor,center,centre,%
    compare,copies,c2d,c2x,datatype,date,delstr,delword,diag,diagrc,%
    d2c,d2x,errortext,externals,find,format,index,insert,justify,%
    lastpos,left,length,linein,lineout,lines,linesize,max,min,overlay,%
    pos,queued,random,reverse,rigth,sign,sourceline,space,storage,%
    strip,substr,subword,symbol,time,translate,trunc,userid,value,verify,%
    word,wordindex,wordlength,words,xrange,x2c,x2d},%
  morekeywords=[3]{result,rc,self,sigl,super},%
  sensitive=false,%
  morestring=[d]",%
  morestring=[d]',%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \lstthanks{Shmuel (Seymour J.) Metz}{smetz3@gmu.edu}{%
% 2023-10-30} pointed out the previously unsupported special variables
% |result| etc.. He also gave the advice to complete the definitions
% for OORexx in the following section.
% \endgroup
%
%
% \subsubsection{ooRexx}
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% ooREXX keywords (http://www.oorexx.org/)
\lst@definelanguage[]{OORexx}[VM/XA]{Rexx}{%
  morekeywords={::annotate, ::attribute, ::class, ::constant, ::method,%
    ::options, ::requires, ::resource, ::routine,%
    forward, guard, local, loop, raise, strict,%
  },%
  alsoletter={:}
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \begingroup
% Jobst Hoffmann added the following configuration for printing
% Rexx code which is similar to the colors used by the Fortran preferences file.
%    \begin{macrocode}
%<*rexx-prf>
%    \end{macrocode}
%    \begin{macrocode}
\usepackage{xcolor}                  % needed for colors like yellow!10
\usepackage{textcomp}                % needed for upquote

\lstdefinestyle{rexx-colored}{%
  language=oorexx,                   % the language
  backgroundcolor=\color{yellow!10},
  basicstyle=\normalsize\ttfamily,   % size of the fonts for
                                     % the code
  % Color settings to match JHf's preferred style
  keywordstyle=\color{blue},         % core keywords
  keywordstyle={[2]\color{cyan}},    % built-ins
  keywordstyle={[3]\color{olive}},   % special keywords
  stringstyle=\color{teal},%
  commentstyle=\color{orange},%
  upquote=true,                      % requires textcomp
}
%    \end{macrocode}
% This code is provided in the file |listings-rexx.prf|, see section
% 2.4.1 (Preferences) of the \packagename{listings} documentation.
%    \begin{macrocode}
%</rexx-prf>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Reduce}
%
% was provided by \lstthanks{Geraint~Paul~Bevan}{geraint@users.sf.net}
% {2002/10/31}.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% 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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%^^A $ to make emacs font locking happy
%
%
% \subsection{RSL}
%
% Thanks go to \lstthanks{Brian~Christensen}{}{2004/02/15}.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% RSL definition (c) 2004 Brian Christensen
%%
\lst@definelanguage{RSL}%
  {morekeywords={Bool,Char,devt_relation,Int,Nat,Real,Text,Unit,abs,any,%
      as,axiom,card,case,channel,chaos,class,do,dom,elems,else,elsif,end,%
      extend,false,for,hd,hide,if,in,inds,initialise,int,len,let,local,%
      object,of,out,post,pre,read,real,rng,scheme,skip,stop,swap,%
      test_case,theory,then,tl,true,type,until,use,value,variable,while,%
      with,write},%
literate=%
{<}{$<$}{1}%
{>}{$>$}{1}%
{[}{$[$}{1}%%
{]}{$]$}{1}%%
{^}{{\mbox{$\widehat{\;}$}}}{1}%%
{'}{{\raisebox{1ex}[1ex][0ex]{\protect\scriptsize$\prime$}}}{1}%%
{||}{{\mbox{$\parallel$}}}{2}%%
{|-}{$\vdash$}{1}%%
{|=|}{{\mbox{$\lceil\!\rceil\!\!\!\!\!\!\;\lfloor\!\rfloor$}}}{1}%%
{**}{$\uparrow$}{1}%
{/\\}{$\wedge$}{1}%%
{inter}{$\cap$}{1}%%
{-\\}{$\lambda$}{1}%%
{->}{$\rightarrow$}{1}%%
{-m->}{{\mbox{$\rightarrow \hspace{-2.5\lst@width} _{m}\;$}}}{1}%
{-~m->}{{\mbox{$\stackrel{\sim}{\mbox{$\rightarrow%
          \hspace{-2.5\lst@width} _{m}\;$}}$}}}{1}%
{-~->}{{\mbox{$\stackrel{\sim}{\rightarrow}$}}}{1}%%
{-set}{\bf{-set}}{4}%%
{-list}{{$^{\ast}$}}{1}%%
{-inflist}{$^\omega$}{1}%
{-infset}{{\mbox{{\bf -infset}}}}{7}%
{\#}{$\circ$}{1}%
{:-}{{\raisebox{.4ex}{\tiny $\bullet$}}}{1}%%
{=}{$=$}{1}%%
{==}{$==$}{2}%%
{=>}{$\Rightarrow$}{1}%%
{\ is\protect\^^M}{{$\;\equiv$}}{2}%
{\ is\ }{{$\equiv$}}{3}%%
{\ isin\protect\^^M}{$\;\in$}{2}%%
{~}{$\sim$}{1}%%
{~=}{$\neq$}{1}%%
{~isin}{$\notin$}{1}%%
{+>}{$\mapsto$}{1}%%
{++}{}{1}%
{|^|}{{\mbox{$\lceil\!\rceil$}}}{1}%%
{\\/}{$\vee$}{1}%%
{exists}{$\exists$}{1}%%
{union}{$\cup$}{1}%%
{>=}{$\geq$}{1}%%
{><}{$\times$}{1}%%
{>>}{$\supset$}{1}%
{>>=}{$\supseteq$}{1}%%
{<=}{$\leq$}{1}%%
{<<}{$\subset$}{1}%
{<.}{$\langle$}{1}%%
{<<=}{$\subseteq$}{1}%%
{<->}{$\leftrightarrow$}{1}%%
{[=}{$\sqsubseteq$}{1}%%
{\{=}{$\preceq$}{1}%%
{\ all\protect\^^M}{$\forall$}{2}%%
{\ all\ }{$\forall$}{3}%%
{!!}{$\dagger$}{1}%%
{always}{$\Box$}{1}%%
{.>}{$\rangle$}{1}%%
{`alpha}{$\alpha$}{1}%
{`beta}{$\beta$}{1}%
{`gamma}{$\gamma$}{1}%
{`delta}{$\delta$}{1}%
{`epsilon}{$\epsilon$}{1}%
{`zeta}{$\zeta$}{1}%
{`eta}{$\eta$}{1}%
{`theta}{$\theta$}{1}%
{`iota}{$\iota$}{1}%
{`kappa}{$\kappa$}{1}%
{`mu}{$\mu$}{1}%
{`nu}{$\nu$}{1}%
{`xi}{$\xi$}{1}%
{`pi}{$\pi$}{1}%
{`rho}{$\rho$}{1}%
{`sigma}{$\sigma$}{1}%
{`tau}{$\tau$}{1}%
{`upsilon}{$\upsilon$}{1}%
{`phi}{$\phi$}{1}%
{`chi}{$\chi$}{1}%
{`psi}{$\psi$}{1}%
{`omega}{$\omega$}{1}%
{`Gamma}{$\Gamma$}{1}%
{`Delta}{$\Delta$}{1}%
{`Theta}{$\Theta$}{1}%
{`Lambda}{$\Lambda$}{1}%
{`Xi}{$\Xi$}{1}%
{`Pi}{$\Pi$}{1}%
{`Sigma}{$\Sigma$}{1}%
{`Upsilon}{$\Upsilon$}{1}%
{`Phi}{$\Phi$}{1}%
{`Psi}{$\Psi$}{1}%
{`Omega}{$\Omega$}{1},%
   sensitive=true,%
   morecomment=[l]{--},%
   morecomment=[s]{/*}{*/}%
  }[keywords,comments]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Ruby}
%
% \lstthanks{Christian~Kaiser}{chk@combit.net}{2003/02/05} provided the
% initial definition. \lstthanks{Xavier~Noria}{fxn@hashref.com}{2004/01/11}
% replaced the keywords with the keywords from the at the time of writing
% current stable Ruby version.  An erroneous string delimiter was removed
% following a bug reported on comp.text.tex on 2006/09/01.
%
% Ruby supports string delimiters of the form \verb|%q!...!|, where \verb|!|
% can be any character, or can be matched braces or parentheses or brackets.
% The included string definitions include most of the common variants, but are
% of course not comprehensive.
%
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Ruby}%
  {morekeywords={__FILE__,__LINE__,BEGIN,END,alias,and,begin,break,%
      case,class,def,defined?,do,else,elsif,end,ensure,false,for,%
      if,in,module,next,nil,not,or,redo,rescue,retry,return,self,%
      super,then,true,undef,unless,until,when,while,yield},%
   sensitive=true,%
   morecomment=[l]\#,%
   morecomment=[l]\#\#,%
   morecomment=[s]{=BEGIN}{=END},%
   morestring=[b]',%
   morestring=[b]",%
   morestring=[s]{\%q/}{/},%
   morestring=[s]{\%q!}{!},%
   morestring=[s]{\%q\{}{\}},%
   morestring=[s]{\%q(}{)},%
   morestring=[s]{\%q[}{]},%
   morestring=[s]{\%q-}{-},%
   morestring=[s]{\%Q/}{/},%
   morestring=[s]{\%Q!}{!},%
   morestring=[s]{\%Q\{}{\}},%
   morestring=[s]{\%Q(}{)},%
   morestring=[s]{\%Q[}{]},%
   morestring=[s]{\%Q-}{-}%
  }[keywords,comments,strings]
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Scilab}
%
% Thanks go to \lstthanks{Jean-Philippe~Grivet}{grivet@cnrs-orleans.fr}
% {2003/06/02}.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Scilab definition (c) 2002,2003 Jean-Philippe Grivet
%%
\lst@definelanguage{Scilab}%
  {morekeywords={abcd,abinv,abort,abs,acoshm,acosh,acosm,acos,addcolor,%
      addf,addinter,addmenu,add_edge,add_node,adj2sp,adj_lists,aff2ab,%
      amell,analpf,analyze,ans,apropos,arc_graph,arc_number,argn,arhnk,%
      arl2,arma2p,armac,armax1,armax,arma,arsimul,artest,articul,ascii,%
      asinhm,asinh,asinm,asin,atanhm,atanh,atanm,atan,augment,auread,%
      auwrite,balanc,balreal,bandwr,basename,bdiag,besseli,besselj,%
      besselk,bessely,best_match,bezout,bifish,bilin,binomial,black,%
      bloc2exp,bloc2ss,bode,bool2s,boolean,boucle,break,bstap,buttmag,%
      bvode,cainv,calerf,calfrq,call,canon,casc,case,ccontrg,cdfbet,%
      cdfbin,cdfchi,cdfchn,cdffnc,cdff,cdfgam,cdfnbn,cdfnor,cdfpoi,%
      cdft,ceil,center,cepstrum,chaintest,chain_struct,champ1,champ,%
      chart,chdir,cheb1mag,cheb2mag,check_graph,check_io,chepol,chfact,%
      chol,chsolve,circuit,classmarkov,clean,clearfun,clearglobal,%
      clear,close,cls2dls,cmb_lin,cmndred,cmoment,code2str,coeff,coffg,%
      coff,colcompr,colcomp,colinout,colormap,colregul,companion,comp,%
      cond,conj,connex,contour2di,contour2d,contourf,contour,%
      contract_edge,contrss,contr,cont_frm,cont_mat,convex_hull,convol,%
      convstr,con_nodes,copfac,copy,correl,corr,coshm,cosh,cosm,cos,%
      cotg,cothm,coth,covar,csim,cspect,ctr_gram,cumprod,cumsum,%
      curblock,cycle_basis,czt,c_link,dasrt,dassl,datafit,date,dbphi,%
      dcf,ddp,debug,dec2hex,deff,definedfields,degree,delbpt,%
      delete_arcs,delete_nodes,delete,delip,delmenu,demos,denom,%
      derivative,derivat,des2ss,des2tf,determ,detr,det,dft,dhinf,%
      dhnorm,diag,diary,diff,diophant,dirname,dispbpt,dispfiles,disp,%
      dlgamma,double,dragrect,drawaxis,drawlater,drawnow,draw,driver,%
      dscr,dsearch,dsimul,dtsi,dt_ility,duplicate,edge_number,%
      edit_curv,edit_graph_menus,edit_graph,edit,eigenmarkov,ell1mag,%
      elseif,else,emptystr,endfunction,end,eqfir,eqiir,equil1,equil,%
      ereduc,erfcx,erfc,erf,errbar,errcatch,errclear,error,eval3dp,%
      eval3d,eval,evans,evstr,excel2sci,execstr,exec,exists,exit,expm,%
      exp,external,eye,fac3d,factors,faurre,fchamp,fcontour2d,fcontour,%
      fec,feedback,feval,ffilt,fftshift,fft,fgrayplot,figure,fileinfo,%
      file,filter,findm,findobj,findx0BD,find_freq,find_path,find,%
      findABCD,findAC,findBD,findBDK,findR,fit_dat,fix,floor,flts,foo,%
      formatman,format,fort,for,fourplan,fplot2d,fplot3d1,fplot3d,%
      fprintf,fprintfMat,frep2tf,freq,freson,frexp,frfit,frmag,fscanf,%
      fscanfMat,fsfirlin,fsolve,fspecg,fstabst,fstair,ftest,ftuneq,%
      fullrfk,fullrf,full,fun2string,funcprot,functions,function,%
      funptr,fusee,gainplot,gamitg,gammaln,gamma,gcare,gcd,gcf,%
      genfac3d,genlib,genmarkov,gen_net,geom3d,geomean,getblocklabel,%
      getcolor,getcurblock,getcwd,getdate,getd,getenv,getfield,getfont,%
      getf,getio,getlinestyle,getmark,getpid,getscicosvars,getsymbol,%
      getvalue,getversion,get_function_path,get,gfare,gfrancis,girth,%
      givens,glever,glist,global,glue,gpeche,graduate,grand,%
      graphics_entities,graph_2_mat,graph_center,graph_complement,%
      graph_diameter,graph_power,graph_simp,graph_sum,graph_union,%
      graph-list,graycolormap,grayplot,graypolarplot,grep,group,%
      gr_menu,gschur,gsort,gspec,gstacksize,gtild,g_margin,h2norm,halt,%
      hamilton,hankelsv,hank,harmean,havewindow,help,hermit,hess,%
      hex2dec,hilb,hinf,hist3d,histplot,horner,host,hotcolormap,%
      householder,hrmt,htrianr,hypermat,h_cl,h_inf_st,h_inf,h_norm,%
      iconvert,icon_edit,ieee,if,iirgroup,iirlp,iir,ilib_build,%
      ilib_compile,ilib_for_link,ilib_gen_gateway,ilib_gen_loader,%
      ilib_gen_Make,imag,impl,imrep2ss,imult,im_inv,inistate,input,%
      int16,int2d,int32,int3d,int8,intc,intdec,integrate,interpln,%
      interp,intersci,intersect,intg,intl,intppty,intsplin,inttrap,%
      inttype,int,invr,invsyslin,inv_coeff,inv,iqr,isdef,isdir,isequal,%
      iserror,isglobal,isinf,isnan,isoview,isreal,is_connex,jmat,%
      justify,kalm,karmarkar,kernel,keyboard,knapsack,kpure,krac2,%
      kroneck,kron,lasterror,lattn,lattp,lcf,lcmdiag,lcm,ldivf,ldiv,%
      leastsq,legends,length,leqr,levin,lev,lex_sort,lft,lgfft,library,%
      lib,lin2mu,lincos,lindquist,lines,line_graph,linfn,linf,link,%
      linmeq,linpro,linsolve,linspace,lin,listfiles,list,lmisolver,%
      lmitool,loadmatfile,loadplots,loadwave,load_graph,load,locate,%
      log10,log1p,log2,logm,logspace,log,lotest,lqe,lqg2stan,lqg_ltr,%
      lqg,lqr,lsq,lsslist,lstcat,lstsize,ltitr,ludel,lufact,luget,%
      lusolve,lu,lyap,macglov,macr2lst,macrovar,macro,mad,make_graph,%
      make_index,manedit,man,mapsound,markp2ss,matfile2sci,matrix,%
      mat_2_graph,maxi,max_cap_path,max_clique,max_flow,max,mclearerr,%
      mclose,meanf,mean,median,meof,mese,mesh2d,mfft,mfile2sci,mgeti,%
      mgetl,mgetstr,mget,milk_drop,mine,mini,minreal,minss,%
      min_lcost_cflow,min_lcost_flow1,min_lcost_flow2,min_qcost_flow,%
      min_weight_tree,min,mlist,mode,modulo,moment,mopen,move,%
      mps2linpro,mputl,mputstr,mput,mrfit,msd,mseek,mtell,mtlb_load,%
      mtlb_mode,mtlb_save,mtlb_sparse,mu2lin,mulf,mvvacov,m_circle,%
      names,nand2mean,nanmax,nanmeanf,nanmean,nanmedian,nanmin,%
      nanstdev,nansum,narsimul,ndims,nearfloat,nehari,neighbors,%
      netclose,netwindows,netwindow,newest,newfun,nextpow2,nf3d,nfreq,%
      nlev,nnz,nodes_2_path,nodes_degrees,node_number,noisegen,norm,%
      null,numdiff,numer,nyquist,obscont1,obscont,observer,obsvss,%
      obsv_mat,obs_gram,odedc,odedi,odeoptions,ode_discrete,ode_root,%
      ode,oldload,oldsave,ones,optim,orth,param3d1,param3d,%
      paramfplot2d,parrot,part,pathconvert,path_2_nodes,pause,pbig,%
      pdiv,pen2ea,pencan,penlaur,perctl,perfect_match,pertrans,pfss,%
      phasemag,phc,pinv,pipe_network,playsnd,plot2d1,plot2d2,plot2d3,%
      plot2d4,plot2d,plot3d1,plot3d2,plot3d3,plot3d,plotframe,%
      plotprofile,plot_graph,plot,plzr,pmodulo,pol2des,pol2str,pol2tex,%
      polarplot,polar,polfact,poly,portr3d,portrait,power,ppol,prbs_a,%
      predecessors,predef,printf,printing,print,prod,profile,projsl,%
      projspec,proj,psmall,pspect,pvm_addhosts,pvm_barrier,pvm_bcast,%
      pvm_bufinfo,pvm_config,pvm_delhosts,pvm_error,pvm_exit,%
      pvm_f772sci,pvm_getinst,pvm_gettid,pvm_get_timer,pvm_gsize,%
      pvm_halt,pvm_joingroup,pvm_kill,pvm_lvgroup,pvm_mytid,pvm_parent,%
      pvm_probe,pvm_recv,pvm_reduce,pvm_sci2f77,pvm_send,pvm_set_timer,%
      pvm_spawn_independent,pvm_spawn,pvm_start,pvm_tasks,%
      pvm_tidtohost,pvm,pwd,p_margin,qassign,qr,quapro,quart,quaskro,%
      quit,randpencil,rand,range,rankqr,rank,rat,rcond,rdivf,read4b,%
      readb,readc_,readmps,read,real,recur,reglin,regress,remezb,remez,%
      repfreq,replot,residu,resume,return,riccati,riccsl,ricc,ric_desc,%
      rlist,roots,rotate,round,routh_t,rowcompr,rowcomp,rowinout,%
      rowregul,rowshuff,rpem,rref,rtitr,rubberbox,salesman,savewave,%
      save_graph,save,scaling,scanf,schur,sci2exp,sci2for,sci2map,%
      sciargs,scicosim,scicos,scifunc_block,sd2sci,secto3d,select,%
      semidef,sensi,setbpt,seteventhandler,setfield,setmenu,%
      setscicosvars,set,sfact,sgrid,shortest_path,showprofile,%
      show_arcs,show_graph,show_nodes,sident,signm,sign,simp_mode,simp,%
      sincd,sinc,sinc,sinhm,sinh,sinm,sin,size,sm2des,sm2ss,smooth,%
      solve,sorder,sort,sound,sp2adj,spaninter,spanplus,spantwo,sparse,%
      spchol,spcompack,specfact,spec,speye,spget,splin,split_edge,%
      spones,sprand,sprintf,spzeros,sqroot,sqrtm,sqrt,squarewave,%
      square,srfaur,srkf,ss2des,ss2ss,ss2tf,sscanf,sskf,ssprint,ssrand,%
      stabil,stacksize,standard_define,standard_draw,standard_input,%
      standard_origin,standard_output,startup,stdevf,stdev,steadycos,%
      str2code,strange,strcat,strindex,strings,string,stripblanks,%
      strong_connex,strong_con_nodes,strsubst,st_deviation,st_ility,%
      subf,subgraph,subplot,successors,sum,supernode,sva,svd,svplot,%
      sylm,sylv,sysconv,sysdiag,sysfact,syslin,syssize,systems,system,%
      systmat,tabul,tangent,tanhm,tanh,tanm,tan,tdinit,testmatrix,%
      texprint,tf2des,tf2ss,then,thrownan,timer,time_id,titlepage,%
      tk_getdir,tk_getfile,tlist,toeplitz,tokenpos,tokens,trace,%
      translatepaths,trans_closure,trans,trfmod,trianfml,tril,trimmean,%
      trisolve,triu,trzeros,typename,typeof,type,uicontrol,uimenu,%
      uint16,uint32,uint8,ui_observer,ulink,unglue,union,unique,unix_g,%
      unix_s,unix_w,unix_x,unix,unobs,unsetmenu,user,varargin,%
      varargout,variancef,variance,varn,warning,wavread,wavwrite,%
      wcenter,wfir,what,whereami,whereis,where,while,whos,who_user,who,%
      wiener,wigner,window,winsid,with_gtk,with_pvm,with_texmacs,%
      with_tk,writb,write4b,write,xarcs,xarc,xarrows,xaxis,xbasc,%
      xbasimp,xbasr,xchange,xclear,xclea,xclick,xclip,xdel,xend,xfarcs,%
      xfarc,xfpolys,xfpoly,xfrect,xgetech,xgetfile,xgetmouse,xget,%
      xgraduate,xgrid,xinfo,xinit,xlfont,xload,xname,xnumb,xpause,%
      xpolys,xpoly,xrects,xrect,xrpoly,xs2fig,xs2gif,xs2ppm,xs2ps,%
      xsave,xsegs,select,xsetech,xsetm,xset,xstringb,xstringl,xstring,%
      xtape,xtitle,x_choices,x_choose,x_dialog,x_matrix,x_mdialog,%
      x_message_modeless,x_message,yulewalk,zeropen,zeros,zgrid,zpbutt,%
      zpch1,zpch2,zpell,mfprintf,mfscanf,mprintf,mscanf,msprintf,%
      msscanf,mucomp,%
      ABSBLK_f,AFFICH_f,ANDLOG_f,ANIMXY_f,BIGSOM_f,CLINDUMMY_f,CLKIN_f,%
      CLKINV_f,CLKOUT_f,CLKOUTV_f,CLKSOM_f,CLKSOMV_f,CLKSPLIT_f,%
      CLOCK_f,CLR_f,CLSS_f,CONST_f,COSBLK_f,CURV_f,DELAY_f,DELAYV_f,%
      DEMUX_f,DLR_f,DLRADAPT_f,DLSS_f,EVENTSCOPE_f,EVTDLY_f,EVTGEN_f,%
      EXPBLK_f,G_make,GAIN_f,GAINBLK_f,GENERAL_f,GENERIC_f,GENSIN_f,%
      GENSQR_f,HALT_f,IFTHEL_f,IN_f,INTEGRAL_f,INTRP2BLK_f,INTRPLBLK_f,%
      INVBLK_f,LOGBLK_f,LOOKUP_f,Matplot1,Matplot,MAX_f,MCLOCK_f,%
      MFCLCK_f,MIN_f,MUX_f,NDcost,NEGTOPOS_f,OUT_f,POSTONEG_f,POWBLK_f,%
      PROD_f,QUANT_f,RAND_f,READC_f,REGISTER_f,RELAY_f,RFILE_f,%
      ScilabEval,Sfgrayplot,Sgrayplot,SAMPLEHOLD_f,SAT_f,SAWTOOTH_f,%
      SCOPE_f,SCOPXY_f,SELECT_f,SINBLK_f,SOM_f,SPLIT_f,STOP_f,SUPER_f,%
      TANBLK_f,TCLSS_f,TEXT_f,TIME_f,TK_EvalFile,TK_EvalStr,TK_GetVar,%
      TK_SetVar,TRASH_f,WFILE_f,WRITEC_f,ZCROSS_f,%
      \%asn,\%helps,\%k,\%sn},%
   alsoletter=\%,% chmod
   sensitive,%
   morecomment=[l]//,%
   morestring=[b]",%
   morestring=[m]'%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{SHELXL}
%
% Thanks to \lstthanks{Aidan~Philip~Heerdegen}{Aidan.Heerdegen@anu.edu.au}
% {1999/07/09} for mailing this definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% SHELXL definition (c) 1999 Aidan Philip Heerdegen
%%
\lst@definelanguage{SHELXL}%
  {morekeywords={TITL,CELL,ZERR,LATT,SYMM,SFAC,DISP,UNIT,LAUE,%
      REM,MORE,TIME,END,HKLF,OMIT,SHEL,BASF,TWIN,EXTI,SWAT,%
      MERG,SPEC,RESI,MOVE,ANIS,AFIX,HFIX,FRAG,FEND,EXYZ,EADP,%
      EQIV,OMIT,CONN,PART,BIND,FREE,DFIX,BUMP,SAME,SADI,CHIV,%
      FLAT,DELU,SIMU,DEFS,ISOR,SUMP,L.S.,CGLS,SLIM,BLOC,DAMP,%
      WGHT,FVAR,BOND,CONF,MPLA,RTAB,LIST,ACTA,SIZE,TEMP,WPDB,%
      FMAP,GRID,PLAN,MOLE},%
   sensitive=false,%
   alsoother=_,% Makes the syntax highlighting ignore the underscores
   morecomment=[l]{! },%
  }%
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Simula}
%
% Took data from
% \begin{itemize}
% \item
%		\textsc{G\"unther Lamprecht}:
%		\textbf{Introduction to SIMULA 67};
%		Braunschweig; Wiesbaden: Vieweg, 1981
% \end{itemize}
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[IBM]{Simula}[DEC]{Simula}{}%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[DEC]{Simula}[67]{Simula}%
  {morekeywords={and,eq,eqv,ge,gt,hidden,imp,le,long,lt,ne,not,%
      options,or,protected,short}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[CII]{Simula}[67]{Simula}%
  {morekeywords={and,equiv,exit,impl,not,or,stop}}%
%    \end{macrocode}
%    \begin{macrocode}
\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]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{SPARQL}
%
% This definition for the SPARQL query language (SPARQL Protocol and RDF
% Query Language, \url{http://www.w3.org/TR/rdf-sparql-query/}) was provided
% by \lstthanks{Christoph~Kiefer}{-}{2006/10/24}.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% SPARQL definition (c) 2006 Christoph Kiefer
%%
\lst@definelanguage{SPARQL}%
  {morekeywords={BASE,PREFIX,SELECT,DISTINCT,CONSTRUCT,DESCRIBE,ASK,%
        FROM,NAMED,WHERE,ORDER,BY,ASC,DESC,LIMIT,OFFSET,OPTIONAL,%
        GRAPH,UNION,FILTER,a,STR,LANG,LANGMATCHES,DATATYPE,BOUND,%
        isIRI,isURI,isBLANK,isLITERAL,REGEX,true,false},%
   sensitive=false,%
   morecomment=[l]\#,%
   morestring=[d]',%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{SQL}
%
% Data come from \lstthanks{Christian~Haul}
% {haul@dvs1.informatik.tu-darmstadt.de}{1998/01/09}.
% \lstthanks{Neil~Conway}{nconway@klamath.dyndns.org}{2002/07/06} added some
% keywords, ditto \lsthelper{Torsten~Flatter}{Thorsten.Flatter@T-Systems.de}
% {2002/10/15}{missing keywords}, \lsthelper{Robert~Frank}{rf7@ukc.ac.uk}
% {2002/11/19}{missing keywords} and \lsthelper{Dirk~Jesko}
% {jesko@iti.cs.uni-magdeburg.de}{2003/06/03}{extended SQL
% definition}. \lsthelper{Hilmar Preuße}{hille42@web.de}{2019/01/28}{added
% keyword} informed about an issue mentioned at
% \url{https://bugs.debian.org/626521}, the issue got corrected.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% SQL definition (c) 1998 Christian Haul
%%                (c) 2002 Neil Conway
%%                (c) 2002 Robert Frank
%%                (c) 2003 Dirk Jesko
%%
\lst@definelanguage{SQL}%
  {morekeywords={ABSOLUTE,ACTION,ADD,ALLOCATE,ALTER,ARE,AS,ASSERTION,%
      AT,BEGIN,BETWEEN,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,%
      CATALOG,CHAR_LENGTH,CHARACTER_LENGTH,CLUSTER,COALESCE,%
      COLLATE,COLLATION,COLUMN,CONNECT,CONNECTION,CONSTRAINT,%
      CONSTRAINTS,CONVERT,CORRESPONDING,CREATE,CROSS,CURRENT_DATE,%
      CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,DAY,DEALLOCATE,%
      DEC,DEFERRABLE,DEFERED,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,%
      DISCONNECT,DOMAIN,DROP,ELSE,END,EXEC,EXCEPT,EXCEPTION,EXECUTE,%
      EXTERNAL,EXTRACT,FALSE,FIRST,FOREIGN,FROM,FULL,GET,GLOBAL,%
      GRAPHIC,HAVING,HOUR,IDENTITY,IMMEDIATE,INDEX,INITIALLY,INNER,%
      INPUT,INSENSITIVE,INSERT,INTO,INTERSECT,INTERVAL,%
      ISOLATION,JOIN,KEY,LAST,LEADING,LEFT,LEVEL,LIMIT,LOCAL,LOWER,%
      MATCH,MINUTE,MONTH,NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NOT,NULL,%
      NULLIF,OCTET_LENGTH,ON,ONLY,ORDER,ORDERED,OUTER,OUTPUT,OVERLAPS,%
      PAD,PARTIAL,POSITION,PREPARE,PRESERVE,PRIMARY,PRIOR,READ,%
      RELATIVE,RESTRICT,REVOKE,RIGHT,ROWS,SCROLL,SECOND,SELECT,SESSION,%
      SESSION_USER,SIZE,SPACE,SQLSTATE,SUBSTRING,SYSTEM_USER,%
      TABLE,TEMPORARY,THEN,TIMEZONE_HOUR,%
      TIMEZONE_MINUTE,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,%
      TRUE,UNIQUE,UNKNOWN,UPPER,USAGE,USING,VALUE,VALUES,%
      VARGRAPHIC,VARYING,WHEN,WHERE,WRITE,YEAR,ZONE,%
      AND,ASC,avg,CHECK,COMMIT,count,DECODE,DESC,DISTINCT,GROUP,IN,% FF
      LIKE,NUMBER,ROLLBACK,SUBSTR,sum,VARCHAR2,% FF
      MIN,MAX,UNION,UPDATE,% RF
      ALL,ANY,CUBE,CUBE,DEFAULT,DELETE,EXISTS,GRANT,OR,RECURSIVE,% DJ
      ROLE,ROLLUP,SET,SOME,TRIGGER,VIEW},% DJ
   morendkeywords={BIT,BLOB,CHAR,CHARACTER,CLOB,DATE,DECIMAL,FLOAT,% DJ
      INT,INTEGER,NUMERIC,SMALLINT,TIME,TIMESTAMP,VARCHAR},% moved here
   sensitive=false,% DJ
   morecomment=[l]--,%
   morecomment=[s]{/*}{*/},%
   morestring=[d]',%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Swift}
%
% The definition for Swift was provided by
% \lstthanks{Stefan Jager}{-}{2017/11/13}.
%
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Swift}{%
  morekeywords={associatedtype,class,deinit,enum,extension,fileprivate,%
    func,import,init,inout,internal,let,open,operator,private,protocol,%
    public,static,struct,subscript,typealias,var,break,case,continue,%
    default,defer,do,else,fallthrough,for,guard,if,in,repeat,return,%
    switch,where,while,as,Any,catch,false,is,nil,rethrows,super,self,%
    Self,throw,throws,true,try,_,associativity,convenience,dynamic,%
    didSet,final,get,infix,indirect,lazy,left,mutating,none,%
    nonmutating,optional,override,postfix,precedence,prefix,Protocol,%
    required,right,set,Type,unowned,weak,willSet},%
  sensitive,%
  morecomment=[s]{/*}{*/},%
  morecomment=[s]{/**}{*/},%
  morecomment=[l]//,%
  morecomment=[l]///,%
  morestring=[b]",%
  morestring=[b]""",%
  moredelim=*[directive]\#,%
  moredirectives={available,colorLiteral,column,else,elseif,endif,file,%
    fileLiteral,function,if,imageLiteral,line,selector,sourceLocation}%
 }[keywords,comments,strings,directives]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Tcl/Tk}
%
% Tcl/Tk is a very dynamic language. A statical analysis might not be
% adequate. Nevertheless the following definitions produce the desired
% result for my programs with a minimum of ``misses''.
%
% Data come from
% \begin{itemize}
% \item
%		\textsc{Welch, Brent B.}:
%		\textbf{Practical Programming in Tcl and Tk};
%		{\copyright} 1997 Prentice Hall, Inc.;
%		ISBN 0-13-616830-2.
% \item
%		\textsc{Ousterhout, John K.}:
%		\textbf{Tcl and the Tk Toolkit};
%		{\copyright} 1997 Addison-Wesley Publishing Company;
%		ISBN 0-201-6337-X.
% \end{itemize}
% \lstthanks{Gerd~Neugebauer}{gerd.neugebauer@gmx.de}{2000/09/16} added
% support for Tcl/Tk.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% Tcl/Tk definition (c) Gerd Neugebauer
%%
\lst@definelanguage[tk]{tcl}[]{tcl}%
  {morekeywords={activate,add,separator,radiobutton,checkbutton,%
      command,cascade,all,bell,bind,bindtags,button,canvas,canvasx,%
      canvasy,cascade,cget,checkbutton,config,configu,configur,%
      configure,clipboard,create,arc,bitmap,image,line,oval,polygon,%
      rectangle,text,textwindow,curselection,delete,destroy,end,entry,%
      entrycget,event,focus,font,actual,families,measure,metrics,names,%
      frame,get,grab,current,release,status,grid,columnconfigure,%
      rowconfigure,image,image,create,bitmap,photo,delete,height,types,%
      widt,names,index,insert,invoke,itemconfigure,label,listbox,lower,%
      menu,menubutton,message,move,option,add,clear,get,readfile,pack,%
      photo,place,radiobutton,raise,scale,scroll,scrollbar,search,see,%
      selection,send,stdin,stdout,stderr,tag,bind,text,tk,tkerror,%
      tkwait,window,variable,visibility,toplevel,unknown,update,winfo,%
      class,exists,ismapped,parent,reqwidth,reqheight,rootx,rooty,%
      width,height,wm,aspect,client,command,deiconify,focusmodel,frame,%
      geometry,group,iconbitmap,iconify,iconmask,iconname,iconposition,%
      iconwindow,maxsize,minsize,overrideredirect,positionfrom,%
      protocol,sizefrom,state,title,transient,withdraw,xview,yview,%
      yposition,%
      -accelerator,-activebackground,-activeborderwidth,%
      -activeforeground,-after,-anchor,-arrow,-arrowshape,-aspect,%
      -async,-background,-before,-bg,-bigincrement,-bitmap,-bordermode,%
      -borderwidth,-button,-capstyle,-channel,-class,-closeenough,%
      -colormap,-column,-columnspan,-command,-confine,-container,%
      -count,-cursor,-data,-default,-detail,-digits,-direction,%
      -displayof,-disableforeground,-elementborderwidth,-expand,%
      -exportselection,-extend,-family,-fg,-file,-fill,-focus,-font,%
      -fontmap,-foreground,-format,-from,-gamma,-global,-height,%
      -highlightbackground,-highlightcolor,-highlightthickness,-icon,%
      -image,-in,-insertbackground,-insertborderwidth,-insertofftime,%
      -insertontime,-imsertwidth,-ipadx,-ipady,-joinstyle,-jump,%
      -justify,-keycode,-keysym,-label,-lastfor,-length,-maskdata,%
      -maskfile,-menu,-message,-mode,-offvalue,-onvalue,-orient,%
      -outlien,-outlinestipple,-overstrike,-override,-padx,-pady,%
      -pageanchor,-pageheight,-pagewidth,-pagey,-pagey,-palette,%
      -parent,-place,-postcommand,-relheight,-relief,-relwidth,-relx,%
      -rely,-repeatdelay,-repeatinterval,-resolution,-root,-rootx,%
      -rooty,-rotate,-row,-rowspan,-screen,-selectcolor,-selectimage,%
      -sendevent,-serial,-setgrid,-showvalue,-shrink,-side,-size,%
      -slant,-sliderlength,-sliderrelief,-smooth,-splinesteps,-state,%
      -sticky,-stipple,-style,-subsample,-subwindow,-tags,-takefocus,%
      -tearoff,-tearoffcommand,-text,-textvariable,-tickinterval,-time,%
      -title,-to,-troughcolor,-type,-underline,-use,-value,-variable,%
      -visual,-width,-wrap,-wraplength,-x,-xscrollcommand,-y,%
      -bgstipple,-fgstipple,-lmargin1,-lmargin2,-rmargin,-spacing1,%
      -spacing2,-spacing3,-tabs,-yscrollcommand,-zoom,%
      activate,add,addtag,bbox,cget,clone,configure,coords,%
      curselection,debug,delete,delta,deselect,dlineinfo,dtag,dump,%
      entrycget,entryconfigure,find,flash,fraction,get,gettags,handle,%
      icursor,identify,index,insert,invoke,itemcget,itemconfigure,mark,%
      moveto,own,post,postcascade,postscript,put,redither,ranges,%
      scale,select,show,tag,type,unpost,xscrollcommand,xview,%
      yscrollcommand,yview,yposition}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage[]{tcl}%
  {alsoletter={.:,*=&-},%
   morekeywords={after,append,array,names,exists,anymore,donesearch,%
      get,nextelement,set,size,startsearch,auto_mkindex,binary,break,%
      case,catch,cd,clock,close,concat,console,continue,default,else,%
      elseif,eof,error,eval,exec,-keepnewline,exit,expr,fblocked,%
      fconfigure,fcopy,file,atime,dirname,executable,exists,extension,%
      isdirectory,isfile,join,lstat,mtime,owned,readable,readlink,%
      rootname,size,stat,tail,type,writable,-permissions,-group,-owner,%
      -archive,-hidden,-readonly,-system,-creator,-type,-force,%
      fileevent,flush,for,foreach,format,gets,glob,global,history,if,%
      incr,info,argsbody,cmdcount,commands,complete,default,exists,%
      globals,level,library,locals,patchlevel,procs,script,tclversion,%
      vars,interp,join,lappend,lindex,linsert,list,llength,lrange,%
      lreplace,lsearch,-exact,-regexp,-glob,lsort,-ascii,-integer,%
      -real,-dictionary,-increasing,-decreasing,-index,-command,load,%
      namespace,open,package,forget,ifneeded,provide,require,unknown,%
      vcompare,versions,vsatisfies,pid,proc,puts,-nonewline,pwd,read,%
      regexp,-indices,regsub,-all,-nocaserename,return,scan,seek,set,%
      socket,source,split,string,compare,first,index,last,length,match,%
      range,tolower,toupper,trim,trimleft,trimright,subst,switch,tell,%
      time,trace,variable,vdelete,vinfo,unknown,unset,uplevel,upvar,%
      vwait,while,acos,asin,atan,atan2,ceil,cos,cosh,exp,floor,fmod,%
      hypot,log,log10,pow,sin,sinh,sqrt,tan,tanh,abs,double,int,round%
      },%
   morestring=[d]",%
   morecomment=[f]\#,%
   morecomment=[l]{;\#},%
   morecomment=[l]{[\#},%
   morecomment=[l]{\{\#}%
  }[keywords,comments,strings]
%    \end{macrocode}
% And after receiving a bug report from \lsthelper{Vitaly A. Repin}
% {vitaly@radio.hop.stu.neva.ru}{2002/04/08}{undefined control sequence
% \lst@CommentB} I converted the version 0.21 contents of
% |MoreSelectCharTable| to version 1.0.
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Statistical languages}
%
% These languages have been added by \lstthanks{Winfried~Theis}
% {theis@statistik.uni-dortmund.de}{2000/09/05}. \lstthanks{Robert~Denham}
% {Robert.Denham@dnr.qld.gov.au}{2001/05/03} contributed the additional
% string delimiter |'|.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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
  }%
%    \end{macrocode}
% \lsthelper{Benjamin Janson}{benjamin.janson@gmx.de}{2002/07/09}
% {prockeywords undefined} got a \texttt{prockeywords undefined} error,
% which was removed by \lsthelper{Heiko Oberdiek}{oberdiek@uni-freiburg.de}
% {2002/07/10}{prockeywords -> procnamekeys}.
%    \begin{macrocode}
\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]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%^^A $ to make emacs font locking happy
%
%
% \subsection{\TeX}
%
% I extracted the data from |plain.tex|, |latex.ltx|, and |size10.clo|.
% \lsthelper{Dr.~Peter~Leibner}{leibner@sta.siemens.de}{1999/11/08}{missing
% keywords in definition of \LaTeX} reported that some keywords are missing
% and also added a couple.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
\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}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\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}%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\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}%
  }%
%    \end{macrocode}
% The following language is only a helper.
%    \begin{macrocode}
\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}%
  }%
%    \end{macrocode}
% \lsthelper{Herbert Voss}{Herbert.Voss@FU-Berlin.DE}{2013-12-12}{typo}
% pointed to a typo: the \TeX{} primitive is |lineskiplimit| instead of
% |lineskiplimits|.
%    \begin{macrocode}
\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,lineskiplimit,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$_},%$ to make Emacs fontlocking happy
   morecomment=[l]\%%
  }[keywords,tex,comments]%
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{VBScript}
%
% \lstthanks{Sonja~Weidmann}{Sonja.Weidmann@sap.com}{2000/01/10}{VBScript}
% sent me this language definition.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% VBScript definition (c) 2000 Sonja Weidmann
%%
\lst@definelanguage{VBScript}%
  {morekeywords={Call,Case,Const,Dim,Do,Each,Else,End,Erase,Error,Exit,%
      Explicit,For,Function,If,Loop,Next,On,Option,Private,Public,%
      Randomize,ReDim,Rem,Select,Set,Sub,Then,Wend,While,Abs,Array,Asc,%
      Atn,CBool,CByte,CCur,CDate,CDbl,Chr,CInt,CLng,Cos,CreateObject,%
      CSng,CStr,Date,DateAdd,DateDiff,DatePart,DateSerial,DateValue,%
      Day,Exp,Filter,Fix,FormatCurrency,FormatDateTime,FormatNumber,%
      FormatPercent,GetObject,Hex,Hour,InputBox,InStr,InStrRev,Int,%
      IsArray,IsDate,IsEmpty,IsNull,IsNumeric,IsObject,Join,LBound,%
      LCase,Left,Len,LoadPicture,Log,LTrim,Mid,Minute,Month,MonthName,%
      MsgBox,Now,Oct,Replace,RGB,Right,Rnd,Round,RTrim,ScriptEngine,%
      ScriptEngineBuildVersion,ScriptEngineMajorVersion,%
      ScriptEngineMinorVersion,Second,Sgn,Sin,Space,Split,Sqr,StrComp,%
      StrReverse,String,Tan,Time,TimeSerial,TimeValue,Trim,TypeName,%
      UBound,UCase,VarType,Weekday,WeekdayName,Year, And,Eqv,Imp,Is,%
      Mod,Not,Or,Xor,Add,BuildPath,Clear,Close,Copy,CopyFile,%
      CopyFolder,CreateFolder,CreateTextFile,Delete,DeleteFile,%
      DeleteFolder,Dictionary,Drive,DriveExists,Drives,Err,Exists,File,%
      FileExists,FileSystemObject,Files,Folder,FolderExists,Folders,%
      GetAbsolutePathName,GetBaseName,GetDrive,GetDriveName,%
      GetExtensionName,GetFile,GetFileName,GetFolder,%
      GetParentFolderName,GetSpecialFolder,GetTempName,Items,Keys,Move,%
      MoveFile,MoveFolder,OpenAsTextStream,OpenTextFile,Raise,Read,%
      ReadAll,ReadLine,Remove,RemoveAll,Skip,SkipLine,TextStream,Write,%
      WriteBlankLines,WriteLine,Alias,Archive,CDROM,Compressed,%
      Directory,Fixed,ForAppending,ForReading,ForWriting,Hidden,Normal,%
      RAMDisk,ReadOnly,Remote,Removable,System,SystemFolder,%
      TemporaryFolder,TristateFalse,TristateTrue,TristateUseDefault,%
      Unknown,Volume,WindowsFolder,vbAbortRetryIgnore,%
      vbApplicationModal,vbArray,vbBinaryCompare,vbBlack,vbBlue,%
      vbBoolean,vbByte,vbCr,vbCrLf,vbCritical,vbCurrency,vbCyan,%
      vbDataObject,vbDate,vbDecimal,vbDefaultButton1,vbDefaultButton2,%
      vbDefaultButton3,vbDefaultButton4,vbDouble,vbEmpty,vbError,%
      vbExclamation,vbFirstFourDays,vbFirstFullWeek,vbFirstJan1,%
      vbFormFeed,vbFriday,vbGeneralDate,vbGreen,vbInformation,%
      vbInteger,vbLf,vbLong,vbLongDate,vbLongTime,vbMagenta,vbMonday,%
      vbNewLine,vbNull,vbNullChar,vbNullString,vbOKC,ancel,vbOKOnly,%
      vbObject,vbObjectError,vbQuestion,vbRed,vbRetryCancel,vbSaturday,%
      vbShortDate,vbShortTime,vbSingle,vbString,vbSunday,vbSystemModal,%
      vbTab,vbTextCompare,vbThursday,vbTuesday,vbUseSystem,%
      vbUseSystemDayOfWeek,vbVariant,vbVerticalTab,vbWednesday,vbWhite,%
      vbYellow,vbYesNo,vbYesNoCancel},%
   sensitive=f,%
   morecomment=[l]',%
   morestring=[d]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{Verilog}
%
% Thanks to \lstthanks{Cameron H. G. Wright}{c.h.g.wright@ieee.org}%
% {2003/04/30} for providing the definition. After a bug report by
% \lsthelper{George M.~Georgiou}{georgiou@csci.csusb.edu}%
% {2004/02/05}{directives not detected} I
% changed the declaration of directives to use normal keywords.
% \begingroup
%    \begin{macrocode}
%<*lang3>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% 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},%
   morekeywords=[2]{% 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},%
   morekeywords=[3]{% 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},%
   alsoletter=\`,%
   sensitive,%
   morecomment=[s]{/*}{*/},%
   morecomment=[l]//,% nonstandard
   morestring=[b]"%
  }[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang3>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{VHDL}
%
% This language is due to \lstthanks{Kai~Wollenweber}{kai@ece.wpi.edu}
% {1997/11/04}{VHDL}. I've done conversion to version 0.19 only.
% \lsthelper{Gaurav Aggarwal}{gaurav@ics.uci.edu}{1998/04/02}{sensitive=f}
% reported that VHDL is case insensitive and \lsthelper{Arnaud~Tisserand}
% {2003/02/17}{missing keywords: disconnect, elif, with} added three
% keywords.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% VHDL definition (c) 1997 Kai Wollenweber
%%
\lst@definelanguage{VHDL}%
  {morekeywords={ALL,ARCHITECTURE,ABS,AND,ASSERT,ARRAY,AFTER,ALIAS,%
      ACCESS,ATTRIBUTE,BEGIN,BODY,BUS,BLOCK,BUFFER,CONSTANT,CASE,%
      COMPONENT,CONFIGURATION,DOWNTO,ELSE,ELSIF,END,ENTITY,EXIT,%
      FUNCTION,FOR,FILE,GENERIC,GENERATE,GUARDED,GROUP,IF,IN,INOUT,IS,%
      INERTIAL,IMPURE,LIBRARY,LOOP,LABEL,LITERAL,LINKAGE,MAP,MOD,NOT,%
      NOR,NAND,NULL,NEXT,NEW,OUT,OF,OR,OTHERS,ON,OPEN,PROCESS,PORT,%
      PACKAGE,PURE,PROCEDURE,POSTPONED,RANGE,REM,ROL,ROR,REPORT,RECORD,%
      RETURN,REGISTER,REJECT,SIGNAL,SUBTYPE,SLL,SRL,SLA,SRA,SEVERITY,%
      SELECT,THEN,TYPE,TRANSPORT,TO,USE,UNITS,UNTIL,VARIABLE,WHEN,WAIT,%
      WHILE,XOR,XNOR,%
      DISCONNECT,ELIF,WITH},% Arnaud Tisserand
   sensitive=f,% 1998 Gaurav Aggarwal
   morecomment=[l]--,%
   morestring=[d]{"}%
  }[keywords,comments,strings]
%    \end{macrocode}
% The VHDL-AMS dialect has been added by \lstthanks{Steffen~Klupsch}
% {steffen@vlsi.informatik.tu-darmstadt.de}{2001/10/05}.
%    \begin{macrocode}
%%
%% VHDL-AMS definition (c) Steffen Klupsch
%%
\lst@definelanguage[AMS]{VHDL}[]{VHDL}%
  {morekeywords={ACROSS,ARRAY,BREAK,DISCONNECT,NATURE,NOISE,PORT,%
      PROCEDURAL,QUANTITY,SHARED,SPECTRUM,SUBNATURE,TERMINAL,THROUGH,%
      TOLERANCE,UNAFFACTED,UNITS}}
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{VRML}
%
% This language is due to \lstthanks{Oliver~Baum}{oli.baum@web.de}%
% {2001/07/10}{VRML}.
% \begingroup
%    \begin{macrocode}
%<*lang2>
%    \end{macrocode}
%    \begin{macrocode}
%%
%% VRML definition (c) 2001 Oliver Baum
%%
\lst@definelanguage[97]{VRML}{%
  morekeywords={DEF, EXTERNPROTO, FALSE, IS, NULL, PROTO, ROUTE, TO, TRUE,%
    USE, eventIn, eventOut, exposedField, field, Introduction, Anchor,%
    Appearance, AudioClip, Background, Billboard, Box, Collision, Color,%
    ColorInterpolator, Cone, Coordinate, CoordinateInterpolator, Cylinder,%
    CylinderSensor, DirectionalLight, ElevationGrid, Extrusion, Fog,%
    FontStyle, Group, ImageTexture, IndexedFaceSet, IndexedLineSet, Inline,%
    LOD, Material, MovieTexture, NavigationInfo, Normal,%
    NormalInterpolator, OrientationInterpolator, PixelTexture, PlaneSensor,%
    PointLight, PointSet, PositionInterpolator, ProximitySensor,%
    ScalarInterpolator, Script, Shape, Sound, Sphere, SphereSensor,%
    SpotLight, Switch, Text, TextureCoordinate, TextureTransform,%
    TimeSensor, TouchSensor, Transform, Viewpoint, VisibilitySensor,%
    WorldInfo},%
  morecomment=[l]\#,% bug: starts comment in the first column
  morestring=[b]"%
}[keywords,comments,strings]
%    \end{macrocode}
%    \begin{macrocode}
%</lang2>
%    \end{macrocode}
% \endgroup
%
%
% \subsection{XML et al}
%
% \lstthanks{Bernhard~Walle}{bernhard@bwalle.de}{2003/11/22} provided the
% following two definitions.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{XSLT}[]{XML}%
  {morekeywords={%
     % main elements
     xsl:stylesheet, xsl:transform,%
     % childs of the main element
     xsl:apply-imports, xsl:attribute-set, xsl:decimal-format, xsl:import,%
     xsl:include, xsl:key, xsl:namespace-alias, xsl:output, xsl:param,%
     xsl:preserve-space, xsl:strip-space, xsl:template, xsl:variable,%
     % 21 directives
     xsl:apply-imports, xsl:apply-templates, xsl:attribute,%
     xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of,%
     xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message,%
     xsl:number, xsl:otherwise, xsl:processing-instruction, xsl:text,%
     xsl:value-of, xsl:variable, xsl:when, xsl:with-param},%
   alsodigit={-},%
  }%
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{Ant}[]{XML}{%
  morekeywords={%
    project, target, patternset, include, exclude, excludesfile,%
    includesfile, filterset, filter, filtersfile, libfileset, custom,%
    classpath, fileset, none, depend, mapper, filename, not, date,%
    contains, selector, depth, or, and, present, majority, size, dirset,%
    filelist, pathelement, path, param, filterreader, extension,%
    filterchain, linecontainsregexp, regexp, classconstants, headfilter,%
    tabstospaces, striplinebreaks, tailfilter, stripjavacomments,%
    expandproperties, linecontains, replacetokens, token,%
    striplinecomments, comment, prefixlines, classfileset, rootfileset,%
    root, description, xmlcatalog, entity, dtd, substitution, extensionSet,%
    propertyfile, entry, vsscheckin, sql, transaction, cvspass, csc,%
    dirname, wlrun, wlclasspath, p4label, replaceregexp, get, jjtree,%
    sleep, jarlib, dependset, targetfileset, srcfileset, srcfilelist,%
    targetfilelist, zip, zipgroupfileset, zipfileset, patch, jspc, webapp,%
    style, test, arg, jvmarg, sysproperty, testlet, env, tstamp, format,%
    unwar, vsshistory, icontract, cvschangelog, user, p4submit, ccmcheckin,%
    p4change, bzip2, vssadd, javadoc, bottom, source, doctitle, header,%
    excludepackage, bootclasspath, doclet, taglet, packageset, sourcepath,%
    link, footer, package, group, title, tag, translate, signjar, vajload,%
    vajproject, jarlib, extensionset, WsdlToDotnet, buildnumber,%
    jpcovmerge, tomcat, ejbjar, weblogictoplink, jboss, borland, weblogic,%
    iplanet, jonas, support, websphere, wasclasspath, war, manifest,%
    attribute, section, metainf, lib, classes, webinf, rename, sequential,%
    serverdeploy, generic, property, move, copydir, cccheckin, wljspc,%
    fixcrlf, sosget, pathconvert, map, record, p4sync, exec, p4edit,%
    maudit, rulespath, searchpath, antlr, netrexxc, jpcovreport, reference,%
    filters, coveragepath, execon, targetfile, srcfile, ccmcheckout, ant,%
    xmlvalidate, xslt, iplanet, ccmcheckintask, gzip, native2ascii,%
    starteam, ear, archives, input, rmic, extdirs, compilerarg, checksum,%
    mail, bcc, message, cc, to, from, loadfile, vsscheckout, stylebook,%
    soscheckin, mimemail, stlabel, gunzip, concat, cab, touch, parallel,%
    splash, antcall, cccheckout, typedef, p4have, xmlproperty, copy,%
    tomcat, antstructure, ccmcreatetask, rpm, delete, replace,%
    replacefilter, replacetoken, replacevalue, mmetrics, waitfor, isfalse,%
    equals, available, filepath, os, filesmatch, istrue, isset, socket,%
    http, uptodate, srcfiles, untar, loadproperties, echoproperties,%
    vajexport, stcheckout, bunzip2, copyfile, vsscreate, ejbc, unjar,%
    tomcat, wsdltodotnet, mkdir, condition, cvs, commandline, marker,%
    argument, tempfile, junitreport, report, taskdef, echo, ccupdate, java,%
    renameext, vsslabel, basename, javadoc2, vsscp, tar, tarfileset,%
    tomcat, vajimport, setproxy, wlstop, p4counter, ilasm, soscheckout,%
    apply, ccuncheckout, jarlib, location, url, cvstagdiff, jlink,%
    mergefiles, addfiles, javacc, pvcs, pvcsproject, jarlib, options,%
    depends, chmod, jar, sound, fail, success, mparse, blgenclient, genkey,%
    dname, javah, class, ccmreconfigure, unzip, javac, src, p4add,%
    soslabel, jpcoverage, triggers, method, vssget, deltree, ddcreator},%
  deletekeywords={default},%
}
%    \end{macrocode}
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
% \endgroup
%
% This is my first attempt to support XML. It is from 2000/07/18.
% \begingroup
%    \begin{macrocode}
%<*lang1>
%    \end{macrocode}
%    \begin{macrocode}
\lst@definelanguage{XML}%
  {keywords={,CDATA,DOCTYPE,ATTLIST,termdef,ELEMENT,EMPTY,ANY,ID,%
      IDREF,IDREFS,ENTITY,ENTITIES,NMTOKEN,NMTOKENS,NOTATION,%
      INCLUDE,IGNORE,SYSTEM,PUBLIC,NDATA,PUBLIC,%
      PCDATA,REQUIRED,IMPLIED,FIXED,%%% preceded by #
      xml,xml:space,xml:lang,version,standalone,default,preserve},%
   alsoother=$,%
   alsoletter=:,%
   tag=**[s]<>,%
   morestring=[d]",% ??? doubled
   morestring=[d]',% ??? doubled
   MoreSelectCharTable=%
      \lst@CArgX--\relax\lst@DefDelimB{}{}%
          {\ifnum\lst@mode=\lst@tagmode\else
               \expandafter\@gobblethree
           \fi}%
          \lst@BeginComment\lst@commentmode{{\lst@commentstyle}}%
      \lst@CArgX--\relax\lst@DefDelimE{}{}{}%
          \lst@EndComment\lst@commentmode
      \lst@CArgX[CDATA[\relax\lst@CDef{}%
          {\ifnum\lst@mode=\lst@tagmode
               \expandafter\lst@BeginCDATA
           \else \expandafter\lst@CArgEmpty
           \fi}%
          \@empty
      \lst@CArgX]]\relax\lst@CDef{}%
          {\ifnum\lst@mode=\lst@GPmode
               \expandafter\lst@EndComment
           \else \expandafter\lst@CArgEmpty
           \fi}%
          \@empty
  }[keywords,comments,strings,html]%
%    \end{macrocode}
% And after receiving a bug report from \lsthelper{Michael~Niedermair}
% {m.g.n@gmx.de}{2002/04/07}{undefined control sequence \lst@commentmode} I
% converted the version 0.21 contents of |MoreSelectCharTable| to version 1.0.
%    \begin{macrocode}
%</lang1>
%    \end{macrocode}
%^^A $ to make emacs font locking happy
% \endgroup
%
%
% \ifmulticols
% \addtocontents{toc}{\protect\end{multicols}}
% \fi
%
%^^A \setcounter{IndexColumns}{2}
%^^A \PrintIndex
%
%
% \Finale
%
\endinput
