[latex3-commits] [git/LaTeX3-latex3-latex3] gh590: Merge branch 'main' into gh590 (d7dfb2bcf)

GitHub noreply at github.com
Tue Apr 27 12:28:36 CEST 2021


Repository : https://github.com/latex3/latex3
On branch  : gh590
Link       : https://github.com/latex3/latex3/commit/d7dfb2bcf5057e4a48f703990ee7b2ca969c5e4c

>---------------------------------------------------------------

commit d7dfb2bcf5057e4a48f703990ee7b2ca969c5e4c
Merge: 9ef29b191 a4dc3331a
Author: Bruno Le Floch <blflatex at gmail.com>
Date:   Tue Apr 27 12:28:36 2021 +0200

    Merge branch 'main' into gh590


>---------------------------------------------------------------

d7dfb2bcf5057e4a48f703990ee7b2ca969c5e4c
 l3kernel/CHANGELOG.md                    |  4 ++
 l3kernel/l3bootstrap.dtx                 | 14 ++++--
 l3kernel/l3coffins.dtx                   |  4 +-
 l3kernel/l3doc.dtx                       |  4 +-
 l3kernel/l3file.dtx                      | 82 +++++++++++++++++++-------------
 l3kernel/l3regex.dtx                     | 64 ++++++++++++++++++-------
 l3kernel/l3text.dtx                      | 55 ++++++++++++++++++---
 l3kernel/testfiles/m3regex005.luatex.tlg | 41 ++++++++++++----
 l3kernel/testfiles/m3regex005.lvt        | 13 ++++-
 l3kernel/testfiles/m3regex005.tlg        | 41 ++++++++++++----
 l3kernel/testfiles/m3regex005.xetex.tlg  | 46 ++++++++++++++----
 l3kernel/testfiles/m3text001.lvt         |  8 ++++
 l3kernel/testfiles/m3text001.tlg         | 13 +++++
 13 files changed, 299 insertions(+), 90 deletions(-)

