summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/unravel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-05 21:11:06 +0000
committerKarl Berry <karl@freefriends.org>2018-04-05 21:11:06 +0000
commitc489c440258c0e764d9a9424d724dd6306c8bd59 (patch)
tree0c8895cf16449120fc821e3b7a6b770859617f5b /Master/texmf-dist/tex/latex/unravel
parent0a9611e577325328b01e056e4f1a4f9124018446 (diff)
unravel (5apr18)
git-svn-id: svn://tug.org/texlive/trunk@47308 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/unravel')
-rw-r--r--Master/texmf-dist/tex/latex/unravel/unravel.sty743
1 files changed, 456 insertions, 287 deletions
diff --git a/Master/texmf-dist/tex/latex/unravel/unravel.sty b/Master/texmf-dist/tex/latex/unravel/unravel.sty
index 9d051e10e64..941ccfb4109 100644
--- a/Master/texmf-dist/tex/latex/unravel/unravel.sty
+++ b/Master/texmf-dist/tex/latex/unravel/unravel.sty
@@ -11,7 +11,7 @@
%% Communicate any suggestions for changing this package
%% to Bruno Le Floch (blflatex@gmail.com).
%%
-%% File: unravel.dtx Copyright (C) 2013, 2015 Bruno Le Floch
+%% File: unravel.dtx Copyright (C) 2013, 2015, 2018 Bruno Le Floch
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -146,14 +146,14 @@
\newlinechar = 10 ~
}
\expandafter \endgroup \__unravel_setup_latexe:
-\RequirePackage{expl3,xparse}[2015/09/11]
-\RequirePackage{gtl}[2015/09/21]
+\RequirePackage{expl3,xparse}[2018/02/21]
+\RequirePackage{gtl}[2018/04/04]
\csname cs_if_exist:cF\endcsname{str_range:nnn}{\RequirePackage{l3str}}
\csname use:n\endcsname
{%
\csname __unravel_setup_restore:\endcsname
\ProvidesExplPackage
- {unravel} {2015/09/30} {0.2} {Watching TeX digest tokens}%
+ {unravel} {2018/04/04} {0.2e} {Watching TeX digest tokens}%
\csname __unravel_setup_unravel:\endcsname
}%
\cs_new_eq:NN \__unravel_currentgrouptype: \etex_currentgrouptype:D
@@ -165,8 +165,10 @@
\cs_new_eq:NN \__unravel_mag: \tex_mag:D
\cs_new_eq:NN \__unravel_nullfont: \tex_nullfont:D
\cs_new_eq:NN \__unravel_the:w \tex_the:D
+\cs_new_eq:NN \__unravel_number:w \tex_number:D
\cs_new_eq:NN \c__unravel_prompt_ior \c_sixteen
\cs_new_eq:NN \c__unravel_noprompt_ior \c_minus_one
+\cs_generate_variant:Nn \seq_push:Nn { Nf }
\cs_generate_variant:Nn \str_head:n { f }
\cs_generate_variant:Nn \tl_to_str:n { o }
\cs_generate_variant:Nn \tl_if_head_eq_meaning:nNT { V }
@@ -174,9 +176,8 @@
\cs_generate_variant:Nn \tl_if_in:nnTF { nV }
\cs_generate_variant:Nn \tl_if_in:NnTF { No , NV }
\cs_generate_variant:Nn \tl_if_single_token:nT { V }
-\cs_generate_variant:Nn \tl_gset_rescan:Nnn { Nnx }
\cs_generate_variant:Nn \gtl_gput_right:Nn { NV }
-\cs_generate_variant:Nn \ior_get_str:NN { Nc }
+\cs_generate_variant:Nn \ior_str_get:NN { Nc }
\cs_generate_variant:Nn \gtl_if_empty:NTF { c }
\cs_generate_variant:Nn \gtl_to_str:N { c }
\cs_generate_variant:Nn \gtl_gpop_left:NN { c }
@@ -185,6 +186,17 @@
\cs_generate_variant:Nn \gtl_gconcat:NNN { ccc , cNc }
\cs_generate_variant:Nn \gtl_gclear:N { c }
\cs_generate_variant:Nn \gtl_gclear_new:N { c }
+\tl_new:N \l__unravel_exp_tl
+\cs_new_protected:Npn \__unravel_exp_args:Nx #1#2
+ {
+ \cs_set_nopar:Npx \l__unravel_exp_tl { \exp_not:N #1 {#2} }
+ \l__unravel_exp_tl
+ }
+\cs_new_protected:Npn \__unravel_exp_args:NNx #1#2#3
+ {
+ \cs_set_nopar:Npx \l__unravel_exp_tl { \exp_not:N #1 \exp_not:N #2 {#3} }
+ \l__unravel_exp_tl
+ }
\cs_new_protected_nopar:Npn \__unravel_tmp:w { }
\cs_set_protected:Npn \__unravel_tmp:w #1
{
@@ -254,7 +266,7 @@
}
\cs_new:Npn \__unravel_strip_escape_aux:N #1 { \c_zero }
\cs_new:Npn \__unravel_strip_escape_aux:w #1#2
- { - \__int_value:w #1 \c_zero }
+ { - \__unravel_number:w #1 \c_zero }
\cs_new:Npn \__unravel_to_str:n #1
{
\tl_if_head_eq_meaning:nNTF {#1} \scan_stop:
@@ -272,8 +284,8 @@
\cs_new:Npn \__unravel_to_str_auxii:w ##1 #1 ##2 \q_mark ##3 \q_stop
{ \cs_if_exist_use:cF { __unravel_ ##2 _to_str:n } { \tl_to_str:n } }
}
-\exp_args:No \__unravel_tmp:w { \tl_to_str:n { s__ } }
-\cs_new:Npn \__unravel_gtl_to_str:n #1 { \__gtl_to_str:w #1 }
+\exp_args:No \__unravel_tmp:w { \tl_to_str:n { s _ _ } }
+\cs_new:Npn \__unravel_gtl_to_str:n { \gtl_to_str:n }
\cs_new:Npn \__unravel_str_truncate_left:nn #1#2
{
\exp_args:Nf \__unravel_str_truncate_left_aux:nnn
@@ -379,8 +391,7 @@
{
\gtl_if_head_is_N_type:NTF #1
{
- \exp_last_unbraced:Nx \__unravel_token_if_definable:NTF
- { \gtl_head:N #1 }
+ \gtl_head_do:NN #1 \__unravel_token_if_definable:NTF
{ \prg_return_true: }
{ \prg_return_false: }
}
@@ -388,24 +399,53 @@
}
{ \prg_return_false: }
}
+\cs_new_nopar:Npn \__unravel_prev_input_count:
+ {
+ \int_eval:n
+ {
+ 0
+ \seq_map_function:NN \g__unravel_prev_input_seq
+ \__unravel_prev_input_count_aux:n
+ }
+ }
+\cs_new:Npn \__unravel_prev_input_count_aux:n #1
+ { \tl_if_empty:nF {#1} { + 1 } }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_get:N
+ { \seq_get_right:NN \g__unravel_prev_input_seq }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_gpush:
+ { \seq_gput_right:Nn \g__unravel_prev_input_seq { } }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_gpush:N
+ { \seq_gput_right:NV \g__unravel_prev_input_seq }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_gpop:N
+ { \seq_gpop_right:NN \g__unravel_prev_input_seq }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_gpush_gtl:
+ { \seq_gput_right:NV \g__unravel_prev_input_seq \c_empty_gtl }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_gpush_gtl:N
+ { \seq_gput_right:NV \g__unravel_prev_input_seq }
+\cs_new_protected_nopar:Npn \__unravel_prev_input_gpop_gtl:N
+ { \seq_gpop_right:NN \g__unravel_prev_input_seq }
\cs_new_protected:Npn \__unravel_prev_input_silent:n #1
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_prev_input_tl
+ \__unravel_prev_input_gpop:N \l__unravel_prev_input_tl
\tl_put_right:Nn \l__unravel_prev_input_tl {#1}
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_prev_input_tl
+ \__unravel_prev_input_gpush:N \l__unravel_prev_input_tl
}
-\cs_generate_variant:Nn \__unravel_prev_input_silent:n { V , x }
+\cs_generate_variant:Nn \__unravel_prev_input_silent:n { V }
+\cs_new_protected:Npn \__unravel_prev_input_silent:x
+ { \__unravel_exp_args:Nx \__unravel_prev_input_silent:n }
\cs_new_protected:Npn \__unravel_prev_input:n #1
{
\__unravel_prev_input_silent:n {#1}
\__unravel_print_action:x { \tl_to_str:n {#1} }
}
-\cs_generate_variant:Nn \__unravel_prev_input:n { V , x }
+\cs_generate_variant:Nn \__unravel_prev_input:n { V }
+\cs_new_protected:Npn \__unravel_prev_input:x
+ { \__unravel_exp_args:Nx \__unravel_prev_input:n }
\cs_new_protected:Npn \__unravel_prev_input_gtl:N #1
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_prev_input_gtl
+ \__unravel_prev_input_gpop_gtl:N \l__unravel_prev_input_gtl
\gtl_concat:NNN \l__unravel_prev_input_gtl \l__unravel_prev_input_gtl #1
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_prev_input_gtl
+ \__unravel_prev_input_gpush_gtl:N \l__unravel_prev_input_gtl
}
\cs_new_protected:Npn \__unravel_prev_input_join_get:nN #1
{
@@ -415,14 +455,14 @@
{ 3 } { \__unravel_join_get_aux:NNN \muskip_eval:n \etex_muexpr:D }
}
{
- \msg_error:nnn { unravel } { internal } { join-factor }
+ \__unravel_error:nnnnn { internal } { join-factor } { } { } { }
\__unravel_join_get_aux:NNN \use:n \prg_do_nothing:
}
}
\cs_new_protected:Npn \__unravel_join_get_aux:NNN #1#2#3
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\tl_set:Nx #3 { #1 { \l__unravel_tmpa_tl #2 \l__unravel_head_tl } }
}
\tl_new:N \g__unravel_before_print_state_tl
@@ -464,7 +504,7 @@
\gtl_new:N \g__unravel_output_gtl
\gtl_new:N \l__unravel_head_gtl
\tl_new:N \l__unravel_head_tl
-\token_new:Nn \l__unravel_head_token { ? }
+\cs_new_eq:NN \l__unravel_head_token ?
\int_new:N \l__unravel_head_cmd_int
\int_new:N \l__unravel_head_char_int
\tl_new:N \l__unravel_head_meaning_tl
@@ -1273,8 +1313,8 @@
{
\exp_last_unbraced:NV \__unravel_set_cmd_aux_primitive:nn
\c__unravel_tex_relax_tl
- \msg_error:nnx { unravel } { unknown-primitive }
- { \l__unravel_head_meaning_tl }
+ \__unravel_error:nxxxx { unknown-primitive }
+ { \l__unravel_head_meaning_tl } { } { } { }
}
\cs_new_protected_nopar:Npn \__unravel_set_cmd_aux_cs:
{
@@ -1332,7 +1372,7 @@
{ \tl_set:Nn \l__unravel_head_meaning_tl { other~ } }
\exp_after:wN \__unravel_set_cmd_aux_char:w
\l__unravel_head_meaning_tl \q_stop
- \exp_args:NNx \int_set:Nn \l__unravel_head_char_int
+ \__unravel_exp_args:NNx \int_set:Nn \l__unravel_head_char_int
{ ` \__unravel_token_to_char:N \l__unravel_head_token }
}
\cs_new_protected:Npn \__unravel_set_cmd_aux_char:w #1 ~ #2 \q_stop
@@ -1379,8 +1419,9 @@
\gtl_if_head_is_N_type:NT #1
{
\tl_set:Nx \l__unravel_input_tmpa_tl { \gtl_left_tl:N #1 }
- \exp_last_unbraced:Nx \__unravel_input_split_auxii:N
- { \tl_head:N \l__unravel_input_tmpa_tl }
+ \__unravel_exp_args:NNx \use:nn
+ \__unravel_input_split_auxii:N
+ { \tl_head:N \l__unravel_input_tmpa_tl }
}
}
}
@@ -1513,7 +1554,9 @@
\gtl_gclear_new:c { g__unravel_input_ \int_use:N \g__unravel_input_int _gtl }
\gtl_gset:cn { g__unravel_input_ \int_use:N \g__unravel_input_int _gtl }
}
-\cs_generate_variant:Nn \__unravel_back_input:n { x , V , o }
+\cs_generate_variant:Nn \__unravel_back_input:n { V , o }
+\cs_new_protected:Npn \__unravel_back_input:x
+ { \__unravel_exp_args:Nx \__unravel_back_input:n }
\cs_new_protected:Npn \__unravel_back_input_gtl:N #1
{
\gtl_if_tl:NTF #1
@@ -1544,17 +1587,18 @@
}
\cs_new_protected_nopar:Npn \__unravel_insert_group_begin_error:
{
- \msg_error:nn { unravel } { missing-lbrace }
+ \tl_set_eq:NN \l__unravel_tmpa_tl \l__unravel_head_tl
\__unravel_back_input:
\gtl_set_eq:NN \l__unravel_head_gtl \c_group_begin_gtl
\__unravel_back_input:
+ \__unravel_tex_error:nV { missing-lbrace } \l__unravel_tmpa_tl
\__unravel_print_action:
}
\cs_new_protected_nopar:Npn \__unravel_insert_dollar_error:
{
\__unravel_back_input:
\__unravel_back_input:n { $ } % $
- \msg_error:nn { unravel } { missing-dollar }
+ \__unravel_error:nnnnn { missing-dollar } { } { } { } { }
\__unravel_print_action:
}
\use:x
@@ -1612,8 +1656,8 @@
}
\cs_new_protected:Npn \__unravel_macro_call_quick_runaway:Nw #1#2 \q_stop
{
- \msg_error:nnxx { unravel } { runaway-macro-parameter }
- { \tl_to_str:N \l__unravel_head_tl } { \tl_to_str:n {#1} }
+ \__unravel_error:nxxxx { runaway-macro-parameter }
+ { \tl_to_str:N \l__unravel_head_tl } { \tl_to_str:n {#1} } { } { }
}
\cs_new_protected_nopar:Npn \__unravel_expand:
{
@@ -1621,7 +1665,7 @@
\bool_if:NT \g__unravel_internal_debug_bool
{
\__unravel_set_cmd:
- \iow_term:x { Exp:~\int_to_arabic:n { \l__unravel_head_cmd_int } }
+ \__unravel_exp_args:Nx \iow_term:n { Exp:~\int_to_arabic:n { \l__unravel_head_cmd_int } }
}
\token_if_macro:NTF \l__unravel_head_token
{ \__unravel_macro_call: }
@@ -1634,11 +1678,11 @@
{
\cs_if_exist_use:cF
{ __unravel_expandable_ \int_use:N \l__unravel_head_cmd_int : }
- { \msg_error:nnx { unravel } { internal } { expandable } }
+ { \__unravel_error:nxxxx { internal } { expandable } { } { } { } }
}
{
- \msg_error:nnx { unravel } { unknown-primitive }
- { \l__unravel_head_meaning_tl }
+ \__unravel_error:nxxxx { unknown-primitive }
+ { \l__unravel_head_meaning_tl } { } { } { }
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\__unravel_print_action:
}
@@ -1697,14 +1741,17 @@
{
\__unravel_get_x_non_relax:
\token_if_eq_catcode:NNF \l__unravel_head_token \c_group_begin_token
- { \__unravel_insert_group_begin_error: }
+ {
+ \__unravel_insert_group_begin_error:
+ \__unravel_get_next:
+ }
}
\cs_new_protected:Npn \__unravel_scan_keyword:n #1
{ \__unravel_scan_keyword:nTF {#1} { } { } }
\prg_new_protected_conditional:Npnn \__unravel_scan_keyword:n #1
{ T , F , TF }
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \c_empty_gtl
+ \__unravel_prev_input_gpush_gtl:
\__unravel_scan_keyword_loop:NNN \c_true_bool
#1 \q_recursion_tail \q_recursion_tail \q_recursion_stop
}
@@ -1713,7 +1760,7 @@
\quark_if_recursion_tail_stop_do:nn {#2}
{ \__unravel_scan_keyword_true: }
\quark_if_recursion_tail_stop_do:nn {#3}
- { \msg_error:nnx { unravel } { internal } { odd-keyword-length } }
+ { \__unravel_error:nxxxx { internal } { odd-keyword-length } { } { } { } }
\__unravel_get_x_next:
\__unravel_scan_keyword_test:NNTF #2#3
{
@@ -1747,7 +1794,7 @@
}
\cs_new_protected_nopar:Npn \__unravel_scan_keyword_true:
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpb_gtl
+ \__unravel_prev_input_gpop_gtl:N \l__unravel_tmpb_gtl
\__unravel_prev_input:x { \gtl_to_str:N \l__unravel_tmpb_gtl }
\prg_return_true:
}
@@ -1755,7 +1802,7 @@
#1 \q_recursion_stop
{
\__unravel_back_input:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpb_gtl
+ \__unravel_prev_input_gpop_gtl:N \l__unravel_tmpb_gtl
\__unravel_back_input_gtl:N \l__unravel_tmpb_gtl
\prg_return_false:
}
@@ -1763,7 +1810,7 @@
{
\__unravel_scan_keyword:nF { tToO }
{
- \msg_error:nn { unravel } { missing-to }
+ \__unravel_error:nnnnn { missing-to } { } { } { } { }
\__unravel_prev_input:n { to }
}
}
@@ -1788,7 +1835,7 @@
}
}
{
- \msg_error:nn { unravel } { missing-font-id }
+ \__unravel_error:nnnnn { missing-font-id } { } { } { } { }
\__unravel_back_input:
\__unravel_prev_input:n { \__unravel_nullfont: }
}
@@ -1818,30 +1865,43 @@
}
\cs_new_protected:Npn \__unravel_scan_something_aux:nwn #1#2 \q_stop #3
{
- \int_compare:nNnTF
- { ( #1 + \c_two ) / \c_four } > { ( #3 + \c_two ) / \c_four }
+ \int_compare:nT { #3 < 4 <= #1 }
{
\__unravel_back_input:
- \msg_error:nn { unravel } { missing-something }
- \tl_clear:N \l__unravel_tmpa_tl
+ \__unravel_tex_error:nV { missing-number } \l__unravel_head_tl
+ \__unravel_thing_use_get:nnNN { 1 } {#3} \c_zero_dim \l__unravel_tmpa_tl
+ \__unravel_scan_something_internal_auxii:Vn \l__unravel_tmpa_tl { 1 }
+ \__unravel_break:w
}
+ \int_compare:nNnT {#1} = { 8 }
{
- \tl_if_empty:nF {#2}
- {
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
- \__unravel_print_action:
- #2
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
- }
- \__unravel_thing_use_get:nnNN {#1} {#3} \l__unravel_head_tl \l__unravel_tmpa_tl
+ \__unravel_tex_error:nV { the-cannot } \l__unravel_head_tl
+ \__unravel_scan_something_internal_auxii:Vn \c_zero { 0 }
+ \__unravel_break:w
}
- \__unravel_prev_input_silent:V \l__unravel_tmpa_tl
+ \tl_if_empty:nF {#2}
+ {
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
+ \__unravel_print_action:
+ #2
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
+ }
+ \int_compare:nNnTF {#3} < { 4 }
+ { \__unravel_thing_use_get:nnNN {#1} {#3} \l__unravel_head_tl \l__unravel_tmpa_tl }
+ { \tl_set:Nx \l__unravel_tmpa_tl { \__unravel_the:w \l__unravel_head_tl } }
+ \__unravel_scan_something_internal_auxii:Vn \l__unravel_tmpa_tl {#1}
+ \__unravel_break_point:
+ \int_compare:nNnT {#3} < { 4 } { \__unravel_print_action: }
+ }
+\cs_new_protected:Npn \__unravel_scan_something_internal_auxii:nn #1#2
+ {
+ \__unravel_prev_input_silent:n {#1}
\__unravel_set_action_text:
\__unravel_set_action_text:x
- { \g__unravel_action_text_str \use:n { ~ => ~ } \tl_to_str:N \l__unravel_tmpa_tl }
- \int_compare:nNnF {#3} > { 3 } { \__unravel_print_action: }
- \int_gset:Nn \g__unravel_val_level_int {#1}
+ { \g__unravel_action_text_str \use:n { ~ => ~ } \tl_to_str:n {#1} }
+ \int_gset:Nn \g__unravel_val_level_int {#2}
}
+\cs_generate_variant:Nn \__unravel_scan_something_internal_auxii:nn { V }
\cs_new_nopar:Npn \__unravel_thing_case:
{
\int_case:nnF \l__unravel_head_cmd_int
@@ -1868,6 +1928,8 @@
{ 87 } { 4 } % set_font
{ 88 } { 4 } % def_font
{ 89 } { \__unravel_thing_register: } % register
+ {101 } { 4 } % letterspace_font
+ {102 } { 4 } % pdf_copy_font
}
{ 8 }
}
@@ -1945,19 +2007,15 @@
}
}
{
- \int_compare:nNnTF {#2} = { 3 }
+ \int_case:nnF {#1}
{
- \int_case:nnF {#1}
- {
- { 0 } { \tl_set:Nx #4 { \int_eval:n {#3} } }
- { 3 } { \tl_set:Nx #4 { \muskip_eval:n {#3} } }
- }
- {
- \__unravel_tex_error:nV { incompatible-units } #3
- \tl_set:Nx #4 { \muskip_eval:n { \etex_gluetomu:D #3 } }
- }
+ { 0 } { \tl_set:Nx #4 { \int_eval:n {#3} } }
+ { 3 } { \tl_set:Nx #4 { \muskip_eval:n {#3} } }
+ }
+ {
+ \__unravel_tex_error:nV { incompatible-units } #3
+ \tl_set:Nx #4 { \muskip_eval:n { \etex_gluetomu:D #3 } }
}
- { \tl_set:Nx #4 { \__unravel_the:w #3 } }
}
}
\cs_new_protected:Npn \__unravel_scan_expr:N #1
@@ -2007,7 +2065,7 @@
{
\bool_if:NTF #2
{
- \msg_error:nn { unravel } { missing-rparen }
+ \__unravel_error:nnnnn { missing-rparen } { } { } { } { }
\__unravel_back_input:
\__unravel_prev_input:V \c__unravel_rp_tl
}
@@ -2062,16 +2120,16 @@
{
\__unravel_prev_input:V \l__unravel_head_tl
\__unravel_get_x_next:
- \__unravel_scan_int_explicit:n { ' }
+ \__unravel_scan_int_explicit:Nn \c_false_bool { ' }
}
\c__unravel_dq_tl
{
\__unravel_prev_input:V \l__unravel_head_tl
\__unravel_get_x_next:
- \__unravel_scan_int_explicit:n { " }
+ \__unravel_scan_int_explicit:Nn \c_false_bool { " }
}
}
- { \__unravel_scan_int_explicit:n { } }
+ { \__unravel_scan_int_explicit:Nn \c_false_bool { } }
}
\cs_new_protected_nopar:Npn \__unravel_scan_int_lq:
{
@@ -2088,10 +2146,10 @@
{ ` \gtl_to_str:N \l__unravel_head_gtl = \l__unravel_tmpa_tl }
\__unravel_skip_optional_space:
}
-\cs_new_protected:Npn \__unravel_scan_int_explicit:n #1
+\cs_new_protected:Npn \__unravel_scan_int_explicit:Nn #1#2
{
\if_int_compare:w \c_one
- < #1 1 \exp_after:wN \exp_not:N \l__unravel_head_tl \exp_stop_f:
+ < #2 1 \exp_after:wN \exp_not:N \l__unravel_head_tl \exp_stop_f:
\exp_after:wN \use_i:nn
\else:
\exp_after:wN \use_ii:nn
@@ -2099,11 +2157,16 @@
{
\__unravel_prev_input:V \l__unravel_head_tl
\__unravel_get_x_next:
- \__unravel_scan_int_explicit:n {#1}
+ \__unravel_scan_int_explicit:Nn \c_true_bool {#2}
}
{
\token_if_eq_catcode:NNF \l__unravel_head_token \c_space_token
{ \__unravel_back_input: }
+ \bool_if:NF #1
+ {
+ \__unravel_tex_error:nV { missing-number } \l__unravel_head_tl
+ \__unravel_prev_input:n { 0 }
+ }
}
}
\cs_new_protected_nopar:Npn \__unravel_scan_normal_dimen:
@@ -2111,7 +2174,7 @@
\cs_new_protected:Npn \__unravel_scan_dimen:nN #1#2
{
\__unravel_scan_signs:
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_set_cmd:
\__unravel_cmd_if_internal:TF
{
@@ -2122,7 +2185,7 @@
{ \__unravel_scan_dim_unit:nN {#1} #2 }
}
{ \__unravel_scan_dimen_char:nN {#1} #2 }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_prev_input_silent:V \l__unravel_head_tl
}
\cs_new_protected:Npn \__unravel_scan_dimen_char:nN #1#2
@@ -2169,17 +2232,18 @@
\__unravel_set_cmd:
\__unravel_cmd_if_internal:TF
{
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_scan_something_internal:n {#1}
\__unravel_prev_input_join_get:nN {#1} \l__unravel_tmpa_tl
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpush:N \l__unravel_tmpa_tl
\__unravel_break:w
}
{ \__unravel_back_input: }
\int_compare:nNnT {#1} = { 3 }
{
\__unravel_scan_keyword:nT { mMuU } { \__unravel_break:w }
- \msg_error:nn { unravel } { missing-mudim }
+ \__unravel_tex_error:nV { missing-mu } \l__unravel_head_tl
+ \__unravel_prev_input:n { mu }
\__unravel_break:w
}
\__unravel_scan_keyword:nT { eEmM } { \__unravel_break:w }
@@ -2198,6 +2262,8 @@
\__unravel_scan_keyword:nT { nNdD } { \__unravel_break:w }
\__unravel_scan_keyword:nT { nNcC } { \__unravel_break:w }
\__unravel_scan_keyword:nT { sSpP } { \__unravel_break:w }
+ \__unravel_tex_error:nV { missing-pt } \l__unravel_head_tl
+ \__unravel_prev_input:n { pt }
\__unravel_break_point:
}
\cs_new_protected_nopar:Npn \__unravel_scan_inf_unit_loop:
@@ -2224,24 +2290,24 @@
{ \__unravel_scan_glue:n { 3 } }
\cs_new_protected:Npn \__unravel_scan_glue:n #1
{
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_scan_signs:
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_set_cmd:
\__unravel_cmd_if_internal:TF
{
\__unravel_scan_something_internal:n {#1}
\int_case:nnF \g__unravel_val_level_int
{
- { 0 } { \__unravel_scan_dimen:nN {#1} \c_false_bool }
+ { 0 } { \__unravel_scan_dim_unit:nN {#1} \c_false_bool }
{ 1 } { }
}
{ \__unravel_break:w }
}
{ \__unravel_back_input: \__unravel_scan_dimen:nN {#1} \c_false_bool }
\__unravel_prev_input_join_get:nN {#1} \l__unravel_tmpa_tl
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpush:
+ \__unravel_prev_input_gpush:N \l__unravel_tmpa_tl
\__unravel_scan_keyword:nT { pPlLuUsS }
{ \__unravel_scan_dimen:nN {#1} \c_true_bool }
\__unravel_scan_keyword:nT { mMiInNuUsS }
@@ -2280,7 +2346,7 @@
{ \__unravel_get_next: }
\__unravel_gtl_if_head_is_definable:NF \l__unravel_head_gtl
{
- \msg_error:nn { unravel } { missing-cs }
+ \__unravel_error:nnnnn { missing-cs } { } { } { } { }
\__unravel_back_input:
\tl_set:Nn \l__unravel_head_tl { \__unravel_inaccessible:w }
}
@@ -2289,9 +2355,9 @@
}
\cs_new_protected:Npn \__unravel_scan_toks_to_str:
{
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_scan_toks:NN \c_false_bool \c_true_bool
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\__unravel_prev_input_silent:x
{ { \exp_after:wN \tl_to_str:n \l__unravel_tmpa_tl } }
}
@@ -2323,7 +2389,7 @@
\__unravel_back_input:
\__unravel_input_gpop_item:NF \l__unravel_head_tl
{
- \msg_error:nn { unravel } { runaway-text }
+ \__unravel_error:nnnnn { runaway-text } { } { } { } { }
\__unravel_exit:w
}
\tl_set:Nx \l__unravel_head_tl { { \exp_not:V \l__unravel_head_tl } }
@@ -2342,10 +2408,10 @@
\__unravel_scan_group_xdef:n { 1 }
}
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \c_empty_gtl
+ \__unravel_prev_input_gpush_gtl:
\__unravel_prev_input_gtl:N \l__unravel_head_gtl
\__unravel_scan_group_x:n { 1 }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpb_gtl
+ \__unravel_prev_input_gpop_gtl:N \l__unravel_tmpb_gtl
\__unravel_prev_input_silent:x
{ \gtl_left_tl:N \l__unravel_tmpb_gtl }
}
@@ -2408,7 +2474,7 @@
\__unravel_prev_input:V \l__unravel_head_tl
}
{
- \gtl_set:Nx \l__unravel_tmpb_gtl { \l__unravel_head_tl }
+ \__unravel_exp_args:NNx \gtl_set:Nn \l__unravel_tmpb_gtl { \l__unravel_head_tl }
\__unravel_prev_input_gtl:N \l__unravel_tmpb_gtl
\__unravel_print_action:
}
@@ -2472,8 +2538,8 @@
\cs_new_protected_nopar:Npn \__unravel_do_box_error:
{
\__unravel_back_input:
- \msg_error:nn { unravel } { missing-box }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_error:nnnnn { missing-box } { } { } { } { }
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
\cs_new_protected:Npn \__unravel_do_begin_box:N #1
@@ -2498,7 +2564,7 @@
{
\bool_if:NTF #1 { \__unravel_do_leaders_fetch_skip: }
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_if_head_eq_meaning:VNT \l__unravel_head_tl \tex_shipout:D
{ \__unravel_prepare_mag: }
\tl_use:N \l__unravel_head_tl \scan_stop:
@@ -2513,14 +2579,14 @@
\int_compare:nNnTF \l__unravel_head_cmd_int
= { \__unravel_tex_use:n { \mode_if_vertical:TF { vskip } { hskip } } }
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\tl_put_left:NV \l__unravel_head_tl \l__unravel_tmpa_tl
\__unravel_do_append_glue:
}
{
\__unravel_back_input:
- \msg_error:nn { unravel } { improper-leaders }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_error:nnnnn { improper-leaders } { } { } { } { }
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
}
@@ -2531,10 +2597,10 @@
{ \__unravel_box_hook:N \tex_everyvbox:D }
% ^^A todo: TeX calls |normal_paragraph| here.
\__unravel_scan_spec:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_set_action_text:x
{ \tl_to_str:N \l__unravel_head_tl \iow_char:N \{ }
- \seq_push:Nx \l__unravel_leaders_box_seq
+ \seq_push:Nf \l__unravel_leaders_box_seq
{ \bool_if:NTF #1 { \mode_if_vertical:TF { v } { h } } { Z } }
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\gtl_gconcat:NNN \g__unravel_output_gtl
@@ -2548,7 +2614,7 @@
\str_if_eq_x:nnF
{ \tl_head:N \l__unravel_tmpa_tl } { \exp_not:N \__unravel_box_hook:w }
{
- \exp_args:Nx #1
+ \__unravel_exp_args:Nx #1
{
\exp_not:n { \__unravel_box_hook:w \prg_do_nothing: }
\exp_not:V #1
@@ -2598,18 +2664,22 @@
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_tmpa_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_tmpa_tl }
}
-\cs_generate_variant:Nn \__unravel_char:n { V , x }
+\cs_generate_variant:Nn \__unravel_char:n { V }
+\cs_new_protected:Npn \__unravel_char:x
+ { \__unravel_exp_args:Nx \__unravel_char:n }
\cs_new_protected:Npn \__unravel_char_in_mmode:n #1
{
\int_compare:nNnTF { \tex_mathcode:D #1 } = { "8000 }
{ % math active
- \gtl_set:Nx \l__unravel_head_gtl
+ \__unravel_exp_args:NNx \gtl_set:Nn \l__unravel_head_gtl
{ \char_generate:nn {#1} { 12 } }
\__unravel_back_input:
}
{ \__unravel_char:n {#1} }
}
-\cs_generate_variant:Nn \__unravel_char_in_mmode:n { V , x }
+\cs_generate_variant:Nn \__unravel_char_in_mmode:n { V }
+\cs_new_protected:Npn \__unravel_char_in_mmode:x
+ { \__unravel_exp_args:Nx \__unravel_char_in_mmode:n }
\cs_new_protected:Npn \__unravel_mathchar:n #1
{
\tex_mathchar:D #1 \scan_stop:
@@ -2618,7 +2688,8 @@
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_tmpa_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_tmpa_tl }
}
-\cs_generate_variant:Nn \__unravel_mathchar:n { x }
+\cs_new_protected:Npn \__unravel_mathchar:x
+ { \__unravel_exp_args:Nx \__unravel_mathchar:n }
\cs_new_protected:Npn \__unravel_new_graf:N #1
{
\tl_set:NV \l__unravel_tmpa_tl \__unravel_everypar:w
@@ -2706,8 +2777,8 @@
{
\int_compare:nNnTF \__unravel_currentgrouptype: = { 0 }
{ % bottom-level
- \msg_error:nnx { unravel } { extra-close }
- { \token_to_meaning:N \l__unravel_head_token }
+ \__unravel_error:nxxxx { extra-close }
+ { \token_to_meaning:N \l__unravel_head_token } { } { } { }
}
{
\__unravel_back_input:
@@ -2722,8 +2793,8 @@
}
{ \gtl_set_eq:NN \l__unravel_head_gtl \c_group_end_gtl }
\__unravel_back_input:
- \msg_error:nnx { unravel } { off-save }
- { \gtl_to_str:N \l__unravel_head_gtl }
+ \__unravel_error:nxxxx { off-save }
+ { \gtl_to_str:N \l__unravel_head_gtl } { } { } { }
}
}
\cs_new_protected:Npn \__unravel_mode_math:n #1
@@ -2748,7 +2819,7 @@
{
\token_if_eq_meaning:NNTF \l__unravel_head_token \tex_hrule:D
{
- \msg_error:nn { unravel } { hrule-bad-mode }
+ \__unravel_error:nnnnn { hrule-bad-mode } { } { } { } { }
\__unravel_print_action:
}
{ \__unravel_off_save: }
@@ -2787,7 +2858,7 @@
{
\__unravel_back_input:
\tl_set:Nn \l__unravel_head_tl { $ } % $
- \msg_error:nn { unravel } { missing-dollar }
+ \__unravel_error:nnnnn { missing-dollar } { } { } { } { }
}
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\__unravel_back_input_gtl:N \l__unravel_after_group_gtl
@@ -2799,10 +2870,10 @@
{
\__unravel_set_action_text:
\bool_if:NT \g__unravel_internal_debug_bool
- { \iow_term:x { Cmd:~\int_to_arabic:n { \l__unravel_head_cmd_int } } }
+ { \__unravel_exp_args:Nx \iow_term:n { Cmd:~\int_to_arabic:n { \l__unravel_head_cmd_int } } }
\cs_if_exist_use:cF
{ __unravel_cmd_ \int_use:N \l__unravel_head_cmd_int : }
- { \msg_error:nnx { unravel } { internal } { unknown-command } }
+ { \__unravel_error:nxxxx { internal } { unknown-command } { } { } { } }
}
\__unravel_new_tex_cmd:nn { relax } % 0
{ \__unravel_print_action: }
@@ -2857,7 +2928,7 @@
{ \__unravel_mode_math:n { \__unravel_sub_sup: } }
\cs_new_protected_nopar:Npn \__unravel_sub_sup:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_get_x_non_relax:
\__unravel_set_cmd:
@@ -2885,14 +2956,14 @@
{ \__unravel_prev_input:V \l__unravel_head_tl \__unravel_scan_int: }
}
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
}
{
\__unravel_back_input:
\__unravel_scan_left_brace:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\gtl_gconcat:NNN \g__unravel_output_gtl
\g__unravel_output_gtl \c_group_begin_gtl
@@ -2901,7 +2972,7 @@
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
\__unravel_new_tex_cmd:nn { endv } % 9
- { \msg_error:nn { unravel } { not-implemented } { alignments } }
+ { \__unravel_not_implemented:n { alignments } }
\__unravel_new_tex_cmd:nn { blank_char } % 10
{
\mode_if_horizontal:T
@@ -2969,10 +3040,10 @@
{
\__unravel_mode_math:n
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -2981,10 +3052,10 @@
{
\__unravel_mode_non_vertical:n
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\mode_if_math:TF
{ \__unravel_char_in_mmode:x { \tl_tail:N \l__unravel_head_tl } }
{ \__unravel_char:x { \tl_tail:N \l__unravel_head_tl } }
@@ -2994,23 +3065,23 @@
{
\__unravel_mode_math:n
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_mathchar:x { \tl_tail:N \l__unravel_head_tl }
}
}
\__unravel_new_tex_cmd:nn { mark } % 18
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\int_compare:nNnF \l__unravel_head_char_int = \c_zero
{ \__unravel_scan_int: }
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_scan_toks:NN \c_false_bool \c_true_bool
- \seq_gpop_right:Nn \g__unravel_prev_input_seq \l__unravel_tmpa_tl
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_print_action:x
{ \tl_to_str:N \l__unravel_head_tl \tl_to_str:N \l__unravel_tmpa_tl }
\tl_put_right:Nx \l__unravel_head_tl
@@ -3019,23 +3090,23 @@
}
\__unravel_new_tex_cmd:nn { xray } % 19
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\int_case:nnF \l__unravel_head_char_int
{
{ 0 }
{ % show
\__unravel_get_next:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\gtl_head_do:NN \l__unravel_head_gtl \l__unravel_tmpa_tl
}
{ 2 }
{ % showthe
\__unravel_get_x_next:
\__unravel_scan_something_internal:n { 5 }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
- \exp_args:Nx \etex_showtokens:D
- { \tl_tail:N \l__unravel_head_tl }
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
+ \__unravel_exp_args:Nx \use:n
+ { \etex_showtokens:D { \tl_tail:N \l__unravel_head_tl } }
}
}
{ % no operand for showlists, showgroups, showifs
@@ -3043,19 +3114,19 @@
{ \__unravel_scan_int: }
\int_compare:nNnT \l__unravel_head_char_int = \c_five % showtokens
{ \__unravel_scan_toks:NN \c_false_bool \c_false_bool }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
}
}
\__unravel_new_tex_cmd:nn { make_box } % 20
{
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_back_input:
\__unravel_do_box:N \c_false_bool
}
\cs_new_protected_nopar:Npn \__unravel_do_move:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_normal_dimen:
\__unravel_do_box:N \c_false_bool
@@ -3072,10 +3143,10 @@
}
\cs_new_protected_nopar:Npn \__unravel_do_unpackage:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -3097,11 +3168,11 @@
\int_compare:nNnTF \l__unravel_head_char_int < { 4 }
{ \tl_use:N \l__unravel_head_tl \__unravel_print_action: }
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\exp_args:Nf \__unravel_scan_glue:n
{ \int_eval:n { \l__unravel_head_char_int - 2 } }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -3114,12 +3185,12 @@
{ \__unravel_mode_math:n { \__unravel_do_append_glue: } }
\cs_new_protected_nopar:Npn \__unravel_do_append_kern:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\token_if_eq_meaning:NNTF \l__unravel_head_token \tex_kern:D
{ \__unravel_scan_dimen:nN { 2 } \c_false_bool }
{ \__unravel_scan_dimen:nN { 3 } \c_false_bool }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -3129,26 +3200,26 @@
{ \__unravel_mode_math:n { \__unravel_do_append_kern: } }
\__unravel_new_tex_cmd:nn { leader_ship } % 31
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_do_box:N \c_true_bool
}
\__unravel_new_tex_cmd:nn { halign } % 32
- { \msg_fatal:nnx { unravel } { not-implemented } { halign } }
+ { \__unravel_not_implemented:n { halign } }
\__unravel_new_tex_cmd:nn { valign } % 33
- { \msg_fatal:nnx { unravel } { not-implemented } { valign } }
+ { \__unravel_not_implemented:n { valign } }
\__unravel_new_tex_cmd:nn { no_align } % 34
- { \msg_fatal:nnx { unravel } { not-implemented } { noalign } }
+ { \__unravel_not_implemented:n { noalign } }
\__unravel_new_tex_cmd:nn { vrule } % 35
{ \__unravel_mode_non_vertical:n { \__unravel_do_rule: } }
\__unravel_new_tex_cmd:nn { hrule } % 36
{ \__unravel_mode_vertical:n { \__unravel_do_rule: } }
\cs_new_protected_nopar:Npn \__unravel_do_rule:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_alt_rule:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -3163,11 +3234,12 @@
{
\token_if_eq_meaning:NNTF \l__unravel_head_token \tex_ignorespaces:D
{
+ \__unravel_print_action:
\__unravel_get_x_non_blank:
\__unravel_set_cmd:
\__unravel_do_step:
}
- { \msg_error:nn { unravel } { not-implemented } { pdfprimitive } }
+ { \__unravel_not_implemented:n { pdfprimitive } }
}
\__unravel_new_tex_cmd:nn { after_assignment } % 40
{
@@ -3205,10 +3277,10 @@
}
\__unravel_new_tex_cmd:nn { break_penalty } % 42
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -3236,7 +3308,7 @@
}
\cs_new_protected_nopar:Npn \__unravel_do_accent:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
\__unravel_do_assignments:
@@ -3260,7 +3332,7 @@
}
{ \__unravel_break:w }
}
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
@@ -3268,11 +3340,11 @@
}
\cs_new_protected_nopar:Npn \__unravel_do_math_accent:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
\__unravel_scan_math:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
@@ -3288,30 +3360,30 @@
\__unravel_new_tex_cmd:nn { math_accent } % 46
{ \__unravel_mode_math:n { \__unravel_do_math_accent: } }
\__unravel_new_tex_cmd:nn { discretionary } % 47
- { \msg_error:nnx { unravel } { not-implemented } { discretionary } }
+ { \__unravel_not_implemented:n { discretionary } }
\__unravel_new_tex_cmd:nn { eq_no } % 48
- { \msg_error:nnx { unravel } { not-implemented } { eqno } }
+ { \__unravel_not_implemented:n { eqno } }
\__unravel_new_tex_cmd:nn { left_right } % 49
- { \msg_error:nnx { unravel } { not-implemented } { left/right } }
+ { \__unravel_not_implemented:n { left/right } }
\__unravel_new_tex_cmd:nn { math_comp } % 50
- { \msg_error:nnx { unravel } { not-implemented } { math~comp } }
+ { \__unravel_not_implemented:n { math~comp } }
\__unravel_new_tex_cmd:nn { limit_switch } % 51
- { \msg_error:nnx { unravel } { not-implemented } { limits } }
+ { \__unravel_not_implemented:n { limits } }
\__unravel_new_tex_cmd:nn { above } % 52
- { \msg_error:nnx { unravel } { not-implemented } { above } }
+ { \__unravel_not_implemented:n { above } }
\__unravel_new_tex_cmd:nn { math_style } % 53
- { \msg_error:nnx { unravel } { not-implemented } { math~style } }
+ { \__unravel_not_implemented:n { math~style } }
\__unravel_new_tex_cmd:nn { math_choice } % 54
- { \msg_error:nnx { unravel } { not-implemented } { math~choice } }
+ { \__unravel_not_implemented:n { math~choice } }
\__unravel_new_tex_cmd:nn { non_script } % 55
- { \msg_error:nnx { unravel } { not-implemented } { non~script } }
+ { \__unravel_not_implemented:n { non~script } }
\__unravel_new_tex_cmd:nn { vcenter } % 56
- { \msg_error:nnx { unravel } { not-implemented } { vcenter } }
+ { \__unravel_not_implemented:n { vcenter } }
\__unravel_new_tex_cmd:nn { case_shift } % 57
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_scan_toks:NN \c_false_bool \c_false_bool
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\exp_after:wN \__unravel_case_shift:Nn \l__unravel_tmpa_tl
}
\cs_new_protected:Npn \__unravel_case_shift:Nn #1#2
@@ -3322,25 +3394,25 @@
}
\__unravel_new_tex_cmd:nn { message } % 58
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_toks_to_str:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
\__unravel_new_tex_cmd:nn { extension } % 59
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_extension_operands:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
\__unravel_new_tex_cmd:nn { in_stream } % 60
{
- \seq_put_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\token_if_eq_meaning:NNTF \l__unravel_head_token \tex_openin:D
{
@@ -3349,7 +3421,7 @@
\__unravel_scan_file_name:
}
{ \__unravel_scan_int: }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
@@ -3368,7 +3440,7 @@
\__unravel_print_action:
}
\__unravel_new_tex_cmd:nn { omit } % 63
- { \msg_error:nn { unravel } { not-implemented } { omit } }
+ { \__unravel_not_implemented:n { omit } }
\__unravel_new_tex_cmd:nn { ex_space } % 64
{
\__unravel_mode_non_vertical:n
@@ -3383,18 +3455,21 @@
{
\__unravel_mode_math:n
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
\__unravel_scan_math:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
}
\__unravel_new_tex_cmd:nn { end_cs_name } % 67
- { \l__unravel_head_token \__unravel_print_action: }
+ {
+ \__unravel_tex_error:nV { extra-endcsname } \l__unravel_head_tl
+ \__unravel_print_action:
+ }
\__unravel_new_tex_cmd:nn { char_given } % 68
{
\__unravel_mode_non_vertical:n
@@ -3436,7 +3511,7 @@
{
\mode_if_horizontal:TF
{ \__unravel_scan_int: }
- { \msg_error:nn { unravel } { invalid-mode } }
+ { \__unravel_error:nnnnn { invalid-mode } { } { } { } { } }
}
{ 6 } % pdfliteral
{
@@ -3492,7 +3567,7 @@
{ 14 } % pdfstartlink
{
\mode_if_vertical:TF
- { \msg_error:nn { unravel } { invalid-mode } }
+ { \__unravel_error:nnnnn { invalid-mode } { } { } { } { } }
{
\__unravel_scan_rule_attr:
\__unravel_scan_action:
@@ -3501,7 +3576,7 @@
{ 15 } % pdfendlink
{
\mode_if_vertical:T
- { \msg_error:nn { unravel } { invalid-mode } }
+ { \__unravel_error:nnnnn { invalid-mode } { } { } { } { } }
}
{ 16 } % pdfoutline
{
@@ -3597,8 +3672,8 @@
{
\__unravel_scan_keyword:nF { cCuUrRrReEnNtT }
{
- \msg_error:nn { unravel }
- { color-stack-action-missing }
+ \__unravel_error:nnnnn { color-stack-action-missing }
+ { } { } { } { }
}
}
}
@@ -3618,7 +3693,7 @@
\__unravel_scan_keyword:nF { gGoOtToO }
{
\__unravel_scan_keyword:nF { tThHrReEaAdD }
- { \msg_error:nn { unravel } { action-type-missing } }
+ { \__unravel_error:nnnnn { action-type-missing } { } { } { } { } }
}
}
\__unravel_scan_keyword:nT { fFiIlLeE }
@@ -3634,7 +3709,7 @@
{
\__unravel_scan_keyword:nTF { nNuUmM }
{ \__unravel_scan_int: }
- { \msg_error:nn { unravel } { identifier-type-missing } }
+ { \__unravel_error:nnnnn { identifier-type-missing } { } { } { } { } }
}
}
\__unravel_scan_keyword:nTF { nNeEwWwWiInNdDoOwW }
@@ -3687,9 +3762,9 @@
\cs_new_protected_nopar:Npn \__unravel_scan_immediate_operands_bad:
{
\__unravel_back_input:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl ignored }
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
}
\cs_new_protected_nopar:Npn \__unravel_scan_pdfdest_operands:
@@ -3699,7 +3774,7 @@
{
\__unravel_scan_keyword:nTF { nNaAmMeE }
{ \__unravel_scan_pdf_ext_toks: }
- { \msg_error:nn { unravel } { identifier-type-missing } }
+ { \__unravel_error:nnnnn { identifier-type-missing } { } { } { } { } }
}
\__unravel_scan_keyword:nTF { xXyYzZ }
{
@@ -3728,10 +3803,8 @@
\__unravel_scan_keyword:nF
{ fFiItT }
{
- \msg_error:nn { unravel }
- {
- destination-type-missing
- }
+ \__unravel_error:nnnnn { destination-type-missing }
+ { } { } { } { }
}
}
}
@@ -3744,7 +3817,7 @@
}
\cs_set_protected_nopar:Npn \__unravel_tmp:w
{
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_prefixed_command:
}
\int_step_inline:nnnn
@@ -3763,10 +3836,11 @@
\int_compare:nNnF \l__unravel_head_cmd_int
> { \__unravel_tex_use:n { max_non_prefixed_command } }
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
- \msg_error:nnxx { unravel } { erroneous-prefixes }
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
+ \__unravel_error:nxxxx { erroneous-prefixes }
{ \tl_to_str:N \l__unravel_tmpa_tl }
{ \tl_to_str:N l__unravel_head_tl }
+ { } { }
\__unravel_back_input:
\__unravel_omit_after_assignment:w
}
@@ -3776,7 +3850,7 @@
\cs_if_exist_use:cF
{ __unravel_prefixed_ \int_use:N \l__unravel_head_cmd_int : }
{
- \msg_error:nnx { unravel } { internal } { prefixed }
+ \__unravel_error:nnnnn { internal } { prefixed } { } { } { }
\__unravel_omit_after_assignment:w
}
\__unravel_after_assignment:
@@ -3795,14 +3869,14 @@
}
\cs_new_protected:Npn \__unravel_assign_token:n #1
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
#1
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_assigned_token:
}
\cs_new_protected_nopar:Npn \__unravel_assign_register:
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_assigned_register:
}
@@ -3810,10 +3884,10 @@
{
\tl_if_empty:nF {#1}
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
#1
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
}
\__unravel_prev_input:V \l__unravel_head_tl
\tl_set_eq:NN \l__unravel_defined_tl \l__unravel_head_tl
@@ -3825,10 +3899,10 @@
{
\int_compare:nNnT \l__unravel_head_char_int = \c_zero
{ % \toks
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
}
\__unravel_assign_toks:
}
@@ -3921,7 +3995,7 @@
}
\__unravel_prefixed_new:nn { set_font } % 87
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\tl_put_left:NV \l__unravel_head_tl \l__unravel_tmpa_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\gtl_gput_right:NV \g__unravel_output_gtl \l__unravel_head_tl
@@ -3948,11 +4022,11 @@
}
\__unravel_prefixed_new:nn { let } % 94
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\token_if_eq_meaning:NNTF \l__unravel_head_token \tex_let:D
{ % |let|
\__unravel_scan_r_token:
- \seq_get_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_get:N \l__unravel_tmpa_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_tmpa_tl }
\__unravel_get_next:
\bool_while_do:nn
@@ -3965,7 +4039,7 @@
}
{ % |futurelet|
\__unravel_scan_r_token:
- \seq_get_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_get:N \l__unravel_tmpa_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_tmpa_tl }
\__unravel_get_next:
\gtl_set_eq:NN \l__unravel_tmpb_gtl \l__unravel_head_gtl
@@ -3974,10 +4048,10 @@
\gtl_set_eq:NN \l__unravel_head_gtl \l__unravel_tmpb_gtl
\__unravel_back_input:
}
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\tl_put_right:Nn \l__unravel_tmpa_tl { = ~ \l__unravel_head_token }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
- \use:x
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
+ \__unravel_exp_args:Nx \use:n
{
\exp_not:V \l__unravel_head_tl
\tex_let:D \tl_tail:N \l__unravel_tmpa_tl
@@ -4004,12 +4078,12 @@
\__unravel_scan_int:
\__unravel_scan_to:
\__unravel_scan_r_token:
- \seq_get_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_get:N \l__unravel_tmpa_tl
\__unravel_read_to_cs_safe:fTF
{ \__unravel_tl_first_int:N \l__unravel_tmpa_tl }
{ \__unravel_assign_token:n { } }
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_tex_fatal_error:nV { cannot-read } \l__unravel_head_tl
}
}
@@ -4036,10 +4110,10 @@
\cs_generate_variant:Nn \__unravel_read_to_cs_safe:nTF { f }
\__unravel_prefixed_new:nn { def } % 97
{
- \seq_get_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_get:N \l__unravel_tmpa_tl
\tl_set:NV \l__unravel_defining_tl \l__unravel_tmpa_tl
\tl_put_right:NV \l__unravel_defining_tl \l__unravel_head_tl
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\int_compare:nNnTF \l__unravel_head_char_int < \c_two
{ % def/gdef
\__unravel_scan_r_token:
@@ -4051,7 +4125,7 @@
\tl_put_right:NV \l__unravel_defining_tl \l__unravel_defined_tl
\__unravel_scan_toks:NN \c_true_bool \c_true_bool
}
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_prev_input:V \l__unravel_head_tl
\__unravel_assign_token:n
{ \tl_set_eq:NN \l__unravel_head_tl \l__unravel_defining_tl }
@@ -4064,8 +4138,8 @@
\bool_if:NTF \g__unravel_set_box_allowed_bool
{ \__unravel_do_box:N \c_false_bool }
{
- \msg_error:nn { unravel } { improper-setbox }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_error:nnnnn { improper-setbox } { } { } { } { }
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\__unravel_omit_after_assignment:w
}
}
@@ -4077,7 +4151,7 @@
}
\__unravel_prefixed_new:nn { set_interaction } % 100
{
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\tl_put_left:NV \l__unravel_head_tl \l__unravel_tmpa_tl
\tl_use:N \l__unravel_head_tl \scan_stop:
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
@@ -4148,8 +4222,8 @@
}
\cs_new_protected_nopar:Npn \__unravel_do_operation_fail:w
{
- \msg_error:nn { unravel } { after-advance }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_error:nnnnn { after-advance } { } { } { } { }
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\__unravel_omit_after_assignment:w
}
\cs_new_protected:Npn \__unravel_do_register:N #1
@@ -4161,10 +4235,10 @@
{
\int_compare:nNnTF { \tl_tail:n {#2} } = \c_zero
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_scan_int:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_prev_input_silent:V \l__unravel_head_tl
}
{
@@ -4194,7 +4268,7 @@
{ 3 } { \__unravel_scan_normal_glue: } % glue
{ 4 } { \__unravel_scan_mu_glue: } % muglue
}
- { \msg_error:nnx { unravel } { internal } { do-reg=#2 } }
+ { \__unravel_error:nxxxx { internal } { do-reg=#2 } { } { } { } }
}
{ \__unravel_scan_int: }
\__unravel_assign_register:
@@ -4208,7 +4282,7 @@
> { \__unravel_tex_use:n { max_non_prefixed_command } }
{
\bool_gset_false:N \g__unravel_set_box_allowed_bool
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_prefixed_command:
\bool_gset_true:N \g__unravel_set_box_allowed_bool
\__unravel_do_assignments:
@@ -4227,13 +4301,13 @@
\__unravel_get_next:
\gtl_concat:NNN \l__unravel_head_gtl
\l__unravel_tmpb_gtl \l__unravel_head_gtl
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_gtl
+ \__unravel_prev_input_gpush_gtl:N \l__unravel_head_gtl
\__unravel_print_action:x { \gtl_to_str:N \l__unravel_head_gtl }
\__unravel_get_next:
\__unravel_token_if_expandable:NTF \l__unravel_head_token
{ \__unravel_expand: }
{ \__unravel_back_input: }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_gtl
+ \__unravel_prev_input_gpop:N \l__unravel_head_gtl
\__unravel_set_action_text:x
{ back_input: ~ \gtl_to_str:N \l__unravel_head_gtl }
\gtl_pop_left:N \l__unravel_head_gtl
@@ -4258,7 +4332,7 @@
}
\cs_new_protected_nopar:Npn \__unravel_unless_bad:
{
- \msg_error:nn { unravel } { bad-unless }
+ \__unravel_error:nnnnn { bad-unless } { } { } { } { }
\__unravel_back_input:
}
\__unravel_new_tex_expandable:nn { no_expand } % 105
@@ -4283,7 +4357,7 @@
}
}
\cs_new_protected_nopar:Npn \__unravel_pdfprimitive:
- { \msg_error:nnx { unravel } { not-implemented } { pdfprimitive } }
+ { \__unravel_not_implemented:n { pdfprimitive } }
\__unravel_new_tex_expandable:nn { input } % 106
{
\int_case:nnF \l__unravel_head_char_int
@@ -4298,23 +4372,25 @@
}
\cs_new_protected_nopar:Npn \__unravel_endinput:
{
- \msg_warning:nn { unravel } { endinput-ignored }
+ \group_begin:
+ \msg_warning:nn { unravel } { endinput-ignored }
+ \group_end:
\__unravel_print_action:
}
\cs_new_protected_nopar:Npn \__unravel_scantokens:
{
- \seq_gput_right:Nn \g__unravel_prev_input_seq { }
+ \__unravel_prev_input_gpush:
\__unravel_scan_toks:NN \c_false_bool \c_false_bool
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\tl_set_rescan:Nno \l__unravel_head_tl { } \l__unravel_tmpa_tl
\__unravel_back_input:V \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_tmpa_tl }
}
\cs_new_protected_nopar:Npn \__unravel_input:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_scan_file_name:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\tl_set:Nx \l__unravel_tmpa_tl { \tl_tail:N \l__unravel_head_tl }
\__unravel_file_get:nN \l__unravel_tmpa_tl \l__unravel_tmpa_tl
\__unravel_back_input:V \l__unravel_tmpa_tl
@@ -4322,22 +4398,22 @@
}
\__unravel_new_tex_expandable:nn { cs_name } % 109
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_csname_loop:
- \__unravel_prev_input:V \l__unravel_head_tl
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_silent:V \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_back_input_tl_o:
}
\cs_new_protected_nopar:Npn \__unravel_csname_loop:
{
\__unravel_get_x_next:
- \token_if_cs:NTF \l__unravel_head_token
+ \__unravel_gtl_if_head_is_definable:NTF \l__unravel_head_gtl
{
\cs_if_eq:NNF \l__unravel_head_token \tex_endcsname:D
{
- \msg_error:nn { unravel } { missing-endcsname }
\__unravel_back_input:
+ \__unravel_tex_error:nV { missing-endcsname } \l__unravel_head_tl
\tl_set:Nn \l__unravel_head_tl { \tex_endcsname:D }
}
}
@@ -4349,7 +4425,7 @@
}
\__unravel_new_tex_expandable:nn { convert } % 110
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\int_case:nn \l__unravel_head_char_int
{
@@ -4385,7 +4461,7 @@
{ 30 } \__unravel_scan_int:
{ 31 } \__unravel_scan_pdfximagebbox:
}
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_back_input_tl_o:
}
\cs_new_protected_nopar:Npn \__unravel_scan_pdfstrcmp:
@@ -4427,18 +4503,18 @@
}
\cs_new_protected_nopar:Npn \__unravel_get_the:
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\int_if_odd:nTF \l__unravel_head_char_int
{ % \unexpanded, \detokenize
\__unravel_scan_toks:NN \c_false_bool \c_false_bool
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_set_action_text:x { \tl_to_str:N \l__unravel_head_tl }
}
{ % \the
\__unravel_get_x_next:
\__unravel_scan_something_internal:n { 5 }
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_set_action_text:x
{
\tl_head:N \l__unravel_head_tl
@@ -4452,7 +4528,7 @@
{ \__unravel_back_input_tl_o: }
\__unravel_new_tex_expandable:nn { end_template } % 117
{
- \msg_error:nn { unravel } { not-implemented } { end-template }
+ \__unravel_not_implemented:n { end-template } { } { } { }
\__unravel_back_input_tl_o:
}
\cs_new_protected_nopar:Npn \__unravel_pass_text:
@@ -4505,7 +4581,7 @@
}
\cs_new_protected_nopar:Npn \__unravel_pass_text_empty:
{
- \msg_error:nn { unravel } { runaway-if }
+ \__unravel_error:nnnnn { runaway-if } { } { } { } { }
\__unravel_exit:w
}
\cs_new_protected:Npn \__unravel_cond_push:
@@ -4554,7 +4630,7 @@
{ 21 } { \__unravel_test_pdfprimitive:n {#1} } % ^^A todo and \unless
}
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\int_case:nn \l__unravel_head_char_int
{
@@ -4585,7 +4661,7 @@
{ 23 } % ifpdfabsdim
{ \__unravel_test_two_vals:N \__unravel_scan_normal_dimen: }
}
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_set_action_text:x { \tl_to_str:N \l__unravel_head_tl }
\l__unravel_head_tl \scan_stop:
\exp_after:wN \__unravel_cond_true:n
@@ -4613,7 +4689,7 @@
{
\token_if_eq_meaning:NNT \l__unravel_head_token \or:
{
- \msg_error:nn { unravel } { extra-or }
+ \__unravel_error:nnnnn { extra-or } { } { } { } { }
\__unravel_cond_false_loop:n {#1}
}
}
@@ -4635,7 +4711,7 @@
\__unravel_get_x_non_blank:
\tl_if_in:nVF { < = > } \l__unravel_head_tl
{
- \msg_error:nn { unravel } { missing-equals }
+ \__unravel_error:nnnnn { missing-equals } { } { } { } { }
\__unravel_back_input:
\tl_set:Nn \l__unravel_head_tl { = }
}
@@ -4664,12 +4740,12 @@
}
\cs_new_protected:Npn \__unravel_test_ifx:n #1
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\__unravel_get_next:
\gtl_set_eq:NN \l__unravel_tmpb_gtl \l__unravel_head_gtl
\__unravel_get_next:
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_tmpa_tl
+ \__unravel_prev_input_gpop:N \l__unravel_tmpa_tl
\__unravel_set_action_text:x
{
Compare:~ \tl_to_str:N \l__unravel_tmpa_tl
@@ -4687,15 +4763,15 @@
{ \gtl_head_do:NN \l__unravel_head_gtl \l__unravel_tmpa_tl }
\cs_new_protected:Npn \__unravel_test_case:n #1
{
- \seq_gput_right:NV \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpush:N \l__unravel_head_tl
\__unravel_print_action:
\bool_if:NT \g__unravel_internal_debug_bool { \iow_term:n { {\ifcase level~#1} } }
\__unravel_scan_int:
- \seq_get_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_get:N \l__unravel_head_tl
\tl_set:Nx \l__unravel_head_tl { \tl_tail:N \l__unravel_head_tl }
% ^^A does text_case_aux use prev_input_seq?
\exp_args:No \__unravel_test_case_aux:nn { \l__unravel_head_tl } {#1}
- \seq_gpop_right:NN \g__unravel_prev_input_seq \l__unravel_head_tl
+ \__unravel_prev_input_gpop:N \l__unravel_head_tl
\__unravel_print_action:x { \tl_to_str:N \l__unravel_head_tl }
}
\cs_new_protected:Npn \__unravel_test_case_aux:nn #1#2
@@ -4751,10 +4827,10 @@
\int_compare:nNnTF \g__unravel_if_limit_int = \c_zero
{
\int_compare:nNnTF \g__unravel_if_depth_int = \c_zero
- { \msg_error:nn { unravel } { extra-fi-or-else } }
+ { \__unravel_error:nnnnn { extra-fi-or-else } { } { } { } { } }
{ \__unravel_insert_relax: }
}
- { \msg_error:nn { unravel } { extra-fi-or-else } }
+ { \__unravel_error:nnnnn { extra-fi-or-else } { } { } { } { } }
}
{
\__unravel_set_action_text:
@@ -4781,8 +4857,25 @@
\__unravel_fi_or_else_loop:
}
}
-\cs_new_eq:NN \__unravel_print:n \iow_term:n
-\cs_generate_variant:Nn \__unravel_print:n { x }
+\tl_new:N \l__unravel_print_tl
+\sys_if_engine_luatex:TF
+ {
+ \cs_new_protected:Npx \__unravel_print_normalize_null:
+ {
+ \tl_replace_all:Nnn \exp_not:N \l__unravel_print_tl
+ { \char_generate:nn { 0 } { 12 } }
+ { \tl_to_str:n { ^ ^ @ } }
+ }
+ }
+ { \cs_new_protected:Npn \__unravel_print_normalize_null: { } }
+\cs_new_protected:Npn \__unravel_print:n #1
+ {
+ \tl_set:Nn \l__unravel_print_tl {#1}
+ \__unravel_print_normalize_null:
+ \__unravel_exp_args:Nx \iow_term:n { \l__unravel_print_tl }
+ }
+\cs_new_protected:Npn \__unravel_print:x
+ { \__unravel_exp_args:Nx \__unravel_print:n }
\cs_new_protected:Npn \__unravel_print_message:nn #1 #2
{ \iow_wrap:nnnN { #1 #2 } { #1 } { } \__unravel_print:n }
\cs_new_protected:Npn \__unravel_set_action_text:x #1
@@ -4808,19 +4901,18 @@
\tl_use:N \g__unravel_before_print_state_tl
\int_compare:nNnT \g__unravel_noise_int > \c_zero
{
- \exp_args:Nx \__unravel_print_state_output:n
- { \gtl_to_str:N \g__unravel_output_gtl }
- \seq_set_map:NNn \l__unravel_tmpa_seq \g__unravel_prev_input_seq
- { \__unravel_to_str:n {##1} }
- \seq_remove_all:Nn \l__unravel_tmpa_seq { }
- \exp_args:Nx \__unravel_print_state_prev:n
- { \seq_use:Nn \l__unravel_tmpa_seq { \\ } }
- \exp_args:Nx \__unravel_print_state_input:n
- { \__unravel_input_to_str: }
+ \__unravel_print_state_output:
+ \__unravel_print_state_prev:
+ \__unravel_print_state_input:
}
\group_end:
\__unravel_prompt:
}
+\cs_new_protected_nopar:Npn \__unravel_print_state_output:
+ {
+ \__unravel_exp_args:Nx \__unravel_print_state_output:n
+ { \gtl_to_str:N \g__unravel_output_gtl }
+ }
\cs_new_protected:Npn \__unravel_print_state_output:n #1
{
\tl_if_empty:nF {#1}
@@ -4829,8 +4921,25 @@
{ \__unravel_str_truncate_left:nn {#1} { \g__unravel_max_output_int } }
}
}
-\cs_new_protected:Npn \__unravel_print_state_prev:n #1
- { \__unravel_print_message:nn { || ~ } {#1} }
+\cs_new_protected_nopar:Npn \__unravel_print_state_prev:
+ {
+ \seq_set_map:NNn \l__unravel_tmpa_seq \g__unravel_prev_input_seq
+ { \__unravel_to_str:n {##1} }
+ \seq_remove_all:Nn \l__unravel_tmpa_seq { }
+ \seq_if_empty:NTF \l__unravel_tmpa_seq
+ { \__unravel_print_message:nn { || ~ } { } }
+ {
+ \seq_map_inline:Nn \l__unravel_tmpa_seq
+ {
+ \__unravel_print_message:nn { || ~ } {##1}
+ }
+ }
+ }
+\cs_new_protected_nopar:Npn \__unravel_print_state_input:
+ {
+ \__unravel_exp_args:Nx \__unravel_print_state_input:n
+ { \__unravel_input_to_str: }
+ }
\cs_new_protected:Npn \__unravel_print_state_input:n #1
{
\__unravel_print_message:nn { |> ~ }
@@ -4892,7 +5001,7 @@
\cs_new_protected_nopar:Npn \__unravel_print_assigned_register:
{
\__unravel_after_assignment: % ^^A todo: simplify
- \exp_args:Nx \__unravel_print_action:x
+ \__unravel_exp_args:Nx \__unravel_print_action:x
{
\exp_not:n
{
@@ -4944,8 +5053,8 @@
\int_compare:nNnT { \etex_interactionmode:D } = { 3 }
{
\bool_if:NTF \g__unravel_explicit_prompt_bool
- { \ior_get_str:Nc \c__unravel_prompt_ior }
- { \ior_get_str:Nc \c__unravel_noprompt_ior }
+ { \ior_str_get:Nc \c__unravel_prompt_ior }
+ { \ior_str_get:Nc \c__unravel_noprompt_ior }
{ Your~input }
\exp_args:Nv \__unravel_prompt_treat:n { Your~input }
}
@@ -4954,7 +5063,7 @@
{
\tl_if_empty:nF {#1}
{
- \exp_args:Nx \str_case:nnF { \tl_head:n {#1} }
+ \__unravel_exp_args:Nx \str_case:nnF { \tl_head:n {#1} }
{
{ m } { \__unravel_print_meaning: \__unravel_prompt_aux: }
{ q }
@@ -4974,8 +5083,11 @@
{ \int_gset:Nn \g__unravel_noise_int } }
{ C }
{
- \tl_gset_rescan:Nnx \g__unravel_tmpc_tl
- { \ExplSyntaxOn } { \tl_tail:n {#1} }
+ \__unravel_exp_args:Nx \use:n
+ {
+ \tl_gset_rescan:Nnn \exp_not:N \g__unravel_tmpc_tl
+ { \exp_not:N \ExplSyntaxOn } { \tl_tail:n {#1} }
+ }
\tl_gput_left:Nn \g__unravel_tmpc_tl
{ \tl_gclear:N \g__unravel_tmpc_tl }
\group_insert_after:N \g__unravel_tmpc_tl
@@ -5037,8 +5149,8 @@
\tl_gset:Nf \g__unravel_before_print_state_tl
{
\exp_args:NNf \exp_stop_f: \int_compare:nNnTF
- { \int_eval:n { \seq_count:N \g__unravel_prev_input_seq - #2 } }
- #1 { \seq_count:N \g__unravel_prev_input_seq }
+ { \int_eval:n { \__unravel_prev_input_count: - #2 } }
+ #1 { \__unravel_prev_input_count: }
{
\int_gset:Nn \g__unravel_nonstop_int
{ \int_max:nn { \g__unravel_nonstop_int } { 2 } }
@@ -5067,6 +5179,20 @@
}
\cs_new:Npn \__unravel_prompt_all_aux:N #1
{ \exp_not:n { \int_gset:Nn #1 } { \int_use:N #1 } }
+\cs_new_protected:Npn \__unravel_not_implemented:n #1
+ { \__unravel_error:nnnnn { not-implemented } {#1} { } { } { } }
+\cs_new_protected:Npn \__unravel_error:nnnnn #1#2#3#4#5
+ {
+ \group_begin:
+ \msg_error:nnnnnn { unravel } {#1} {#2} {#3} {#4} {#5}
+ \group_end:
+ }
+\cs_new_protected:Npn \__unravel_error:nxxxx #1#2#3#4#5
+ {
+ \group_begin:
+ \msg_error:nnxxxx { unravel } {#1} {#2} {#3} {#4} {#5}
+ \group_end:
+ }
\cs_new_protected:Npn \__unravel_tex_msg_new:nnn #1#2#3
{
\cs_new_nopar:cpn { __unravel_tex_msg_error_#1: } {#2}
@@ -5074,18 +5200,21 @@
}
\cs_new_protected:Npn \__unravel_tex_error:nn #1#2
{
+ \group_begin:
\msg_error:nnxxx { unravel } { tex-error }
{ \tl_to_str:n {#2} }
{ \use:c { __unravel_tex_msg_error_#1: } }
{ \use:c { __unravel_tex_msg_help_#1: } }
+ \group_end:
}
\cs_generate_variant:Nn \__unravel_tex_error:nn { nV }
\cs_new_protected:Npn \__unravel_tex_fatal_error:nn #1#2
{
- \msg_error:nnxxx { unravel } { tex-fatal }
+ \__unravel_error:nxxxx { tex-fatal }
{ \tl_to_str:n {#2} }
{ \use:c { __unravel_tex_msg_error_#1: } }
{ \use:c { __unravel_tex_msg_help_#1: } }
+ { }
}
\cs_generate_variant:Nn \__unravel_tex_fatal_error:nn { nV }
\keys_define:nn { unravel/defaults }
@@ -5189,15 +5318,13 @@
}
\cs_new_protected_nopar:Npn \__unravel_final_bad:
{
- \msg_error:nnx { unravel } { internal }
- { the-last-unravel-finished-badly }
+ \__unravel_error:nnnnn { internal }
+ { the-last-unravel-finished-badly } { } { } { }
}
\msg_new:nnn { unravel } { unknown-primitive }
{ Internal~error:~the~primitive~'#1'~is~not~known. }
\msg_new:nnn { unravel } { extra-fi-or-else }
{ Extra~fi,~or,~or~else. }
-\msg_new:nnn { unravel } { missing-lbrace }
- { Missing~left~brace~inserted. }
\msg_new:nnn { unravel } { missing-dollar }
{ Missing~dollar~inserted. }
\msg_new:nnn { unravel } { unknown-expandable }
@@ -5206,8 +5333,6 @@
{ Missing~font~identifier.~\iow_char:N\\nullfont~inserted. }
\msg_new:nnn { unravel } { missing-rparen }
{ Missing~right~parenthesis~inserted~for~expression. }
-\msg_new:nnn { unravel } { missing-mudim }
- { Missing~mu~unit. }
\msg_new:nnn { unravel } { missing-cs }
{ Missing~control~sequence.~\iow_char:N\\inaccessible~inserted. }
\msg_new:nnn { unravel } { missing-box }
@@ -5243,8 +5368,6 @@
}
\msg_new:nnn { unravel } { bad-unless }
{ \iow_char:N\\unless~not~followed~by~conditional. }
-\msg_new:nnn { unravel } { missing-endcsname }
- { Missing~\iow_char:N\\endcsname~inserted. }
\msg_new:nnn { unravel } { runaway-if }
{ Runaway~\iow_char:N\\if... }
\msg_new:nnn { unravel } { runaway-macro-parameter }
@@ -5281,11 +5404,11 @@
\__unravel_tex_msg_new:nnn { incompatible-mag }
{
Incompatible~magnification~
- ( \int_to_arabic:n { \__unravel_mag: } ); \\
- \ the~previous~value~will~be~retained
+ ( \int_to_arabic:n { \__unravel_mag: } );~
+ the~previous~value~will~be~retained
}
{
- I~can~handle~only~one~magnification~ratio~per~job.~So~I've\\
+ I~can~handle~only~one~magnification~ratio~per~job.~So~I've~
reverted~to~the~magnification~you~used~earlier~on~this~run.
}
\__unravel_tex_msg_new:nnn { illegal-mag }
@@ -5294,9 +5417,55 @@
( \int_to_arabic:n { \__unravel_mag: } )
}
{ The~magnification~ratio~must~be~between~1~and~32768. }
+\__unravel_tex_msg_new:nnn { missing-number }
+ { Missing~number,~treated~as~zero }
+ {
+ A~number~should~have~been~here;~I~inserted~`0'.~
+ If~you~can't~figure~out~why~I~needed~to~see~a~number,~
+ look~up~`weird~error'~in~the~index~to~The~TeXbook.
+ }
+\__unravel_tex_msg_new:nnn { the-cannot }
+ { You~can't~use~`\tl_to_str:N\l__unravel_head_tl'~after~\iow_char:N\\the }
+ { I'm~forgetting~what~you~said~and~using~zero~instead. }
\__unravel_tex_msg_new:nnn { incompatible-units }
{ Incompatible~glue~units }
{ I'm~going~to~assume~that~1mu=1pt~when~they're~mixed. }
+\__unravel_tex_msg_new:nnn { missing-mu }
+ { Illegal~unit~of~measure~(mu~inserted) }
+ {
+ The~unit~of~measurement~in~math~glue~must~be~mu.~
+ To~recover~gracefully~from~this~error,~it's~best~to~
+ delete~the~erroneous~units;~e.g.,~type~`2'~to~delete~
+ two~letters.~(See~Chapter~27~of~The~TeXbook.)
+ }
+\__unravel_tex_msg_new:nnn { missing-pt }
+ { Illegal~unit~of~measure~(pt~inserted) }
+ {
+ Dimensions~can~be~in~units~of~em,~ex,~in,~pt,~pc,~
+ cm,~mm,~dd,~cc,~nd,~nc,~bp,~or~sp;~but~yours~is~a~new~one!~
+ I'll~assume~that~you~meant~to~say~pt,~for~printer's~points.~
+ To~recover~gracefully~from~this~error,~it's~best~to~
+ delete~the~erroneous~units;~e.g.,~type~`2'~to~delete~
+ two~letters.~(See~Chapter~27~of~The~TeXbook.)
+ }
+\__unravel_tex_msg_new:nnn { missing-lbrace }
+ { Missing~\iow_char:N\{~inserted }
+ {
+ A~left~brace~was~mandatory~here,~so~I've~put~one~in.~
+ You~might~want~to~delete~and/or~insert~some~corrections~
+ so~that~I~will~find~a~matching~right~brace~soon.~
+ (If~you're~confused~by~all~this,~try~typing~`I\iow_char:N\}'~now.)
+ }
+\__unravel_tex_msg_new:nnn { extra-endcsname }
+ { Extra~\token_to_str:c{endcsname} }
+ { I'm~ignoring~this,~since~I~wasn't~doing~a~\token_to_str:c{csname}. }
+\__unravel_tex_msg_new:nnn { missing-endcsname }
+ { Missing~\token_to_str:c{endcsname}~inserted }
+ {
+ The~control~sequence~marked~<to~be~read~again>~should~
+ not~appear~between~\token_to_str:c{csname}~and~
+ \token_to_str:c{endcsname}.
+ }
\__unravel_tex_msg_new:nnn { cannot-read }
{ ***~(cannot~\iow_char:N\\read~from~terminal~in~nonstop~modes) }
{ }