summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx173
1 files changed, 86 insertions, 87 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 2a1d9fb0ddf..8b3157fa376 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -7,7 +7,7 @@
% license or (at your option) any later version. The latest version
% of this license is in the file
%
-% http://www.latex-project.org/lppl.txt
+% https://www.latex-project.org/lppl.txt
%
% This file is part of the "l3kernel bundle" (The Work in LPPL)
% and all files in that bundle must be distributed together.
@@ -21,7 +21,7 @@
% for those people who are interested.
%
%<*driver>
-\documentclass[full]{l3doc}
+\documentclass[full,kernel]{l3doc}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/11/14}
+% \date{Released 2017/12/05}
%
% \maketitle
%
@@ -65,7 +65,7 @@
% (almost) right the first time. Let us first describe our goal, then
% discuss the design precisely before writing any code.
%
-% \begin{macro}[EXP, int]{\@@_parse:n}
+% \begin{macro}[EXP]{\@@_parse:n}
% \begin{syntax}
% \cs{@@_parse:n} \Arg{fpexpr}
% \end{syntax}
@@ -563,7 +563,7 @@
%
% \subsection{Main auxiliary functions}
%
-% \begin{macro}[rEXP, aux]{\@@_parse_operand:Nw}
+% \begin{macro}[rEXP]{\@@_parse_operand:Nw}
% \begin{syntax}
% \cs{exp:w} \cs{@@_parse_operand:Nw} \meta{precedence} \cs{@@_parse_expand:w}
% \end{syntax}
@@ -577,7 +577,7 @@
% \enquote{\ttfamily\ldots{}} start just after the \meta{operation}.
% \end{macro}
%
-% \begin{macro}[EXP, aux]{\@@_parse_infix_+:N}
+% \begin{macro}[EXP]{\@@_parse_infix_+:N}
% \begin{syntax}
% \cs{@@_parse_infix_+:N} \meta{precedence} \ldots{}
% \end{syntax}
@@ -594,7 +594,7 @@
% A similar function exists for each infix operator.
% \end{macro}
%
-% \begin{macro}[EXP, aux]{\@@_parse_one:Nw}
+% \begin{macro}[EXP]{\@@_parse_one:Nw}
% \begin{syntax}
% \cs{@@_parse_one:Nw} \meta{precedence} \ldots{}
% \end{syntax}
@@ -615,7 +615,7 @@
%
% \subsection{Helpers}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_expand:w}
+% \begin{macro}[rEXP]{\@@_parse_expand:w}
% \begin{syntax}
% \cs{exp:w} \cs{@@_parse_expand:w} \meta{tokens}
% \end{syntax}
@@ -628,7 +628,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_return_semicolon:w}
+% \begin{macro}[EXP]{\@@_parse_return_semicolon:w}
% This very odd function swaps its position with the following
% \cs{fi:} and removes \cs{@@_parse_expand:w} normally responsible for
% expansion. That turns out to be useful.
@@ -638,7 +638,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_type_from_scan:N, \@@_type_from_scan:w}
+% \begin{macro}[EXP]{\@@_type_from_scan:N, \@@_type_from_scan:w}
% \begin{syntax}
% \cs{@@_type_from_scan:N} \meta{token}
% \end{syntax}
@@ -661,7 +661,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[rEXP, aux]
+% \begin{macro}[rEXP]
% {
% \@@_parse_digits_vii:N ,
% \@@_parse_digits_vi:N ,
@@ -714,7 +714,7 @@
%
% \subsection{Parsing one number}
%
-% \begin{macro}[aux, EXP]{\@@_parse_one:Nw}
+% \begin{macro}[EXP]{\@@_parse_one:Nw}
% This function finds one number, and packs the symbol which follows
% in an \cs[no-index]{@@_parse_infix_\ldots{}} csname.
% |#1|~is the previous \meta{precedence},
@@ -754,7 +754,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_one_fp:NN,
% \@@_exp_after_mark_f:nw,
@@ -826,7 +826,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_one_register:NN,
% \@@_parse_one_register_aux:Nw,
@@ -881,15 +881,14 @@
. \tl_to_str:n { pt } ; \exp_not:N \@@_parse_one_register_int:www
\exp_not:N \q_stop
}
-\use:x
- {
- \cs_new:Npn \exp_not:N \@@_parse_one_register_auxii:wwwNw
- ##1 . ##2 \tl_to_str:n { pt } ##3 ; ##4##5 \exp_not:N \q_stop
- { ##4 ##1.##2; }
- \cs_new:Npn \exp_not:N \@@_parse_one_register_mu:www
- ##1 \tl_to_str:n { mu } ; ##2 ;
- { \exp_not:N \@@_parse_one_register_dim:ww ##1 ; }
- }
+\exp_args:Nno \use:nn
+ { \cs_new:Npn \@@_parse_one_register_auxii:wwwNw #1 . #2 }
+ { \tl_to_str:n { pt } #3 ; #4#5 \q_stop }
+ { #4 #1.#2; }
+\exp_args:Nno \use:nn
+ { \cs_new:Npn \@@_parse_one_register_mu:www #1 }
+ { \tl_to_str:n { mu } ; #2 ; }
+ { \@@_parse_one_register_dim:ww #1 ; }
\cs_new:Npn \@@_parse_one_register_int:www #1; #2.; #3;
{ \@@_parse:n { #1 e #3 } }
\cs_new:Npn \@@_parse_one_register_dim:ww #1; #2;
@@ -922,7 +921,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_one_digit:NN}
+% \begin{macro}[EXP]{\@@_parse_one_digit:NN}
% A digit marks the beginning of an explicit floating point number.
% Once the number is found, we catch the case of overflow and
% underflow with \cs{@@_sanitize:wN}, then
@@ -942,7 +941,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_one_other:NN}
+% \begin{macro}[EXP]{\@@_parse_one_other:NN}
% For this function, |#2|~is a character token which is not a digit.
% If it is an \textsc{ascii} letter, \cs{@@_parse_letters:N} beyond this one and give
% the result to \cs{@@_parse_word:Nw}. Otherwise, the character is
@@ -975,8 +974,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_word:Nw}
-% \begin{macro}[aux, rEXP]{\@@_parse_letters:N}
+% \begin{macro}[EXP]{\@@_parse_word:Nw}
+% \begin{macro}[rEXP]{\@@_parse_letters:N}
% Finding letters is a simple recursion. Once \cs{@@_parse_letters:N}
% has done its job, we try to build a control sequence from the
% word~|#2|. If it is a known word, then the corresponding action is
@@ -1028,7 +1027,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {\@@_parse_prefix:NNN, \@@_parse_prefix_unknown:NNN}
% For this function, |#1|~is the previous \meta{precedence}, |#2|~is
% the operator just seen, and |#3|~is a control sequence which
@@ -1077,7 +1076,7 @@
% set of functions |\__fp_parse_small|\ldots{} Once the significand is
% read, read the exponent if |e|~is present.
%
-% \begin{macro}[aux, rEXP]{\@@_parse_trim_zeros:N, \@@_parse_trim_end:w}
+% \begin{macro}[rEXP]{\@@_parse_trim_zeros:N, \@@_parse_trim_end:w}
% This function expects an already expanded token. It removes any
% leading zero, then distinguishes three cases: if the first non-zero
% token is a digit, then call \cs{@@_parse_large:N} (the significand
@@ -1114,7 +1113,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {\@@_parse_strim_zeros:N, \@@_parse_strim_end:w}
% If we have removed all digits until a period (or if the body started
% with a period), then enter the \enquote{\texttt{small_trim}} loop
@@ -1147,7 +1146,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_zero:}
+% \begin{macro}[EXP]{\@@_parse_zero:}
% After reading a significand of~$0$, find any exponent, then put a
% sign of~|1| for \cs{@@_sanitize:wN}, which removes everything
% and leaves an exact zero.
@@ -1162,7 +1161,7 @@
%
% \subsubsection{Number: small significand}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_small:N}
+% \begin{macro}[rEXP]{\@@_parse_small:N}
% This function is called after we have passed the decimal separator
% and removed all leading zeros from the significand. It is followed
% by a non-zero digit (with any catcode). The goal is to read up to
@@ -1188,7 +1187,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_small_leading:wwNN}
+% \begin{macro}[rEXP]{\@@_parse_small_leading:wwNN}
% \begin{syntax}
% \cs{@@_parse_small_leading:wwNN} |1| \meta{digits} |;| \meta{zeros} |;| \meta{number~of~zeros}
% \end{syntax}
@@ -1222,7 +1221,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_small_trailing:wwNN}
+% \begin{macro}[rEXP]{\@@_parse_small_trailing:wwNN}
% \begin{syntax}
% \cs{@@_parse_small_trailing:wwNN} |1| \meta{digits} |;| \meta{zeros} |;| \meta{number~of~zeros} \meta{next~token}
% \end{syntax}
@@ -1250,7 +1249,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {
% \@@_parse_pack_trailing:NNNNNNww ,
% \@@_parse_pack_leading:NNNNNww ,
@@ -1296,7 +1295,7 @@
% run out of digits, and branch to the appropriate \texttt{parse_small}
% function in those cases.
%
-% \begin{macro}[aux, EXP]{\@@_parse_large:N}
+% \begin{macro}[EXP]{\@@_parse_large:N}
% This function is followed by the first non-zero digit of a
% \enquote{large} significand ($\geq 1$). It is called within an
% integer expression for the exponent. Grab up to $7$~more digits,
@@ -1312,7 +1311,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_large_leading:wwNN}
+% \begin{macro}[rEXP]{\@@_parse_large_leading:wwNN}
% \begin{syntax}
% \cs{@@_parse_large_leading:wwNN} |1| \meta{digits} |;| \meta{zeros} |;| \meta{number~of~zeros} \meta{next~token}
% \end{syntax}
@@ -1360,7 +1359,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_large_trailing:wwNN}
+% \begin{macro}[EXP]{\@@_parse_large_trailing:wwNN}
% \begin{syntax}
% \cs{@@_parse_large_trailing:wwNN} |1| \meta{digits} |;| \meta{zeros} |;| \meta{number~of~zeros} \meta{next~token}
% \end{syntax}
@@ -1411,7 +1410,7 @@
%
% \subsubsection{Number: beyond 16 digits, rounding}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_round_loop:N, \@@_parse_round_up:N}
+% \begin{macro}[rEXP]{\@@_parse_round_loop:N, \@@_parse_round_up:N}
% This loop is called when rounding a number (whether the mantissa is
% small or large). It should appear in an integer expression. This
% function reads digits one by one, until reaching a non-digit, and
@@ -1451,7 +1450,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_round_after:wN}
+% \begin{macro}[rEXP]{\@@_parse_round_after:wN}
% After the loop \cs{@@_parse_round_loop:N}, this function fetches an
% exponent with \cs{@@_parse_exponent:N}, and combines it with the
% number of digits counted by \cs{@@_parse_round_loop:N}. At the same
@@ -1466,7 +1465,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {\@@_parse_small_round:NN, \@@_parse_round_after:wN}
% Here, |#1|~is the digit that we are currently rounding (we only care
% whether it is even or odd). If |#2|~is not a digit, then fetch an
@@ -1503,7 +1502,7 @@
% \end{macro}
%
%
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {
% \@@_parse_large_round:NN,
% \@@_parse_large_round_test:NN,
@@ -1598,7 +1597,7 @@
% token ahead is |e|. Then we expand (and possibly unpack) the second
% token.
%
-% \begin{macro}[aux, rEXP]{\@@_parse_exponent:Nw}
+% \begin{macro}[rEXP]{\@@_parse_exponent:Nw}
% This auxiliary is convenient to smuggle some material through
% \cs{fi:} ending conditional processing. We place those \cs{fi:}
% (argument~|#2|) at a very odd place because this allows us to insert
@@ -1612,7 +1611,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]
+% \begin{macro}[rEXP]
% {\@@_parse_exponent:N, \@@_parse_exponent_aux:N}
% This function should be called within an \cs{__int_value:w}
% expansion (or within an integer expression). It leaves digits of the
@@ -1647,7 +1646,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_exponent_sign:N}
+% \begin{macro}[rEXP]{\@@_parse_exponent_sign:N}
% Read signs one by one (if there is any).
% \begin{macrocode}
\cs_new:Npn \@@_parse_exponent_sign:N #1
@@ -1663,7 +1662,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_exponent_body:N}
+% \begin{macro}[rEXP]{\@@_parse_exponent_body:N}
% An exponent can be an explicit integer (most common case), or
% various other things (most of which are invalid).
% \begin{macrocode}
@@ -1686,7 +1685,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_exponent_digits:N}
+% \begin{macro}[rEXP]{\@@_parse_exponent_digits:N}
% Read digits one by one, and leave them behind in the input stream.
% When finding a non-digit, stop, and insert a semicolon. Note that
% we do not check for overflow of the exponent, hence there can be a
@@ -1708,7 +1707,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, rEXP]{\@@_parse_exponent_keep:NTF}
+% \begin{macro}[rEXP]{\@@_parse_exponent_keep:NTF}
% This is the last building block for parsing exponents. The
% argument~|#1| is already fully expanded, and neither |+| nor~|-| nor
% a digit. It can be:
@@ -1765,14 +1764,14 @@
%
% \subsubsection{Prefix operators}
%
-% \begin{macro}[EXP, aux]{\@@_parse_prefix_+:Nw}
+% \begin{macro}[EXP]{\@@_parse_prefix_+:Nw}
% A unary~|+| does nothing: we should continue looking for a number.
% \begin{macrocode}
\cs_new_eq:cN { @@_parse_prefix_+:Nw } \@@_parse_one:Nw
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_apply_unary:NNNwN}
+% \begin{macro}[EXP]{\@@_parse_apply_unary:NNNwN}
% Here, |#1| is a precedence, |#2| is some extra data used by some
% functions, |#3| is \emph{e.g.}, \cs{@@_sin_o:w}, and expands once
% after the calculation, |#4| is the operand, and |#5| is a
@@ -1790,7 +1789,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP, aux]{\@@_parse_prefix_-:Nw, \@@_parse_prefix_!:Nw}
+% \begin{macro}[EXP]{\@@_parse_prefix_-:Nw, \@@_parse_prefix_!:Nw}
% The unary~|-| and boolean not are harder: we parse the operand using
% a precedence equal to the maximum of the previous precedence~|##1|
% and the precedence \cs{c_@@_prec_not_int} of the unary operator, then call
@@ -1819,7 +1818,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP, aux]{\@@_parse_prefix_.:Nw}
+% \begin{macro}[EXP]{\@@_parse_prefix_.:Nw}
% Numbers which start with a decimal separator (a~period) end up here.
% Of course, we do not look for an operand, but for the rest of the
% number. This function is very similar to \cs{@@_parse_one_digit:NN}
@@ -1838,7 +1837,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {\@@_parse_prefix_(:Nw, \@@_parse_lparen_after:NwN}
% The left parenthesis is treated as a unary prefix operator because
% it appears in exactly the same settings. Commas are allowed if
@@ -1884,7 +1883,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_prefix_):Nw}
+% \begin{macro}[EXP]{\@@_parse_prefix_):Nw}
% The right parenthesis can appear as unary prefixes when arguments of
% a multi-argument function end with a comma, or when there is no
% argument, as in |max(1,2,)| or in |rand()|. In single-argument
@@ -1905,7 +1904,7 @@
%
% \subsubsection{Constants}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_word_inf:N , \@@_parse_word_nan:N ,
% \@@_parse_word_pi:N , \@@_parse_word_deg:N ,
@@ -1929,7 +1928,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_caseless_inf:N,
% \@@_parse_caseless_infinity:N,
@@ -1944,7 +1943,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_word_pt:N , \@@_parse_word_in:N ,
% \@@_parse_word_pc:N , \@@_parse_word_cm:N , \@@_parse_word_mm:N ,
@@ -1977,7 +1976,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_word_em:N, \@@_parse_word_ex:N}
+% \begin{macro}[EXP]{\@@_parse_word_em:N, \@@_parse_word_ex:N}
% The font-dependent units |em| and |ex| must be evaluated on the fly.
% We reuse an auxiliary of \cs{dim_to_fp:n}.
% \begin{macrocode}
@@ -1998,7 +1997,7 @@
%
% ^^A begin[todo]
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {\@@_parse_unary_function:NNN, \@@_parse_function:NNN}
% \begin{macrocode}
\cs_new:Npn \@@_parse_unary_function:NNN #1#2#3
@@ -2024,8 +2023,8 @@
%
% \subsection{Main functions}
%
-% \begin{macro}[int, EXP]{\@@_parse:n}
-% \begin{macro}[aux, EXP]{\@@_parse_after:ww}
+% \begin{macro}[EXP]{\@@_parse:n}
+% \begin{macro}[EXP]{\@@_parse_after:ww}
% Start an \cs{exp:w} expansion so that \cs{@@_parse:n} expands
% in two steps. The \cs{@@_parse_operand:Nw} function performs
% computations until reaching an operation with precedence
@@ -2053,7 +2052,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int, EXP]{\@@_parse_o:n}
+% \begin{macro}[EXP]{\@@_parse_o:n}
% ^^A todo: optimize, comment, make it work for arrays.
% \begin{macrocode}
\cs_new:Npn \@@_parse_o:n #1
@@ -2065,8 +2064,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_operand:Nw}
-% \begin{macro}[aux, EXP]{\@@_parse_continue:NwN}
+% \begin{macro}[EXP]{\@@_parse_operand:Nw}
+% \begin{macro}[EXP]{\@@_parse_continue:NwN}
% This is just a shorthand which sets up both \cs{@@_parse_continue:NwN}
% and \cs{@@_parse_one:Nw} with the same precedence. Note the
% trailing \cs{exp:w}.
@@ -2086,7 +2085,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_apply_binary:NwNwN}
+% \begin{macro}[EXP]{\@@_parse_apply_binary:NwNwN}
% Receives \meta{precedence} \meta{operand_1} |@| \meta{operation}
% \meta{operand_2} |@| \meta{infix command}. Builds the appropriate
% call to the \meta{operation}~|#3|.
@@ -2105,7 +2104,7 @@
%
% \subsection{Infix operators}
%
-% \begin{macro}[aux, EXP]{\@@_parse_infix_after_operand:NwN}
+% \begin{macro}[EXP]{\@@_parse_infix_after_operand:NwN}
% \begin{macrocode}
\cs_new:Npn \@@_parse_infix_after_operand:NwN #1 #2;
{
@@ -2164,7 +2163,7 @@
%
% \subsubsection{Closing parentheses and commas}
%
-% \begin{macro}[aux, EXP]{\@@_parse_infix_mark:NNN}
+% \begin{macro}[EXP]{\@@_parse_infix_mark:NNN}
% As an infix operator, \cs{s_@@_mark} means that the next
% token~(|#3|) has already gone through \cs{@@_parse_infix:NN} and
% should be provided the precedence~|#1|. The scan mark~|#2| is
@@ -2174,7 +2173,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]{\@@_parse_infix_end:N}
+% \begin{macro}[EXP]{\@@_parse_infix_end:N}
% This one is a little bit odd: force every previous operator to end,
% regardless of the precedence.
% \begin{macrocode}
@@ -2183,7 +2182,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]+\@@_parse_infix_):N+
+% \begin{macro}[EXP]+\@@_parse_infix_):N+
% This is very similar to \cs{@@_parse_infix_end:N}, complaining about
% an extra closing parenthesis if the previous operator was the
% beginning of the expression.
@@ -2208,9 +2207,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, verb, EXP]{\__fp_parse_infix_,:N}
-% \begin{macro}[aux, EXP]{\@@_parse_infix_comma:w, \@@_parse_infix_comma_error:w}
-% \begin{macro}[aux, verb, EXP]{\__fp_,_o:ww}
+% \begin{macro}[verb, EXP]{\__fp_parse_infix_,:N}
+% \begin{macro}[EXP]{\@@_parse_infix_comma:w, \@@_parse_infix_comma_error:w}
+% \begin{macro}[verb, EXP]{\__fp_,_o:ww}
% \cs{@@_,_o:ww} is a complicated way of replacing any number of
% floating point arguments by \texttt{nan}.
% \begin{macrocode}
@@ -2264,13 +2263,13 @@
%
% \subsubsection{Usual infix operators}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_infix_+:N, \@@_parse_infix_-:N,
% \@@_parse_infix_/:N, \@@_parse_infix_mul:N,
% \@@_parse_infix_and:N, \@@_parse_infix_or:N,
% }
-% \begin{macro}[aux, EXP]+\@@_parse_infix_^:N+
+% \begin{macro}[EXP]+\@@_parse_infix_^:N+
% As described in the \enquote{work plan}, each infix operator has an
% associated |\..._infix_...| function, a computing function, and
% precedence, given as arguments to \cs{@@_tmp:w}. Using the general
@@ -2316,7 +2315,7 @@
%
% \subsubsection{Juxtaposition}
%
-% \begin{macro}[aux, EXP]+\@@_parse_infix_(:N+
+% \begin{macro}[EXP]+\@@_parse_infix_(:N+
% When an opening parenthesis appears where we expect an infix
% operator, we compute the product of the previous operand and the
% contents of the parentheses using \cs{@@_parse_infix_juxtapose:N}.
@@ -2327,7 +2326,7 @@
% \end{macro}
%
% ^^A todo: can |...(1,2,3)pt| really occur? If not, simplify.
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {\@@_parse_infix_juxtapose:N, \@@_parse_apply_juxtapose:NwwN}
% Juxtaposition follows the same scheme as other binary operations,
% but calls \cs{@@_parse_apply_juxtapose:NwwN} rather than directly
@@ -2366,7 +2365,7 @@
%
% \subsubsection{Multi-character cases}
%
-% \begin{macro}[aux, EXP]{\@@_parse_infix_*:N}
+% \begin{macro}[EXP]{\@@_parse_infix_*:N}
% \begin{macrocode}
\cs_set_protected:Npn \@@_tmp:w #1
{
@@ -2386,8 +2385,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux, EXP]+\@@_parse_infix_|:Nw+
-% \begin{macro}[aux, EXP]+\@@_parse_infix_&:Nw+
+% \begin{macro}[EXP]+\@@_parse_infix_|:Nw+
+% \begin{macro}[EXP]+\@@_parse_infix_&:Nw+
% \begin{macrocode}
\cs_set_protected:Npn \@@_tmp:w #1#2#3
{
@@ -2412,7 +2411,7 @@
%
% \subsubsection{Ternary operator}
%
-% \begin{macro}[aux, EXP]{\@@_parse_infix_?:N, \@@_parse_infix_::N}
+% \begin{macro}[EXP]{\@@_parse_infix_?:N, \@@_parse_infix_::N}
% \begin{macrocode}
\cs_set_protected:Npn \@@_tmp:w #1#2#3#4
{
@@ -2445,12 +2444,12 @@
%
% \subsubsection{Comparisons}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_infix_<:N, \@@_parse_infix_=:N,
% \@@_parse_infix_>:N, \@@_parse_infix_!:N
% }
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_parse_excl_error:,
% \@@_parse_compare:NNNNNNN,
@@ -2573,7 +2572,7 @@
%
% \subsection{Candidate: defining new \pkg{l3fp} functions}
%
-% \begin{macro}[EXP,int]{\fp_function:Nw}
+% \begin{macro}[EXP]{\fp_function:Nw}
% Parse the argument of the function~|#1| using
% \cs{@@_parse_operand:Nw} with a precedence of~$16$, and pass the
% function and argument to \cs{@@_function_apply:nw}.
@@ -2588,9 +2587,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\fp_new_function:Npn}
-% \begin{macro}[aux]{\@@_new_function:NNnnn, \@@_new_function:Ncfnn}
-% \begin{macro}[aux]{\@@_function_args:Nwn}
+% \begin{macro}{\fp_new_function:Npn}
+% \begin{macro}{\@@_new_function:NNnnn, \@@_new_function:Ncfnn}
+% \begin{macro}{\@@_function_args:Nwn}
% Save the code provided by the user in the control sequence
% |\__fp_user_#1|. Define |#1| to call \cs{@@_function_apply:nw}
% after parsing one operand using \cs{@@_parse_operand:Nw} with
@@ -2639,7 +2638,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux, EXP]
+% \begin{macro}[EXP]
% {
% \@@_function_apply:nw,
% \@@_function_store:wwNwnn,