summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex3/xparse
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:46:26 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:46:26 +0000
commitadc8aaaf59099761577342d1050abb05625eeffc (patch)
treeed08f7c945ba15a7710696caf9fc82ed8d1f2491 /Master/texmf-dist/tex/latex3/xparse
parent2a8c0210a3491a41c4ba672c46d215048947638c (diff)
trunk/Master/texmf-dist/tex/latex3
git-svn-id: svn://tug.org/texlive/trunk@616 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex3/xparse')
-rw-r--r--Master/texmf-dist/tex/latex3/xparse/ldcsetup.sty118
-rw-r--r--Master/texmf-dist/tex/latex3/xparse/xparse.sty218
2 files changed, 336 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex3/xparse/ldcsetup.sty b/Master/texmf-dist/tex/latex3/xparse/ldcsetup.sty
new file mode 100644
index 00000000000..efe853a822c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex3/xparse/ldcsetup.sty
@@ -0,0 +1,118 @@
+%%
+%% This is file `ldcsetup.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ldcsetup.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{ldcsetup}
+ [1999/09/10 v0.04 coding conventions and stuff]
+\RequirePackage{keyval,calc}
+%% Puts an ignored space at the end of the line, so `|\ |' does the right
+\def\IgnoreWhiteSpace{%
+ \edef\@tempa{%
+ \catcode`\noexpand\~=\the\catcode`\~\relax
+ \catcode`\noexpand\ =\the\catcode`\ \relax
+ \catcode`\noexpand\^^I=\the\catcode`\^^I\relax
+ \catcode`\noexpand\@=\the\catcode`\@\relax
+ \endlinechar=\the\endlinechar\relax
+ }%
+ \ifx\@currname\@empty
+ \expandafter\AtBeginDocument\expandafter{\@tempa}%
+ \else
+ \expandafter\AtEndOfPackage\expandafter{\@tempa}%
+ \fi
+ \catcode`\~=10\relax
+ \catcode`\ =9\relax
+ \catcode`\^^I=9\relax
+ \makeatletter
+ \endlinechar=` %
+}
+\IgnoreWhiteSpace
+\def\define@key#1#2{%
+ \@ifnextchar[
+ {\KV@def{#1}{\string#2}}
+ {\@namedef{KV@#1@\string#2}####1}}
+\def\setkeys#1#2{%
+ \def\KV@prefix{KV@#1@\expandafter\string}%
+ \KV@do#2,\relax,}
+\newtoks\KV@toks
+\def\KV@@sp@c#1\@nil#2\relax#3{\KV@toks{#1}\edef#3{\the\KV@toks}}
+\def\KV@equal{=}
+\def\KV@split#1=#2=#3\relax{%
+ \KV@@sp@def\@tempa{#1}%
+ \def\@tempd{#3}%
+ \ifx\@tempa\@empty\else
+ \expandafter\let\expandafter\@tempc
+ \csname\KV@prefix\@tempa\endcsname
+ \ifx\@tempc\relax
+ \KV@error{\@tempa\space \expandafter\@gobbletwo\string\@undefined}\@eha
+ \else
+ \ifx\@tempd\@empty
+ \KV@default
+ \else
+ \KV@@sp@def\@tempb{#2}%
+ \ifx\@tempd\KV@equal
+ \expandafter\@tempc\expandafter{\@tempb}\relax
+ \else
+ \KV@error{Extra~=~ sign~ after~ `#1'}\KV@erry
+ \fi
+ \fi
+ \fi
+ \fi}
+\def\KV@erry{\expandafter\KV@errx\meaning\@tempd\relax ignored\MessageBreak
+ missing~comma~in~`\expandafter\strip@prefix\meaning\@tempb'~?}
+\def\KV@errx#1>#2==\relax{%
+ `#2' }
+\def\KV@default{%
+ \expandafter\let\expandafter\@tempb
+ \csname\KV@prefix\@tempa @default\endcsname
+ \ifx\@tempb\relax
+ \KV@error{No value specified for \@tempa}\@eha
+ \else
+ \@tempb\relax
+ \fi}
+\def\KV@error#1#2{\PackageError{keyval}{#1}{#2}}
+\def\KV@parse#1{
+ \begingroup
+\def\KV@@sp@c##1\@nil##2\relax##3{\addto@hook##3{{##1}}}
+\def\KV@split##1=##2=##3\relax{%
+ \def\@tempd{##3}%
+ \expandafter\ifx\expandafter=\@firstofone##1=\else
+ \ifx\@tempd\@empty
+ \addto@hook\KV@toks\KV@default@elt
+ \KV@@sp@def\KV@toks{##1}%
+ \else
+ \ifx\@tempd\KV@equal
+ \addto@hook\KV@toks\KV@elt
+ \KV@@sp@def\KV@toks{##1}%
+ \KV@@sp@def\KV@toks{##2}%
+ \else
+ \KV@err{Extra `=' after `##1'}\@ehd
+ \fi
+ \fi
+ \fi}
+ \KV@toks{}
+ \KV@do#1,\relax,
+ \expandafter
+ \endgroup
+ \the\KV@toks}
+\let\SetInternalCounter\calc@assign@count
+\def\UndeclareRobustCommand#1{%
+ \global\let#1\undefined
+ \global\expandafter
+ \let\csname\expandafter\@gobble\string#1~\endcsname\undefined
+}
+\endinput
+%%
+%% End of file `ldcsetup.sty'.
diff --git a/Master/texmf-dist/tex/latex3/xparse/xparse.sty b/Master/texmf-dist/tex/latex3/xparse/xparse.sty
new file mode 100644
index 00000000000..2ab688ae6ec
--- /dev/null
+++ b/Master/texmf-dist/tex/latex3/xparse/xparse.sty
@@ -0,0 +1,218 @@
+%%
+%% 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'.