diff options
author | Karl Berry <karl@freefriends.org> | 2022-09-22 20:14:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-09-22 20:14:13 +0000 |
commit | e6a468a4966094b8279d60147659d03c3bf0d4d3 (patch) | |
tree | 87d69da053e4bfb66bbb058b7d74b9fe9d5f63f4 /Master/texmf-dist/tex/latex/semantex | |
parent | 216d0020e459bc9b36343105f8e42f6af4f5da4e (diff) |
semantex (22sep22)
git-svn-id: svn://tug.org/texlive/trunk@64472 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/semantex')
-rw-r--r-- | Master/texmf-dist/tex/latex/semantex/semantex.sty | 1095 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/semantex/stripsemantex.lua | 34 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/semantex/stripsemantex.sty | 18 |
3 files changed, 186 insertions, 961 deletions
diff --git a/Master/texmf-dist/tex/latex/semantex/semantex.sty b/Master/texmf-dist/tex/latex/semantex/semantex.sty index 325f2dbec59..8cdbecc789f 100644 --- a/Master/texmf-dist/tex/latex/semantex/semantex.sty +++ b/Master/texmf-dist/tex/latex/semantex/semantex.sty @@ -1,5 +1,5 @@ \RequirePackage{xparse,l3keys2e,leftindex,semtex} -\ProvidesExplPackage{semantex}{2021/08/23}{0.513}{} +\ProvidesExplPackage{semantex}{2022/06/22}{0.520}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -10,7 +10,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\tl_set:Nn\SemantexVersion{0.513} +\tl_set:Nn\SemantexVersion{0.520} \cs_set_eq:NN \semantex_keyval_parse:NNn \keyval_parse:NNn \cs_set:Npn \semantex_singlekey_parse:Nn#1#2 { \clist_map_function:nN { #2 } #1 } @@ -50,8 +50,8 @@ \bool_if:NF \g__semantex_semtex_file_was_opened_bool { \iow_open:Nn \g__semantex_semtex_file_stream_temp_iow { \jobname.semtex } - \iow_now:Nn \g__semantex_semtex_file_stream_temp_iow { \DeclareClass {\SemantexBaseObject } } - \iow_now:Nn \g__semantex_semtex_file_stream_temp_iow { \DeclareObject {\SemantexDelimiterSize } } + \iow_now:Nn \g__semantex_semtex_file_stream_temp_iow { \RegisterClass {\SemantexBaseObject } } + \iow_now:Nn \g__semantex_semtex_file_stream_temp_iow { \RegisterObject {\SemantexDelimiterSize } } } \cs_set:Npn\semantex_write_to_semtex_file:n##1 @@ -126,17 +126,17 @@ \cs_new_protected:Npn\semantex_write_class_declaration_to_semtex_file:n#1 { - \semantex_write_to_semtex_file:n { \DeclareClass{#1} } + \semantex_write_to_semtex_file:n { \RegisterClass{#1} } } \cs_new_protected:Npn\semantex_write_object_declaration_to_semtex_file:n#1 { - \semantex_write_to_semtex_file:n { \DeclareObject{#1} } + \semantex_write_to_semtex_file:n { \RegisterObject{#1} } } -\cs_new_protected:Npn\SemantexIDcommand#1 +\cs_new_protected:Npn\SemantexID#1 { - \semantex_write_to_semtex_file:n { \SemantexID{#1} } + \semantex_write_to_semtex_file:n { \RegisterID{#1} } } \cs_set_eq:NN\SemantexRecordObject\semantex_write_object_declaration_to_semtex_file:n @@ -148,11 +148,9 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\DeclareDocumentCommand\semantex_new_simple_class:Nw{mO{}} % new simple-type class +\cs_new_protected:Npn\semantex_declare_simple_class:N#1 % new simple-type class { % #1 = class name - % #2 = options - \semantex_new_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } \DeclareDocumentCommand{#1}{m} { % the actual \#1 command @@ -169,7 +167,7 @@ ##1 } } - \exp_args:Nc\DeclareDocumentCommand{__semantex_new_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} + \exp_args:Nc\DeclareDocumentCommand{__semantex_declare_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} { % the command for creating a new object of class #1 % ##1 = command name, with backslash @@ -177,13 +175,13 @@ % ##3 = options \IfValueTF{##2} { - \semantex_new_object:NNn #1 ##1 { + \semantex_declare_object:NNn #1 ##1 { \semantex_object_set_symbol:Nn ##1 { ##2 } \semantex_object_set_keys:Nn ##1 { ##3 } } } { - \semantex_new_object:NNn #1 ##1 { + \semantex_declare_object:NNn #1 ##1 { \semantex_object_set_keys:Nn ##1 { ##3 } } } @@ -197,13 +195,23 @@ } } -\tl_set_eq:NN\NewSimpleClass\semantex_new_simple_class:Nw +\NewDocumentCommand\DeclareSimpleClass{ m O{} } +{ + \semantex_declare_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } + \semantex_declare_simple_class:N #1 +} + +\NewDocumentCommand\NewSimpleClass { m O{} } +{ + \semantex_new_class_and_do:NNnn #1 \DeclareSimpleClass { \semantex_class_set_keys:Nn #1 { #2 } } + { + \semantex_declare_simple_class:N #1 + } +} -\DeclareDocumentCommand\semantex_new_symbol_class:Nw{mO{}} % new symbol-type class +\cs_new_protected:Npn\semantex_declare_symbol_class:N #1 % new symbol-type class { % #1 = class name - % #2 = options - \semantex_new_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } \DeclareDocumentCommand{#1}{mo} { % the actual \#1 command @@ -243,7 +251,7 @@ } } } - \exp_args:Nc\DeclareDocumentCommand{__semantex_new_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} + \exp_args:Nc\DeclareDocumentCommand{__semantex_declare_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} { % the command for creating a new object of class #1 % ##1 = command name, with backslash @@ -251,13 +259,13 @@ % ##3 = options \IfValueTF{##2} { - \semantex_new_object:NNn #1 ##1 { + \semantex_declare_object:NNn #1 ##1 { \semantex_object_set_symbol:Nn ##1 { ##2 } \semantex_object_set_keys:Nn ##1 { ##3 } } } { - \semantex_new_object:NNn #1 ##1 { + \semantex_declare_object:NNn #1 ##1 { \semantex_object_set_keys:Nn ##1 { ##3 } } } @@ -281,14 +289,23 @@ } } -\tl_set_eq:NN\NewSymbolClass\semantex_new_symbol_class:Nw +\NewDocumentCommand\DeclareSymbolClass{ m O{} } +{ + \semantex_declare_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } + \semantex_declare_symbol_class:N #1 +} -\DeclareDocumentCommand\semantex_new_variable_class:Nw{mO{}} % new variable-type class +\NewDocumentCommand\NewSymbolClass { m O{} } +{ + \semantex_new_class_and_do:NNnn #1 \DeclareSymbolClass { \semantex_class_set_keys:Nn #1 { #2 } } + { + \semantex_declare_symbol_class:N #1 + } +} + +\cs_new_protected:Npn\semantex_declare_variable_class:N#1 % new variable-type class { % #1 = class name - % #2 = options - \semantex_new_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } - %\semantex_new_class:Nn #1 { #2 } \DeclareDocumentCommand{#1}{mog} { % the actual \#1 command @@ -375,7 +392,7 @@ } } } - \exp_args:Nc\DeclareDocumentCommand{__semantex_new_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} + \exp_args:Nc\DeclareDocumentCommand{__semantex_declare_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} { % the command for creating a new object of class #1 % ##1 = command name, with backslash @@ -383,13 +400,13 @@ % ##3 = options \IfValueTF{##2} { - \semantex_new_object:NNn #1 ##1 { + \semantex_declare_object:NNn #1 ##1 { \semantex_object_set_symbol:Nn ##1 { ##2 } \semantex_object_set_keys:Nn ##1 { ##3 } } } { - \semantex_new_object:NNn #1 ##1 { + \semantex_declare_object:NNn #1 ##1 { \semantex_object_set_keys:Nn ##1 { ##3 } } } @@ -444,796 +461,20 @@ } } -\cs_set_eq:NN\NewVariableClass\semantex_new_variable_class:Nw - -\DeclareDocumentCommand\semantex_new_cohomology_class:Nw{mO{}} % new cohomology-type class +\NewDocumentCommand\DeclareVariableClass{ m O{} } { - % #1 = class name - % #2 = options - \semantex_new_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } - \DeclareDocumentCommand{#1}{mogg}{ - % the actual \#1 command - \IfValueTF{##2} - { - \IfValueTF { ##3 } - { - \str_if_eq:nnTF { ##3 }{ * } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { * } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_use_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { * } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_use_bullet:N #1 - } - } - } - { - \str_if_eq:nnTF { ##3 }{ ** } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { ** } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_use_double_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { ** } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_use_double_bullet:N #1 - } - } - } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { ##3 } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##3 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { ##3 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##3 } - } - } - } - } - } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - } - } - } - } - { - \IfValueTF { ##3 } - { - \str_if_eq:nnTF { ##3 }{ * } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { * } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_use_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { * } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_use_bullet:N #1 - } - } - } - { - \str_if_eq:nnTF { ##3 }{ ** } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { ** } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_use_double_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { ** } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_use_double_bullet:N #1 - } - } - } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { ##3 } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##3 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { ##3 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##3 } - } - } - } - } - } - { - \IfValueTF { ##4 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - } - } - } - } - } - \exp_args:Nc\DeclareDocumentCommand{__semantex_make_object_of_\semantex_class_to_register:N #1_with_options:nnw}{mmogg} - { - \IfValueTF{##3} - { - \IfValueTF { ##4 } - { - \str_if_eq:nnTF { ##4 }{ * } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { * } { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_use_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { * } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_use_bullet:N #1 - } - } - } - { - \str_if_eq:nnTF { ##4 }{ ** } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { ** } { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_use_double_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { ** } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_use_double_bullet:N #1 - } - } - } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { ##4 } { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##4 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##4 } - } - } - } - } - } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - } - } - } - } - { - \IfValueTF { ##4 } - { - \str_if_eq:nnTF { ##4 }{ * } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { * } { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_use_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { * } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_use_bullet:N #1 - } - } - } - { - \str_if_eq:nnTF { ##4 }{ ** } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { ** } { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_use_double_bullet:N #1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { ** } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_use_double_bullet:N #1 - } - } - } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { ##4 } { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##4 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_degree_default:Nn #1 { ##4 } - } - } - } - } - } - { - \IfValueTF { ##5 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { ##5 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##5 } - } - } - { - % \semantex_add_to_existing_original_source_in_semtex_file:n { } % write nothing to file - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - } - } - } - } - } - \exp_args:Nc\DeclareDocumentCommand{__semantex_new_object_of_\semantex_class_to_register:N #1:Nw}{mgO{}} - { - % the command for creating a new object of class #1 - % ##1 = command name, with backslash - % ##2 = symbol - % ##3 = options - \IfValueTF{##2} - { - \semantex_new_object:NNn #1 { ##1 }{ - \semantex_object_set_symbol:Nn ##1 { ##2 } - \semantex_object_set_keys:Nn ##1 { ##3 } - } - } - { - \semantex_new_object:NNn #1 { ##1 }{ - \semantex_object_set_keys:Nn ##1 { ##3 } - } - } - % creates the object with name ##1 - \DeclareDocumentCommand{##1}{ogg} - { - % the actual \##1 command - \IfValueTF{####1} - { - \IfValueTF{####2} - { - \str_if_eq:nnTF { ####2 } { * } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { * } { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_use_bullet:N ##1 - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { * } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_use_bullet:N ##1 - } - } - } - { - \str_if_eq:nnTF { ####2 } { ** } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { ** } { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_use_double_bullet:N ##1 - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { ** } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_use_double_bullet:N ##1 - } - } - } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { ####2 } { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_set_degree_default:Nn ##1 { ####2 } - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { ####2 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_set_degree_default:Nn ##1 { ####2 } - } - } - } - } - } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1 ] } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - } - } - } - } - { - \IfValueTF{####2} - { - \str_if_eq:nnTF { ####2 } { * } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { * } { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_use_bullet:N ##1 - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { * } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_use_bullet:N ##1 - } - } - } - { - \str_if_eq:nnTF { ####2 } { ** } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { ** } { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_use_double_bullet:N ##1 - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { ** } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_use_double_bullet:N ##1 - } - } - } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { ####2 } { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_degree_default:Nn ##1 { ####2 } - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { ####2 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_degree_default:Nn ##1 { ####2 } - } - } - } - } - } - { - \IfValueTF{####3} - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { ####3 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_arg:Nn ##1 { ####3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 } - \semantex_render_object:Nn ##1 { } - } - } - } - } - } + \semantex_declare_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } + \semantex_declare_variable_class:N #1 } -\cs_set_eq:NN\NewCohomologyClass\semantex_new_cohomology_class:Nw - -\DeclareDocumentCommand\semantex_new_delimiter_class:Nw{mO{}} % new delimiter-type class +\NewDocumentCommand\NewVariableClass { m O{} } { - % #1 = class name - % #2 = options - \semantex_new_class:Nn { #1 } { \semantex_class_set_keys:Nn #1 { #2 } } - \DeclareDocumentCommand{#1}{mog} % maybe this does not even make sense for delimiters - { - \IfValueTF { ##2 } - { - \IfValueTF { ##3 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] { ##3 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } [ ##2 ] } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_keys:Nn #1 { ##2 } - } - } - } - { - \IfValueTF { ##3 } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } { ##3 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##3 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { #1 { ##1 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##1 } - } - } - } - } - % the actual \#1 command - \exp_args:Nc\DeclareDocumentCommand{__semantex_make_object_of_\semantex_class_to_register:N #1_with_options:nnw}{mmog} - { - \IfValueTF { ##3 } - { - \IfValueTF { ##4 } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] { ##4 } } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - \semantex_add_to_existing_original_source_in_semtex_file:n - { [ ##3 ] } - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_keys:Nn #1 { ##3 } - } - } - } - { - \IfValueTF { ##4 } - { - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_add_to_existing_original_source_in_semtex_file:n - { { ##4 } } - \semantex_object_associated_to_class_do_output:N #1 - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - \semantex_object_associated_to_class_set_arg:Nn #1 { ##4 } - } - } - { - % \semantex_add_to_existing_original_source_in_semtex_file:n { } % write nothing to file - \semantex_render_object_associated_to_class:Nn #1 { - \semantex_object_associated_to_class_set_symbol:Nn #1 { ##2 } - ##1 - } - } - } - } - \exp_args:Nc\DeclareDocumentCommand{__semantex_new_object_of_\semantex_class_to_register:N #1:Nw}{mmmO{}} + \semantex_new_class_and_do:NNnn #1 \DeclareVariableClass { \semantex_class_set_keys:Nn #1 { #2 } } { - % the command for creating a new object of class #1 - % ##1 = command name, with backslash - % ##2 = symbol - % ##3 = options - \semantex_new_object:NNn #1 { ##1 }{ - \semantex_object_set_left_par:Nn ##1 { ##2 } - \semantex_object_set_right_par:Nn ##1 { ##3 } - \semantex_object_set_keys:Nn ##1 { ##4 } - } - % creates the object with name ##1 - \DeclareDocumentCommand{##1}{og} - { - % the actual \##1 command - \IfValueTF { ####1 } - { - \IfValueTF { ####2 } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1] { ####2 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - \semantex_object_set_arg:Nn ##1 { ####2 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 [ ####1] } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_keys:Nn ##1 { ####1 } - } - } - } - { - \IfValueTF { ####2 } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 { ####2 } } - \semantex_render_object:Nn ##1 { - \semantex_object_do_output:N ##1 - \semantex_object_set_arg:Nn ##1 { ####2 } - } - } - { - \semantex_write_original_source_to_semtex_file:n - { ##1 } - \semantex_render_object:Nn ##1 { } - } - } - } + \semantex_declare_variable_class:N #1 } } -\cs_set_eq:NN\NewDelimiterClass\semantex_new_delimiter_class:Nw - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % COMMANDS FOR CREATING AND HANDLING CLASSES AND OJBECTS @@ -1251,33 +492,48 @@ \cs_new:Npn\semantex_class_to_register:N#1 { % #1 = name of class - class_\cs_to_str:N #1 + class_\token_to_str:N #1 } \cs_new:Npn\semantex_class_to_associated_object_register:N#1 { % #1 = name of class - object_associated_to_class_\cs_to_str:N #1 + object_associated_to_class_\token_to_str:N #1 } \cs_new:Npn\semantex_object_to_register:N#1 { % #1 = name of object - object_\cs_to_str:N #1 + object_\token_to_str:N #1 } -\DeclareDocumentCommand\NewObject { m } +\tl_new:N \g_semantex_class_SemantexBaseObject_register_tl + +\tl_set:Nx \g_semantex_class_SemantexBaseObject_register_tl { \semantex_class_to_register:N \SemantexBaseObject } + +\DeclareDocumentCommand\DeclareObject { m m } { % #1 = name of object \semantex_class_if_exist:NTF #1 { - \use:c { __semantex_new_object_of_\semantex_class_to_register:N #1:Nw } + \use:c { __semantex_declare_object_of_\semantex_class_to_register:N #1:Nw } #2 } { \msg_error:nnn { semantex } { created_object_of_unknown_class } { #1 } } } +\DeclareDocumentCommand\NewObject { m m } +{ + \cs_if_exist:NTF #2 + { + \msg_error:nnn { semantex } { created_object_with_already_defined_name } { #2 } + } + { + \DeclareObject #1 #2 + } +} + \DeclareDocumentCommand\UseClassInCommand { mo } { \semantex_class_if_exist:NTF #1 @@ -1306,7 +562,7 @@ \semantex_data_tl_provide:nn { #1 } { parent } - \semantex_data_tl_set:nnn { #1 } { parent } { class_SemantexBaseObject } + \semantex_data_tl_set:nno { #1 } { parent } { \g_semantex_class_SemantexBaseObject_register_tl } % The parent class by default is \SemantexBaseObject \cs_set:cpn { __semantex_data_cs_#1_valuekey:nn } ##1##2 % command controlling valuekeys @@ -1339,7 +595,7 @@ \cs_generate_variant:Nn \semantex_new_register:nn { xn } -\cs_new_protected:Npn \semantex_new_class:Nn#1#2 +\cs_new_protected:Npn \semantex_declare_class:Nn#1#2 { % create a new class % #1 = name of class @@ -1357,7 +613,24 @@ } } -\cs_set_protected:Npn \semantex_new_object:NNn#1#2#3 +\cs_new_protected:Npn \semantex_new_class_and_do:NNnn#1#2#3#4 +{ + % create a new class + % #1 = name of class + % #2 = name of \Declare...Class variant of command, for error messages + % #3 = standard keyval setup + % #4 = code to execute if successful + \cs_if_exist:NTF #1 + { + \msg_error:nnnn { semantex } { created_class_with_already_defined_name } { #1 } { #2 } + } + { + \semantex_declare_class:Nn #1 { #3 } + #4 + } +} + +\cs_set_protected:Npn \semantex_declare_object:NNn#1#2#3 { % create a new object % #1 = name of class @@ -1427,56 +700,6 @@ \semantex_valuekey:nnn { \semantex_object_to_register:N #1 } { arg } { #2 } } -\cs_new_protected:Npn\semantex_object_associated_to_class_set_degree_default:Nn#1#2 -{ - \semantex_valuekey:nnn { \semantex_class_to_associated_object_register:N #1 } { degree~default } { #2 } -} - -\cs_new_protected:Npn\semantex_object_set_degree_default:Nn#1#2 -{ - \semantex_valuekey:nnn { \semantex_object_to_register:N #1 } { degree~default } { #2 } -} - -\cs_new_protected:Npn\semantex_object_associated_to_class_use_bullet:N#1 -{ - \semantex_singlekey:nn { \semantex_class_to_associated_object_register:N #1 } { * } -} - -\cs_new_protected:Npn\semantex_object_use_bullet:N#1 -{ - \semantex_singlekey:nn { \semantex_object_to_register:N #1 } { * } -} - -\cs_new_protected:Npn\semantex_object_associated_to_class_use_double_bullet:N#1 -{ - \semantex_singlekey:nn { \semantex_class_to_associated_object_register:N #1 } { * } -} - -\cs_new_protected:Npn\semantex_object_use_double_bullet:N#1 -{ - \semantex_singlekey:nn { \semantex_object_to_register:N #1 } { * } -} - -\cs_new_protected:Npn\semantex_object_associated_to_class_set_left_par:Nn#1#2 -{ - \semantex_data_tl_set:nnn { \semantex_class_to_associated_object_register:N #1 } { left~par } { #2 } -} - -\cs_new_protected:Npn\semantex_object_set_left_par:Nn#1#2 -{ - \semantex_data_tl_set:nnn { \semantex_object_to_register:N #1 } { left~par } { #2 } -} - -\cs_new_protected:Npn\semantex_object_associated_to_class_set_right_par:Nn#1#2 -{ - \semantex_data_tl_set:nnn { \semantex_class_to_associated_object_register:N #1 } { right~par } { #2 } -} - -\cs_new_protected:Npn\semantex_object_set_right_par:Nn#1#2 -{ - \semantex_data_tl_set:nnn { \semantex_object_to_register:N #1 } { right~par } { #2 } -} - \cs_new_protected:Npn\semantex_object_associated_to_class_set_class:Nn#1#2 { \semantex_data_class_set:nn { \semantex_class_to_associated_object_register:N #1 } { #2 } @@ -2449,7 +1672,7 @@ \use:c { g__semantex_data_tl_#1_#2 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #3 } { data_tl_not_found } { #2 } } @@ -2478,7 +1701,7 @@ \exp_not:v { g__semantex_data_tl_#1_#2 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #3 } { data_tl_not_found } { #2 } } @@ -2509,7 +1732,7 @@ \tl_set_eq:Nc #3 { g__semantex_data_tl_#1_#2 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #4 } { data_tl_not_found } { #2 } } @@ -2553,7 +1776,7 @@ \tl_set:cn { g__semantex_data_tl_#1_#2 } { #3 } } -\cs_generate_variant:Nn \semantex_data_tl_set:nnn { nnx } +\cs_generate_variant:Nn \semantex_data_tl_set:nnn { nno, nnx } \cs_new_protected:Npn \semantex_data_tl_put_right:nnn#1#2#3 { @@ -2632,7 +1855,7 @@ \int_use:c { g__semantex_data_int_#1_#2 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #3 } { data_int_not_found } { #2 } } @@ -2642,7 +1865,7 @@ } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #3 } { data_int_not_found } { #2 } } @@ -2673,7 +1896,7 @@ \int_set_eq:Nc#3 { g__semantex_data_int_#1_#2 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #4 } { data_int_not_found } { #2 } } @@ -2683,7 +1906,7 @@ } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #4 } { data_int_not_found } { #2 } } @@ -2821,7 +2044,7 @@ \bool_if:cTF { g__semantex_data_bool_#1_if_#2 } { #3 } { #4 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { #4 } @@ -2831,7 +2054,7 @@ } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnx { #5 } { data_bool_not_found } { #2 } } @@ -3003,7 +2226,7 @@ \use:c { __semantex_data_cs_custom_valuekey_#1_#2:nn } { #4 } { #3 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnn { #4 } { valuekey_not_found } { #2 } } @@ -3027,7 +2250,7 @@ % #1 = register % #2 = key % #3 = value - \use:c { __semantex_data_cs_custom_valuekey_class_SemantexBaseObject_#2:nn } { #1 } { #3 } + \use:c { __semantex_data_cs_custom_valuekey_\g_semantex_class_SemantexBaseObject_register_tl _#2:nn } { #1 } { #3 } } \cs_new_protected:Npn\semantex_singlekey:nn#1#2 @@ -3050,7 +2273,7 @@ \use:c { __semantex_data_cs_custom_singlekey_#1_#2:n } { #3 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_valuekey:nnn { #3 } { default } { #2 } } @@ -3080,7 +2303,7 @@ % the name of the register } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_valuekey:nnx { #3 } { default } { #2 } } @@ -3104,7 +2327,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_valuekey_#1_\tl_trim_spaces:n{#2}:nn } { ##1 } { ##2 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3127,7 +2350,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_singlekey_#1_\tl_trim_spaces:n{#2}:n } { ##1 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3151,7 +2374,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_two_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnn } { ##1 } { ##2 } { ##3 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3175,7 +2398,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_three_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnn } { ##1 } { ##2 } { ##3 } { ##4 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3199,7 +2422,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_four_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3223,7 +2446,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_five_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3247,7 +2470,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_six_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3271,7 +2494,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_seven_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } { ##8 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3295,7 +2518,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_eight_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } { ##8 } { ##9 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3319,7 +2542,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_nine_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } { ##8 } { ##9 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3349,7 +2572,7 @@ \use:c { __semantex_data_cs_custom_arg_valuekey_#1_#2:nn } { #4 } { #3 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_msg_error:nnn { #1 } { arg_valuekey_not_found } { #2 } } @@ -3379,7 +2602,7 @@ \use:c { __semantex_data_cs_custom_arg_singlekey_#1_#2:n } { #3 } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_arg_valuekey:nnn { #3 } { default } { #2 } } @@ -3409,7 +2632,7 @@ % the name of the register } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \semantex_arg_valuekey:nnx { #3 } { default } { #2 } } @@ -3443,7 +2666,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_valuekey_#1_\tl_trim_spaces:n{#2}:nn } { ##1 } { ##2 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3466,7 +2689,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_singlekey_#1_\tl_trim_spaces:n{#2}:n } { ##1 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3490,7 +2713,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_two_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnn } { ##1 } { ##2 } { ##3 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3514,7 +2737,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_three_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnn } { ##1 } { ##2 } { ##3 } { ##4 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3538,7 +2761,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_four_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3562,7 +2785,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_five_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3586,7 +2809,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_six_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3610,7 +2833,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_seven_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } { ##8 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3634,7 +2857,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_eight_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } { ##8 } { ##9 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -3658,7 +2881,7 @@ \exp_args:NNNo \exp_args:NNo\tl_set:No#3 { \use:c { __semantex_data_cs_custom_arg_nine_valuekey_#1_\tl_trim_spaces:n{#2}_auxiliary:nnnnnnnnn } { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } { ##6 } { ##7 } { ##8 } { ##9 } } } { - \str_if_eq:nnTF { #1 } { class_SemantexBaseObject } + \str_if_eq:nVTF { #1 } \g_semantex_class_SemantexBaseObject_register_tl { \tl_set:Nn #3 {} } @@ -7050,49 +6273,53 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\msg_new:nnnn { semantex } { semantex_setup_key_not_found } { Unknown~key~#1~passed~to~\SemantexSetup~on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { semantex_setup_key_not_found } { Unknown~key~#1~passed~to~\token_to_str:N\SemantexSetup~on~line~\msg_line_number: } {} + +\msg_new:nnnn { semantex } { semantex_setup_key_value_not_found } { Unknown~value~#2~passed~to~key~#1~in~\token_to_str:N\SemantexSetup~on~line~\msg_line_number: } {} + +\msg_new:nnnn { semantex } { valuekey_not_found } { Unknown~key~#2~passed~to~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { semantex_setup_key_value_not_found } { Unknown~value~#2~passed~to~key~#1~in~\SemantexSetup~on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { arg_valuekey_not_found } { Unknown~argument~key~#2~passed~to~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { valuekey_not_found } { Unknown~key~#2~passed~to~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { data_tl_not_found } { Unknown~data~#2~requested~from~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { arg_valuekey_not_found } { Unknown~argument~key~#2~passed~to~#1on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { data_int_not_found } { Unknown~integer~#2~requested~from~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { data_tl_not_found } { Unknown~data~#2~requested~from~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { data_bool_not_found } { Unknown~boolean~#2~requested~from~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { data_int_not_found } { Unknown~integer~#2~requested~from~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { data_cs_not_found } { Unknown~command~sequence~#2~requested~from~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { data_bool_not_found } { Unknown~boolean~#2~requested~from~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { data_prop_not_found } { Unknown~property~list~#2~requested~from~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { data_cs_not_found } { Unknown~command~sequence~#2~requested~from~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { key_value_not_found } { Unknown~value~#3~passed~to~key~#2~in~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { data_prop_not_found } { Unknown~property~list~#2~requested~from~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { arg_key_value_not_found } { Unknown~value~#3~passed~to~argument~key~#2~in~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { key_value_not_found } { Unknown~value~#3~passed~to~key~#2~in~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { class_already_defined } { Class~#1~already~defined;~you~tried~defining~it~again~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { arg_key_value_not_found } { Unknown~value~#3~passed~to~argument~key~#2~in~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { object_already_defined } { Object~#1~already~defined;~you~tried~defining~it~again~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { class_already_defined } { Class~#1 already~defined;~you~tried~defining~it~again~on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { class_not_found } { Unknown~class~#3~declared~as~#2~of~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { object_already_defined } { Object~#1 already~defined;~you~tried~defining~it~again~on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { object_not_found } { You~set~#1~as~#2~of~unknown~object~#3~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { class_not_found } { Unknown~class~#3 declared~as~#2~of~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { created_object_of_unknown_class } { Unknown~class~#1~declared~as~class~of~#2~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { object_not_found } { You~set~#1 as~#2~of~unknown~object~#3 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { created_object_with_already_defined_name } { Command~#1~already~defined;~you~can~use~\token_to_str:N\DeclareObject~to~override~existing~commands. } {} -\msg_new:nnnn { semantex } { created_object_of_unknown_class } { Unknown~class~#1 declared~as~class~of~#2 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { created_class_with_already_defined_name } { Command~#1~already~defined;~you~can~use~\token_to_str:N #2~to~override~existing~commands. } {} -\msg_new:nnnn { semantex } { used_unknown_class } { Unknown~class~#1 received~by~\token_to_str:N\UseClassInCommand~on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { used_unknown_class } { Unknown~class~#1~received~by~\token_to_str:N\UseClassInCommand~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { setup_unknown_class } { You~tried~setting~up~an~unknown~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { setup_unknown_class } { You~tried~setting~up~an~unknown~#1~on~line~\msg_line_number: } {} -\msg_new:nnnn { semantex } { setup_unknown_object } { You~tried~setting~up~an~unknown~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { setup_unknown_object } { You~tried~setting~up~an~unknown~#1~on~line~\msg_line_number: } {} \msg_new:nnnn { semantex } { created_a_SemantexBaseObject } { Never~create~objects~of~class~\token_to_str:N\SemantexBaseObject;~create~a~new~class~yourself~instead.~You~created~the~object~#1 on~line~\msg_line_number: } {} \msg_new:nnnn { semantex } { SemantexThis_in_input_stream } { The~command~\token_to_str:N\SemantexThis~was~found~outside~a~class~or~object~on~line~\msg_line_number:;~did~you~forget~to~use~set~keys~x={...}? } {} -\msg_new:nnnn { semantex } { generic_error } { #2~#1 on~line~\msg_line_number: } {} +\msg_new:nnnn { semantex } { generic_error } { #2~#1~on~line~\msg_line_number: } {} \cs_generate_variant:Nn \msg_error:nnnn { nnnx } @@ -7101,10 +6328,9 @@ \cs_new_protected:Npn\semantex_error_output_format:nN#1#2 { \tl_set:Nn \l__semantex_error_output_format_temp { #1 } - \tl_replace_all:Nnn \l__semantex_error_output_format_temp { object_associated_to_class_ } { object~of~class~\cs:w } - \tl_replace_all:Nnn \l__semantex_error_output_format_temp { object_ } { object~\cs:w } - \tl_replace_all:Nnn \l__semantex_error_output_format_temp { class_ } { class~\cs:w } - \tl_put_right:Nn \l__semantex_error_output_format_temp { \cs_end: } + \tl_replace_all:Nnn \l__semantex_error_output_format_temp { object_associated_to_class_ } { object~of~class~ } + \tl_replace_all:Nnn \l__semantex_error_output_format_temp { object_ } { object~ } + \tl_replace_all:Nnn \l__semantex_error_output_format_temp { class_ } { class~ } \tl_trim_spaces:N \l__semantex_error_output_format_temp \tl_set_eq:NN #2 \l__semantex_error_output_format_temp } @@ -7172,7 +6398,7 @@ {define~keys[1]}{execute={ \semantex_define_valuekeys:nn { ##1 } { #1 } }}, } -\semantex_new_simple_class:Nw \SemantexBaseObject [ +\NewSimpleClass \SemantexBaseObject [ define~keys[1]={ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -7686,7 +6912,6 @@ }, }, {default}{sep~i={#1}}, - {degree~default}{sep~d={#1}}, {arg}{ execute={ \semantex_arg_singlekeys_set:nn { ##1 } { #1 } } }, {*~with~other~sep}{ d~*~with~other~sep={#1}, @@ -9456,12 +8681,12 @@ }, ] -\cs_set_eq:NN\__semantex_old_version_of_semantex_new_object_of_class_SemantexBaseObject:Nw \__semantex_new_object_of_class_SemantexBaseObject:Nw +\cs_set_eq:cc { __semantex_old_version_of_semantex_declare_object_of_\g_semantex_class_SemantexBaseObject_register_tl :Nw } { __semantex_declare_object_of_\g_semantex_class_SemantexBaseObject_register_tl :Nw } -\cs_set_protected:Npn \__semantex_new_object_of_class_SemantexBaseObject:Nw#1 +\cs_set_protected:Npn \__semantex_declare_object_of_class_SemantexBaseObject:Nw#1 { \msg_error:nnn { semantex } { created_a_SemantexBaseObject } { #1 } - \__semantex_old_version_of_semantex_new_object_of_class_SemantexBaseObject:Nw #1 + \use:c { __semantex_old_version_of_semantex_declare_object_of_\g_semantex_class_SemantexBaseObject_register_tl :Nw } #1 } diff --git a/Master/texmf-dist/tex/latex/semantex/stripsemantex.lua b/Master/texmf-dist/tex/latex/semantex/stripsemantex.lua index f50648dd231..30d4c58be66 100644 --- a/Master/texmf-dist/tex/latex/semantex/stripsemantex.lua +++ b/Master/texmf-dist/tex/latex/semantex/stripsemantex.lua @@ -55,7 +55,7 @@ end addIDsToRegisters = function(str) str = removeStricttexFormatting(str) - content = content:gsub('\\' .. str .. '([^%a])' ,'\\SemantexIDcommand{}\\' .. str .. '%1') + content = content:gsub('\\' .. str .. '([^%a])' ,'\\SemantexID{}\\' .. str .. '%1') -- '%f[^%a]' does not work here, as it will not react if the last character of str is a number, -- which stricttex allows. -- Because of this choice, there will be an issue if you use stricttex and let @@ -64,33 +64,33 @@ addIDsToRegisters = function(str) end removeSuperfluousIDs = function() - local p = content:find('([^\\]%%[^\n]-)\\SemantexIDcommand{}([^\n]-\n)') + local p = content:find('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)') while p do - content = content:gsub('([^\\]%%[^\n]-)\\SemantexIDcommand{}([^\n]-\n)','%1%2') - p = content:find('([^\\]%%[^\n]-)\\SemantexIDcommand{}([^\n]-\n)') + content = content:gsub('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)','%1%2') + p = content:find('([^\\]%%[^\n]-)\\SemantexID{}([^\n]-\n)') end - content = content:gsub('parent(%s*)=(%s*)\\SemantexIDcommand{}','parent%1=%2') - content = content:gsub('class(%s*)=(%s*)\\SemantexIDcommand{}','class%1=%2') - content = content:gsub('clone(%s*)=(%s*)\\SemantexIDcommand{}','clone%1=%2') - content = content:gsub('copy(%s*)=(%s*)\\SemantexIDcommand{}','copy%1=%2') - content = content:gsub('\\New(%w+)Class(%s*{?)\\SemantexIDcommand{}','\\New%1Class%2') - content = content:gsub('\\NewObject(%s*{?%s*)\\SemantexIDcommand{}(\\%w+%s*}?%s*{?%s*)\\SemantexIDcommand{}', '\\NewObject%1%2') - content = content:gsub('\\SetupClass(%s*{?%s*)\\SemantexIDcommand{}', '\\SetupClass%1') - content = content:gsub('\\SetupObject(%s*{?%s*)\\SemantexIDcommand{}', '\\SetupObject%1') + content = content:gsub('parent(%s*)=(%s*)\\SemantexID{}','parent%1=%2') + content = content:gsub('class(%s*)=(%s*)\\SemantexID{}','class%1=%2') + content = content:gsub('clone(%s*)=(%s*)\\SemantexID{}','clone%1=%2') + content = content:gsub('copy(%s*)=(%s*)\\SemantexID{}','copy%1=%2') + content = content:gsub('\\New(%w+)Class(%s*{?)\\SemantexID{}','\\New%1Class%2') + content = content:gsub('\\NewObject(%s*{?%s*)\\SemantexID{}(\\%w+%s*}?%s*{?%s*)\\SemantexID{}', '\\NewObject%1%2') + content = content:gsub('\\SetupClass(%s*{?%s*)\\SemantexID{}', '\\SetupClass%1') + content = content:gsub('\\SetupObject(%s*{?%s*)\\SemantexID{}', '\\SetupObject%1') end addNumbersToIDs = function() local n = 0 - local p,q = string.find(content,'\\SemantexIDcommand{}') + local p,q = string.find(content,'\\SemantexID{}') while q do n = n + 1 content = content:sub(1,q-1) .. n .. content:sub(q,-1) - p, q = string.find(content,'\\SemantexIDcommand{}') + p, q = string.find(content,'\\SemantexID{}') end end semantexIDluacommand = function(id, source, output) - local p, q = string.find(content, '\\SemantexIDcommand{' .. id .. '}') + local p, q = string.find(content, '\\SemantexID{' .. id .. '}') while p do content = content:sub(1,p-1) .. content:sub(q+1,-1) @@ -228,12 +228,12 @@ semantexIDluacommand = function(id, source, output) else content = content:sub(1,p-1) .. output .. content:sub(p,-1) end - p, q = string.find(content, '\\SemantexIDcommand{' .. id .. '}') + p, q = string.find(content, '\\SemantexID{' .. id .. '}') end end stripRemainingSemantexIDs = function() - content = content:gsub('\\SemantexIDcommand{%d+}', '') + content = content:gsub('\\SemantexID{%d+}', '') end removeParenthesisCommands = function() diff --git a/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty b/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty index 4e5dafc2ee4..1dd814689c5 100644 --- a/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty +++ b/Master/texmf-dist/tex/latex/semantex/stripsemantex.sty @@ -1,5 +1,5 @@ \RequirePackage{xparse} -\ProvidesExplPackage{stripsemantex}{2021/08/23}{0.513}{} +\ProvidesExplPackage{stripsemantex}{2022/09/22}{0.530}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % @@ -40,12 +40,12 @@ openFile('\lua_escape:e{#1}_prestripped.tex') } - \cs_set:Npn\DeclareObject##1 + \cs_set:Npn\RegisterObject##1 { \lua_now:e { addIDsToRegisters ( '\cs_to_str:N ##1' ) } } - \cs_set:Npn\DeclareClass##1{ + \cs_set:Npn\RegisterClass##1{ \lua_now:e { addIDsToRegisters ( '\cs_to_str:N ##1' ) } } @@ -76,7 +76,7 @@ openFile('\lua_escape:e{#1}_prestripped.tex') } - \DeclareDocumentCommand\SemantexID{ m t{\BeginSource} } + \DeclareDocumentCommand\RegisterID{ m t{\BeginSource} } { \IfBooleanT{##2} { @@ -94,9 +94,9 @@ } } - \cs_set:Npn\DeclareObject##1{} + \cs_set:Npn\RegisterObject##1{} - \cs_set:Npn\DeclareClass##1{} + \cs_set:Npn\RegisterClass##1{} \cs_set:Npn\BeginSource##1\EndSource\BeginOutput##2\EndOutput{} @@ -109,17 +109,17 @@ \bool_if:NTF \g_stripsemantex_something_left_to_strip_bool { - \cs_set:Npn\DeclareObject##1 + \cs_set:Npn\RegisterObject##1 { \lua_now:e { addIDsToRegisters ( '\cs_to_str:N ##1' ) } } - \cs_set:Npn\DeclareClass##1 + \cs_set:Npn\RegisterClass##1 { \lua_now:e { addIDsToRegisters ( '\cs_to_str:N ##1' ) } } - \cs_set:Npn\SemantexID##1 {} + \cs_set:Npn\RegisterID##1 {} \cs_set:Npn\BeginSource##1\EndSource\BeginOutput##2\EndOutput {} |