diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3token.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3token.sty | 726 |
1 files changed, 0 insertions, 726 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty deleted file mode 100644 index ba456ba2196..00000000000 --- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty +++ /dev/null @@ -1,726 +0,0 @@ -%% -%% This is file `l3token.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3token.dtx (with options: `package') -%% -%% EXPERIMENTAL CODE -%% -%% Do not distribute this file without also distributing the -%% source files specified above. -%% -%% Do not distribute a modified version of this file. -%% -%% File: l3token.dtx Copyright (C) 2005-2013 The 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 -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3kernel bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX3 Project. -%% -%% ----------------------------------------------------------------------- -\RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3token.dtx 4587 2013-08-25 21:30:10Z joseph $ - {L3 Experimental token manipulation} -\ProvidesExplPackage - {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} -\__expl_package_check: -\cs_new_protected:Npn \char_set_catcode:nn #1#2 - { \tex_catcode:D #1 = \__int_eval:w #2 \__int_eval_end: } -\cs_new:Npn \char_value_catcode:n #1 - { \tex_the:D \tex_catcode:D \__int_eval:w #1\__int_eval_end: } -\cs_new_protected:Npn \char_show_value_catcode:n #1 - { \tex_showthe:D \tex_catcode:D \__int_eval:w #1 \__int_eval_end: } -\cs_new_protected:Npn \char_set_catcode_escape:N #1 - { \char_set_catcode:nn { `#1 } \c_zero } -\cs_new_protected:Npn \char_set_catcode_group_begin:N #1 - { \char_set_catcode:nn { `#1 } \c_one } -\cs_new_protected:Npn \char_set_catcode_group_end:N #1 - { \char_set_catcode:nn { `#1 } \c_two } -\cs_new_protected:Npn \char_set_catcode_math_toggle:N #1 - { \char_set_catcode:nn { `#1 } \c_three } -\cs_new_protected:Npn \char_set_catcode_alignment:N #1 - { \char_set_catcode:nn { `#1 } \c_four } -\cs_new_protected:Npn \char_set_catcode_end_line:N #1 - { \char_set_catcode:nn { `#1 } \c_five } -\cs_new_protected:Npn \char_set_catcode_parameter:N #1 - { \char_set_catcode:nn { `#1 } \c_six } -\cs_new_protected:Npn \char_set_catcode_math_superscript:N #1 - { \char_set_catcode:nn { `#1 } \c_seven } -\cs_new_protected:Npn \char_set_catcode_math_subscript:N #1 - { \char_set_catcode:nn { `#1 } \c_eight } -\cs_new_protected:Npn \char_set_catcode_ignore:N #1 - { \char_set_catcode:nn { `#1 } \c_nine } -\cs_new_protected:Npn \char_set_catcode_space:N #1 - { \char_set_catcode:nn { `#1 } \c_ten } -\cs_new_protected:Npn \char_set_catcode_letter:N #1 - { \char_set_catcode:nn { `#1 } \c_eleven } -\cs_new_protected:Npn \char_set_catcode_other:N #1 - { \char_set_catcode:nn { `#1 } \c_twelve } -\cs_new_protected:Npn \char_set_catcode_active:N #1 - { \char_set_catcode:nn { `#1 } \c_thirteen } -\cs_new_protected:Npn \char_set_catcode_comment:N #1 - { \char_set_catcode:nn { `#1 } \c_fourteen } -\cs_new_protected:Npn \char_set_catcode_invalid:N #1 - { \char_set_catcode:nn { `#1 } \c_fifteen } -\cs_new_protected:Npn \char_set_catcode_escape:n #1 - { \char_set_catcode:nn {#1} \c_zero } -\cs_new_protected:Npn \char_set_catcode_group_begin:n #1 - { \char_set_catcode:nn {#1} \c_one } -\cs_new_protected:Npn \char_set_catcode_group_end:n #1 - { \char_set_catcode:nn {#1} \c_two } -\cs_new_protected:Npn \char_set_catcode_math_toggle:n #1 - { \char_set_catcode:nn {#1} \c_three } -\cs_new_protected:Npn \char_set_catcode_alignment:n #1 - { \char_set_catcode:nn {#1} \c_four } -\cs_new_protected:Npn \char_set_catcode_end_line:n #1 - { \char_set_catcode:nn {#1} \c_five } -\cs_new_protected:Npn \char_set_catcode_parameter:n #1 - { \char_set_catcode:nn {#1} \c_six } -\cs_new_protected:Npn \char_set_catcode_math_superscript:n #1 - { \char_set_catcode:nn {#1} \c_seven } -\cs_new_protected:Npn \char_set_catcode_math_subscript:n #1 - { \char_set_catcode:nn {#1} \c_eight } -\cs_new_protected:Npn \char_set_catcode_ignore:n #1 - { \char_set_catcode:nn {#1} \c_nine } -\cs_new_protected:Npn \char_set_catcode_space:n #1 - { \char_set_catcode:nn {#1} \c_ten } -\cs_new_protected:Npn \char_set_catcode_letter:n #1 - { \char_set_catcode:nn {#1} \c_eleven } -\cs_new_protected:Npn \char_set_catcode_other:n #1 - { \char_set_catcode:nn {#1} \c_twelve } -\cs_new_protected:Npn \char_set_catcode_active:n #1 - { \char_set_catcode:nn {#1} \c_thirteen } -\cs_new_protected:Npn \char_set_catcode_comment:n #1 - { \char_set_catcode:nn {#1} \c_fourteen } -\cs_new_protected:Npn \char_set_catcode_invalid:n #1 - { \char_set_catcode:nn {#1} \c_fifteen } -\cs_new_protected:Npn \char_set_mathcode:nn #1#2 - { \tex_mathcode:D #1 = \__int_eval:w #2 \__int_eval_end: } -\cs_new:Npn \char_value_mathcode:n #1 - { \tex_the:D \tex_mathcode:D \__int_eval:w #1\__int_eval_end: } -\cs_new_protected:Npn \char_show_value_mathcode:n #1 - { \tex_showthe:D \tex_mathcode:D \__int_eval:w #1 \__int_eval_end: } -\cs_new_protected:Npn \char_set_lccode:nn #1#2 - { \tex_lccode:D #1 = \__int_eval:w #2 \__int_eval_end: } -\cs_new:Npn \char_value_lccode:n #1 - { \tex_the:D \tex_lccode:D \__int_eval:w #1\__int_eval_end: } -\cs_new_protected:Npn \char_show_value_lccode:n #1 - { \tex_showthe:D \tex_lccode:D \__int_eval:w #1 \__int_eval_end: } -\cs_new_protected:Npn \char_set_uccode:nn #1#2 - { \tex_uccode:D #1 = \__int_eval:w #2 \__int_eval_end: } -\cs_new:Npn \char_value_uccode:n #1 - { \tex_the:D \tex_uccode:D \__int_eval:w #1\__int_eval_end: } -\cs_new_protected:Npn \char_show_value_uccode:n #1 - { \tex_showthe:D \tex_uccode:D \__int_eval:w #1 \__int_eval_end: } -\cs_new_protected:Npn \char_set_sfcode:nn #1#2 - { \tex_sfcode:D #1 = \__int_eval:w #2 \__int_eval_end: } -\cs_new:Npn \char_value_sfcode:n #1 - { \tex_the:D \tex_sfcode:D \__int_eval:w #1\__int_eval_end: } -\cs_new_protected:Npn \char_show_value_sfcode:n #1 - { \tex_showthe:D \tex_sfcode:D \__int_eval:w #1 \__int_eval_end: } -\cs_new_protected:Npn \token_new:Nn #1#2 { \cs_new_eq:NN #1 #2 } -\cs_new_eq:NN \c_group_begin_token { -\cs_new_eq:NN \c_group_end_token } -\group_begin: - \char_set_catcode_math_toggle:N \* - \token_new:Nn \c_math_toggle_token { * } - \char_set_catcode_alignment:N \* - \token_new:Nn \c_alignment_token { * } - \token_new:Nn \c_parameter_token { # } - \token_new:Nn \c_math_superscript_token { ^ } - \char_set_catcode_math_subscript:N \* - \token_new:Nn \c_math_subscript_token { * } - \token_new:Nn \c_space_token { ~ } - \token_new:Nn \c_catcode_letter_token { a } - \token_new:Nn \c_catcode_other_token { 1 } -\group_end: -\group_begin: - \char_set_catcode_active:N \* - \tl_const:Nn \c_catcode_active_tl { \exp_not:N * } -\group_end: -\seq_new:N \l_char_active_seq -\use:n - { - \group_begin: - \char_set_catcode_active:N \" - \char_set_catcode_active:N \$ - \char_set_catcode_active:N \& - \char_set_catcode_active:N \^ - \char_set_catcode_active:N \_ - \char_set_catcode_active:N \~ - \use:nn - { - \group_end: - \seq_set_split:Nnn \l_char_active_seq { } - } - } - { { " $ & ^ _ ~ } } %$ -\seq_new:N \l_char_special_seq -\seq_set_split:Nnn \l_char_special_seq { } - { \ \" \# \$ \% \& \\ \^ \_ \{ \} \~ } -\prg_new_conditional:Npnn \token_if_group_begin:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_group_begin_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_group_end:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_group_end_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_math_toggle:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_math_toggle_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_alignment:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_alignment_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\group_begin: -\cs_set_eq:NN \c_parameter_token \scan_stop: -\prg_new_conditional:Npnn \token_if_parameter:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_parameter_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\group_end: -\prg_new_conditional:Npnn \token_if_math_superscript:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_math_superscript_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_math_subscript:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_math_subscript_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_space:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_space_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_letter:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_catcode_letter_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_other:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_catcode_other_token - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_active:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \c_catcode_active_tl - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_eq_meaning:NN #1#2 { p , T , F , TF } - { - \if_meaning:w #1 #2 - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_eq_catcode:NN #1#2 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \exp_not:N #2 - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_eq_charcode:NN #1#2 { p , T , F , TF } - { - \if_charcode:w \exp_not:N #1 \exp_not:N #2 - \prg_return_true: \else: \prg_return_false: \fi: - } -\group_begin: -\char_set_catcode_other:N \M -\char_set_catcode_other:N \A -\char_set_lccode:nn { `\; } { `\: } -\char_set_lccode:nn { `\T } { `\T } -\char_set_lccode:nn { `\F } { `\F } -\tl_to_lowercase:n - { - \group_end: - \prg_new_conditional:Npnn \token_if_macro:N #1 { p , T , F , TF } - { - \exp_after:wN \__token_if_macro_p:w - \token_to_meaning:N #1 MA; \q_stop - } - \cs_new:Npn \__token_if_macro_p:w #1 MA #2 ; #3 \q_stop - { - \if_int_compare:w \pdftex_strcmp:D { #2 } { cro } = \c_zero - \prg_return_true: - \else: - \prg_return_false: - \fi: - } - } -\prg_new_conditional:Npnn \token_if_cs:N #1 { p , T , F , TF } - { - \if_catcode:w \exp_not:N #1 \scan_stop: - \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \token_if_expandable:N #1 { p , T , F , TF } - { - \exp_after:wN \if_meaning:w \exp_not:N #1 #1 - \prg_return_false: - \else: - \if_cs_exist:N #1 - \prg_return_true: - \else: - \prg_return_false: - \fi: - \fi: - } -\group_begin: - \char_set_lccode:nn { `T } { `T } - \char_set_lccode:nn { `F } { `F } - \char_set_lccode:nn { `X } { `n } - \char_set_lccode:nn { `Y } { `t } - \char_set_lccode:nn { `Z } { `d } - \tl_map_inline:nn { A C E G H I K L M O P R S U X Y Z R " } - { \char_set_catcode:nn { `#1 } \c_twelve } -\tl_to_lowercase:n - { - \group_end: - \prg_new_conditional:Npnn \token_if_chardef:N #1 { p , T , F , TF } - { - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_chardef:w - \token_to_meaning:N #1 CHAR" \q_stop - } - { \token_to_str:N \char } - } - \prg_new_conditional:Npnn \token_if_mathchardef:N #1 { p , T , F , TF } - { - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_chardef:w - \token_to_meaning:N #1 CHAR" \q_stop - } - { \token_to_str:N \mathchar } - } - \cs_new:Npn \__token_if_chardef:w #1 CHAR" #2 \q_stop { #1 CHAR } - \prg_new_conditional:Npnn \token_if_dim_register:N #1 { p , T , F , TF } - { - \if_meaning:w \tex_dimen:D #1 - \prg_return_false: - \else: - \if_meaning:w \tex_dimendef:D #1 - \prg_return_false: - \else: - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_dim_register:w - \token_to_meaning:N #1 ZIMEX \q_stop - } - { \token_to_str:N \ } - \fi: - \fi: - } - \cs_new:Npn \__token_if_dim_register:w #1 ZIMEX #2 \q_stop { #1 ~ } - \prg_new_conditional:Npnn \token_if_int_register:N #1 { p , T , F , TF } - { - % \token_if_chardef:NTF #1 { \prg_return_true: } - % { - % \token_if_mathchardef:NTF #1 { \prg_return_true: } - % { - \if_meaning:w \tex_count:D #1 - \prg_return_false: - \else: - \if_meaning:w \tex_countdef:D #1 - \prg_return_false: - \else: - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_int_register:w - \token_to_meaning:N #1 COUXY \q_stop - } - { \token_to_str:N \ } - \fi: - \fi: - % } - % } - } - \cs_new:Npn \__token_if_int_register:w #1 COUXY #2 \q_stop { #1 ~ } - \prg_new_conditional:Npnn \token_if_muskip_register:N #1 { p , T , F , TF } - { - \if_meaning:w \tex_muskip:D #1 - \prg_return_false: - \else: - \if_meaning:w \tex_muskipdef:D #1 - \prg_return_false: - \else: - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_muskip_register:w - \token_to_meaning:N #1 MUSKIP \q_stop - } - { \token_to_str:N \ } - \fi: - \fi: - } - \cs_new:Npn \__token_if_muskip_register:w #1 MUSKIP #2 \q_stop { #1 ~ } - \prg_new_conditional:Npnn \token_if_skip_register:N #1 { p , T , F , TF } - { - \if_meaning:w \tex_skip:D #1 - \prg_return_false: - \else: - \if_meaning:w \tex_skipdef:D #1 - \prg_return_false: - \else: - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_skip_register:w - \token_to_meaning:N #1 SKIP \q_stop - } - { \token_to_str:N \ } - \fi: - \fi: - } - \cs_new:Npn \__token_if_skip_register:w #1 SKIP #2 \q_stop { #1 ~ } - \prg_new_conditional:Npnn \token_if_toks_register:N #1 { p , T , F , TF } - { - \if_meaning:w \tex_toks:D #1 - \prg_return_false: - \else: - \if_meaning:w \tex_toksdef:D #1 - \prg_return_false: - \else: - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_toks_register:w - \token_to_meaning:N #1 YOKS \q_stop - } - { \token_to_str:N \ } - \fi: - \fi: - } - \cs_new:Npn \__token_if_toks_register:w #1 YOKS #2 \q_stop { #1 ~ } - \prg_new_conditional:Npnn \token_if_protected_macro:N #1 - { p , T , F , TF } - { - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_protected_macro:w - \token_to_meaning:N #1 PROYECYEZ~MACRO \q_stop - } - { \token_to_str:N \ } - } - \cs_new:Npn \__token_if_protected_macro:w - #1 PROYECYEZ~MACRO #2 \q_stop { #1 ~ } - \prg_new_conditional:Npnn \token_if_long_macro:N #1 { p , T , F , TF } - { - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_long_macro:w - \token_to_meaning:N #1 LOXG~MACRO \q_stop - } - { \token_to_str:N \ } - } - \prg_new_conditional:Npnn \token_if_protected_long_macro:N #1 - { p , T , F , TF } - { - \__str_if_eq_x_return:nn - { - \exp_after:wN \__token_if_long_macro:w - \token_to_meaning:N #1 LOXG~MACRO \q_stop - } - { \token_to_str:N \protected \token_to_str:N \ } - } - \cs_new:Npn \__token_if_long_macro:w #1 LOXG~MACRO #2 \q_stop { #1 ~ } - } -\tex_chardef:D \c_token_A_int = `A ~ % -\group_begin: -\char_set_catcode_other:N \; -\char_set_lccode:nn { `\; } { `\: } -\char_set_lccode:nn { `\T } { `\T } -\char_set_lccode:nn { `\F } { `\F } -\tl_to_lowercase:n { - \group_end: - \prg_new_conditional:Npnn \token_if_primitive:N #1 { p , T , F , TF } - { - \token_if_macro:NTF #1 - \prg_return_false: - { - \exp_after:wN \__token_if_primitive:NNw - \token_to_meaning:N #1 ; ; ; \q_stop #1 - } - } - \cs_new:Npn \__token_if_primitive:NNw #1#2 #3 ; #4 \q_stop - { - \tl_if_empty:oTF { \__token_if_primitive_space:w #3 ~ } - { \__token_if_primitive_loop:N #3 ; \q_stop } - { \__token_if_primitive_nullfont:N } - } -} -\cs_new:Npn \__token_if_primitive_space:w #1 ~ { } -\cs_new:Npn \__token_if_primitive_nullfont:N #1 - { - \if_meaning:w \tex_nullfont:D #1 - \prg_return_true: - \else: - \prg_return_false: - \fi: - } -\cs_new:Npn \__token_if_primitive_loop:N #1 - { - \if_int_compare:w `#1 < \c_token_A_int % - \exp_after:wN \__token_if_primitive:Nw - \exp_after:wN #1 - \else: - \exp_after:wN \__token_if_primitive_loop:N - \fi: - } -\cs_new:Npn \__token_if_primitive:Nw #1 #2 \q_stop - { - \if:w : #1 - \exp_after:wN \__token_if_primitive_undefined:N - \else: - \prg_return_false: - \exp_after:wN \use_none:n - \fi: - } -\cs_new:Npn \__token_if_primitive_undefined:N #1 - { - \if_cs_exist:N #1 - \prg_return_true: - \else: - \prg_return_false: - \fi: - } -\cs_new_eq:NN \l_peek_token ? -\cs_new_eq:NN \g_peek_token ? -\cs_new_eq:NN \l__peek_search_token ? -\tl_new:N \l__peek_search_tl -\cs_new_nopar:Npn \__peek_true:w { } -\cs_new_nopar:Npn \__peek_true_aux:w { } -\cs_new_nopar:Npn \__peek_false:w { } -\cs_new:Npn \__peek_tmp:w { } -\cs_new_protected_nopar:Npn \peek_after:Nw - { \tex_futurelet:D \l_peek_token } -\cs_new_protected_nopar:Npn \peek_gafter:Nw - { \tex_global:D \tex_futurelet:D \g_peek_token } -\cs_new_protected:Npn \__peek_true_remove:w - { - \group_align_safe_end: - \tex_afterassignment:D \__peek_true_aux:w - \cs_set_eq:NN \__peek_tmp:w - } -\cs_new_protected:Npn \__peek_token_generic:NNTF #1#2#3#4 - { - \cs_set_eq:NN \l__peek_search_token #2 - \tl_set:Nn \l__peek_search_tl {#2} - \cs_set_nopar:Npx \__peek_true:w - { - \exp_not:N \group_align_safe_end: - \exp_not:n {#3} - } - \cs_set_nopar:Npx \__peek_false:w - { - \exp_not:N \group_align_safe_end: - \exp_not:n {#4} - } - \group_align_safe_begin: - \peek_after:Nw #1 - } -\cs_new_protected:Npn \__peek_token_generic:NNT #1#2#3 - { \__peek_token_generic:NNTF #1 #2 {#3} { } } -\cs_new_protected:Npn \__peek_token_generic:NNF #1#2#3 - { \__peek_token_generic:NNTF #1 #2 { } {#3} } -\cs_new_protected:Npn \__peek_token_remove_generic:NNTF #1#2#3#4 - { - \cs_set_eq:NN \l__peek_search_token #2 - \tl_set:Nn \l__peek_search_tl {#2} - \cs_set_eq:NN \__peek_true:w \__peek_true_remove:w - \cs_set_nopar:Npx \__peek_true_aux:w { \exp_not:n {#3} } - \cs_set_nopar:Npx \__peek_false:w - { - \exp_not:N \group_align_safe_end: - \exp_not:n {#4} - } - \group_align_safe_begin: - \peek_after:Nw #1 - } -\cs_new_protected:Npn \__peek_token_remove_generic:NNT #1#2#3 - { \__peek_token_remove_generic:NNTF #1 #2 {#3} { } } -\cs_new_protected:Npn \__peek_token_remove_generic:NNF #1#2#3 - { \__peek_token_remove_generic:NNTF #1 #2 { } {#3} } -\cs_new_nopar:Npn \__peek_execute_branches_meaning: - { - \if_meaning:w \l_peek_token \l__peek_search_token - \exp_after:wN \__peek_true:w - \else: - \exp_after:wN \__peek_false:w - \fi: - } -\cs_new_nopar:Npn \__peek_execute_branches_catcode: - { \if_catcode:w \__peek_execute_branches_catcode_aux: } -\cs_new_nopar:Npn \__peek_execute_branches_charcode: - { \if_charcode:w \__peek_execute_branches_catcode_aux: } -\cs_new_nopar:Npn \__peek_execute_branches_catcode_aux: - { - \if_catcode:w \exp_not:N \l_peek_token \scan_stop: - \exp_after:wN \exp_after:wN - \exp_after:wN \__peek_execute_branches_catcode_auxii:N - \exp_after:wN \exp_not:N - \else: - \exp_after:wN \__peek_execute_branches_catcode_auxiii: - \fi: - } -\cs_new:Npn \__peek_execute_branches_catcode_auxii:N #1 - { - \exp_not:N #1 - \exp_after:wN \exp_not:N \l__peek_search_tl - \exp_after:wN \__peek_true:w - \else: - \exp_after:wN \__peek_false:w - \fi: - #1 - } -\cs_new_nopar:Npn \__peek_execute_branches_catcode_auxiii: - { - \exp_not:N \l_peek_token - \exp_after:wN \exp_not:N \l__peek_search_tl - \exp_after:wN \__peek_true:w - \else: - \exp_after:wN \__peek_false:w - \fi: - } -\cs_new_protected_nopar:Npn \__peek_ignore_spaces_execute_branches: - { - \if_meaning:w \l_peek_token \c_space_token - \exp_after:wN \peek_after:Nw - \exp_after:wN \__peek_ignore_spaces_execute_branches: - \tex_romannumeral:D -`0 - \else: - \exp_after:wN \__peek_execute_branches: - \fi: - } -\group_begin: - \cs_set:Npn \__peek_def:nnnn #1#2#3#4 - { - \__peek_def:nnnnn {#1} {#2} {#3} {#4} { TF } - \__peek_def:nnnnn {#1} {#2} {#3} {#4} { T } - \__peek_def:nnnnn {#1} {#2} {#3} {#4} { F } - } - \cs_set:Npn \__peek_def:nnnnn #1#2#3#4#5 - { - \cs_new_protected_nopar:cpx { #1 #5 } - { - \tl_if_empty:nF {#2} - { \exp_not:n { \cs_set_eq:NN \__peek_execute_branches: #2 } } - \exp_not:c { #3 #5 } - \exp_not:n {#4} - } - } - \__peek_def:nnnn { peek_catcode:N } - { } - { __peek_token_generic:NN } - { \__peek_execute_branches_catcode: } - \__peek_def:nnnn { peek_catcode_ignore_spaces:N } - { \__peek_execute_branches_catcode: } - { __peek_token_generic:NN } - { \__peek_ignore_spaces_execute_branches: } - \__peek_def:nnnn { peek_catcode_remove:N } - { } - { __peek_token_remove_generic:NN } - { \__peek_execute_branches_catcode: } - \__peek_def:nnnn { peek_catcode_remove_ignore_spaces:N } - { \__peek_execute_branches_catcode: } - { __peek_token_remove_generic:NN } - { \__peek_ignore_spaces_execute_branches: } - \__peek_def:nnnn { peek_charcode:N } - { } - { __peek_token_generic:NN } - { \__peek_execute_branches_charcode: } - \__peek_def:nnnn { peek_charcode_ignore_spaces:N } - { \__peek_execute_branches_charcode: } - { __peek_token_generic:NN } - { \__peek_ignore_spaces_execute_branches: } - \__peek_def:nnnn { peek_charcode_remove:N } - { } - { __peek_token_remove_generic:NN } - { \__peek_execute_branches_charcode: } - \__peek_def:nnnn { peek_charcode_remove_ignore_spaces:N } - { \__peek_execute_branches_charcode: } - { __peek_token_remove_generic:NN } - { \__peek_ignore_spaces_execute_branches: } - \__peek_def:nnnn { peek_meaning:N } - { } - { __peek_token_generic:NN } - { \__peek_execute_branches_meaning: } - \__peek_def:nnnn { peek_meaning_ignore_spaces:N } - { \__peek_execute_branches_meaning: } - { __peek_token_generic:NN } - { \__peek_ignore_spaces_execute_branches: } - \__peek_def:nnnn { peek_meaning_remove:N } - { } - { __peek_token_remove_generic:NN } - { \__peek_execute_branches_meaning: } - \__peek_def:nnnn { peek_meaning_remove_ignore_spaces:N } - { \__peek_execute_branches_meaning: } - { __peek_token_remove_generic:NN } - { \__peek_ignore_spaces_execute_branches: } -\group_end: -\exp_args:Nno \use:nn - { \cs_new:Npn \__peek_get_prefix_arg_replacement:wN #1 } - { \tl_to_str:n { macro : } #2 -> #3 \q_stop #4 } - { #4 {#1} {#2} {#3} } -\cs_new:Npn \token_get_prefix_spec:N #1 - { - \token_if_macro:NTF #1 - { - \exp_after:wN \__peek_get_prefix_arg_replacement:wN - \token_to_meaning:N #1 \q_stop \use_i:nnn - } - { \scan_stop: } - } -\cs_new:Npn \token_get_arg_spec:N #1 - { - \token_if_macro:NTF #1 - { - \exp_after:wN \__peek_get_prefix_arg_replacement:wN - \token_to_meaning:N #1 \q_stop \use_ii:nnn - } - { \scan_stop: } - } -\cs_new:Npn \token_get_replacement_spec:N #1 - { - \token_if_macro:NTF #1 - { - \exp_after:wN \__peek_get_prefix_arg_replacement:wN - \token_to_meaning:N #1 \q_stop \use_iii:nnn - } - { \scan_stop: } - } -%% -%% -%% End of file `l3token.sty'. |