diff options
author | Hans Hagen <pragma@wxs.nl> | 2004-01-02 00:00:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2004-01-02 00:00:00 +0100 |
commit | 722c56251cf3c197a4a8474aa7024265ba284ec0 (patch) | |
tree | f3d28e979790959bc6f2c8ffaa6f2321fabc8bb8 /tex/context/base/xtag-ini.tex | |
parent | 70b6b86404ca9e9de782a577d1dfda3b15f0544d (diff) | |
download | context-722c56251cf3c197a4a8474aa7024265ba284ec0.tar.gz |
stable 2004.01.02
Diffstat (limited to 'tex/context/base/xtag-ini.tex')
-rw-r--r-- | tex/context/base/xtag-ini.tex | 279 |
1 files changed, 187 insertions, 92 deletions
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex index 282aea035..9ea384ad7 100644 --- a/tex/context/base/xtag-ini.tex +++ b/tex/context/base/xtag-ini.tex @@ -155,23 +155,45 @@ \unprotect -\def\@@XML {XML:} -\def\@@XMLentity {\@@XML ent} % &crap; -\def\@@XMLelement {\@@XML ele} % <this> </this> <that/> -\def\@@XMLvariable {\@@XML var} % key="val" -\def\@@XMLvalue {\@@XML val} % key="val" -\def\@@XMLpars {\@@XML par} % -\def\@@XMLdata {\@@XML dat} % mem buffer -\def\@@XMLcode {\@@XML cod} % named mem buffers -\def\@@XMLinstruction {\@@XML ins} % <? -\def\@@XMLmap {\@@XML map} % mapping on context attr -\def\@@XMLlist {\@@XML lst} % -\def\@@XMLnamespace {\@@XML nam} % namespace:element -\def\@@XMLurlspace {\@@XML url} % -\def\@@XMLescape {\@@XML esc} % <! -\def\@@XMLdepth {\@@XML dep} % used to track nesting -\def\@@XMLdopth {\@@XML dop} % used to track nesting -\def\@@XMLsave {\@@XML sav} % namespace for saved elements +\def \@@XML {XML:} +\edef\@@XMLentity {\@@XML ent} % &crap; +\edef\@@XMLelement {\@@XML ele} % <this> </this> <that/> +\edef\@@XMLvariable {\@@XML var} % key="val" +\edef\@@XMLvalue {\@@XML val} % key="val" +\edef\@@XMLpars {\@@XML par} % +\edef\@@XMLdata {\@@XML dat} % mem buffer +\edef\@@XMLcode {\@@XML cod} % named mem buffers +\edef\@@XMLinstruction {\@@XML ins} % <? +\edef\@@XMLmap {\@@XML map} % mapping on context attr +\edef\@@XMLlist {\@@XML lst} % +\edef\@@XMLnamespace {\@@XML nam} % namespace:element +\edef\@@XMLurlspace {\@@XML url} % +\edef\@@XMLescape {\@@XML esc} % <! +\edef\@@XMLdepth {\@@XML dep} % used to track nesting +\edef\@@XMLdopth {\@@XML dop} % used to track nesting +\edef\@@XMLsave {\@@XML sav} % namespace for saved elements + +\iffalse % slightly faster + +\edef\@@XML {*} +\edef\@@XMLentity {\@@XML a} % &crap; +\edef\@@XMLelement {\@@XML b} % <this> </this> <that/> +\edef\@@XMLvariable {\@@XML c} % key="val" +\edef\@@XMLvalue {\@@XML d} % key="val" +\edef\@@XMLpars {\@@XML e} % +\edef\@@XMLdata {\@@XML f} % mem buffer +\edef\@@XMLcode {\@@XML g} % named mem buffers +\edef\@@XMLinstruction {\@@XML h} % <? +\edef\@@XMLmap {\@@XML i} % mapping on context attr +\edef\@@XMLlist {\@@XML j} % +\edef\@@XMLnamespace {\@@XML k} % namespace:element +\edef\@@XMLurlspace {\@@XML l} % +\edef\@@XMLescape {\@@XML m} % <! +\edef\@@XMLdepth {\@@XML n} % used to track nesting +\edef\@@XMLdopth {\@@XML o} % used to track nesting +\edef\@@XMLsave {\@@XML p} % namespace for saved elements + +\fi \newtoks\XMLtoks \newtoks\XMLresetlist @@ -1243,7 +1265,7 @@ % \@EA\def\csname\@@XMLvariable:\@@XMLclass:\@@XMLspac:\@@XMLname\endcsname{#1}% % \fi} -\def\dosetXMLattributeC% +\def\dosetXMLattributeC {\@EA\def\csname\@@XMLvariable:\@@XMLclass\ifx\@@XMLspac \originalXMLnamespace\else:\@@XMLspac\fi:\@@XMLname\endcsname} @@ -1360,21 +1382,25 @@ \def\dodoparseXMLargumentsD#1"{\dosetXMLargument{#1}} \def\dodoparseXMLargumentsS#1'{\dosetXMLargument{#1}} -\def\dosetXMLargument#1% - {\ifXMLnamespace - \ifx\@@XMLspac\@@XMLns - \checkXMLnamespaceattr{#1}% xmlns:\@@XMLname="#1" - \else - \dosetXMLattribute{#1}% some:\@@XMLname="#1" - \fi - \XMLnamespacefalse - \else\ifx\@@XMLname\@@XMLns - \checkXMLnamespaceattr{#1}% xmlns="#1" - \else - \dodosetXMLargument{#1}% - \fi\fi - \let\dodoparseXMLarguments\doparseXMLarguments - \dodoparseXMLarguments} +% the readable version +% +% \def\dosetXMLargument#1% +% {\ifXMLnamespace +% \ifx\@@XMLspac\@@XMLns +% \checkXMLnamespaceattr{#1}% xmlns:\@@XMLname="#1" +% \else +% \dosetXMLattribute{#1}% some:\@@XMLname="#1" +% \fi +% \XMLnamespacefalse +% \else\ifx\@@XMLname\@@XMLns +% \checkXMLnamespaceattr{#1}% xmlns="#1" +% \else +% \dodosetXMLargument{#1}% +% \fi\fi +% \let\dodoparseXMLarguments\doparseXMLarguments +% \dodoparseXMLarguments} +% +% the ugly alternative \def\dosetXMLargument#1% ugly alternative {\ifXMLnamespace @@ -1491,112 +1517,171 @@ \bgroup \catcode`<=\@@active +% \long\gdef\dododefineXMLsingular#1#2% +% {\long\setvalue{\@@XMLelement:#1/}{#2}} + \long\gdef\dododefineXMLsingular#1#2% - {\long\setvalue{\@@XMLelement:#1/}{#2}} + {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2}} + +% \long\gdef\dododefineXMLcommand#1#2% +% {\long\setvalue{\@@XMLelement:#1/}{#2}% +% \long\setvalue{\@@XMLelement:#1}{#2}} \long\gdef\dododefineXMLcommand#1#2% - {\long\setvalue{\@@XMLelement:#1/}{#2}% - \long\setvalue{\@@XMLelement:#1}{#2}} + {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{#2}} + +% \long\gdef\dododefineXMLgrouped#1#2% +% {\long\setvalue{\@@XMLelement:#1}{\groupedcommand{#2}{}\bgroup}% +% \long\setvalue{\@@XMLelement:/#1}{\egroup}} \long\gdef\dododefineXMLgrouped#1#2% - {\long\setvalue{\@@XMLelement:#1}{\groupedcommand{#2}{}\bgroup}% - \long\setvalue{\@@XMLelement:/#1}{\egroup}} + {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\groupedcommand{#2}\donothing\bgroup}% + \@EA\let\csname\@@XMLelement:/#1\endcsname\egroup} + +% \long\gdef\dododefineXMLargument#1#2% watch the {} around ##1 +% {\long\setvalue{\@@XMLelement:#1/}{#2{}}% +% \long\setvalue{\@@XMLelement:#1}##1</#1>{#2{##1}}} -%\long\gdef\dododefineXMLargument#1#2% watch the {} around ##1 -% {\long\setvalue{\@@XMLelement:#1/}{#2{}}% -% \long\setvalue{\@@XMLelement:#1}##1</#1>{#2{##1}}} +% \long\gdef\dododefineXMLargument#1#2% watch the {} around ##1 +% {\long\setvalue{\@@XMLelement:#1/}{#2{}}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLargument{#1}{#2}}} \long\gdef\dododefineXMLargument#1#2% watch the {} around ##1 - {\long\setvalue{\@@XMLelement:#1/}{#2{}}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLargument{#1}{#2}}} + {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2{}}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLargument{#1}{#2}}} -\long\gdef\redoXMLargument#1#2% - {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2{##1}}% +\long\gdef\redoXMLargument#1#2% potential optimization: globalnext + {\long\@EA\gdef\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2{##1}}% \next} %\long\gdef\dododefineXMLignore#1% % {\long\setvalue{\@@XMLelement:#1/}{}% % \long\setvalue{\@@XMLelement:#1}##1</#1>{}} +% \long\gdef\dododefineXMLignore#1% +% {\long\setvalue{\@@XMLelement:#1/}{}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLignore{#1}}} + \long\gdef\dododefineXMLignore#1% - {\long\setvalue{\@@XMLelement:#1/}{}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLignore{#1}}} + {\@EA\let\csname\@@XMLelement:#1/\endcsname\donothing + \@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLignore{#1}}} \long\gdef\redoXMLignore#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{}% \next} -%\long\gdef\dododefineXMLpickup#1#2#3% -% {\long\setvalue{\@@XMLelement:#1/}{#2#3}% -% \long\setvalue{\@@XMLelement:#1}##1</#1>{#2##1#3}} +% \long\gdef\dododefineXMLpickup#1#2#3% +% {\long\setvalue{\@@XMLelement:#1/}{#2#3}% +% \long\setvalue{\@@XMLelement:#1}##1</#1>{#2##1#3}} + +% \long\gdef\dododefineXMLpickup#1#2#3% +% {\long\setvalue{\@@XMLelement:#1/}{#2#3}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLpickup{#1}{#2}{#3}}} \long\gdef\dododefineXMLpickup#1#2#3% - {\long\setvalue{\@@XMLelement:#1/}{#2#3}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLpickup{#1}{#2}{#3}}} + {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLpickup{#1}{#2}{#3}}} \long\gdef\redoXMLpickup#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2##1#3}% \next} +% \long\gdef\dododefineXMLenvironment#1#2#3% +% {\long\setvalue{\@@XMLelement:#1/}{#2#3}% +% \long\setvalue{\@@XMLelement:#1}{#2}% +% \long\setvalue{\@@XMLelement:/#1}{#3}} + \long\gdef\dododefineXMLenvironment#1#2#3% - {\long\setvalue{\@@XMLelement:#1/}{#2#3}% - \long\setvalue{\@@XMLelement:#1}{#2}% - \long\setvalue{\@@XMLelement:/#1}{#3}} + {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{#2}% + \long\@EA\def\csname\@@XMLelement:/#1\endcsname{#3}} -%\long\gdef\dododefineXMLsave#1% -% {\letvalue{\@@XMLdata:#1}\longempty -% \long\setvalue{\@@XMLelement:#1/}{\long\setvalue{\@@XMLdata:#1}{}}% -% \long\setvalue{\@@XMLelement:#1}##1</#1>{\long\setvalue{\@@XMLdata:#1}{##1}}} +% \long\gdef\dododefineXMLsave#1% +% {\letvalue{\@@XMLdata:#1}\longempty +% \long\setvalue{\@@XMLelement:#1/}{\long\setvalue{\@@XMLdata:#1}{}}% +% \long\setvalue{\@@XMLelement:#1}##1</#1>{\long\setvalue{\@@XMLdata:#1}{##1}}} + +% \long\gdef\dododefineXMLsave#1% +% {\letvalue{\@@XMLdata:#1}\longempty +% \long\setvalue{\@@XMLelement:#1/}{\long\setvalue{\@@XMLdata:#1}{}}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLsave{#1}}} \long\gdef\dododefineXMLsave#1% - {\letvalue{\@@XMLdata:#1}\longempty - \long\setvalue{\@@XMLelement:#1/}{\long\setvalue{\@@XMLdata:#1}{}}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLsave{#1}}} + {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty + \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname {\redoXMLsave{#1}}} + +% \long\gdef\dododefineXMLsavecontent#1#2% +% {\long\setvalue{\@@XMLdata:#1}{#2}% +% \long\setvalue{\@@XMLelement:#1/}{}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLsave{#1}}} \long\gdef\dododefineXMLsavecontent#1#2% - {\long\setvalue{\@@XMLdata:#1}{#2}% - \long\setvalue{\@@XMLelement:#1/}{}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLsave{#1}}} + {\long\@EA\def\csname\@@XMLdata:#1\endcsname{#2}% + \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLsave{#1}}} \gdef\redoXMLsave#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}}% \next} +% \long\gdef\dododefineXMLgsave#1% +% {\letgvalue{\@@XMLdata:#1}\longempty +% \long\setvalue{\@@XMLelement:#1/}{\long\setgvalue{\@@XMLdata:#1}{}}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLgsave{#1}}} + \long\gdef\dododefineXMLgsave#1% - {\letgvalue{\@@XMLdata:#1}\longempty - \long\setvalue{\@@XMLelement:#1/}{\long\setgvalue{\@@XMLdata:#1}{}}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLgsave{#1}}} + {\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty + \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLgsave{#1}}} + +% \long\gdef\dododefineXMLgsavecontent#1#2% +% {\long\setvalue{\@@XMLdata:#1}{#2}% +% %\long\setvalue{\@@XMLelement:#1/}{}% +% \long\setvalue{\@@XMLelement:#1/}{\long\setgvalue{\@@XMLdata:#1}{}}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLgsave{#1}}} \long\gdef\dododefineXMLgsavecontent#1#2% - {\long\setvalue{\@@XMLdata:#1}{#2}% - \long\setvalue{\@@XMLelement:#1/}{}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLgsave{#1}}} + {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{#2}% + \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLgsave{#1}}} \gdef\redoXMLgsave#1% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}}% \next} -%\long\gdef\dododefineXMLenvironmentsave#1#2#3% -% {\letvalue{\@@XMLdata:#1}\longempty -% \long\setvalue{\@@XMLelement:#1/}{#2\long\setvalue{\@@XMLdata:#1}{}#3}% -% \long\setvalue{\@@XMLelement:#1}##1</#1>{#2\long\setvalue{\@@XMLdata:#1}{##1}#3}} +% \long\gdef\dododefineXMLenvironmentsave#1#2#3% +% {\letvalue{\@@XMLdata:#1}\longempty +% \long\setvalue{\@@XMLelement:#1/}{#2\long\setvalue{\@@XMLdata:#1}{}#3}% +% \long\setvalue{\@@XMLelement:#1}##1</#1>{#2\long\setvalue{\@@XMLdata:#1}{##1}#3}} + +% \long\gdef\dododefineXMLenvironmentsave#1#2#3% +% {\letvalue{\@@XMLdata:#1}\longempty +% \long\setvalue{\@@XMLelement:#1/}{#2\long\setvalue{\@@XMLdata:#1}{}#3}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLenvironmentsave{#1}{#2}{#3}}} \long\gdef\dododefineXMLenvironmentsave#1#2#3% - {\letvalue{\@@XMLdata:#1}\longempty - \long\setvalue{\@@XMLelement:#1/}{#2\long\setvalue{\@@XMLdata:#1}{}#3}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLenvironmentsave{#1}{#2}{#3}}} + {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty + \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLenvironmentsave{#1}{#2}{#3}}} \gdef\redoXMLenvironmentsave#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% {#2\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}#3}% \next} +% \long\gdef\dododefineXMLenvironmentgsave#1#2#3% +% {\letgvalue{\@@XMLdata:#1}\longempty +% \long\setvalue{\@@XMLelement:#1/}{#2\long\setgvalue{\@@XMLdata:#1}{}#3}% +% \long\setvalue{\@@XMLelement:#1}{\redoXMLenvironmentgsave{#1}{#2}{#3}}} + \long\gdef\dododefineXMLenvironmentgsave#1#2#3% - {\letgvalue{\@@XMLdata:#1}\longempty - \long\setvalue{\@@XMLelement:#1/}{#2\long\setgvalue{\@@XMLdata:#1}{}#3}% - \long\setvalue{\@@XMLelement:#1}{\redoXMLenvironmentgsave{#1}{#2}{#3}}} + {\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty + \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}% + \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLenvironmentgsave{#1}{#2}{#3}}} \gdef\redoXMLenvironmentgsave#1#2#3% {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>% @@ -1608,16 +1693,27 @@ % \long\setvalue{\@@XMLelement:#1}{}% % \long\setvalue{\@@XMLelement:/#1}{}} +% \long\gdef\dododefineXMLprocess#1% +% {\letvalue{\@@XMLelement:#1/}\donothing +% \letvalue{\@@XMLelement:#1}\donothing +% \letvalue{\@@XMLelement:/#1}\donothing} + \long\gdef\dododefineXMLprocess#1% - {\letvalue{\@@XMLelement:#1/}\donothing - \letvalue{\@@XMLelement:#1}\donothing - \letvalue{\@@XMLelement:/#1}\donothing} + {\@EA\let\csname\@@XMLelement:#1/\endcsname\donothing + \@EA\let\csname\@@XMLelement:#1\endcsname\donothing + \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing} + +% \long\gdef\dododefineXMLnestedenvironment#1#2#3% +% {\long\setvalue{\@@XMLelement:#1}{\getXMLgroupedenvironment{#1}{#2}{#3}}} \long\gdef\dododefineXMLnestedenvironment#1#2#3% - {\long\setvalue{\@@XMLelement:#1}{\getXMLgroupedenvironment{#1}{#2}{#3}}} + {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedenvironment{#1}{#2}{#3}}} + +% \long\gdef\dododefineXMLnestedargument#1#2% +% {\long\setvalue{\@@XMLelement:#1}{\getXMLgroupedargument{#1}{#2}}} \long\gdef\dododefineXMLnestedargument#1#2% - {\long\setvalue{\@@XMLelement:#1}{\getXMLgroupedargument{#1}{#2}}} + {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedargument{#1}{#2}}} \egroup @@ -1818,12 +1914,10 @@ \let\XMLpopdata\XMLflushdata \def\XMLappend#1#2% let to empty expands to nothing -) - {\long\@EA\edef\csname\@@XMLdata:#1\endcsname - {\csname\@@XMLdata:#1\endcsname#2}} + {\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\csname\@@XMLdata:#1\endcsname#2}} \def\XMLprepend#1#2% let to empty expands to nothing -) - {\long\@EA\edef\csname\@@XMLdata:#1\endcsname - {#2\csname\@@XMLdata:#1\endcsname}} + {\long\@EA\edef\csname\@@XMLdata:#1\endcsname{#2\csname\@@XMLdata:#1\endcsname}} \def\XMLerase#1% {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty} @@ -2266,7 +2360,8 @@ \def\XMLifequalelse#1#2% {\ifcsname\@@XMLvariable:#1:#2\endcsname - \@EAEAEA\doXMLifequalelse\@EA\@EA\csname\@@XMLvariable:#1:#2\endcsname + % \@EAEAEA\doXMLifequalelse\@EA\@EA\csname\@@XMLvariable:#1:#2\endcsname + \@EA\doXMLifequalelse\csname\@@XMLvariable:#1:#2\@EA\endcsname \else \@EA\secondoftwoarguments \fi} @@ -2290,4 +2385,4 @@ \def\XMLyes#1{\XMLownifequalelse{#1}{yes}{#1}{}} -\protect \endinput +\protect \endinput
\ No newline at end of file |