diff --cc l3kernel/CHANGELOG.md
index 8f42358a0,570ebd586..b414439c8
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@@ -11,13 -11,14 +11,17 @@@ this project uses date-based 'snapshot
  - `\seq_set_split_keep_spaces:Nnn` (see #784)
  - `\tracingstacklevels`
  - Color export in comma-separated format
 +- `\ur{...}` escape in `l3regex` to compose regexes
  
  ### Changed
+ - Use prevailing catcodes instead of string in regex replacement (issue #621)
  - `\__kernel_file_name_sanitize:n` now uses a faster `\csname`-based
    approach to expand the file name.
  - `\pdf_version_gset:n` for `dvips`.
 +- Show printable characters explicitly in `\regex_show:n`
++- Allow quantifiers for `\u` escape in `l3regex`
+ - Improve handling of `\exp_not:n` in `\text_expand:n` (issue #875)
+ - `\file_full_name:n` now avoids calling `\pdffilesize` multiple times on the same file.
  
  ### Fixed
  - Evalutate integer constants only once (issue#861)
diff --cc l3kernel/testfiles/m3regex005.luatex.tlg
index d665ec17e,32057e3e5..67aa90647
--- a/l3kernel/testfiles/m3regex005.luatex.tlg
+++ b/l3kernel/testfiles/m3regex005.luatex.tlg
@@@ -354,154 -353,29 +354,179 @@@ There were 2 missing right parentheses
  > \l_tmpb_tl=.
  ============================================================
  ============================================================
 -TEST 15: Catcode used by default
 +TEST 15: Repetitions on \u escape
 +============================================================
 +The token list \l_tmpa_tl contains the tokens:
 +>  / (the character /)
 +>  \foobaz (control sequence=undefined)
 +>  \foobaz (control sequence=undefined)
 +>  y (the letter y)
 +>  / (the character /)
 +>  y (the letter y).
 +<recently read> }
 +l. ...  }
 +============================================================
 +> Compiled regex variable \l_tmpb_regex:
 ++-branch
 +  ,-group begin (no capture)
 +  | char code 97 (a)
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  `-group end, repeated 0 or more times, greedy
 +  ,-group begin
 +  | ,-group begin
 +  | | char code 66 (B)
 +  | `-group end
 +  | char code 97 (a)
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  | ,-group begin
 +  | | char code 67 (C)
 +  | `-group end
 +  `-group end.
 +<recently read> }
 +l. ...  }
 +> \l_tmpa_tl=(aAaAaABaAC,BaAC,B,C)aABC(BaAC,BaAC,B,C)BBC.
 +<recently read> }
 +l. ...  }
 +============================================================
 +> Compiled regex variable \l_tmpb_regex:
 ++-branch
 +  ,-group begin (no capture)
 +  | char code 97 (a)
 +  +-branch
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  `-group end, repeated between 0 and 2 times, greedy
 +  ,-group begin
 +  | ,-group begin
 +  | | char code 66 (B)
 +  | `-group end
 +  | ,-group begin (no capture)
 +  | | char code 97 (a)
 +  | +-branch
 +  | | ,-group begin (no capture)
 +  | | | char code 65 (A)
 +  | | `-group end
 +  | `-group end
 +  | ,-group begin
 +  | | char code 67 (C)
 +  | `-group end
 +  `-group end.
 +<recently read> }
 +l. ...  }
 +> \l_tmpa_tl=aAaA(aABAC,BAC,B,C)aABC(BaC,BaC,B,C)BBaAC.
 +<recently read> }
 +l. ...  }
 +============================================================
 +============================================================
 +TEST 16: c and u escapes with braces
 +============================================================
 +! LaTeX3 Error: Left braces must be escaped in '\c{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\c{...{...}' are not allowed and should be replaced by
 +'\c{...\{...}'.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                Left braces must be escaped in '\u{...}'.
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                Erroneous variable \csname\endcsnameused!
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +> Compiled regex {\c {{}\u {{}\cD }\cU }}:
 ++-branch
 +  control sequence \
 +  Match
 +    categories D, class
 +      char code 125 (})
 +  Match
 +    categories U, class
 +      char code 125 (}).
 +<recently read> }
 +l. ...  }
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                Erroneous variable \csname\endcsnameused!
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +The token list \l_tmpa_tl contains the tokens:
 +>  \csname\endcsname(control sequence=undefined)
 +>  } (subscript character })
 +>  } (superscript character }).
 +<recently read> }
 +l. ...  }
 +============================================================
 +Defining \x{ on line ...
 +> Compiled regex {\c {\{}\u {x\{}}:
 ++-branch
 +  control sequence \{
 +  char 102 (f), catcode 11
 +  char 111 (o), catcode 11
 +  char 111 (o), catcode 11.
 +<recently read> }
 +l. ...  }
 +The token list \l_tmpa_tl contains the tokens:
 +>  \{ (control sequence=\protected macro:->\ifmmode \lbrace \else \textb\ETC.)
 +>  f (the letter f)
 +>  o (the letter o)
 +>  o (the letter o).
++============================================================
++============================================================
++TEST 17: Catcode used by default
+ ============================================================
+ \g__cctab_next_cctab=\catcodetable...
+ The token list \l_tmpa_tl contains the tokens:
+ >  ^^M (the character ^^M)
+ >  ! (the character !)
+ >  @ (the character @)
+ >  # (macro parameter character #)
+ >  # (macro parameter character #)
+ >  # (macro parameter character #)
+ >  $ (math shift character $)
+ >  % (the character %)
+ >  $ (math shift character $)
+ >  ^ (superscript character ^)
+ >  & (alignment tab character &)
+ >  * (the character *)
+ >  { (begin-group character {)
+ >    (blank space  )
+ >  } (end-group character })
+ >  : (the character :)
+ >  _ (subscript character _)
+ >  ~ (active character=macro:->\nobreakspace {})
+ >  \ (the character \).
  <recently read> }
  l. ...  }
  ============================================================
diff --cc l3kernel/testfiles/m3regex005.lvt
index 98e0c4c32,602a50efa..482022fd4
--- a/l3kernel/testfiles/m3regex005.lvt
+++ b/l3kernel/testfiles/m3regex005.lvt
@@@ -188,45 -189,15 +189,55 @@@
      \tl_log:N \l_tmpb_tl
    }
  
 +
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +\TEST { Repetitions~on~\u~escape }
 +  {
 +    \tl_set:Nn \l_tmpa_tl { \foobaz \foobaz y y }
 +    \tl_set:Nn \l_tmpb_tl { \foobaz }
 +    \regex_replace_once:nnN { \u{l_tmpb_tl}*? . y } { / \0 / } \l_tmpa_tl
 +    \tl_analysis_show:N \l_tmpa_tl
 +    %
 +    \SEPARATOR
 +    \regex_set:Nn \l_tmpa_regex { a(A) }
 +    \regex_set:Nn \l_tmpb_regex { \ur{l_tmpa_regex}* ((B) \ur{l_tmpa_regex} (C)) }
 +    \regex_show:N \l_tmpb_regex
 +    \tl_set:Nn \l_tmpa_tl { aAaAaABaAC  aABC  BaAC BBC }
 +    \regex_replace_all:NnN \l_tmpb_regex { (\0,\1,\2,\3) } \l_tmpa_tl
 +    \tl_show:N \l_tmpa_tl
 +    %
 +    \SEPARATOR
 +    \regex_set:Nn \l_tmpa_regex { a|(A) }
 +    \regex_set:Nn \l_tmpb_regex { \ur{l_tmpa_regex}{0,2} ((B) \ur{l_tmpa_regex} (C)) }
 +    \regex_show:N \l_tmpb_regex
 +    \tl_set:Nn \l_tmpa_tl { aAaAaABAC  aABC  BaC BBaAC }
 +    \regex_replace_all:NnN \l_tmpb_regex { (\0,\1,\2,\3) } \l_tmpa_tl
 +    \tl_show:N \l_tmpa_tl
 +  }
 +
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +\TEST { c~and~u~escapes~with~braces }
 +  {
 +    \regex_show:n { \c{{} \u{{} \cD} \cU} }
 +    \tl_clear:N \l_tmpa_tl
 +    \regex_replace_all:nnN { } { \c{{} \u{{} \cD} \cU} } \l_tmpa_tl
 +    \tl_analysis_show:N \l_tmpa_tl
 +    \SEPARATOR
 +    \cs_new_nopar:cpn { x \iow_char:N \{ } { foo }
 +    \regex_show:n { \c{ \{ } \u{ x \{ } }
 +    \tl_clear:N \l_tmpa_tl
 +    \regex_replace_all:nnN { } { \c{\{} \u{x\{} } \l_tmpa_tl
 +    \tl_analysis_show:N \l_tmpa_tl    
 +  }
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \TEST { Catcode~used~by~default }
+   {
+     \cctab_begin:N \c_document_cctab
+     \tl_clear:N \l_tmpa_tl
+     \regex_replace_all:nnN { } { \x0d!@#\#$\%$^&*{\ }:_\~\\ } \l_tmpa_tl
+     \tl_analysis_show:N \l_tmpa_tl
+     \cctab_end:
+   }
+ 
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \END
diff --cc l3kernel/testfiles/m3regex005.tlg
index 4fd8236f7,cc6c44cba..f658e05a4
--- a/l3kernel/testfiles/m3regex005.tlg
+++ b/l3kernel/testfiles/m3regex005.tlg
@@@ -354,154 -353,29 +354,179 @@@ There were 2 missing right parentheses
  > \l_tmpb_tl=.
  ============================================================
  ============================================================
 -TEST 15: Catcode used by default
 +TEST 15: Repetitions on \u escape
 +============================================================
 +The token list \l_tmpa_tl contains the tokens:
 +>  / (the character /)
 +>  \foobaz (control sequence=undefined)
 +>  \foobaz (control sequence=undefined)
 +>  y (the letter y)
 +>  / (the character /)
 +>  y (the letter y).
 +<recently read> }
 +l. ...  }
 +============================================================
 +> Compiled regex variable \l_tmpb_regex:
 ++-branch
 +  ,-group begin (no capture)
 +  | char code 97 (a)
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  `-group end, repeated 0 or more times, greedy
 +  ,-group begin
 +  | ,-group begin
 +  | | char code 66 (B)
 +  | `-group end
 +  | char code 97 (a)
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  | ,-group begin
 +  | | char code 67 (C)
 +  | `-group end
 +  `-group end.
 +<recently read> }
 +l. ...  }
 +> \l_tmpa_tl=(aAaAaABaAC,BaAC,B,C)aABC(BaAC,BaAC,B,C)BBC.
 +<recently read> }
 +l. ...  }
 +============================================================
 +> Compiled regex variable \l_tmpb_regex:
 ++-branch
 +  ,-group begin (no capture)
 +  | char code 97 (a)
 +  +-branch
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  `-group end, repeated between 0 and 2 times, greedy
 +  ,-group begin
 +  | ,-group begin
 +  | | char code 66 (B)
 +  | `-group end
 +  | ,-group begin (no capture)
 +  | | char code 97 (a)
 +  | +-branch
 +  | | ,-group begin (no capture)
 +  | | | char code 65 (A)
 +  | | `-group end
 +  | `-group end
 +  | ,-group begin
 +  | | char code 67 (C)
 +  | `-group end
 +  `-group end.
 +<recently read> }
 +l. ...  }
 +> \l_tmpa_tl=aAaA(aABAC,BAC,B,C)aABC(BaC,BaC,B,C)BBaAC.
 +<recently read> }
 +l. ...  }
 +============================================================
 +============================================================
 +TEST 16: c and u escapes with braces
 +============================================================
 +! LaTeX3 Error: Left braces must be escaped in '\c{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\c{...{...}' are not allowed and should be replaced by
 +'\c{...\{...}'.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                           Left braces must be escaped in '\u{...}'.
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                           Erroneous variable \csname\endcsnameused!
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +> Compiled regex {\c {{}\u {{}\cD }\cU }}:
 ++-branch
 +  control sequence \
 +  Match
 +    categories D, class
 +      char code 125 (})
 +  Match
 +    categories U, class
 +      char code 125 (}).
 +<recently read> }
 +l. ...  }
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                           Erroneous variable \csname\endcsnameused!
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +The token list \l_tmpa_tl contains the tokens:
 +>  \csname\endcsname(control sequence=undefined)
 +>  } (subscript character })
 +>  } (superscript character }).
 +<recently read> }
 +l. ...  }
 +============================================================
 +Defining \x{ on line ...
 +> Compiled regex {\c {\{}\u {x\{}}:
 ++-branch
 +  control sequence \{
 +  char 102 (f), catcode 11
 +  char 111 (o), catcode 11
 +  char 111 (o), catcode 11.
 +<recently read> }
 +l. ...  }
 +The token list \l_tmpa_tl contains the tokens:
 +>  \{ (control sequence=\protected macro:->\ifmmode \lbrace \else \textb\ETC.)
 +>  f (the letter f)
 +>  o (the letter o)
 +>  o (the letter o).
++============================================================
++============================================================
++TEST 17: Catcode used by default
+ ============================================================
+ Defining \g__cctab_1_cctab on line ...
+ The token list \l_tmpa_tl contains the tokens:
+ >  ^^M (the character ^^M)
+ >  ! (the character !)
+ >  @ (the character @)
+ >  # (macro parameter character #)
+ >  # (macro parameter character #)
+ >  # (macro parameter character #)
+ >  $ (math shift character $)
+ >  % (the character %)
+ >  $ (math shift character $)
+ >  ^ (superscript character ^)
+ >  & (alignment tab character &)
+ >  * (the character *)
+ >  { (begin-group character {)
+ >    (blank space  )
+ >  } (end-group character })
+ >  : (the character :)
+ >  _ (subscript character _)
+ >  ~ (active character=macro:->\nobreakspace {})
+ >  \ (the character \).
  <recently read> }
  l. ...  }
  ============================================================
diff --cc l3kernel/testfiles/m3regex005.xetex.tlg
index 5aba4c713,b74de5b57..c4375ffb7
--- a/l3kernel/testfiles/m3regex005.xetex.tlg
+++ b/l3kernel/testfiles/m3regex005.xetex.tlg
@@@ -280,13 -280,12 +280,18 @@@ TEST 10: Caseless matching and c
  ============================================================
  TEST 11: Braces
  ============================================================
 -|\{}|
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +|\csname\endcsname}|
+ The token list \l_tmpa_tl contains the tokens:
+ >  \{ (control sequence=\protected macro:->\ifmmode \lbrace \else \textb\ETC.)
+ >  } (the letter }).
+ <recently read> }
+ l. ...  }
  ! LaTeX3 Error: Missing right brace inserted in replacement text.
  For immediate help type H <return>.
   ...                                              
