diff options
author | Karl Berry <karl@freefriends.org> | 2009-09-06 23:20:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-09-06 23:20:13 +0000 |
commit | 2b8eb47b09b2d853b8243d0fb61b408edb3d04a7 (patch) | |
tree | d581f2afc11c2d53246c31da8a8a7de24c855b0c /Master/texmf-dist/source/latex/expl3/l3basics.dtx | |
parent | d9919f44994077f178b0ebda415a1638f8acc0ec (diff) |
expl3 1509 (5sep09)
git-svn-id: svn://tug.org/texlive/trunk@15163 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3basics.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3basics.dtx | 106 |
1 files changed, 56 insertions, 50 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3basics.dtx b/Master/texmf-dist/source/latex/expl3/l3basics.dtx index 3604d0f2244..56132002658 100644 --- a/Master/texmf-dist/source/latex/expl3/l3basics.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3basics.dtx @@ -35,7 +35,7 @@ \RequirePackage{l3names} %</driver|package> %\fi -\GetIdInfo$Id: l3basics.dtx 1414 2009-06-16 07:34:57Z joseph $ +\GetIdInfo$Id: l3basics.dtx 1453 2009-08-08 14:38:49Z joseph $ {L3 Experimental basic definitions} %\iffalse %<*driver> @@ -1750,12 +1750,18 @@ % % \subsection{Expansion control from l3expan} % +%\ExplSyntaxOn +% \cs_set_eq:NN \g_saved_doc_macros_seq \g_doc_macros_seq +%\ExplSyntaxOff % \begin{macro}{\exp_args:Nc} % Moved here for now as it is going to be used right away. % \begin{macrocode} \cs_set:Npn \exp_args:Nc #1#2{\exp_after:wN#1\cs:w#2\cs_end:} % \end{macrocode} % \end{macro} +%\ExplSyntaxOn +% \cs_set_eq:NN \g_doc_macros_seq \g_saved_doc_macros_seq +%\ExplSyntaxOff % % \subsection{Conditional processing and definitions} % @@ -1775,6 +1781,10 @@ % obscures the code and forces the \TeX\ programmer to prove that % he/she knows the $2^{n}-1$ table. We therefore provide the simpler % interface. +% +%\ExplSyntaxOn +% \cs_set_eq:NN \g_saved_doc_macros_seq \g_doc_macros_seq +%\ExplSyntaxOff % % \begin{macro}{\prg_return_true:} % \begin{macro}{\prg_return_false:} @@ -1875,6 +1885,22 @@ } % \end{macrocode} % \end{macro} +% +% \begin{macro}{\prg_set_eq_conditional:NNn,\prg_new_eq_conditional:NNn} +% The obvious setting-equal functions. +% \begin{macrocode} +\cs_set:Npn \prg_set_eq_conditional:NNn #1#2#3 { + \prg_set_eq_conditional_aux:NNNn \cs_set_eq:cc #1#2 {#3} +} +\cs_set:Npn \prg_new_eq_conditional:NNn #1#2#3 { + \prg_set_eq_conditional_aux:NNNn \cs_new_eq:cc #1#2 {#3} +} +% \end{macrocode} +% \end{macro} +% +%\ExplSyntaxOn +% \cs_set_eq:NN \g_doc_macros_seq \g_saved_doc_macros_seq +%\ExplSyntaxOff % % \begin{macro}[aux]{\prg_get_parm_aux:nw,\prg_get_count_aux:nn} % For the "Npnn" type we must grab the parameter text before @@ -1984,6 +2010,35 @@ } % \end{macrocode} % \end{macro} +% +% \begin{macro}[aux]{\prg_set_eq_conditional_aux:NNNn, +% \prg_set_eq_conditional_aux:NNNw} +% \begin{macrocode} +\cs_set:Npn \prg_set_eq_conditional_aux:NNNn #1#2#3#4 { + \prg_set_eq_conditional_aux:NNNw #1#2#3#4,?,\q_recursion_stop +} +% \end{macrocode} +% Manual clist loop over argument "#4". +% \begin{macrocode} +\cs_set:Npn \prg_set_eq_conditional_aux:NNNw #1#2#3#4, { + \if:w ? #4 \scan_stop: + \exp_after:wN \use_none_delimit_by_q_recursion_stop:w + \fi: + #1 { + \exp_args:NNc \cs_split_function:NN #2 {prg_conditional_form_#4:nnn} + }{ + \exp_args:NNc \cs_split_function:NN #3 {prg_conditional_form_#4:nnn} + } + \prg_set_eq_conditional_aux:NNNw #1{#2}{#3} +} +% \end{macrocode} +% \begin{macrocode} +\cs_set:Npn \prg_conditional_form_p:nnn #1#2#3 {#1_p:#2} +\cs_set:Npn \prg_conditional_form_TF:nnn #1#2#3 {#1:#2TF} +\cs_set:Npn \prg_conditional_form_T:nnn #1#2#3 {#1:#2T} +\cs_set:Npn \prg_conditional_form_F:nnn #1#2#3 {#1:#2F} +% \end{macrocode} +% \end{macro} % % All that is left is to define the canonical boolean true and false. % I think Michael originated the idea of expandable boolean tests. At @@ -3226,55 +3281,6 @@ % \end{macro} % \end{macro} % -% Finally some code that is needed as we do not distribute the file -% module at the moment (so we simply define the needed function via an -% existing \LaTeX{} command) and some other stuff which was set up -% elsewhere, in undistributed modules. -% \begin{macrocode} -\cs_new_nopar:Npn\file_not_found:nTF #1#2#3{\IfFileExists{#1}{#3}{#2}} -% \end{macrocode} -% -% -% -% \begin{macro}{\prg_set_eq_conditional:NNn,\prg_new_eq_conditional:NNn} -% \begin{macrocode} -\cs_set:Npn \prg_set_eq_conditional:NNn #1#2#3 { - \prg_set_eq_conditional_aux:NNNn \cs_set_eq:cc #1#2 {#3} -} -\cs_set:Npn \prg_new_eq_conditional:NNn #1#2#3 { - \prg_set_eq_conditional_aux:NNNn \cs_new_eq:cc #1#2 {#3} -} -% \end{macrocode} -% \begin{macro}[aux]{\prg_set_eq_conditional_aux:NNNn, -% \prg_set_eq_conditional_aux:NNNw} -% \begin{macrocode} -\cs_set:Npn \prg_set_eq_conditional_aux:NNNn #1#2#3#4 { - \prg_set_eq_conditional_aux:NNNw #1#2#3#4,?,\q_recursion_stop -} -% \end{macrocode} -% Manual clist loop over argument "#4". -% \begin{macrocode} -\cs_set:Npn \prg_set_eq_conditional_aux:NNNw #1#2#3#4, { - \if:w ? #4 \scan_stop: - \exp_after:wN \use_none_delimit_by_q_recursion_stop:w - \fi: - #1 { - \exp_args:NNc \cs_split_function:NN #2 {prg_conditional_form_#4:nnn} - }{ - \exp_args:NNc \cs_split_function:NN #3 {prg_conditional_form_#4:nnn} - } - \prg_set_eq_conditional_aux:NNNw #1{#2}{#3} -} -% \end{macrocode} -% \begin{macrocode} -\cs_set:Npn \prg_conditional_form_p:nnn #1#2#3 {#1_p:#2} -\cs_set:Npn \prg_conditional_form_TF:nnn #1#2#3 {#1:#2TF} -\cs_set:Npn \prg_conditional_form_T:nnn #1#2#3 {#1:#2T} -\cs_set:Npn \prg_conditional_form_F:nnn #1#2#3 {#1:#2F} -% \end{macrocode} -% \end{macro} -% \end{macro} -% % \begin{macrocode} %</initex|package> % \end{macrocode} |