diff options
author | Karl Berry <karl@freefriends.org> | 2013-10-23 22:36:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-10-23 22:36:42 +0000 |
commit | db4b352a8add9f8ad0a37795b734e34024c1613a (patch) | |
tree | 209bab61c50922d992d20540d36418479f3cf672 /Master/texmf-dist/tex/generic/xint/xint.sty | |
parent | f2774ca5d48f5ad0f49343181ea3a9677d99d90c (diff) |
xint (23oct13)
git-svn-id: svn://tug.org/texlive/trunk@31981 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xint.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 69 |
1 files changed, 45 insertions, 24 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index bb99f667863..30747397538 100644 --- a/Master/texmf-dist/tex/generic/xint/xint.sty +++ b/Master/texmf-dist/tex/generic/xint/xint.sty @@ -22,7 +22,7 @@ %% in the same archive or directory.) %% %%---------------------------------------------------------------- -%% The xint bundle (version 1.09c of October 9, 2013) +%% The xint bundle (version 1.09d of October 22, 2013) %% xint: Expandable operations on long numbers %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- @@ -152,7 +152,7 @@ \fi \XINT_providespackage \ProvidesPackage {xint}% - [2013/10/09 v1.09c Expandable operations on long numbers (jfB)]% + [2013/10/22 v1.09d Expandable operations on long numbers (jfB)]% \def\xint_gobble_ {}% \def\xint_gobble_i #1{}% \def\xint_gobble_ii #1#2{}% @@ -163,6 +163,7 @@ \def\xint_gobble_vii #1#2#3#4#5#6#7{}% \def\xint_gobble_viii #1#2#3#4#5#6#7#8{}% \def\xint_firstofone #1{#1}% +\xint_firstofone{\let\XINT_sptoken= } % 1.09d, 2013/10/22 \def\xint_firstoftwo #1#2{#1}% \def\xint_secondoftwo #1#2{#2}% \def\xint_firstoftwo_andstop #1#2{ #1}% @@ -622,29 +623,40 @@ }% \def\XINT_seqo_nd #1#2#3#4{\XINT_seqo_nb {#1}{#2}{#3}{#4{#1}}}% \catcode`z 3% +\def\XINT_xflet #1% +{% + \expandafter\futurelet\expandafter\XINT_token + \expandafter#1\romannumeral-`0\romannumeral-`0% +}% \def\xintApplyInline #1#2% {% \expandafter\def\expandafter\XINT_inline_macro\expandafter ##\expandafter 1% \expandafter {#1{##1}}% - \expandafter\XINT_inline_b\romannumeral-`0#2z% + \XINT_xflet\XINT_inline_b #2z% THIS z HAS CATCODE 3 }% \def\XINT_inline_b {\futurelet\XINT_token\XINT_inline_c }% -\def\XINT_inline_c +\def\XINT_inline_b {% - \ifx\XINT_token z\expandafter\xint_gobble_i - \else \expandafter\XINT_inline_d + \ifx\XINT_token\XINT_sptoken + \xint_afterfi{\XINT_xflet\XINT_inline_b }% + \else + \xint_afterfi + {\ifx\XINT_token z\expandafter\xint_gobble_i + \else\expandafter\XINT_inline_d\fi }% \fi }% \def\XINT_inline_d #1% {% - \def\XINT_item{{#1}}\futurelet\XINT_token\XINT_inline_e + \def\XINT_item{{#1}}\XINT_xflet\XINT_inline_e }% \def\XINT_inline_e {% - \ifx\XINT_token z% - \expandafter\XINT_inline_w + \ifx\XINT_token\XINT_sptoken + \xint_afterfi{\XINT_xflet\XINT_inline_e }% \else - \expandafter\XINT_inline_f + \xint_afterfi + {\ifx\XINT_token z\expandafter\XINT_inline_w + \else \expandafter\XINT_inline_f\fi }% \fi }% \def\XINT_inline_f @@ -656,7 +668,7 @@ \expandafter\XINT_inline_macro\XINT_item \def\XINT_inline_macro ##1{#1}\XINT_inline_d }% -\def\XINT_inline_w #1% swallows list terminator +\def\XINT_inline_w #1% {% \expandafter\XINT_inline_macro\XINT_item }% @@ -666,12 +678,12 @@ \def\XINT_for #1#2in#3#4#5% {% \XINT_toks \expandafter{\csname XINT_for_d\romannumeral#2\endcsname {#5}}% - \expandafter\XINT_for_b #3,z,% + \expandafter\XINT_for_b #3,z,% THIS z HAS CATCODE 3. }% \def\XINT_forx *#1#2in#3#4#5% {% \XINT_toks \expandafter{\csname XINT_forx_d\romannumeral#2\endcsname {#5}}% - \expandafter\XINT_forx_b\romannumeral-`0#3z% + \XINT_xflet\XINT_forx_b #3z% THIS z HAS CATCODE 3. }% \def\XINT_for_b {\futurelet\XINT_token\XINT_for_c }% \def\XINT_for_c @@ -712,50 +724,59 @@ \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iv}\fi \the\XINT_toks }% -\def\XINT_forx_b {\futurelet\XINT_token\XINT_forx_c }% -\def\XINT_forx_c +\def\XINT_forx_b {% - \ifx\XINT_token z\expandafter\xint_gobble_iii\fi - \the\XINT_toks + \ifx\XINT_token\XINT_sptoken + \xint_afterfi{\XINT_xflet\XINT_forx_b }% + \else + \xint_afterfi + {\ifx\XINT_token z\expandafter\xint_gobble_iii\fi + \the\XINT_toks }% + \fi }% \def\XINT_forx_di #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}% \XINT_toks {\XINT_x \XINT_forx_di {#1}}% - \futurelet\XINT_token\XINT_forx_e + \XINT_xflet\XINT_forx_e }% \def\XINT_forx_dii #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}% \XINT_toks {\XINT_x \XINT_forx_dii {#1}}% - \futurelet\XINT_token\XINT_forx_e + \XINT_xflet\XINT_forx_e }% \def\XINT_forx_diii #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}% \XINT_toks {\XINT_x \XINT_forx_diii {#1}}% - \futurelet\XINT_token\XINT_forx_e + \XINT_xflet\XINT_forx_e }% \def\XINT_forx_div #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}% \XINT_toks {\XINT_x \XINT_forx_div {#1}}% - \futurelet\XINT_token\XINT_forx_e + \XINT_xflet\XINT_forx_e }% \def\XINT_forx_e {% - \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iii}\fi - \the\XINT_toks + \ifx\XINT_token\XINT_sptoken + \xint_afterfi{\XINT_xflet\XINT_forx_e}% + \else + \xint_afterfi + {\ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iii}\fi + \the\XINT_toks }% + \fi }% \def\xintForpair #1#2#3#4in#5#6#7% {% \XINT_toks \expandafter{% \csname XINT_forii_d\romannumeral#2\endcsname {#7}}% - \expandafter\XINT_forii_b #5,z,% + \expandafter\XINT_forii_b #5,z,% THIS z HAS CATCODE 3 }% \def\XINT_forii_b {\futurelet\XINT_token\XINT_forii_c }% \def\XINT_forii_c |