@@@ -354,154 -353,29 +359,179 @@@ There were 2 missing right parentheses
  > \l_tmpb_tl=.
  ============================================================
  ============================================================
 +TEST 15: Repetitions on \u escape
 +============================================================
 +The token list \l_tmpa_tl contains the tokens:
 +>  / (the character /)
 +>  \foobaz (control sequence=undefined)
 +>  \foobaz (control sequence=undefined)
 +>  y (the letter y)
 +>  / (the character /)
 +>  y (the letter y).
 +<recently read> }
 +l. ...  }
 +============================================================
 +> Compiled regex variable \l_tmpb_regex:
 ++-branch
 +  ,-group begin (no capture)
 +  | char code 97 (a)
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  `-group end, repeated 0 or more times, greedy
 +  ,-group begin
 +  | ,-group begin
 +  | | char code 66 (B)
 +  | `-group end
 +  | char code 97 (a)
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  | ,-group begin
 +  | | char code 67 (C)
 +  | `-group end
 +  `-group end.
 +<recently read> }
 +l. ...  }
 +> \l_tmpa_tl=(aAaAaABaAC,BaAC,B,C)aABC(BaAC,BaAC,B,C)BBC.
 +<recently read> }
 +l. ...  }
 +============================================================
 +> Compiled regex variable \l_tmpb_regex:
 ++-branch
 +  ,-group begin (no capture)
 +  | char code 97 (a)
 +  +-branch
 +  | ,-group begin (no capture)
 +  | | char code 65 (A)
 +  | `-group end
 +  `-group end, repeated between 0 and 2 times, greedy
 +  ,-group begin
 +  | ,-group begin
 +  | | char code 66 (B)
 +  | `-group end
 +  | ,-group begin (no capture)
 +  | | char code 97 (a)
 +  | +-branch
 +  | | ,-group begin (no capture)
 +  | | | char code 65 (A)
 +  | | `-group end
 +  | `-group end
 +  | ,-group begin
 +  | | char code 67 (C)
 +  | `-group end
 +  `-group end.
 +<recently read> }
 +l. ...  }
 +> \l_tmpa_tl=aAaA(aABAC,BAC,B,C)aABC(BaC,BaC,B,C)BBaAC.
 +<recently read> }
 +l. ...  }
 +============================================================
 +============================================================
 +TEST 16: c and u escapes with braces
 +============================================================
 +! LaTeX3 Error: Left braces must be escaped in '\c{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\c{...{...}' are not allowed and should be replaced by
 +'\c{...\{...}'.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                           Left braces must be escaped in '\u{...}'.
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                           Erroneous variable \csname\endcsnameused!
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +> Compiled regex {\c {{}\u {{}\cD }\cU }}:
 ++-branch
 +  control sequence \
 +  Match
 +    categories D, class
 +      char code 125 (})
 +  Match
 +    categories U, class
 +      char code 125 (}).
 +<recently read> }
 +l. ...  }
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +! LaTeX3 Error: Left braces must be escaped in '\u{...}'.
 +For immediate help type H <return>.
 + ...                                              
 +l. ...  }
 +Constructions such as '\u{...{...}' are not allowed and should be replaced by
 +'\u{...\{...}'.
 +! Undefined control sequence.
 +<argument> \LaTeX3 error: 
 +                           Erroneous variable \csname\endcsnameused!
 +l. ...  }
 +The control sequence at the end of the top line
 +of your error message was never \def'ed. If you have
 +misspelled it (e.g., `\hobx'), type `I' and the correct
 +spelling (e.g., `I\hbox'). Otherwise just continue,
 +and I'll forget about whatever was undefined.
 +The token list \l_tmpa_tl contains the tokens:
 +>  \csname\endcsname(control sequence=undefined)
 +>  } (subscript character })
 +>  } (superscript character }).
 +<recently read> }
 +l. ...  }
 +============================================================
 +Defining \x{ on line ...
 +> Compiled regex {\c {\{}\u {x\{}}:
 ++-branch
 +  control sequence \{
 +  char 102 (f), catcode 11
 +  char 111 (o), catcode 11
 +  char 111 (o), catcode 11.
 +<recently read> }
 +l. ...  }
 +The token list \l_tmpa_tl contains the tokens:
 +>  \{ (control sequence=\protected macro:->\ifmmode \lbrace \else \textb\ETC.)
 +>  f (the letter f)
 +>  o (the letter o)
 +>  o (the letter o).
++============================================================
++============================================================
+ TEST 15: Catcode used by default
+ ============================================================
+ Defining \g__cctab_1_cctab on line ...
+ The token list \l_tmpa_tl contains the tokens:
+ >  ^^M (the character ^^M)
+ >  ! (the character !)
+ >  @ (the character @)
+ >  # (macro parameter character #)
+ >  # (macro parameter character #)
+ >  # (macro parameter character #)
+ >  $ (math shift character $)
+ >  % (the character %)
+ >  $ (math shift character $)
+ >  ^ (superscript character ^)
+ >  & (alignment tab character &)
+ >  * (the character *)
+ >  { (begin-group character {)
+ >    (blank space  )
+ >  } (end-group character })
+ >  : (the character :)
+ >  _ (subscript character _)
+ >  ~ (active character=macro:->\nobreakspace {})
+ >  \ (the character \).
  <recently read> }
  l. ...  }
  ============================================================





More information about the latex3-commits mailing list.