summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty449
1 files changed, 0 insertions, 449 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
deleted file mode 100644
index 9b336143d14..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
+++ /dev/null
@@ -1,449 +0,0 @@
-%%
-%% This is file `l3tl-analysis.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3tl-analysis.dtx (with options: `package')
-%%
-%% Copyright (C) 2011-2017 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 "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% File: l3tl-analysis.dtx Copyright (C) 2011-2012,2015-2017 The LaTeX3 Project
-\RequirePackage{expl3}
-\ProvidesExplPackage{l3tl-analysis}{2017/05/13}{}
- {L3 Experimental token list analysis}
-\__scan_new:N \s__tl
-\tl_new:N \l__tl_analysis_internal_tl
-\cs_new_eq:NN \l__tl_analysis_token ?
-\cs_new_eq:NN \l__tl_analysis_char_token ?
-\int_new:N \l__tl_analysis_normal_int
-\int_new:N \l__tl_analysis_index_int
-\int_new:N \l__tl_analysis_nesting_int
-\int_new:N \l__tl_analysis_type_int
-\tl_new:N \g__tl_analysis_result_tl
-\cs_new:Npn \__tl_analysis_extract_charcode:
- {
- \exp_after:wN \__tl_analysis_extract_charcode_aux:w
- \token_to_meaning:N \l__tl_analysis_token
- }
-\cs_new:Npn \__tl_analysis_extract_charcode_aux:w #1 ~ #2 ~ { ` }
-\cs_new:Npn \__tl_analysis_cs_space_count:NN #1 #2
- {
- \exp_after:wN #1
- \__int_value:w \__int_eval:w 0
- \exp_after:wN \__tl_analysis_cs_space_count:w
- \token_to_str:N #2
- \fi: \__tl_analysis_cs_space_count_end:w ; ~ !
- }
-\cs_new:Npn \__tl_analysis_cs_space_count:w #1 ~
- {
- \if_false: #1 #1 \fi:
- + 1
- \__tl_analysis_cs_space_count:w
- }
-\cs_new:Npn \__tl_analysis_cs_space_count_end:w ; #1 \fi: #2 !
- { \exp_after:wN ; \__int_value:w \str_count_ignore_spaces:n {#1} ; }
-\cs_new_protected:Npn \__tl_analysis:n #1
- {
- \group_begin:
- \group_align_safe_begin:
- \__tl_analysis_setup:n {#1}
- \__tl_analysis_a:n {#1}
- \__tl_analysis_b:n {#1}
- \group_align_safe_end:
- \group_end:
- }
-\cs_new_protected:Npn \__tl_analysis_setup:n #1
- {
- \int_set:Nn \tex_escapechar:D { -1 }
- \exp_after:wN \__tl_analysis_disable_loop:N
- \tl_to_str:n {#1} { ~ } { ? \__prg_break: }
- \__prg_break_point:
- \scan_stop:
- }
-\group_begin:
- \char_set_catcode_active:N \^^@
- \cs_new_protected:Npn \__tl_analysis_disable_loop:N #1
- {
- \tex_lccode:D 0 = `#1 ~
- \tex_lowercase:D { \tex_let:D ^^@ } \tex_undefined:D
- \__tl_analysis_disable_loop:N
- }
- \bool_lazy_or:nnT
- { \sys_if_engine_ptex_p: }
- { \sys_if_engine_uptex_p: }
- {
- \cs_gset_protected:Npn \__tl_analysis_disable_loop:N #1
- {
- \use_none:n #1 \scan_stop:
- \if_int_compare:w 256 > `#1 \exp_stop_f:
- \tex_lccode:D 0 = `#1 ~
- \tex_lowercase:D { \tex_let:D ^^@ } \tex_undefined:D
- \fi:
- \__tl_analysis_disable_loop:N
- }
- }
-\group_end:
-\cs_new_protected:Npn \__tl_analysis_a:n #1
- {
- \int_set:Nn \tex_escapechar:D { 92 }
- \int_zero:N \l__tl_analysis_normal_int
- \int_zero:N \l__tl_analysis_index_int
- \int_zero:N \l__tl_analysis_nesting_int
- \if_false: { \fi: \__tl_analysis_a_loop:w #1 }
- \int_decr:N \l__tl_analysis_index_int
- }
-\cs_new_protected:Npn \__tl_analysis_a_loop:w
- { \tex_futurelet:D \l__tl_analysis_token \__tl_analysis_a_type:w }
-\cs_new_protected:Npn \__tl_analysis_a_type:w
- {
- \l__tl_analysis_type_int =
- \if_meaning:w \l__tl_analysis_token \c_space_token
- 0
- \else:
- \if_catcode:w \exp_not:N \l__tl_analysis_token \c_group_begin_token
- 1
- \else:
- \if_catcode:w \exp_not:N \l__tl_analysis_token \c_group_end_token
- - 1
- \else:
- 2
- \fi:
- \fi:
- \fi:
- \exp_stop_f:
- \if_case:w \l__tl_analysis_type_int
- \exp_after:wN \__tl_analysis_a_space:w
- \or: \exp_after:wN \__tl_analysis_a_bgroup:w
- \or: \exp_after:wN \__tl_analysis_a_safe:N
- \else: \exp_after:wN \__tl_analysis_a_egroup:w
- \fi:
- }
-\cs_new_protected:Npn \__tl_analysis_a_space:w
- {
- \tex_afterassignment:D \__tl_analysis_a_space_test:w
- \exp_after:wN \cs_set_eq:NN
- \exp_after:wN \l__tl_analysis_char_token
- \token_to_str:N
- }
-\cs_new_protected:Npn \__tl_analysis_a_space_test:w
- {
- \if_meaning:w \l__tl_analysis_char_token \c_space_token
- \tex_toks:D \l__tl_analysis_index_int { \exp_not:n { ~ } }
- \__tl_analysis_a_store:
- \else:
- \int_incr:N \l__tl_analysis_normal_int
- \fi:
- \__tl_analysis_a_loop:w
- }
-\group_begin:
- \char_set_catcode_group_begin:N \^^@
- \char_set_catcode_group_end:N \^^E
- \cs_new_protected:Npn \__tl_analysis_a_bgroup:w
- { \__tl_analysis_a_group:nw { \exp_after:wN ^^@ \if_false: ^^E \fi: } }
- \char_set_catcode_group_begin:N \^^B
- \char_set_catcode_group_end:N \^^@
- \cs_new_protected:Npn \__tl_analysis_a_egroup:w
- { \__tl_analysis_a_group:nw { \if_false: ^^B \fi: ^^@ } }
-\group_end:
-\cs_new_protected:Npn \__tl_analysis_a_group:nw #1
- {
- \tex_lccode:D 0 = \__tl_analysis_extract_charcode: \scan_stop:
- \tex_lowercase:D { \tex_toks:D \l__tl_analysis_index_int {#1} }
- \if_int_compare:w \tex_lccode:D 0 = \tex_escapechar:D
- \int_set:Nn \tex_escapechar:D { 139 - \tex_escapechar:D }
- \fi:
- \tex_afterassignment:D \__tl_analysis_a_group_test:w
- \exp_after:wN \cs_set_eq:NN
- \exp_after:wN \l__tl_analysis_char_token
- \token_to_str:N
- }
-\cs_new_protected:Npn \__tl_analysis_a_group_test:w
- {
- \if_charcode:w \l__tl_analysis_token \l__tl_analysis_char_token
- \__tl_analysis_a_store:
- \else:
- \int_incr:N \l__tl_analysis_normal_int
- \fi:
- \__tl_analysis_a_loop:w
- }
-\cs_new_protected:Npn \__tl_analysis_a_store:
- {
- \tex_advance:D \l__tl_analysis_nesting_int \l__tl_analysis_type_int
- \if_int_compare:w \tex_lccode:D 0 = `\ \exp_stop_f:
- \tex_multiply:D \l__tl_analysis_type_int 2 \exp_stop_f:
- \fi:
- \tex_skip:D \l__tl_analysis_index_int
- = \l__tl_analysis_normal_int sp plus \l__tl_analysis_type_int sp \scan_stop:
- \int_incr:N \l__tl_analysis_index_int
- \int_zero:N \l__tl_analysis_normal_int
- \if_int_compare:w \l__tl_analysis_nesting_int = -1 \exp_stop_f:
- \cs_set_eq:NN \__tl_analysis_a_loop:w \scan_stop:
- \fi:
- }
-\cs_new_protected:Npn \__tl_analysis_a_safe:N #1
- {
- \if_charcode:w
- \scan_stop:
- \exp_after:wN \use_none:n \token_to_str:N #1 \prg_do_nothing:
- \scan_stop:
- \int_incr:N \l__tl_analysis_normal_int
- \else:
- \__tl_analysis_cs_space_count:NN \__tl_analysis_a_cs:ww #1
- \fi:
- \__tl_analysis_a_loop:w
- }
-\cs_new_protected:Npn \__tl_analysis_a_cs:ww #1; #2;
- {
- \if_int_compare:w #1 > 0 \exp_stop_f:
- \tex_skip:D \l__tl_analysis_index_int
- = \__int_eval:w \l__tl_analysis_normal_int + 1 sp \scan_stop:
- \tex_advance:D \l__tl_analysis_index_int #1 \exp_stop_f:
- \l__tl_analysis_normal_int #2 \exp_stop_f:
- \else:
- \tex_advance:D \l__tl_analysis_normal_int #2 \exp_stop_f:
- \fi:
- }
-\cs_new_protected:Npn \__tl_analysis_b:n #1
- {
- \tl_gset:Nx \g__tl_analysis_result_tl
- {
- \__tl_analysis_b_loop:w 0; #1
- \__prg_break_point:
- }
- }
-\cs_new:Npn \__tl_analysis_b_loop:w #1;
- {
- \exp_after:wN \__tl_analysis_b_normals:ww
- \__int_value:w \tex_skip:D #1 ; #1 ;
- }
-\cs_new:Npn \__tl_analysis_b_normals:ww #1;
- {
- \if_int_compare:w #1 = 0 \exp_stop_f:
- \__tl_analysis_b_special:w
- \fi:
- \__tl_analysis_b_normal:wwN #1;
- }
-\cs_new:Npn \__tl_analysis_b_normal:wwN #1; #2; #3
- {
- \exp_not:n { \exp_not:n { #3 } } \s__tl
- \if_charcode:w
- \scan_stop:
- \exp_after:wN \use_none:n \token_to_str:N #3 \prg_do_nothing:
- \scan_stop:
- \exp_after:wN \__tl_analysis_b_char:Nww
- \else:
- \exp_after:wN \__tl_analysis_b_cs:Nww
- \fi:
- #3 #1; #2;
- }
-\cs_new:Npx \__tl_analysis_b_char:Nww #1
- {
- \exp_not:N \if_meaning:w #1 \exp_not:N \tex_undefined:D
- \token_to_str:N D \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_catcode_other_token
- \token_to_str:N C \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_catcode_letter_token
- \token_to_str:N B \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_math_toggle_token 3 \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_alignment_token 4 \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_math_superscript_token 7 \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_math_subscript_token 8 \exp_not:N \else:
- \exp_not:N \if_catcode:w #1 \c_space_token
- \token_to_str:N A \exp_not:N \else:
- 6
- \exp_not:n { \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: }
- \exp_not:N \__int_value:w `#1 \s__tl
- \exp_not:N \exp_after:wN \exp_not:N \__tl_analysis_b_normals:ww
- \exp_not:N \__int_value:w \exp_not:N \__int_eval:w - 1 +
- }
-\cs_new:Npn \__tl_analysis_b_cs:Nww #1
- {
- 0 -1 \s__tl
- \__tl_analysis_cs_space_count:NN \__tl_analysis_b_cs_test:ww #1
- }
-\cs_new:Npn \__tl_analysis_b_cs_test:ww #1 ; #2 ; #3 ; #4 ;
- {
- \exp_after:wN \__tl_analysis_b_normals:ww
- \__int_value:w \__int_eval:w
- \if_int_compare:w #1 = 0 \exp_stop_f:
- #3
- \else:
- \tex_skip:D \__int_eval:w #4 + #1 \__int_eval_end:
- \fi:
- - #2
- \exp_after:wN ;
- \__int_value:w \__int_eval:w #4 + #1 ;
- }
-\group_begin:
- \char_set_catcode_other:N A
- \cs_new:Npn \__tl_analysis_b_special:w
- \fi: \__tl_analysis_b_normal:wwN 0 ; #1 ;
- {
- \fi:
- \if_int_compare:w #1 = \l__tl_analysis_index_int
- \exp_after:wN \__prg_break:
- \fi:
- \tex_the:D \tex_toks:D #1 \s__tl
- \if_case:w \etex_gluestretch:D \tex_skip:D #1 \exp_stop_f:
- A
- \or: 1
- \or: 1
- \else: 2
- \fi:
- \if_int_odd:w \etex_gluestretch:D \tex_skip:D #1 \exp_stop_f:
- \exp_after:wN \__tl_analysis_b_special_char:wN \__int_value:w
- \else:
- \exp_after:wN \__tl_analysis_b_special_space:w \__int_value:w
- \fi:
- \__int_eval:w 1 + #1 \exp_after:wN ;
- \token_to_str:N
- }
-\group_end:
-\cs_new:Npn \__tl_analysis_b_special_char:wN #1 ; #2
- {
- \__int_value:w `#2 \s__tl
- \__tl_analysis_b_loop:w #1 ;
- }
-\cs_new:Npn \__tl_analysis_b_special_space:w #1 ; ~
- {
- 32 \s__tl
- \__tl_analysis_b_loop:w #1 ;
- }
-\cs_new_protected:Npn \__tl_analysis_map_inline:nn #1
- {
- \__tl_analysis:n {#1}
- \int_gincr:N \g__prg_map_int
- \exp_args:Nc \__tl_analysis_map_inline_aux:Nn
- { __tl_analysis_map_inline_ \int_use:N \g__prg_map_int :wNw }
- }
-\cs_new_protected:Npn \__tl_analysis_map_inline_aux:Nn #1#2
- {
- \cs_gset_protected:Npn #1 ##1 \s__tl ##2 ##3 \s__tl
- {
- \use_none:n ##2
- #2
- #1
- }
- \exp_after:wN #1
- \g__tl_analysis_result_tl
- \s__tl { ? \tl_map_break: } \s__tl
- \__prg_break_point:Nn \tl_map_break: { \int_gdecr:N \g__prg_map_int }
- }
-\cs_new_protected:Npn \tl_show_analysis:N #1
- {
- \tl_if_exist:NTF #1
- {
- \exp_args:No \__tl_analysis:n {#1}
- \__msg_show_pre:nnxxxx { LaTeX / kernel } { show-tl-analysis }
- { \token_to_str:N #1 } { \tl_if_empty:NTF #1 { } { ? } } { } { }
- \__tl_analysis_show:
- }
- { \tl_show:N #1 }
- }
-\cs_new_protected:Npn \tl_show_analysis:n #1
- {
- \__tl_analysis:n {#1}
- \__msg_show_pre:nnxxxx { LaTeX / kernel } { show-tl-analysis }
- { } { \tl_if_empty:nTF {#1} { } { ? } } { } { }
- \__tl_analysis_show:
- }
-\cs_new_protected:Npn \__tl_analysis_show:
- {
- \group_begin:
- \exp_args:NNx
- \group_end:
- \__msg_show_wrap:n
- {
- \exp_after:wN \__tl_analysis_show_loop:wNw \g__tl_analysis_result_tl
- \s__tl { ? \__prg_break: } \s__tl
- \__prg_break_point:
- }
- }
-\cs_new:Npn \__tl_analysis_show_loop:wNw #1 \s__tl #2 #3 \s__tl
- {
- \use_none:n #2
- \exp_not:n { \\ > \ \ }
- \if_int_compare:w "#2 = 0 \exp_stop_f:
- \exp_after:wN \__tl_analysis_show_cs:n
- \else:
- \if_int_compare:w "#2 = 13 \exp_stop_f:
- \exp_after:wN \exp_after:wN
- \exp_after:wN \__tl_analysis_show_active:n
- \else:
- \exp_after:wN \exp_after:wN
- \exp_after:wN \__tl_analysis_show_normal:n
- \fi:
- \fi:
- {#1}
- \__tl_analysis_show_loop:wNw
- }
-\cs_new:Npn \__tl_analysis_show_normal:n #1
- {
- \exp_after:wN \token_to_str:N #1 ~
- ( \exp_after:wN \token_to_meaning:N #1 )
- }
-\cs_new:Npn \__tl_analysis_show_value:N #1
- {
- \token_if_expandable:NF #1
- {
- \token_if_chardef:NTF #1 \__prg_break: { }
- \token_if_mathchardef:NTF #1 \__prg_break: { }
- \token_if_dim_register:NTF #1 \__prg_break: { }
- \token_if_int_register:NTF #1 \__prg_break: { }
- \token_if_skip_register:NTF #1 \__prg_break: { }
- \token_if_toks_register:NTF #1 \__prg_break: { }
- \use_none:nnn
- \__prg_break_point:
- \use:n { \exp_after:wN = \tex_the:D #1 }
- }
- }
-\cs_new:Npn \__tl_analysis_show_cs:n #1
- { \exp_args:No \__tl_analysis_show_long:nn {#1} { control~sequence= } }
-\cs_new:Npn \__tl_analysis_show_active:n #1
- { \exp_args:No \__tl_analysis_show_long:nn {#1} { active~character= } }
-\cs_new:Npn \__tl_analysis_show_long:nn #1
- {
- \__tl_analysis_show_long_aux:oofn
- { \token_to_str:N #1 }
- { \token_to_meaning:N #1 }
- { \__tl_analysis_show_value:N #1 }
- }
-\cs_new:Npn \__tl_analysis_show_long_aux:nnnn #1#2#3#4
- {
- \int_compare:nNnTF
- { \str_count:n { #1 ~ ( #4 #2 #3 ) } }
- > { \l_iow_line_count_int - 3 }
- {
- \str_range:nnn { #1 ~ ( #4 #2 #3 ) } { 1 }
- {
- \l_iow_line_count_int - 3
- - \str_count:N \c__tl_analysis_show_etc_str
- }
- \c__tl_analysis_show_etc_str
- }
- { #1 ~ ( #4 #2 #3 ) }
- }
-\cs_generate_variant:Nn \__tl_analysis_show_long_aux:nnnn { oof }
-\tl_const:Nx \c__tl_analysis_show_etc_str % (
- { \token_to_str:N \ETC.) }
-\__msg_kernel_new:nnn { kernel } { show-tl-analysis }
- {
- The~token~list~ \tl_if_empty:nF {#1} { #1 ~ }
- \tl_if_empty:nTF {#2}
- { is~empty }
- { contains~the~tokens: }
- }
-%%
-%%
-%% End of file `l3tl-analysis.sty'.