source: doc/LaTeXmacros/listings/lstdoc.sty @ cab8cac

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since cab8cac was 9724df0, checked in by Peter A. Buhr <pabuhr@…>, 8 years ago

update latex macros, and user and refrat manuals

  • Property mode set to 100644
File size: 15.2 KB
Line 
1%%
2%% This is file `lstdoc.sty',
3%% generated with the docstrip utility.
4%%
5%% The original source files were:
6%%
7%% listings.dtx  (with options: `doc')
8%%
9%% Please read the software license in listings-1.3.dtx or listings-1.3.pdf.
10%%
11%% (w)(c) 1996--2004 Carsten Heinz and/or any other author listed
12%% elsewhere in this file.
13%% (c) 2006 Brooks Moses
14%% (c) 2013- Jobst Hoffmann
15%%
16%% Send comments and ideas on the package, error reports and additional
17%% programming languages to Jobst Hoffmann at <j.hoffmann@fh-aachen.de>.
18%%
19\def\filedate{2015/06/04}
20\def\fileversion{1.6}
21\ProvidesPackage{lstdoc}
22             [\filedate\space\fileversion\space(Carsten Heinz)]
23\let\lstdoc@currversion\fileversion
24\RequirePackage[writefile]{listings}[2004/09/07]
25\newif\iffancyvrb \IfFileExists{fancyvrb.sty}{\fancyvrbtrue}{}
26\newif\ifcolor \IfFileExists{color.sty}{\colortrue}{}
27\lst@false
28\newif\ifhyper
29\@ifundefined{pdfoutput}
30    {}
31    {\ifnum\pdfoutput>\z@ \lst@true \fi}
32\@ifundefined{VTeXversion}
33    {}
34    {\ifnum\OpMode>\z@ \lst@true \fi}
35\lst@if \IfFileExists{hyperref.sty}{\hypertrue}{}\fi
36\newif\ifalgorithmicpkg \IfFileExists{algorithmic.sty}{\algorithmicpkgtrue}{}
37\newif\iflgrind \IfFileExists{lgrind.sty}{\lgrindtrue}{}
38\iffancyvrb \RequirePackage{fancyvrb}\fi
39\ifhyper \RequirePackage[colorlinks]{hyperref}\else
40    \def\href#1{\texttt}\fi
41\ifcolor \RequirePackage{color}\fi
42\ifalgorithmicpkg \RequirePackage{algorithmic}\fi
43\iflgrind \RequirePackage{lgrind}\fi
44\RequirePackage{nameref}
45\RequirePackage{url}
46\renewcommand\ref{\protect\T@ref}
47\renewcommand\pageref{\protect\T@pageref}
48\def\lst@BeginRemark#1{%
49    \begin{quote}\topsep0pt\let\small\footnotesize\small#1:}
50\def\lst@EndRemark{\end{quote}}
51\newenvironment{TODO}
52    {\lst@BeginRemark{To do}}{\lst@EndRemark}
53\newenvironment{ALTERNATIVE}
54    {\lst@BeginRemark{Alternative}}{\lst@EndRemark}
55\newenvironment{REMOVED}
56    {\lst@BeginRemark{Removed}}{\lst@EndRemark}
57\newenvironment{OLDDEF}
58    {\lst@BeginRemark{Old definition}}{\lst@EndRemark}
59\def\advise{\par\list\labeladvise
60    {\advance\linewidth\@totalleftmargin
61     \@totalleftmargin\z@
62     \@listi
63     \let\small\footnotesize \small\sffamily
64     \parsep \z@ \@plus\z@ \@minus\z@
65     \topsep6\p@ \@plus1\p@\@minus2\p@
66     \def\makelabel##1{\hss\llap{##1}}}}
67\let\endadvise\endlist
68\def\advisespace{\hbox{}\qquad}
69\def\labeladvise{$\to$}
70\newenvironment{syntax}
71   {\list{}{\itemindent-\leftmargin
72    \def\makelabel##1{\hss\lst@syntaxlabel##1,,,,\relax}}}
73   {\endlist}
74\def\lst@syntaxlabel#1,#2,#3,#4\relax{%
75    \llap{\scriptsize\itshape#3}%
76    \def\lst@temp{#2}%
77    \expandafter\lst@syntaxlabel@\meaning\lst@temp\relax
78    \rlap{\hskip-\itemindent\hskip\itemsep\hskip\linewidth
79          \llap{\ttfamily\lst@temp}\hskip\labelwidth
80          \def\lst@temp{#1}%
81          \ifx\lst@temp\lstdoc@currversion#1\fi}}
82\def\lst@syntaxlabel@#1>#2\relax
83    {\edef\lst@temp{\zap@space#2 \@empty}}
84\newcommand*\syntaxnewline{\newline\hbox{}\kern\labelwidth}
85\newcommand*\syntaxor{\qquad or\qquad}
86\newcommand*\syntaxbreak
87    {\hfill\kern0pt\discretionary{}{\kern\labelwidth}{}}
88\let\syntaxfill\hfill
89\def\alternative#1{\lst@true \alternative@#1,\relax,}
90\def\alternative@#1,{%
91    \ifx\relax#1\@empty
92        \expandafter\@gobble
93    \else
94        \ifx\@empty#1\@empty\else
95            \lst@if \lst@false \else $\vert$\fi
96            \textup{\texttt{#1}}%
97        \fi
98    \fi
99    \alternative@}
100\long\def\m@cro@#1#2#3{\endgroup \topsep\MacroTopsep \trivlist
101  \edef\saved@macroname{\string#3}%
102  \def\makelabel##1{\llap{##1}}%
103  \if@inlabel
104    \let\@tempa\@empty \count@\macro@cnt
105    \loop \ifnum\count@>\z@
106      \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
107    \edef\makelabel##1{\llap{\vtop to\baselineskip
108                               {\@tempa\hbox{##1}\vss}}}%
109    \advance \macro@cnt \@ne
110  \else  \macro@cnt\@ne  \fi
111  \edef\@tempa{\noexpand\item[%
112     #1%
113       \noexpand\PrintMacroName
114     \else
115       \expandafter\noexpand\csname Print#2Name\endcsname % MODIFIED
116     \fi
117     {\string#3}]}%
118  \@tempa
119  \global\advance\c@CodelineNo\@ne
120   #1%
121      \SpecialMainIndex{#3}\nobreak
122      \DoNotIndex{#3}%
123   \else
124      \csname SpecialMain#2Index\endcsname{#3}\nobreak % MODIFIED
125   \fi
126  \global\advance\c@CodelineNo\m@ne
127  \ignorespaces}
128\def\macro{\begingroup
129   \catcode`\\12
130   \MakePrivateLetters \m@cro@ \iftrue {Macro}}% MODIFIED
131\def\environment{\begingroup
132   \catcode`\\12
133   \MakePrivateLetters \m@cro@ \iffalse {Env}}% MODIFIED
134\def\newdocenvironment#1#2#3#4{%
135    \@namedef{#1}{#3\begingroup \catcode`\\12\relax
136                  \MakePrivateLetters \m@cro@ \iffalse {#2}}%
137    \@namedef{end#1}{#4\endmacro}%
138    \@ifundefined{Print#2Name}{\expandafter
139        \let\csname Print#2Name\endcsname\PrintMacroName}{}%
140    \@ifundefined{SpecialMain#2Index}{\expandafter
141        \let\csname SpecialMain#2Index\endcsname\SpecialMainIndex}{}}
142\newdocenvironment{aspect}{Aspect}{}{}
143\def\PrintAspectName#1{}
144\def\SpecialMainAspectIndex#1{%
145    \@bsphack
146    \index{aspects:\levelchar\protect\aspectname{#1}}%
147    \@esphack}
148\newdocenvironment{lstkey}{Key}{}{}
149\def\PrintKeyName#1{\strut\keyname{#1}\ }
150\def\SpecialMainKeyIndex#1{%
151    \@bsphack
152    \index{keys\levelchar\protect\keyname{#1}}%
153    \@esphack}
154\newcounter{argcount}
155\def\labelargcount{\texttt{\#\arabic{argcount}}\hskip\labelsep$=$}
156\def\macroargs{\list\labelargcount
157    {\usecounter{argcount}\leftmargin=2\leftmargin
158     \parsep \z@ \@plus\z@ \@minus\z@
159     \topsep4\p@ \@plus\p@ \@minus2\p@
160     \itemsep\z@ \@plus\z@ \@minus\z@
161     \def\makelabel##1{\hss\llap{##1}}}}
162\def\endmacroargs{\endlist\@endparenv}
163\lst@RequireAspects{writefile}
164\newbox\lst@samplebox
165\lstnewenvironment{lstsample}[3][]
166    {\global\let\lst@intname\@empty
167     \gdef\lst@sample{#2}%
168     \setbox\lst@samplebox=\hbox\bgroup
169         \setkeys{lst}{language={},style={},tabsize=4,gobble=5,%
170             basicstyle=\small\ttfamily,basewidth=0.51em,point={#1}}
171         #3%
172         \lst@BeginAlsoWriteFile{\jobname.tmp}}
173    {\lst@EndWriteFile\egroup
174     \ifdim \wd\lst@samplebox>.5\linewidth
175         \begin{center}%
176             \hbox to\linewidth{\box\lst@samplebox\hss}%
177         \end{center}%
178         \lst@sampleInput
179     \else
180         \begin{center}%
181         \begin{minipage}{0.45\linewidth}\lst@sampleInput\end{minipage}%
182         \qquad
183         \begin{minipage}{0.45\linewidth}%
184             \hbox to\linewidth{\box\lst@samplebox\hss}%
185         \end{minipage}%
186         \end{center}%
187     \fi}
188\lst@InstallKeywords{p}{point}{pointstyle}\relax{keywordstyle}{}ld
189\lstnewenvironment{lstxsample}[1][]
190    {\begingroup
191         \setkeys{lst}{belowskip=-\medskipamount,language={},style={},%
192             tabsize=4,gobble=5,basicstyle=\small\ttfamily,%
193             basewidth=0.51em,point={#1}}
194         \lst@BeginAlsoWriteFile{\jobname.tmp}}
195    {\endgroup
196     \endgroup}
197\def\lst@sampleInput{%
198    \MakePercentComment\catcode`\^^M=10\relax
199    \small\lst@sample
200    {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}%
201                                  {\lst@ProcessTabulator}}%
202     \leavevmode \input{\jobname.tmp}}\MakePercentIgnore}
203\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
204                                      {1.25ex \@plus1ex \@minus.2ex}%
205                                      {-1em}%
206                                      {\normalfont\normalsize\bfseries}}
207\def\lstref#1{\emph{\ref{#1} \nameref{#1}}}
208\def\@part[#1]#2{\ifhyper\phantomsection\fi
209    \addcontentsline{toc}{part}{#1}%
210    {\parindent\z@ \raggedright \interlinepenalty\@M
211     \normalfont \huge \bfseries #2\markboth{}{}\par}%
212    \nobreak\vskip 3ex\@afterheading}
213\renewcommand*\l@section[2]{%
214    \addpenalty\@secpenalty
215    \addvspace{.25em \@plus\p@}%
216    \setlength\@tempdima{1.5em}%
217    \begingroup
218      \parindent \z@ \rightskip \@pnumwidth
219      \parfillskip -\@pnumwidth
220      \leavevmode
221      \advance\leftskip\@tempdima
222      \hskip -\leftskip
223      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
224    \endgroup}
225\renewcommand*\l@subsection{\@dottedtocline{2}{0pt}{2.3em}}
226\renewcommand*\l@subsubsection{\@dottedtocline{3}{0pt}{3.2em}}
227\newcommand\ikeyname[1]{%
228    \lstkeyindex{#1}{}%
229    \lstaspectindex{#1}{}%
230    \keyname{#1}}
231\newcommand\ekeyname[1]{%
232    \@bsphack
233    \lstkeyindex{#1}{}%
234    \lstaspectindex{#1}{}%
235    \@esphack}
236\newcommand\rkeyname[1]{%
237    \@bsphack
238    \lstkeyindex{#1}{}%
239    \lstaspectindex{#1}{}%
240    \@esphack{\rstyle\keyname{#1}}}
241\newcommand\icmdname[1]{%
242    \@bsphack
243    \lstaspectindex{#1}{}%
244    \@esphack\texttt{\string#1}}
245\newcommand\rcmdname[1]{%
246    \@bsphack
247    \lstaspectindex{#1}{}%
248    \@esphack\texttt{\rstyle\string#1}}
249\def\lstaspectindex#1#2{%
250    \global\@namedef{lstkandc@\string#1}{}%
251    \@ifundefined{lstisaspect@\string#1}
252        {\index{unknown\levelchar
253                \protect\texttt{\protect\string\string#1}#2}}%
254        {\index{\@nameuse{lstisaspect@\string#1}\levelchar
255                \protect\texttt{\protect\string\string#1}#2}}%
256}
257\def\lstkeyindex#1#2{%
258}
259\def\lstisaspect[#1]#2{%
260    \global\@namedef{lstaspect@#1}{#2}%
261    \lst@AddTo\lst@allkeysandcmds{,#2}%
262    \@for\lst@temp:=#2\do
263    {\ifx\@empty\lst@temp\else
264         \global\@namedef{lstisaspect@\lst@temp}{#1}%
265     \fi}}
266\gdef\lst@allkeysandcmds{}
267\def\lstprintaspectkeysandcmds#1{%
268    \lst@true
269    \expandafter\@for\expandafter\lst@temp
270    \expandafter:\expandafter=\csname lstaspect@#1\endcsname\do
271    {\lst@if\lst@false\else, \fi \texttt{\lst@temp}}}
272\def\lstcheckreference{%
273   \@for\lst@temp:=\lst@allkeysandcmds\do
274   {\ifx\lst@temp\@empty\else
275        \@ifundefined{lstkandc@\lst@temp}
276        {\typeout{\lst@temp\space not in reference guide?}}{}%
277    \fi}}
278\newcommand*\lst{\texttt{lst}}
279\newcommand*\Cpp{C\texttt{++}}
280\let\keyname\texttt
281\let\keyvalue\texttt
282\let\hookname\texttt
283\newcommand*\aspectname[1]{{\normalfont\sffamily#1}}
284\DeclareRobustCommand\packagename[1]{%
285    {\leavevmode\text@command{#1}%
286     \switchfontfamily\sfdefault\rmdefault
287     \check@icl #1\check@icr
288     \expandafter}}%
289\renewcommand\packagename[1]{{\normalfont\sffamily#1}}
290\def\switchfontfamily#1#2{%
291    \begingroup\xdef\@gtempa{#1}\endgroup
292    \ifx\f@family\@gtempa\fontfamily#2%
293                    \else\fontfamily#1\fi
294    \selectfont}
295\ifcolor
296    \definecolor{darkgreen}{rgb}{0,0.5,0}
297    \def\rstyle{\color{darkgreen}}
298\else
299    \let\rstyle\empty
300\fi
301\gdef\lst@emails{}
302\newcommand*\lstthanks[2]
303    {#1\lst@AddTo\lst@emails{,#1,<#2>}%
304     \ifx\@empty#2\@empty\typeout{Missing email for #1}\fi}
305\newcommand*\lsthelper[3]
306    {{\let~\ #1}%
307     \lst@IfOneOf#1\relax\lst@emails
308     {}{\typeout{^^JWarning: Unknown helper #1.^^J}}}
309\lstdefinelanguage[doc]{Pascal}{%
310  morekeywords={alfa,and,array,begin,boolean,byte,case,char,const,div,%
311     do,downto,else,end,false,file,for,function,get,goto,if,in,%
312     integer,label,maxint,mod,new,not,of,or,pack,packed,page,program,%
313     procedure,put,read,readln,real,record,repeat,reset,rewrite,set,%
314     text,then,to,true,type,unpack,until,var,while,with,write,writeln},%
315  sensitive=false,%
316  morecomment=[s]{(*}{*)},%
317  morecomment=[s]{\{}{\}},%
318  morestring=[d]{'}}
319\lstdefinestyle{}
320    {basicstyle={},%
321     keywordstyle=\bfseries,identifierstyle={},%
322     commentstyle=\itshape,stringstyle={},%
323     numberstyle={},stepnumber=1,%
324     pointstyle=\pointstyle}
325\def\pointstyle{%
326    {\let\lst@um\@empty \xdef\@gtempa{\the\lst@token}}%
327    \expandafter\lstkeyindex\expandafter{\@gtempa}{}%
328    \expandafter\lstaspectindex\expandafter{\@gtempa}{}%
329    \rstyle}
330\lstset{defaultdialect=[doc]Pascal,language=Pascal,style={}}
331\def\lstscanlanguages#1#2#3{%
332    \begingroup
333        \def\lst@DefDriver@##1##2##3##4[##5]##6{%
334           \lst@false
335           \lst@lAddTo\lst@scan{##6(##5),}%
336           \begingroup
337           \@ifnextchar[{\lst@XDefDriver{##1}##3}{\lst@DefDriver@@##3}}%
338        \def\lst@XXDefDriver[##1]{}%
339        \lst@InputCatcodes
340        \def\lst@dontinput{#3}%
341        \let\lst@scan\@empty
342        \lst@for{#2}\do{%
343            \lst@IfOneOf##1\relax\lst@dontinput
344                {}%
345                {\InputIfFileExists{##1}{}{}}}%
346        \global\let\@gtempa\lst@scan
347    \endgroup
348    \let#1\@gtempa}
349\def\lstprintlanguages#1{%
350    \def\do##1{\setbox\@tempboxa\hbox{##1\space\space}%
351        \ifdim\wd\@tempboxa<.5\linewidth \wd\@tempboxa.5\linewidth
352                                   \else \wd\@tempboxa\linewidth \fi
353        \box\@tempboxa\allowbreak}%
354    \begin{quote}
355      \par\noindent
356      \hyphenpenalty=\@M \rightskip=\z@\@plus\linewidth\relax
357      \lst@BubbleSort#1%
358      \expandafter\lst@NextLanguage#1\relax(\relax),%
359    \end{quote}}
360\def\lst@NextLanguage#1(#2),{%
361    \ifx\relax#1\else
362        \def\lst@language{#1}\def\lst@dialects{(#2),}%
363        \expandafter\lst@NextLanguage@
364    \fi}
365\def\lst@NextLanguage@#1(#2),{%
366    \def\lst@temp{#1}%
367    \ifx\lst@temp\lst@language
368        \lst@lAddTo\lst@dialects{(#2),}%
369        \expandafter\lst@NextLanguage@
370    \else
371        \do{\lst@language
372        \ifx\lst@dialects\lst@emptydialect\else
373            \expandafter\lst@NormedDef\expandafter\lst@language
374                \expandafter{\lst@language}%
375            \space(%
376            \lst@BubbleSort\lst@dialects
377            \expandafter\lst@PrintDialects\lst@dialects(\relax),%
378            )%
379        \fi}%
380        \def\lst@next{\lst@NextLanguage#1(#2),}%
381        \expandafter\lst@next
382    \fi}
383\def\lst@emptydialect{(),}
384\def\lst@PrintDialects(#1),{%
385    \ifx\@empty#1\@empty empty\else
386        \lst@PrintDialect{#1}%
387    \fi
388    \lst@PrintDialects@}
389\def\lst@PrintDialects@(#1),{%
390    \ifx\relax#1\else
391        , \lst@PrintDialect{#1}%
392        \expandafter\lst@PrintDialects@
393    \fi}
394\def\lst@PrintDialect#1{%
395    \lst@NormedDef\lst@temp{#1}%
396    \expandafter\ifx\csname\@lst dd@\lst@language\endcsname\lst@temp
397        \texttt{\underbar{#1}}%
398    \else
399        \texttt{#1}%
400    \fi}
401\def\lst@IfLE#1#2\@empty#3#4\@empty{%
402    \ifx #1\relax
403        \let\lst@next\@firstoftwo
404    \else \ifx #3\relax
405        \let\lst@next\@secondoftwo
406    \else
407        \lowercase{\ifx#1#3}%
408            \def\lst@next{\lst@IfLE#2\@empty#4\@empty}%
409        \else
410            \lowercase{\ifnum`#1<`#3}\relax
411                \let\lst@next\@firstoftwo
412            \else
413                \let\lst@next\@secondoftwo
414            \fi
415        \fi
416    \fi \fi
417    \lst@next}
418\def\lst@BubbleSort#1{%
419    \ifx\@empty#1\else
420        \lst@false
421        \expandafter\lst@BubbleSort@#1\relax,\relax,%
422        \expandafter\lst@BubbleSort@\expandafter,\lst@sorted
423                                      \relax,\relax,%
424        \let#1\lst@sorted
425        \lst@if
426            \def\lst@next{\lst@BubbleSort#1}%
427            \expandafter\expandafter\expandafter\lst@next
428        \fi
429    \fi}
430\def\lst@BubbleSort@#1,#2,{%
431    \ifx\@empty#1\@empty
432        \def\lst@sorted{#2,}%
433        \def\lst@next{\lst@BubbleSort@@}%
434    \else
435        \let\lst@sorted\@empty
436        \def\lst@next{\lst@BubbleSort@@#1,#2,}%
437    \fi
438    \lst@next}
439\def\lst@BubbleSort@@#1,#2,{%
440    \ifx\relax#1\else
441        \ifx\relax#2%
442            \lst@lAddTo\lst@sorted{#1,}%
443            \expandafter\expandafter\expandafter\lst@BubbleSort@@@
444        \else
445            \lst@IfLE #1\relax\@empty #2\relax\@empty
446                          {\lst@lAddTo\lst@sorted{#1,#2,}}%
447                {\lst@true \lst@lAddTo\lst@sorted{#2,#1,}}%
448            \expandafter\expandafter\expandafter\lst@BubbleSort@@
449        \fi
450    \fi}
451\def\lst@BubbleSort@@@#1\relax,{}
452\endinput
453%%
454%% End of file `lstdoc.sty'.
Note: See TracBrowser for help on using the repository browser.