summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/listings/lstdrvrs.dtx')
-rw-r--r--Master/texmf-dist/source/latex/listings/lstdrvrs.dtx332
1 files changed, 326 insertions, 6 deletions
diff --git a/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx b/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx
index e33c20de561..7693613079a 100644
--- a/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx
+++ b/Master/texmf-dist/source/latex/listings/lstdrvrs.dtx
@@ -1,7 +1,10 @@
% \iffalse
%
+% $Id: lstdrvrs.dtx 43 2013-06-27 15:26:50Z j_hoffmann $
+%
%<*driver>
\documentclass{ltxdoc}
+\usepackage{url}
\EnableCrossrefs
\CodelineIndex
\begin{document}
@@ -20,7 +23,7 @@
% \DoNotIndex{\undefined}
%
%
-% \title{Language, Style and Format drivers\\ for \textsf{Listings 1.3}\\ {\large by Carsten Heinz and individual authors:}}
+% \title{Language, Style and Format drivers\\ for \textsf{Listings 1.5pre1}\\ {\large by Carsten Heinz and individual authors:}}
% \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
% \date{}
%
@@ -97,7 +100,7 @@
% \endgroup
% We mainly define default dialects.
% \begin{macrocode}
-\ProvidesFile{listings.cfg}[2007/02/22 1.4 listings configuration]
+\ProvidesFile{listings.cfg}[2013/06/27 1.5pre1 listings configuration]
\def\lstlanguagefiles
{lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
\lstset{defaultdialect=[R/3 6.10]ABAP,
@@ -107,7 +110,7 @@
defaultdialect=[ANSI]C,
defaultdialect=[light]Caml,
defaultdialect=[1985]Cobol,
- defaultdialect=[WinXP]command.com,
+ defaultdialect=[WinXP]command.com,
defaultdialect=[ISO]C++,
defaultdialect=[95]Fortran,
defaultdialect=[5.2]Mathematica,
@@ -138,7 +141,7 @@
%<+lang1>\ProvidesFile{lstlang1.sty}
%<+lang2>\ProvidesFile{lstlang2.sty}
%<+lang3>\ProvidesFile{lstlang3.sty}
-%<-config> [2004/09/05 1.3 listings language file]
+%<-config> [2013/06/27 1.5pre1 listings language file]
% \end{macrocode}
%
%
@@ -1479,10 +1482,31 @@ SUBX,SWAP,TAS,TRAP,TRAPV,TST,UNLK},%
% 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 2008) is defined in ...
+% It contains four keywords consisting of two words: |ERROR STOP|, ^^A
+% |SYNC ALL|, |SYNC IMAGES|, |SYNC MEMORY|, so the lists contains the
+% single parts |ALL|, |IMAGES|, |MEMORY|, and |SYNC|
+% \begin{macrocode}
+\lst@definelanguage[08]{Fortran}[03]{Fortran}{%
+ morekeywords={ALL, BLOCK, CODIMENSION, CONCURRENT, CONTIGUOUS, CRITICAL,%
+ ERROR, LOCK, SUBMODULE, SYNC, UNLOCK}%
+}%
+% \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}
% \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}
@@ -1503,7 +1527,14 @@ SUBX,SWAP,TAS,TRAP,TRAPV,TST,UNLK},%
TARGET,USE,WHERE,WHILE,BLOCKDATA,DOUBLEPRECISION,%
ENDBLOCKDATA,ENDFILE,ENDFUNCTION,ENDINTERFACE,%
ENDMODULE,ENDPROGRAM,ENDSELECT,ENDSUBROUTINE,ENDTYPE,ENDWHERE,%
- INOUT,SELECTCASE},%
+ INOUT,SELECTCASE,%
+% \end{macrocode}
+% Theses keys were missing from the 1.4 version of listings:
+% \begin{macrocode}
+ ELEMENTAL, ELSEWHERE, FORALL, PURE},%
+% \end{macrocode}
+% and here are the final settings for Fortran
+% \begin{macrocode}
deletecomment=[f],% no fixed comment line: 1998 Magne Rudshaug
morecomment=[l]!%
}%
@@ -1837,7 +1868,7 @@ SUBX,SWAP,TAS,TRAP,TRAPV,TST,UNLK},%
static,supporter,switchable,talkable,transparent,visited,%
workflag,worn},%
%
- % Libary properties
+ % 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,%
@@ -2472,6 +2503,295 @@ SUBX,SWAP,TAS,TRAP,TRAPV,TST,UNLK},%
% \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}
+% 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}
+% And here are the new definitions for Lua 5.1:
+% \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}
+% \end{itemize}
+% Lua 5.2 also has some changed features. These are
+% \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}
+% 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}
+% \begin{macrocode}
+%</lang2>
+% \end{macrocode}
+% \endgroup
+%
+%
% \subsection{Make}
%
% \lstthanks{Rolf~Niepraschk}{niepraschk@ptb.de}{2000/01/10} sent me the new