%% %% This is file `stack.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% stack.dtx (with options: `package') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from stack.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file stack.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesPackage{stack}[2002/01/20 v1.0 Multi-stack system] \newcount\tmp@stack \newcommand\NewStack[2]{% \expandafter\gdef\csname #1@count\endcsname{0}% \expandafter\do@stack@macro\csname #1@count\endcsname{#1}{#2}% } \newcommand\do@stack@macro[3]{% \expandafter\newcommand\expandafter*% \csname stack@#2\endcsname{% \expandafter\ifx\csname #2@\romannumeral#1\endcsname\relax #3% \else \csname #2@\romannumeral#1\endcsname \fi }% } \newcommand\Stack[1]{% \ifx\csname #1@count\endcsname\relax \PackageError{stack}{Undefined stack #1}{You should first create the stack with \NewStack}% \else \csname stack@#1\endcsname \fi } \newcommand\Push[2]{% \ifx\csname #1@count\endcsname\relax \PackageError{stack}{Undefined stack #1}{You should first create the stack with \NewStack}% \else \edef\stack@newtop{#2}% \tmp@stack\csname #1@count\endcsname\relax \global\advance\tmp@stack by 1\relax \expandafter\xdef\csname #1@count\endcsname{\the\tmp@stack}% \expandafter\xdef\csname #1@\romannumeral\tmp@stack\endcsname {\stack@newtop}% \fi } \newcommand\Pop[1]{% \ifx\csname #1@count\endcsname\relax \PackageError{stack}{Undefined stack #1}{You should first create the stack with \NewStack}% \else \tmp@stack\csname #1@count\endcsname\relax \ifnum\tmp@stack>0\relax \advance\tmp@stack by -1\relax \expandafter\xdef\csname #1@count\endcsname{\the\tmp@stack}% \fi \fi } \newcommand\ShowTop[1]{% {\edef\top{\Stack{#1}}% \typeout{The top of #1: \top}}} \endinput %% %% End of file `stack.sty'.