summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3/l3toks.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3/l3toks.sty')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3toks.sty220
1 files changed, 105 insertions, 115 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
index ea18f851ee0..79de834fd71 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3toks.dtx Copyright (C) 1990-2006 LaTeX3 project
+%% File: l3toks.dtx Copyright (C) 1990-2009 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -33,7 +33,7 @@
%%
%% The development version of the bundle can be found at
%%
-%% http://www.latex-project.org/cgi-bin/cvsweb.cgi/
+%% http://www.latex-project.org/svnroot/experimental/trunk/
%%
%% for those people who are interested.
%%
@@ -48,128 +48,118 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3toks.dtx 728 2008-01-01 16:11:58Z morten $
+\GetIdInfo$Id: l3toks.dtx 1362 2009-05-28 20:19:21Z joseph $
{L3 Experimental Token Registers}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
-\RequirePackage{l3expan}\par
-\let:NN \toks_new:N \newtoks % nick from LaTeX for the moment
-\def_new:Npn \toks_new:c {\exp_args:Nc\toks_new:N}
-\def_new:Npn \toks_clear:N #1{#1\c_empty_toks
-}
-\def_new:Npn \toks_gclear:N {
- \pref_global:D
- \toks_clear:N}
-\let_new:NN \toks_use:N \the_internal:D
-\def_new:Npn \toks_use:c {\exp_args:Nc\toks_use:N}
-\def_new:Npn \toks_use_clear:N#1{
- \exp_after:NN
- \toks_clear:N
- \exp_after:NN
- #1
- \toks_use:N#1}
-\def_new:Npn \toks_use_gclear:N{
- \pref_global:D
- \toks_use_clear:N}
-\def_new:Npn \toks_put_left:Nn #1{
- \exp_after:NN\toks_put_left_aux:w\exp_after:NN\q_mark
- \toks_use:N #1\q_stop #1}
-\def_new:Npn \toks_put_left:No {\exp_args:NNo \toks_put_left:Nn}
-\def_new:Npn \toks_gput_left:Nn {
- \pref_global:D
- \toks_put_left:Nn}
-\def_new:Npn \toks_gput_left:Nx {\exp_args:NNx \toks_gput_left:Nn}
-\def_long_new:Npn \toks_put_left_aux:w #1\q_stop #2#3{
- #2\exp_after:NN{\use_arg_i:nn{#3}#1}
-}
-\def_long_new:Npn \toks_put_right:Nn #1#2{#1\exp_after:NN{\toks_use:N #1#2}
-}
-\def_new:Npn \toks_gput_right:Nn {
- \pref_global:D
- \toks_put_right:Nn}
-\def_long_new:Npn\toks_put_right:No#1#2{#1\exp_after:NN\exp_after:NN
-\exp_after:NN{\exp_after:NN\toks_use:N\exp_after:NN #1#2}}
-\def_long_new:Npn\toks_put_right:Nd#1#2{
- \exp_after:NN\toks_put_right:No\exp_after:NN#1\exp_after:NN{#2}}
-\def_long_new:Npn \toks_put_right:Nf #1#2{
- #1\exp_after:NN\exp_after:NN\exp_after:NN{
- \exp_after:NN\toks_use:N\exp_after:NN #1\int_to_roman:w -`0#2}}
-\def_new:Npn \toks_put_right:Nx {\exp_args:NNx \toks_put_right:Nn }
-\def_new:Npn \toks_gput_right:No {\exp_args:NNo\toks_gput_right:Nn}
-\def_new:Npn \toks_gput_right:Nx {\exp_args:NNx\toks_gput_right:Nn}
- \let_new:NN \toks_set:Nn\use_noop:
- \def_long_new:Npn \toks_set:No#1#2{#1\exp_after:NN{#2}}
- \def_long_new:Npn \toks_set:Nd#1#2{
- #1\exp_after:NN\exp_after:NN\exp_after:NN{#2}}
-\def_new:Npn \toks_set:Nx {\exp_args:NNx \toks_set:Nn}
-\def_long_new:Npn\toks_set:Nf #1#2{
- #1\exp_after:NN{\int_to_roman:w -`0#2}}
-\def_new:Npn \toks_set:cf {\exp_args:Nc\toks_set:Nf}
-\def_new:Npn \toks_set:cn {\exp_args:Nc\toks_set:Nn}
-\def_new:Npn \toks_set:co {\exp_args:Nc\toks_set:No}
-\def_new:Npn \toks_set:cx {\exp_args:Nc\toks_set:Nx}
- \let_new:NN \toks_gset:Nn\pref_global:D
-\def_new:Npn \toks_gset:No {\exp_args:NNo \toks_gset:Nn}
-\def_new:Npn \toks_gset:Nx {\exp_args:NNx \toks_gset:Nn}
-\def_new:Npn \toks_gset:cn {\exp_args:Nc \toks_gset:Nn}
-\def_new:Npn \toks_gset:co {\exp_args:Nc \toks_gset:No}
-\def_new:Npn \toks_gset:cx {\exp_args:Nc \toks_gset:Nx}
- \let_new:NN \toks_set_eq:NN \use_noop:
- \let_new:NN \toks_gset_eq:NN \pref_global:D
-\def_new:Npn \toks_set_eq:Nc {\exp_args:NNc\toks_set_eq:NN}
-\def_new:Npn \toks_set_eq:cN {\exp_args:Nc\toks_set_eq:NN}
-\def_new:Npn \toks_set_eq:cc {\exp_args:Ncc\toks_set_eq:NN}
-\def_new:Npn \toks_gset_eq:Nc {\exp_args:NNc\toks_gset_eq:NN}
-\def_new:Npn \toks_gset_eq:cN {\exp_args:Nc\toks_gset_eq:NN}
-\def_new:Npn \toks_gset_eq:cc {\exp_args:Ncc\toks_gset_eq:NN}
-\def_new:Npn\toks_if_empty_p:N#1{
- \if:w \tlist_if_empty_p:o{\toks_use:N #1}
- \c_true
- \else:
- \c_false
- \fi:
-}
-\def_test_function_new:npn{toks_if_empty:N}#1{\if:w \toks_if_empty_p:N #1}
-\def_new:Npn\toks_if_empty:cTF{\exp_args:Nc\toks_if_empty:NTF}
-\def_new:Npn\toks_if_empty:cT{\exp_args:Nc\toks_if_empty:NT}
-\def_new:Npn\toks_if_empty:cF{\exp_args:Nc\toks_if_empty:NF}
-\def_new:NNn \toks_if_eq:NNTF 2 {
- \tlist_if_eq:xxTF{\toks_use:N #1}{\toks_use:N #2}
-}
-\def_new:NNn \toks_if_eq:NNT 2 {
- \tlist_if_eq:xxT{\toks_use:N #1}{\toks_use:N #2}
-}
-\def_new:NNn \toks_if_eq:NNF 2 {
- \tlist_if_eq:xxF{\toks_use:N #1}{\toks_use:N #2}
-}
-\def_new:Npn \toks_if_eq:NcTF {\exp_args:NNc \toks_if_eq:NNTF}
-\def_new:Npn \toks_if_eq:NcT {\exp_args:NNc \toks_if_eq:NNT}
-\def_new:Npn \toks_if_eq:NcF {\exp_args:NNc \toks_if_eq:NNF}
-\def_new:Npn \toks_if_eq:cNTF {\exp_args:Nc \toks_if_eq:NNTF}
-\def_new:Npn \toks_if_eq:cNT {\exp_args:Nc \toks_if_eq:NNT}
-\def_new:Npn \toks_if_eq:cNF {\exp_args:Nc \toks_if_eq:NNF}
-\def_new:Npn \toks_if_eq:ccTF {\exp_args:Ncc \toks_if_eq:NNTF}
-\def_new:Npn \toks_if_eq:ccT {\exp_args:Ncc \toks_if_eq:NNT}
-\def_new:Npn \toks_if_eq:ccF {\exp_args:Ncc \toks_if_eq:NNF}
-\def_new:NNn \toks_if_eq_p:NN 2 {
- \tlist_if_eq_p:xx {\toks_use:N #1} {\toks_use:N #2}
-}
-\def_new:Npn \toks_if_eq_p:cN {\exp_args:Nc \toks_if_eq_p:NN}
-\def_new:Npn \toks_if_eq_p:Nc {\exp_args:NNc \toks_if_eq_p:NN}
-\def_new:Npn \toks_if_eq_p:cc {\exp_args:Ncc \toks_if_eq_p:NN}
-\tex_toksdef:D \l_tmpa_toks = 255
+\package_check_loaded_expl:
+\cs_set_eq:NN \toks_new:N \newtoks % nick from LaTeX for the moment
+\cs_generate_variant:Nn \toks_new:N {c}
+\cs_new_eq:NN \toks_use:N \tex_the:D
+\cs_generate_variant:Nn \toks_use:N {c}
+\cs_new_eq:NN \toks_set:Nn \prg_do_nothing:
+\cs_new:Npn \toks_set:NV #1#2 {
+ #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:N #2 }
+}
+\cs_new:Npn \toks_set:Nv #1#2 {
+ #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:c {#2} }
+}
+\cs_new:Npn \toks_set:No #1#2 { #1 \exp_after:wN {#2} }
+\cs_new:Npn \toks_set:Nd #1#2 {
+ #1 \exp_after:wN \exp_after:wN \exp_after:wN {#2}
+}
+\cs_new:Npn \toks_set:Nf #1#2 {
+ #1 \exp_after:wN { \int_to_roman:w -`0#2 }
+}
+\cs_generate_variant:Nn \toks_set:Nn {Nx,cn,cV,cv,co,cx,cd,cf}
+\cs_new_eq:NN \toks_gset:Nn \pref_global:D
+\cs_generate_variant:Nn \toks_gset:Nn {NV,No,Nx,cn,cV,co,cx}
+\cs_new_eq:NN \toks_set_eq:NN \prg_do_nothing:
+\cs_new_eq:NN \toks_gset_eq:NN \pref_global:D
+\cs_generate_variant:Nn \toks_set_eq:NN {Nc,cN,cc}
+\cs_generate_variant:Nn \toks_gset_eq:NN {Nc,cN,cc}
+\cs_new_nopar:Npn \toks_clear:N #1 {
+ #1\c_empty_toks
+}
+\cs_new_nopar:Npn \toks_gclear:N {
+ \pref_global:D
+ \toks_clear:N
+}
+\cs_generate_variant:Nn \toks_clear:N {c}
+\cs_generate_variant:Nn \toks_gclear:N {c}
+\cs_new_nopar:Npn \toks_use_clear:N #1 {
+ \exp_last_unbraced:NNV \toks_clear:N #1 #1
+}
+\cs_new_nopar:Npn \toks_use_gclear:N {
+ \pref_global:D
+ \toks_use_clear:N
+}
+\cs_generate_variant:Nn \toks_use_clear:N {c}
+\cs_generate_variant:Nn \toks_use_gclear:N {c}
+\cs_new_eq:NN \toks_show:N \tex_showthe:D
+\cs_generate_variant:Nn \toks_show:N {c}
+\cs_new_nopar:Npn \toks_put_left:Nn #1 {
+ \exp_after:wN \toks_put_left_aux:w \exp_after:wN \q_mark
+ \toks_use:N #1 \q_stop #1
+}
+\cs_generate_variant:Nn \toks_put_left:Nn {NV,No,Nx,cn,co,cV}
+\cs_new_nopar:Npn \toks_gput_left:Nn {
+ \pref_global:D
+ \toks_put_left:Nn
+}
+\cs_generate_variant:Nn \toks_gput_left:Nn {NV,No,Nx,cn,cV,co}
+\cs_new:Npn \toks_put_left_aux:w #1\q_stop #2#3 {
+ #2 \exp_after:wN { \use_i:nn {#3} #1 }
+}
+\cs_new:Npn \toks_put_right:Nn #1#2 {
+ #1 \exp_after:wN { \toks_use:N #1 #2 }
+}
+\cs_new_nopar:Npn \toks_gput_right:Nn {
+ \pref_global:D
+ \toks_put_right:Nn
+}
+\cs_new:Npn \toks_put_right:NV #1#2 {
+ #1 \exp_after:wN \exp_after:wN \exp_after:wN {
+ \exp_after:wN \toks_use:N \exp_after:wN #1
+ \int_to_roman:w -`0 \exp_eval_register:N #2
+ }
+}
+\cs_new:Npn \toks_put_right:No #1#2 {
+ #1 \exp_after:wN \exp_after:wN \exp_after:wN {
+ \exp_after:wN \toks_use:N \exp_after:wN #1 #2
+ }
+}
+\cs_generate_variant:Nn \toks_put_right:Nn {Nx,cn,cV,co}
+\cs_generate_variant:Nn \toks_gput_right:Nn {NV,No,Nx,cn,cV,co}
+\cs_new:Npn \toks_put_right:Nf #1#2 {
+ #1 \exp_after:wN \exp_after:wN \exp_after:wN {
+ \exp_after:wN \toks_use:N \exp_after:wN #1 \int_to_roman:w -`0#2
+ }
+}
+\prg_new_conditional:Nnn \toks_if_empty:N {p,TF,T,F} {
+ \tl_if_empty:VTF #1 {\prg_return_true:} {\prg_return_false:}
+}
+\cs_generate_variant:Nn \toks_if_empty_p:N {c}
+\cs_generate_variant:Nn \toks_if_empty:NTF {c}
+\cs_generate_variant:Nn \toks_if_empty:NT {c}
+\cs_generate_variant:Nn \toks_if_empty:NF {c}
+\prg_new_conditional:Nnn \toks_if_eq:NN {p,TF,T,F} {
+ \tl_if_eq:xxTF {\toks_use:N #1} {\toks_use:N #2}
+ {\prg_return_true:} {\prg_return_false:}
+}
+\cs_generate_variant:Nn \toks_if_eq_p:NN {Nc,c,cc}
+\cs_generate_variant:Nn \toks_if_eq:NNTF {Nc,c,cc}
+\cs_generate_variant:Nn \toks_if_eq:NNT {Nc,c,cc}
+\cs_generate_variant:Nn \toks_if_eq:NNF {Nc,c,cc}
+\tex_toksdef:D \l_tmpa_toks = 255\scan_stop:
\toks_new:N \l_tmpb_toks
\toks_new:N \l_tmpc_toks
\toks_new:N \g_tmpa_toks
\toks_new:N \g_tmpb_toks
\toks_new:N \g_tmpc_toks
\toks_new:N \c_empty_toks
-\def_new:Npn \toks_remove_extra_brace_group:N #1{
- \exp_after:NN \toks_remove_extra_brace_group_aux:NNw
- \exp_after:NN \toks_set:Nn \exp_after:NN #1
- \toks_use:N#1\q_nil
-}
-\def_long_new:Npn\toks_remove_extra_brace_group_aux:NNw #1#2#3\q_nil{#1#2{#3}}
+\toks_new:N \l_tl_replace_toks
+
%%
%%
%% End of file `l3toks.sty'.