summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2008-07-29 11:23:34 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2008-07-29 11:23:34 +0000
commitef285e6a49a93af098150d0b3125a34d3477ba55 (patch)
tree124a55595390d358e0cda8ae26f78e9a263e9a21 /Master/texmf-dist/tex/latex/expl3/l3tlp.sty
parente7477f362711cc9d05dfa1ee71301fb34cce2d94 (diff)
expl3 update (2008/06/20)
git-svn-id: svn://tug.org/texlive/trunk@9869 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3/l3tlp.sty')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3tlp.sty140
1 files changed, 106 insertions, 34 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3tlp.sty b/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
index e80ea876717..2b911f20523 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3tlp.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3tlp.dtx Copyright (C) 1990-2006 LaTeX3 project
+%% File: l3tlp.dtx Copyright (C) 1990-2007 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
@@ -48,8 +48,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tlp.dtx 581 2006-12-12 12:28:27Z morten $
+\GetIdInfo$Id: l3tlp.dtx 735 2008-01-14 22:31:02Z morten $
{L3 Experimental Token List Pointers}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3basics}
\def_long_new:Npn \tlp_new:Nn #1#2{
\chk_new_cs:N #1
@@ -60,6 +62,8 @@
\chk_new_cs:N #1
\gdef:Npx #1{#2}
}
+\def_new:Npn \tlp_new:N #1{\tlp_new:Nn #1{}}
+\def_new:Npn \tlp_new:c #1{\tlp_new:cn {#1}{}}
\def_new:Npn \tlp_use:N #1 {
\if_meaning:NN #1 \scan_stop:
\err_latex_bug:x {Token~list~pointer~ `\token_to_string:N #1'~
@@ -74,11 +78,13 @@
\def_long_new:Npn\tlp_gset:Nn#1#2{\gdef:Npn#1{#2}}
\def_long_new:Npn\tlp_gset:Nx#1#2{\gdef:Npx#1{#2}}
\def_new:Npn \tlp_set:No {\exp_args:NNo \tlp_set:Nn}
+\def_new:Npn \tlp_set:Nd {\exp_args:NNd \tlp_set:Nn}
\def_new:Npn \tlp_set:Nf {\exp_args:NNf \tlp_set:Nn}
\def_new:Npn \tlp_set:cn {\exp_args:Nc \tlp_set:Nn}
\def_new:Npn \tlp_set:co {\exp_args:Nco \tlp_set:Nn}
\def_new:Npn \tlp_set:cx {\exp_args:Nc \tlp_set:Nx}
\def_new:Npn \tlp_gset:No {\exp_args:NNo \tlp_gset:Nn}
+\def_new:Npn \tlp_gset:Nd {\exp_args:NNd \tlp_gset:Nn}
\def_new:Npn \tlp_gset:cn {\exp_args:Nc \tlp_gset:Nn}
\def_new:Npn \tlp_gset:cx {\exp_args:Nc \tlp_gset:Nx}
\let_new:NN \tlp_set_eq:NN \let:NN
@@ -97,26 +103,59 @@
\def_new:Npn \tlp_clear_new:c {\exp_args:Nc \tlp_clear_new:N}
\let_new:NN \tlp_gclear_new:N \tlp_gclear:N
\def_new:Npn \tlp_gclear_new:c {\exp_args:Nc \tlp_gclear_new:N}
-\def_new:Npn \tlp_put_left:Nn #1{
- \exp_args:No \tlp_put_left_aux:w {#1}#1}
-\def_new:Npn\tlp_put_left:No{\exp_args:NNo\tlp_put_left:Nn}
-\def_new:Npn \tlp_gput_left:Nn {
- \pref_global:D
- \tlp_put_left:Nn
+\def_long_new:Npn \tlp_put_left:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:d{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:Nx #1#2{
+ \tlp_set:Nx #1{#2\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:d{\l_exp_tlp}\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_gput_left:Nx #1#2{
+ \tlp_gset:Nx #1{#2\exp_not:o{#1}}
+}
+\def_long_new:Npn \tlp_put_left:cn{\exp_args:Nc\tlp_put_left:Nn}
+\def_long_new:Npn \tlp_put_left:co{\exp_args:Nc\tlp_put_left:No}
+\def_long_new:Npn \tlp_put_left:cx{\exp_args:Nc\tlp_put_left:Nx}
+\def_long_new:Npn \tlp_gput_left:cn{\exp_args:Nc\tlp_gput_left:Nn}
+\def_long_new:Npn \tlp_gput_left:co{\exp_args:Nc\tlp_gput_left:No}
+\def_long_new:Npn \tlp_gput_left:cx{\exp_args:Nc\tlp_gput_left:Nx}
+\def_long_new:Npn \tlp_put_right:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{#1}\exp_not:o{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_gput_right:Nn #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{#1}\exp_not:o{\l_exp_tlp}}
+}
+\def_long_new:Npn \tlp_put_right:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_set:Nx #1{\exp_not:o{#1}\exp_not:d{\l_exp_tlp}}
}
-\def_new:Npn\tlp_gput_left:No{\exp_args:NNo\tlp_gput_left:Nn}
-\def_new:Npn\tlp_gput_left:Nx{\exp_args:NNx\tlp_gput_left:Nn}
-\def_long_new:Npn \tlp_put_left_aux:w #1#2#3{\tlp_set:Nn #2{#3#1}
+\def_long_new:Npn \tlp_gput_right:No #1#2{
+ \tlp_set:Nn \l_exp_tlp{#2}
+ \tlp_gset:Nx #1{\exp_not:o{#1}\exp_not:d{\l_exp_tlp}}
+}
+\def_long:Npn \tlp_put_right:Nx #1#2{
+ \tlp_set:Nx #1{\exp_not:o{#1}#2}
+}
+\def_long:Npn \tlp_gput_right:Nx #1#2{
+ \tlp_gset:Nx #1{\exp_not:o{#1}#2}
}
-\def_long_new:Npn \tlp_put_right:Nn #1#2{\tlp_set:No #1{#1#2}}
-\def_long_new:Npn \tlp_gput_right:Nn #1#2{\tlp_gset:No #1{#1#2}}
-\def_new:Npn \tlp_gput_right:No {\exp_args:NNo \tlp_gput_right:Nn}
-\def_new:Npn \tlp_gput_right:Nx {\exp_args:NNx \tlp_gput_right:Nn}
\def_new:Npn \tlp_gput_right:cn {\exp_args:Nc \tlp_gput_right:Nn}
-\def_new:Npn \tlp_gput_right:co {\exp_args:Nco \tlp_gput_right:Nn}
+\def_new:Npn \tlp_gput_right:co {\exp_args:Nc \tlp_gput_right:No}
\def_new:Npn \tlp_put_right:cc {\exp_args:Ncc \tlp_put_right:Nn}
-\def_new:Npn \tlp_put_right:No {\exp_args:NNo \tlp_put_right:Nn}
-\def_new:Npn \tlp_put_right:Nx {\exp_args:Nnx \tlp_put_right:Nn}
\def_new:Npn \tlp_gset:Nc {
\pref_global:D
\tlp_set:Nc}
@@ -184,14 +223,14 @@
\let_new:NN \tlist_to_uppercase:n \tex_uppercase:D
\let_new:NN \tlist_to_str:n \etex_detokenize:D
\def_long_new:Npn \tlist_map_function:nN #1#2{
- \tlist_map_function_aux:Nn #2 #1 \q_nil \q_stop
+ \tlist_map_function_aux:Nn #2 #1 \q_recursion_tail \q_recursion_stop
}
\def_new:Npn \tlp_map_function:NN #1#2{
\exp_after:NN \tlist_map_function_aux:Nn
- \exp_after:NN #2 #1 \q_nil \q_stop
+ \exp_after:NN #2 #1 \q_recursion_tail \q_recursion_stop
}
\def_long_new:Npn \tlist_map_function_aux:Nn #1#2{
- \quark_if_nil:nT{#2} \tlist_map_break:w
+ \quark_if_recursion_tail_stop:n{#2}
#1{#2} \tlist_map_function_aux:Nn #1
}
\def_new:Npn\tlp_map_function:cN{\exp_args:Nc\tlp_map_function:NN}
@@ -201,7 +240,7 @@
##1{#2}
\exp_args:Nc \tlist_map_function_aux:Nn
{tlist_map_inline_ \num_use:N \l_tlp_inline_level_num :n}
- #1 \q_nil\q_stop
+ #1 \q_recursion_tail\q_recursion_stop
\num_decr:N \l_tlp_inline_level_num
}
\def_long_new:Npn \tlp_map_inline:Nn #1#2{
@@ -210,22 +249,22 @@
##1{#2}
\exp_args:NcE \tlist_map_function_aux:Nn
{tlist_map_inline_ \num_use:N \l_tlp_inline_level_num :n}
- #1 \q_nil\q_stop
+ #1 \q_recursion_tail\q_recursion_stop
\num_decr:N \l_tlp_inline_level_num
}
\def_new:Npn\tlp_map_inline:cN{\exp_args:Nc\tlp_map_inline:NN}
\tlp_new:Nn \l_tlp_inline_level_num{0}
\def_long_new:Npn \tlist_map_variable:nNn #1#2#3{
- \tlist_map_variable_aux:Nnn #2 {#3} #1 \q_nil \q_stop
+ \tlist_map_variable_aux:Nnn #2 {#3} #1 \q_recursion_tail \q_recursion_stop
}
\def_new:Npn \tlp_map_variable:NNn {\exp_args:No \tlist_map_variable:nNn}
\def_new:Npn \tlp_map_variable:cNn {\exp_args:Nc \tlp_map_variable:NNn}
\def_long_new:Npn \tlist_map_variable_aux:Nnn #1#2#3{
\tlp_set:Nn #1{#3}
- \quark_if_nil:NT #1 \tlist_map_break:w
+ \quark_if_recursion_tail_stop:N #1
#2 \tlist_map_variable_aux:Nnn #1{#2}
}
-\let_new:NN \tlist_map_break:w \use_none_delimit_by_q_stop:w
+\let_new:NN \tlist_map_break:w \use_none_delimit_by_q_recursion_stop:w
\let_new:NN \tlp_map_break:w \tlist_map_break:w
\let_new:NN \tlist_compare:xx \pdfstrcmp
\def_long_new:NNn \tlist_compare:nn 2{
@@ -272,12 +311,46 @@
\tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
\if_meaning:NN\l_testa_tlp \l_testb_tlp
}
+ \def_long_test_function:npn{tlist_if_eq:no}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:nx}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:on}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
\def_long_test_function:npn{tlist_if_eq:oo}#1#2{
\tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
\tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
\if_meaning:NN\l_testa_tlp \l_testb_tlp
}
- \def_long:Npn\tlist_compare:xx #1#2{\ERROR}
+ \def_long_test_function:npn{tlist_if_eq:ox}#1#2{
+ \tlp_set:Nx \l_testa_tlp {\exp_not:o{#1}}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xn}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xo}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {\exp_not:o{#2}}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
+ \def_long_test_function:npn{tlist_if_eq:xx}#1#2{
+ \tlp_set:Nx \l_testa_tlp {#1}
+ \tlp_set:Nx \l_testb_tlp {#2}
+ \if_meaning:NN\l_testa_tlp \l_testb_tlp
+ }
}
\def_long:Npn \tlp_if_in:NnTF #1#2{
\def_long:Npn\tmp:w ##1 #2 ##2\q_stop{
@@ -288,7 +361,7 @@
\def_new:Npn \tlp_if_in:cnTF {\exp_args:Nc\tlp_if_in:NnTF}
\def_long:Npn \tlp_if_in:NnT #1#2{
\def_long:Npn\tmp:w ##1 #2 ##2\q_stop{
- \quark_if_no_value:nFT{##2}
+ \quark_if_no_value:nF{##2}
}
\exp_after:NN \tmp:w #1 #2 \q_no_value \q_stop
}
@@ -309,11 +382,11 @@
\def_new:Npn \tlist_if_in:onTF {\exp_args:No\tlist_if_in:nnTF}
\tlp_new:Nn\l_tlp_replace_tlp{}
\def_long_new:NNn \tlp_replace_in_aux:NNnn 4{
- \def:Npn \tmp:w ##1#3##2\q_stop{
+ \def_long:Npn \tmp:w ##1#3##2\q_stop{
\quark_if_no_value:nF{##2}
{
\tlp_set:Nx\l_tlp_replace_tlp{\exp_not:o{\use_none:n##1#4}}
- \def:Npn \tmp:w ####1#3\q_no_value{
+ \def_long:Npn \tmp:w ####1#3\q_no_value{
\tlp_put_right:Nx \l_tlp_replace_tlp {\exp_not:o{\use_none:n ####1}}
}
\tmp:w \q_mark ##2
@@ -329,7 +402,7 @@
\def_new:Npn \tlp_greplace_in:cnn{\exp_args:Nc\tlp_greplace_in:Nnn}
\def_long:NNn \tlp_replace_all_in_aux:NNnn 4{
\tlp_clear:N \l_tlp_replace_tlp
- \def:Npn \tmp:w ##1#3##2\q_stop{
+ \def_long:Npn \tmp:w ##1#3##2\q_stop{
\quark_if_no_value:nTF{##2}
{
\tlp_put_right:Nx \l_tlp_replace_tlp {\exp_not:o{\use_none:n##1}}
@@ -409,11 +482,10 @@
\def_long_test_function_new:npn {tlist_if_head_eq_catcode:nN}#1#2{
\if:w\tlist_if_head_eq_catcode_p:nN{#1}#2}
\def_long_new:Npn \tlist_reverse:n #1{
- \tlist_reverse_aux:nN {} #1 \q_nil\q_stop
+ \tlist_reverse_aux:nN {} #1 \q_recursion_tail\q_stop
}
\def_long_new:Npn \tlist_reverse_aux:nN #1#2{
- \quark_if_nil:NT #2
- { \use_arg_i_delimit_by_q_stop:nw {#1} }
+ \quark_if_recursion_tail_stop_do:nn {#2}{ #1 }
\tlist_reverse_aux:nN {#2#1}
}
\RequirePackage{l3expan}