diff options
author | Karl Berry <karl@freefriends.org> | 2015-09-13 21:32:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-09-13 21:32:20 +0000 |
commit | 0147cee7c31113fac3240ef856b0683ba8b48da8 (patch) | |
tree | f2e3fe81d8b28cdfc6655fe9e7a8257aa07f4d64 /Master/texmf-dist/tex/generic | |
parent | d1cbabc7d105387043fbe801d05c54ab32f118fb (diff) |
xint (13sep15)
git-svn-id: svn://tug.org/texlive/trunk@38368 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcore.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintexpr.sty | 41 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintfrac.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintgcd.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintkernel.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintseries.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 83 |
10 files changed, 69 insertions, 87 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index d67777bee4b..b07e96b1cbe 100644 --- a/Master/texmf-dist/tex/generic/xint/xint.sty +++ b/Master/texmf-dist/tex/generic/xint/xint.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xint: Expandable operations on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty) \XINT_providespackage \ProvidesPackage{xint}% - [2015/08/31 v1.1b Expandable operations on big integers (jfB)]% + [2015/09/12 v1.1c Expandable operations on big integers (jfB)]% \long\def\xint_firstofthree #1#2#3{#1}% \long\def\xint_secondofthree #1#2#3{#2}% \long\def\xint_thirdofthree #1#2#3{#3}% diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty index 1ce6367d2c8..3876c864057 100644 --- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty +++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintbinhex: Expandable binary and hexadecimal conversions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintbinhex}% - [2015/08/31 v1.1b Expandable binary and hexadecimal conversions (jfB)]% + [2015/09/12 v1.1c Expandable binary and hexadecimal conversions (jfB)]% \chardef\xint_c_xvi 16 \chardef\xint_c_ii^vii 128 \mathchardef\xint_c_ii^viii 256 diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty index b5dfdf05712..f3585235d2f 100644 --- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty +++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintcfrac: Expandable continued fractions with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcfrac}% - [2015/08/31 v1.1b Expandable continued fractions with xint package (jfB)]% + [2015/09/12 v1.1c Expandable continued fractions with xint package (jfB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty index 52a531a431f..d9bbb3779f8 100644 --- a/Master/texmf-dist/tex/generic/xint/xintcore.sty +++ b/Master/texmf-dist/tex/generic/xint/xintcore.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintcore: Expandable arithmetic on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcore}% - [2015/08/31 v1.1b Expandable arithmetic on big integers (jfB)]% + [2015/09/12 v1.1c Expandable arithmetic on big integers (jfB)]% \def\xint_minus_thenstop { -}% \def\xint_gob_til_zeros_iii #1000{}% \def\xint_gob_til_zeros_iv #10000{}% diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty index af29c4a9b0e..a7bc350cadd 100644 --- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty +++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintexpr: Expandable expression parser %% --------------------------------------------------------------- @@ -81,7 +81,7 @@ \XINTsetupcatcodes% \XINT_providespackage \ProvidesPackage{xintexpr}% - [2015/08/31 v1.1b Expandable expression parser (jfB)]% + [2015/09/12 v1.1c Expandable expression parser (jfB)]% \def\xint_gob_til_! #1!{}% this ! has catcode 11 \edef\XINT_expr_lockscan#1!{\noexpand\expandafter\space\noexpand\csname .=#1\endcsname }% \edef\XINT_expr_lockit #1{\noexpand\expandafter\space\noexpand\csname .=#1\endcsname }% @@ -302,8 +302,6 @@ \romannumeral-`0\XINT_expr_scanexppart_a e}\fi \if E#1\xint_dothis{\expandafter\XINT_expr_inexppart \romannumeral-`0\XINT_expr_scanexppart_a e}\fi - % \if @#1\xint_dothis{!*#1}\fi % tacit multiplication later - % \if _#1\xint_dothis{!*#1}\fi % tacit multiplication for variables \ifcat a#1\xint_dothis{!!*#1}\fi % includes subexpressions (#1=! letter) \xint_orthat {\expandafter\XINT_expr_scanintpart_aa\string #1}% }% @@ -513,10 +511,7 @@ \catcode`* 12 \def\XINT_expr_foundend {\xint_c_ \relax }% \relax is a place holder here. \def\XINT_expr_getop_b #1% -{% ? and : a special syntax in \xintexpr as they are - % followed by braced arguments, and thus we must intercept them here. - % I wanted to change this but now I don't have time to think about it. - % 1.1 removes : as logic operator. Replaced by ??. +{% \if '#1\xint_dothis{\XINT_expr_binopwrd }\fi \if ?#1\xint_dothis{\XINT_expr_precedence_? ?}\fi \xint_orthat {\XINT_expr_scanop_a #1}% @@ -927,8 +922,8 @@ \else \xint_afterfi {\expandafter ##2\expandafter ##3\csname - .=:\xintiiifSgn{\XINT_expr_unlock ##1}NPP.% : and dots for expansion - \xintiiifSgn{\XINT_expr_unlock ##4}NPP.% in \xintNewExpr context + .=:\xintiiifSgn{\XINT_expr_unlock ##1}NPP.% + \xintiiifSgn{\XINT_expr_unlock ##4}NPP.% \xintNum{\XINT_expr_unlock ##1};\xintNum{\XINT_expr_unlock ##4}\endcsname }% \fi @@ -955,7 +950,7 @@ \let\XINT_flexpr_op_][: \XINT_expr_op_][: \let\XINT_iiexpr_op_][: \XINT_expr_op_][: \catcode`[ 12 \catcode`] 12 -\def\xintListSel:csv #1{% these complications are due to \xintNewExpr matters +\def\xintListSel:csv #1{% \if ]\noexpand#1\xint_dothis{\expandafter\XINT_listsel:_s\romannumeral-`0}\fi \if :\noexpand#1\xint_dothis{\XINT_listsel:_:}\fi \xint_orthat {\XINT_listsel:_nth #1}% @@ -1451,7 +1446,7 @@ \def\XINT_flexpr_func_opx #1#2{\XINT_allexpr_opx \xintfloatexpr }% \def\XINT_iiexpr_func_opx #1#2{\XINT_allexpr_opx \xintiiexpr }% \def\XINT_allexpr_opx #1#2#3#4#5% -{% au d\'epart on avait op(#4,#3=#2 (\'evalu\'e ici)) #3=la variable, #4=expression, #5=+ ou*. +{% \expandafter\XINT_expr_getop\romannumeral0\expandafter\XINT_expr_op:_a \csname XINT_expr_op:_#5\expandafter\endcsname \romannumeral-`0\XINT_expr_unlock #2!#5#1#3{#4}% @@ -1479,7 +1474,7 @@ \csname .=\expandafter\XINT_expr_subx:_a \romannumeral-`0\XINT_expr_unlock #2!{#1#4\relax !#3}\endcsname }% -\def\XINT_expr_subx:_a #1!#2% 10/25 that was a quick addition! +\def\XINT_expr_subx:_a #1!#2% {\expandafter\XINT_expr_subx:_end \romannumeral0#2{#1}}% \def\XINT_expr_subx:_end #1!#2#3{\XINT_expr_unlock #1}% \def\XINT_expr_func_rseq {\XINT_allexpr_rseq \xintbareeval }% @@ -1495,10 +1490,7 @@ \expandafter\XINT_expr_rseqy\romannumeral0#1(#4)\relax #2#3#1% }% -\def\XINT_expr_rseqy #1#2#3#4#5% #1=valeurs pour variable (locked), - % #2=toutes les valeurs initiales (csv,locked), - % #3=variable, #4=expr, - % #5=\xintbareeval ou \xintbarefloateval ou \xintbareiieval +\def\XINT_expr_rseqy #1#2#3#4#5% {% \expandafter \XINT_expr_getop \csname .=\XINT_expr_unlock #2% @@ -1555,11 +1547,7 @@ {\xintRevWithBraces{\xintCSVtoListNonStripped{\XINT_expr_unlock #2}}}}% #2#3#1% }% -\def\XINT_expr_rrseqy #1#2#3#4#5#6% #1=valeurs pour variable (locked), - % #2=initial values (reversed, one (braced) token each) - % #3=toutes les valeurs initiales (csv,locked), - % #4=variable, #5=expr, - % #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval +\def\XINT_expr_rrseqy #1#2#3#4#5#6% {% \expandafter \XINT_expr_getop \csname .=\XINT_expr_unlock #3% @@ -1621,11 +1609,7 @@ {\xintRevWithBraces{\xintCSVtoListNonStripped{\XINT_expr_unlock #2}}}}% #2#3#1% }% -\def\XINT_expr_itery #1#2#3#4#5#6% #1=valeurs pour variable (locked), - % #2=initial values (reversed, one (braced) token each) - % #3=toutes les valeurs initiales (csv,locked), - % #4=variable, #5=expr, - % #6=\xintbareeval ou \xintbarefloateval ou \xintbareiieval +\def\XINT_expr_itery #1#2#3#4#5#6% {% \expandafter \XINT_expr_getop \csname .=% @@ -1807,8 +1791,7 @@ \def\XINT_flexpr_func_sqr #1#2#3% {% \expandafter #1\expandafter #2\csname - .=\XINTinFloatMul % [\XINTdigits]% pour simplifier mes affaires avec \xintNewExpr - {\XINT_expr_unlock #3}{\XINT_expr_unlock #3}\endcsname + .=\XINTinFloatMul{\XINT_expr_unlock #3}{\XINT_expr_unlock #3}\endcsname }% \def\XINT_iiexpr_func_sqr #1#2#3% {\expandafter #1\expandafter #2\csname.=\xintiiSqr {\XINT_expr_unlock #3}\endcsname }% diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index 29258f75d8d..f0e50614e0d 100644 --- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty +++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% - [2015/08/31 v1.1b Expandable operations on fractions (jfB)]% + [2015/09/12 v1.1c Expandable operations on fractions (jfB)]% \chardef\xint_c_xviii 18 \def\XINT_cntSgnFork #1% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty index f87f9686603..b5905103847 100644 --- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty +++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintgcd: Euclidean algorithm with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintgcd}% - [2015/08/31 v1.1b Euclide algorithm with xint package (jfB)]% + [2015/09/12 v1.1c Euclide algorithm with xint package (jfB)]% \def\xintGCD {\romannumeral0\xintgcd }% \def\xintgcd #1% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty index 4ee08194d2e..8904861217e 100644 --- a/Master/texmf-dist/tex/generic/xint/xintkernel.sty +++ b/Master/texmf-dist/tex/generic/xint/xintkernel.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintkernel: Paraphernalia for the xint packages %% --------------------------------------------------------------- @@ -152,7 +152,7 @@ \fi \XINT_providespackage \ProvidesPackage {xintkernel}% - [2015/08/31 v1.1b Paraphernalia for the xint packages (jfB)]% + [2015/09/12 v1.1c Paraphernalia for the xint packages (jfB)]% \long\def\xint_gobble_ {}% \long\def\xint_gobble_i #1{}% \long\def\xint_gobble_ii #1#2{}% diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty index 4245ce90a0c..1bec170ddc4 100644 --- a/Master/texmf-dist/tex/generic/xint/xintseries.sty +++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xintseries: Expandable partial sums with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintseries}% - [2015/08/31 v1.1b Expandable partial sums with xint package (jfB)]% + [2015/09/12 v1.1c Expandable partial sums with xint package (jfB)]% \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty index 103667e53fe..345777e41d8 100644 --- a/Master/texmf-dist/tex/generic/xint/xinttools.sty +++ b/Master/texmf-dist/tex/generic/xint/xinttools.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle v1.1b (2015/08/31; doc: 2015/08/31) +%% The xint bundle v1.1c 2015/09/12 %% Copyright (C) 2013-2015 by Jean-Francois Burnol %% xinttools: Expandable and non-expandable utilities %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xinttools}% - [2015/08/31 v1.1b Expandable and non-expandable utilities (jfB)]% + [2015/09/12 v1.1c Expandable and non-expandable utilities (jfB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! \def\xintgodef {\global\xintodef }% @@ -102,21 +102,16 @@ \def\XINT_revwbr_finish_b #1#2#3#4#5#6#7#8\Z {% \xint_gob_til_R - #1\XINT_revwbr_finish_c \xint_c_viii - #2\XINT_revwbr_finish_c \xint_c_vii - #3\XINT_revwbr_finish_c \xint_c_vi - #4\XINT_revwbr_finish_c \xint_c_v - #5\XINT_revwbr_finish_c \xint_c_iv - #6\XINT_revwbr_finish_c \xint_c_iii - #7\XINT_revwbr_finish_c \xint_c_ii - \R\XINT_revwbr_finish_c \xint_c_i\Z -}% -\def\XINT_revwbr_finish_c #1#2\Z -{% - \expandafter\expandafter\expandafter - \space - \csname xint_gobble_\romannumeral #1\endcsname -}% + #1\XINT_revwbr_finish_c \xint_gobble_viii + #2\XINT_revwbr_finish_c \xint_gobble_vii + #3\XINT_revwbr_finish_c \xint_gobble_vi + #4\XINT_revwbr_finish_c \xint_gobble_v + #5\XINT_revwbr_finish_c \xint_gobble_iv + #6\XINT_revwbr_finish_c \xint_gobble_iii + #7\XINT_revwbr_finish_c \xint_gobble_ii + \R\XINT_revwbr_finish_c \xint_gobble_i\Z +}% +\edef\XINT_revwbr_finish_c #1#2\Z {\noexpand\expandafter\space #1}% \def\xintZapFirstSpaces {\romannumeral0\xintzapfirstspaces }% \long\edef\xintzapfirstspaces #1% {\noexpand\XINT_zapbsp_a \space #1\xint_relax \space\space\xint_relax }% @@ -196,18 +191,14 @@ \def\XINT_csvtol_finish_b #1,#2,#3,#4,#5,#6,#7,#8\Z {% \xint_gob_til_R - #1\XINT_csvtol_finish_c \xint_c_viii - #2\XINT_csvtol_finish_c \xint_c_vii - #3\XINT_csvtol_finish_c \xint_c_vi - #4\XINT_csvtol_finish_c \xint_c_v - #5\XINT_csvtol_finish_c \xint_c_iv - #6\XINT_csvtol_finish_c \xint_c_iii - #7\XINT_csvtol_finish_c \xint_c_ii - \R\XINT_csvtol_finish_c \xint_c_i\Z -}% -\def\XINT_csvtol_finish_c #1#2\Z -{% - \csname XINT_csvtol_finish_d\romannumeral #1\endcsname + #1\expandafter\XINT_csvtol_finish_dviii\xint_gob_til_Z + #2\expandafter\XINT_csvtol_finish_dvii \xint_gob_til_Z + #3\expandafter\XINT_csvtol_finish_dvi \xint_gob_til_Z + #4\expandafter\XINT_csvtol_finish_dv \xint_gob_til_Z + #5\expandafter\XINT_csvtol_finish_div \xint_gob_til_Z + #6\expandafter\XINT_csvtol_finish_diii \xint_gob_til_Z + #7\expandafter\XINT_csvtol_finish_dii \xint_gob_til_Z + \R\XINT_csvtol_finish_di \Z }% \long\def\XINT_csvtol_finish_dviii #1#2#3#4#5#6#7#8#9{ #9}% \long\def\XINT_csvtol_finish_dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}% @@ -217,7 +208,7 @@ \long\def\XINT_csvtol_finish_diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}% \long\def\XINT_csvtol_finish_dii #1#2#3#4#5#6#7#8#9% { #9{#1}{#2}{#3}{#4}{#5}{#6}}% -\long\def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9% +\long\def\XINT_csvtol_finish_di\Z #1#2#3#4#5#6#7#8#9% { #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% \def\xintListWithSep {\romannumeral0\xintlistwithsep }% \def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }% @@ -965,27 +956,35 @@ }% \long\def\XINT_assign_a #1\to {% - \expandafter\XINT_assign_b\romannumeral-`0#1{}\to + \def\XINT_flet_macro{\XINT_assign_b}% + \expandafter\XINT_flet_zapsp\romannumeral-`0#1\xint_relax\to +}% +\long\def\XINT_assign_b +{% + \ifx\XINT_token\bgroup + \expandafter\XINT_assign_c + \else\expandafter\XINT_assign_f + \fi +}% +\long\def\XINT_assign_f #1\xint_relax\to #2% +{% + \XINT_assign_def #2{#1}% }% -\long\def\XINT_assign_b #1% attention to the # at the beginning of next line -#{% +\long\def\XINT_assign_c #1% +{% \def\xint_temp {#1}% - \ifx\empty\xint_temp - \expandafter\XINT_assign_c + \ifx\xint_temp\xint_brelax + \expandafter\XINT_assign_e \else \expandafter\XINT_assign_d \fi }% -\long\def\XINT_assign_c #1#2\to #3% -{% - \XINT_assign_def #3{#1}% - \def\xint_temp {#2}% - \unless\ifx\empty\xint_temp\xint_afterfi{\XINT_assign_b #2\to }\fi -}% -\def\XINT_assign_d #1\to #2% normally #1 is {} here. +\long\def\XINT_assign_d #1\to #2% {% \expandafter\XINT_assign_def\expandafter #2\expandafter{\xint_temp}% + \XINT_assign_c #1\to }% +\def\XINT_assign_e #1\to {}% \def\xintRelaxArray #1% {% \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax}% |