\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) [1994/12/01]% LaTeX date must December 1994 or later \ProvidesClass{texHash}[2006/10/06] %% Hash TeX macros \def\DLRTUMP#1@{} \def\hashLRTCrack '#1'=>"#2",#3@{\expandafter\gdef\csname \XSH#1\endcsname{#2}% \def\yLRTy{#3}% \ifx\yLRTy\empty \let\next=\DLRTUMP\else% \let\next=\hashLRTCrack\fi% \expandafter\next\yLRTy @} %: \xxsh \def\xxsh#1#2@{\gdef\XSH{#2}} %: \optionalDefaults \newcommand{\optionalDefaults}[1][]{\def\xLRTx{#1}\ifx\xLRTx\empty\else \expandafter\gdef\csname \XSH PerlHash\endcsname{#1@}\edef\YSH{\XSH}% \expandafter\resetNameSpace{\YSH}\fi} % %: \newhashcommand \newcommand{\newhashcommand}[3][HASH]{% \def\xLRTx{#1}\def\XLRTX{HASH}% \ifx\xLRTx\XLRTX\xdef\xsh{\string#2@}\expandafter\xxsh\xsh\else\xdef\XSH{#1}\fi% \expandafter\gdef\csname \XSH code\endcsname{#3}% \newcommand{#2}[1]{% \def\xLRTx{#1}\def\XLRTX{HASH}% \ifx\xLRTx\XLRTX\xdef\xsh{\string#2@}\expandafter\xxsh\xsh\else\xdef\XSH{#1}\fi% \def\yLRTy{##1}% \ifx\yLRTy\empty\else\expandafter\hashLRTCrack\yLRTy @\fi#3}\optionalDefaults} %: \renewhashcommand \newcommand{\renewhashcommand}[3][HASH]{% \def\xLRTx{#1}\def\XLRTX{HASH}% \ifx\xLRTx\XLRTX\xdef\xsh{\string#2@}\expandafter\xxsh\xsh\else\xdef\XSH{#1}\fi% \expandafter\gdef\csname \XSH code\endcsname{#3}% \renewcommand{#2}[1]{% \def\xLRTx{#1}\def\XLRTX{HASH}% \ifx\xLRTx\XLRTX\xdef\xsh{\string#2@}\expandafter\xxsh\xsh\else\xdef\XSH{#1}\fi% \def\yLRTy{##1}% \ifx\yLRTy\empty\else\expandafter\hashLRTCrack\yLRTy@\fi#3}\optionalDefaults} %: \defaultNameSpace \def\defaultNameSpace#1#2{\expandafter\gdef\csname #1PerlHash\endcsname{#2@}% \expandafter\resetNameSpace{#1}} \def\HashLRTCrack#1{\expandafter\hashLRTCrack#1} %: \resetNameSpace \def\resetNameSpace#1{\gdef\XSH{#1}% \expandafter\HashLRTCrack\csname #1PerlHash\endcsname% } %: \fieldValue \newcommand{\fieldValue}[2]{\csname #1#2\endcsname}