%% %% This is file `xparse.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xparse.dtx (with options: `package') %% %% %% (C) Copyright 1999 Frank Mittelbach, Chris Rowley, David Carlisle %% All rights reserved. %% %% Not for general distribution. In its present form it is not allowed %% to put this package onto CD or an archive without consulting the %% the authors. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xparse} [1999/09/10 v0.17 generic document command parser] \RequirePackage{ldcsetup} \IgnoreWhiteSpace \newtoks\@temptokenb \newtoks\xparsed@args \long\def\DeclareDocumentCommand #1 #2 #3{ \@tempcnta\z@ \toks@{} \@temptokena\toks@ \@temptokenb\toks@ \@ddc#2X \edef#1{ \noexpand\@ddc@ {\the\toks@} \expandafter\noexpand\csname\string#1\endcsname \noexpand#1 } \long\expandafter\def\csname\string#1\expandafter\endcsname \the\@temptokena{#3}} \long\def\DeclareDocumentEnvironment#1#2#3#4{ \expandafter\DeclareDocumentCommand\csname #1\endcsname{#2}{ \xparsed@args\toks@ #3} \expandafter\let\csname end #1\endcsname\@parsed@endenv \long\expandafter\def\csname end \string\\#1\expandafter\endcsname \the\@temptokena {#4}} \def\@parsed@endenv{ \expandafter\@parsed@endenv@\the\xparsed@args} \def\@parsed@endenv@#1{ \csname end\string#1\endcsname} \def\@ddc@#1#2#3{ \ifx\protect\@typeset@protect \expandafter\@firstofone \else \protect#3\expandafter\@gobble \fi {\toks@{#2} #1\the\toks@}} \def\@ddc#1{ \ifx #1X \else \ifx #1m \addto@hook\@temptokenb m \else \toks@\expandafter{% \the\expandafter\toks@ \csname @ddc@\the\@temptokenb\expandafter\endcsname \csname @ddc@#1\endcsname} \@temptokenb{} \fi \advance\@tempcnta\@ne \@temptokena\expandafter{ \the\expandafter\@temptokena\expandafter##\the\@tempcnta} \expandafter \@ddc \fi} \long\def\@ddc@s#1\toks@{ \@ifstar {\addto@hook\toks@\BooleanTrue #1\toks@} {\addto@hook\toks@\BooleanFalse #1\toks@}} \long\def\@ddc@m#1\toks@#2{ \addto@hook\toks@{{#2}} #1\toks@} \long\def\@ddc@o#1\toks@{ \@ifnextchar[ {\@ddc@o@{#1}} {\addto@hook\toks@\NoValue #1\toks@}} \long\def\@ddc@o@#1[#2]{ \addto@hook\toks@{{#2}} #1\toks@} \def\@ddc#1{ \ifx #1X \perhaps@grab@ms \else \ifx #1m \addto@hook\@temptokenb m \else \toks@\expandafter{% \the\expandafter\toks@ \csname @ddc@x\the\@temptokenb\expandafter\endcsname \csname @ddc@#1\endcsname} \@temptokenb{} \ifx #1O \let\next@ddc\grab@default \else \ifx #1C \let\next@ddc\grab@default \fi \fi \fi \advance\@tempcnta\@ne \@temptokena\expandafter{ \the\expandafter\@temptokena\expandafter##\the\@tempcnta} \expandafter \next@ddc \fi } \let\next@ddc\@ddc \def\grab@default #1{ \toks@\expandafter{% \the\toks@ {#1}} \let\next@ddc\@ddc \@ddc } \long\def\@ddc@O#1#2\toks@{ \@ifnextchar[ {\@ddc@o@{#2}} {\addto@hook\toks@{{#1}} #2\toks@}} \long\def\@ddc@c#1\toks@{ \@ifnextchar ( {\@ddc@c@ #1} {\PackageError{xparse}{Missing~ coordinate~ argument} {A~ value~ of~ (0,0)~ is~ assumed} \addto@hook\toks@{{00}} #1\toks@} } \long\def\@ddc@c@#1(#2,#3){ \addto@hook\toks@{{{#2}{#3}}} #1\toks@} \long\def\@ddc@C#1#2\toks@{ \@ifnextchar ( {\@ddc@c@ #2} {\addto@hook\toks@{{#1}} #2\toks@}} \let\perhaps@grab@ms\relax \def\grab@ms { \toks@\expandafter{ \the\expandafter\toks@ \csname @ddc@x\the\@temptokenb\endcsname }} \let\@ddc@m\undefined \long\def\@ddc@xm#1\toks@#2{ \addto@hook\toks@{{#2}} #1\toks@} \long\def\@ddc@xmm#1\toks@#2#3{ \addto@hook\toks@{{#2}{#3}} #1\toks@} \long\def\@ddc@xmmm#1\toks@#2#3#4{ \addto@hook\toks@{{#2}{#3}{#4}} #1\toks@} \long\def\@ddc@xmmmm#1\toks@#2#3#4#5{ \addto@hook\toks@{{#2}{#3}{#4}{#5}} #1\toks@} \long\def\@ddc@xmmmmm#1\toks@#2#3#4#5#6{ \addto@hook\toks@{{#2}{#3}{#4}{#5}{#6}} #1\toks@} \long\def\@ddc@xmmmmmm#1\toks@#2#3#4#5#6#7{ \addto@hook\toks@{{#2}{#3}{#4}{#5}{#6}{#7}} #1\toks@} \long\def\@ddc@xmmmmmmm#1\toks@#2#3#4#5#6#7#8{ \addto@hook\toks@{{#2}{#3}{#4}{#5}{#6}{#7}{#8}} #1\toks@} \long\def\@ddc@xmmmmmmmm#1\toks@#2#3#4#5#6#7#8#9{ \addto@hook\toks@{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}} #1\toks@} \long\def\@ddc@xmmmmmmmmm\the\toks@#1#2#3#4#5#6#7#8#9{ \addto@hook\toks@{{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}\the\toks@} \let\@ddc@x\relax \long\def\DeclareDocumentEnvironment#1#2#3#4{ \expandafter\DeclareDocumentCommand\csname #1\endcsname{#2}{ #3} \@namedef{end #1}{#4} } \let\@parsed@endenv\undefined \let\@parsed@endenv@\undefined \def\IfSomethingTF#1{\def\something@in{#1} \If@SomethingTF} \def\IfSomethingT#1#2#3{\def\something@in{#1} \If@SomethingTF{#2}{#3}\@empty} \def\IfSomethingF#1#2#3{\def\something@in{#1} \If@SomethingTF{#2}\@empty{#3}} \def\If@SomethingTF#1{ \def\something@tmp{#1} \ifx\something@tmp\something@in \expandafter\@secondofthree \else \expandafter\def\expandafter\something@tmpb\expandafter{#1} \ifx\something@tmp\something@tmpb \expandafter\expandafter\expandafter\@thirdofthree \else \expandafter\expandafter\expandafter\@firstofone \fi \fi {\expandafter\If@SomethingTF\expandafter{#1}} } \long\def\@secondofthree#1#2#3{#2} \long\def\@thirdofthree #1#2#3{#3} \def\NoValue{-NoValue-} \def\NoValueInIt{\NoValue} \def\IfNoValueTF{\IfSomethingTF\NoValue} \def\IfNoValueT {\IfSomethingT \NoValue} \def\IfNoValueF {\IfSomethingF \NoValue} \def\IfValueTF #1 #2 #3 { \IfNoValueTF {#1} {#3} {#2} } \let \IfValueT \IfNoValueF \let \IfValueF \IfNoValueT \def\BooleanFalse{TF} \def\BooleanTrue{TT} \def\IfBooleanTF #1 { \if#1 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } \def\IfBooleanT #1 #2 { \IfBooleanTF {#1} {#2} \@empty } \def\IfBooleanF #1 { \IfBooleanTF {#1} \@empty } \endinput %% %% End of file `xparse.sty'.