diff options
Diffstat (limited to 'macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx')
-rw-r--r-- | macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx b/macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx index e2a0e5fa98..a9cb0ee95e 100644 --- a/macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx +++ b/macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2025-01-14} +% \date{Released 2025-01-18} % % \maketitle % @@ -75,14 +75,14 @@ % % Every symbolic expression has the form \cs{s_@@_symbolic} % \cs{@@_symbolic_chk:w} \meta{operation} |,| \Arg{operands} \meta{junk} -% |;| where the \meta{operation} is a list of \texttt{N}-type tokens, +% \cs{@@_sep:} where the \meta{operation} is a list of \texttt{N}-type tokens, % the \meta{operands} is an array of floating point objects, and the % \meta{junk} is to be discarded. If the outermost operator (last to be % evaluated) is unary, the expression has the form % \begin{quote} % \cs{s_@@_symbolic} \cs{@@_symbolic_chk:w} \\ % \cs{@@_types_unary:NNw} |\__fp_|\meta{op}|_o:w| \meta{token} |,| \\ -% |{| \meta{operand} |}| \meta{junk} |;| +% |{| \meta{operand} |}| \meta{junk} \cs{@@_sep:} % \end{quote} % where the \meta{op} is a unary operation (|set_sign|, |cos|, % \ldots{}), and the \meta{token} and \meta{operand} are used as @@ -92,7 +92,7 @@ % \begin{quote} % \cs{s_@@_symbolic} \cs{@@_symbolic_chk:w} \\ % \cs{@@_types_binary:Nww} |\__fp_|\meta{op}|_o:ww| |,| \\ -% |{| \meta{operand_1} \meta{operand_2} |}| \meta{junk} |;| +% |{| \meta{operand_1} \meta{operand_2} |}| \meta{junk} \cs{@@_sep:} % \end{quote} % where the \meta{op} is an operation (|+|, |&|, \ldots{}), and % |\__fp_|\meta{op}|_o:ww| receives the \meta{operands} as arguments. @@ -100,7 +100,7 @@ % \begin{quote} % \cs{s_@@_symbolic} \cs{@@_symbolic_chk:w} \\ % \cs{@@_variable_o:w} \meta{identifier} |,| \\ -% |{| |}| \meta{junk} |;| +% |{| |}| \meta{junk} \cs{@@_sep:} % \end{quote} % % Symbolic expressions are stored in a prefix form. When encountering a @@ -141,12 +141,12 @@ % \begin{macro}{\@@_symbolic_chk:w} % Analog of \cs{@@_chk:w} for symbolic expressions. % \begin{macrocode} -\cs_new_protected:Npn \@@_symbolic_chk:w #1,#2#3; +\cs_new_protected:Npn \@@_symbolic_chk:w #1,#2#3\@@_sep: { \msg_error:nne { fp } { misused-fp } { \@@_to_tl_dispatch:w - \s_@@_symbolic \@@_symbolic_chk:w #1,{#2}; + \s_@@_symbolic \@@_symbolic_chk:w #1,{#2}\@@_sep: } } % \end{macrocode} @@ -181,7 +181,7 @@ % evaluate all pieces of the expression which can be evaluated. % \begin{macrocode} \cs_new:Npn \@@_exp_after_symbolic_f:nw - #1 \s_@@_symbolic \@@_symbolic_chk:w #2, #3#4; + #1 \s_@@_symbolic \@@_symbolic_chk:w #2, #3#4\@@_sep: { \exp_after:wN \@@_exp_after_symbolic_aux:w \exp:w @@ -193,13 +193,13 @@ \@@_exp_after_array_f:w #3 \s_@@_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \@@_sep: \exp:w \exp_end_continue_f:w #1 } -\cs_new:Npn \@@_exp_after_symbolic_aux:w #1, #2; +\cs_new:Npn \@@_exp_after_symbolic_aux:w #1, #2\@@_sep: { \@@_if_has_symbolic:nTF {#2} - { \s_@@_symbolic \@@_symbolic_chk:w #1, {#2} ; } + { \s_@@_symbolic \@@_symbolic_chk:w #1, {#2} \@@_sep: } { #1 #2 @ \prg_do_nothing: } } \cs_new:Npn \@@_exp_after_symbolic_loop:N #1 @@ -218,11 +218,11 @@ % \begin{macro}[EXP]{\@@_symbolic_binary_o:Nww} % Used when applying infix operators to expressions. % \begin{macrocode} -\cs_new:Npn \@@_symbolic_binary_o:Nww #1 #2; #3; +\cs_new:Npn \@@_symbolic_binary_o:Nww #1 #2\@@_sep: #3\@@_sep: { \@@_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: } \s_@@_symbolic \@@_symbolic_chk:w - \@@_types_binary:Nww #1 , { #2; #3; } ; + \@@_types_binary:Nww #1 , { #2\@@_sep: #3\@@_sep: } \@@_sep: } % \end{macrocode} % \end{macro} @@ -280,11 +280,11 @@ % \begin{macro}[EXP]{\@@_symbolic_unary_o:NNw} % Used when applying infix operators to expressions. % \begin{macrocode} -\cs_new:Npn \@@_symbolic_unary_o:NNw #1#2#3; @ +\cs_new:Npn \@@_symbolic_unary_o:NNw #1#2#3\@@_sep: @ { \@@_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: } \s_@@_symbolic \@@_symbolic_chk:w - \@@_types_unary:NNw #1#2 , { #3; } ; + \@@_types_unary:NNw #1#2 , { #3\@@_sep: } \@@_sep: } % \end{macrocode} % \end{macro} @@ -346,11 +346,11 @@ \@@_tmp:w { decimal } { 0 } \@@_to_decimal_dispatch:w \@@_tmp:w { int } { 0 } \@@_to_int_dispatch:w \@@_tmp:w { scientific } { nan } \@@_to_scientific_dispatch:w -\cs_new:Npn \@@_symbolic_convert:wnnN #1#2; #3#4#5 +\cs_new:Npn \@@_symbolic_convert:wnnN #1#2\@@_sep: #3#4#5 { \str_if_eq:nnTF {#1} { \s_@@_symbolic } - { \@@_invalid_operation:nnw {#3} {#4} #1#2; } - { #5 #1#2; } + { \@@_invalid_operation:nnw {#3} {#4} #1#2\@@_sep: } + { #5 #1#2\@@_sep: } } % \end{macrocode} % \end{macro} @@ -390,7 +390,7 @@ % Converting a symbolic expression to a token list is possible. % \begin{macrocode} \cs_new:Npn \@@_symbolic_to_tl:w - \s_@@_symbolic \@@_symbolic_chk:w #1#2, #3#4; + \s_@@_symbolic \@@_symbolic_chk:w #1#2, #3#4\@@_sep: { \str_case:nnTF {#1} { @@ -409,13 +409,13 @@ ( \@@_to_tl_dispatch:w #3 ) } } -\cs_new:Npn \@@_symbolic_binary_to_tl:Nww #1, #2; #3; @ +\cs_new:Npn \@@_symbolic_binary_to_tl:Nww #1, #2\@@_sep: #3\@@_sep: @ { \use:e { - ( \@@_to_tl_dispatch:w #2; ) + ( \@@_to_tl_dispatch:w #2\@@_sep: ) \@@_types_cs_to_op:N #1 - ( \@@_to_tl_dispatch:w #3; ) + ( \@@_to_tl_dispatch:w #3\@@_sep: ) } } \cs_new:Npn \@@_symbolic_function_to_tl:Nw #1, #2@ @@ -492,7 +492,7 @@ \token_if_eq_meaning:NNTF #2 \prg_do_nothing: { \s_@@_symbolic \@@_symbolic_chk:w - \@@_variable_o:w #1 , { } ; + \@@_variable_o:w #1 , { } \@@_sep: } { \exp_after:wN \s_@@_symbolic @@ -502,7 +502,7 @@ \@@_exp_after_symbolic_loop:N #1 { , \exp:w \use_none:nn } \exp_after:wN \exp_end: - \exp_after:wN { \exp_after:wN } \exp_after:wN ; + \exp_after:wN { \exp_after:wN } \exp_after:wN \@@_sep: #2 } } @@ -519,7 +519,7 @@ { \@@_exp_after_symbolic_f:nw { \@@_parse_infix:NN } \s_@@_symbolic \@@_symbolic_chk:w - \@@_variable_o:w #2 , { } ; + \@@_variable_o:w #2 , { } \@@_sep: } \exp_args:NNc \@@_variable_set_parsing_aux:NNn #1 { @@_parse_word_#2:N } {#2} |