summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorAndreas Scherer <andreas_tex@freenet.de>2022-05-27 11:09:21 +0000
committerAndreas Scherer <andreas_tex@freenet.de>2022-05-27 11:09:21 +0000
commita0a752c86b459166c18bc676e93192c99fe4c455 (patch)
treee09051fc78e0a21824e92c62524be744498c9f1f /Build
parent258262740b735282b25d4c5e6638ede0d40e5afa (diff)
[CWEB] Finishing touches for 'prod.w'.
Try to match CWEAVE section 111 (prod.w) with the implementation of the production rules. git-svn-id: svn://tug.org/texlive/trunk@63411 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/web2c/cwebdir/ChangeLog2
-rw-r--r--Build/source/texk/web2c/cwebdir/ctwill-mini.ch8
-rw-r--r--Build/source/texk/web2c/cwebdir/ctwill-w2c.ch8
-rw-r--r--Build/source/texk/web2c/cwebdir/cweav-w2c.ch8
-rw-r--r--Build/source/texk/web2c/cwebdir/cweave.w13
-rw-r--r--Build/source/texk/web2c/cwebdir/prod-cweave.w14
-rw-r--r--Build/source/texk/web2c/cwebdir/prod-twill.w14
-rw-r--r--Build/source/texk/web2c/cwebdir/prod.w14
8 files changed, 41 insertions, 40 deletions
diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog
index 5031c82f375..51cdee25953 100644
--- a/Build/source/texk/web2c/cwebdir/ChangeLog
+++ b/Build/source/texk/web2c/cwebdir/ChangeLog
@@ -1,4 +1,4 @@
-2022-05-26 Andreas Scherer <https://ascherer.github.io>
+2022-05-27 Andreas Scherer <https://ascherer.github.io>
* ctwill-mini.ch,
* ctwill-w2c.ch,
diff --git a/Build/source/texk/web2c/cwebdir/ctwill-mini.ch b/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
index 4eb62d9cc64..aa354240415 100644
--- a/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
+++ b/Build/source/texk/web2c/cwebdir/ctwill-mini.ch
@@ -878,9 +878,9 @@ Section 123.
Section 124.
@x l.291
-\+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
+\+& |exp| |attr| & |exp| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
@y
-\+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
+\+& |exp| |attr| & |exp| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
\endgroup
@ Cont.
@@ -1287,9 +1287,9 @@ Section 170.
Section 173.
@x
-if (cat1==else_like || cat1==if_like || cat1==define_like)
+if (cat1==if_like || cat1==else_like || cat1==define_like)
@y
-if (cat1==else_like || cat1==if_like || cat1==define_like) @/
+if (cat1==if_like || cat1==else_like || cat1==define_like) @/
@z
@x
diff --git a/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch b/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
index 79a7c326077..22dc440be80 100644
--- a/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch
@@ -709,7 +709,7 @@ else if ((cat1==binop||cat1==colon) && cat2==exp && (cat3==comma ||
cat3==semi || cat3==rpar))
squash(pp,3,decl_head,-1,36);
else if (cat1==cast) squash(pp,2,decl_head,-1,37);
-else if (cat1==lbrace || cat1==int_like || cat1==decl) {
+else if (cat1==int_like || cat1==lbrace || cat1==decl) {
big_app(dindent); squash(pp,1,fn_decl,0,38);
}
else if (cat1==semi) squash(pp,2,decl,-1,39);
@@ -730,7 +730,7 @@ else if ((cat1==binop||cat1==colon) && cat2==exp && (cat3==comma ||
cat3==semi || cat3==rpar))
squash(pp,3,decl_head,-1,36);
else if (cat1==cast) squash(pp,2,decl_head,-1,37);
-else if (cat1==lbrace || cat1==int_like || cat1==decl) {
+else if (cat1==int_like || cat1==lbrace || cat1==decl) {
if (indent_param_decl) big_app(dindent);
squash(pp,1,fn_decl,0,38);
}
@@ -793,10 +793,10 @@ else if (cat1==stmt) {
@z
@x
- big_app1_insert(pp, (cat1==function || cat1==decl) ? big_force :
+ big_app1_insert(pp, (cat1==decl || cat1==function) ? big_force :
force_lines ? force : break_space); reduce(pp,2,cat1,-1,76);
@y
- big_app1_insert(pp, (cat1==function || cat1==decl) ? @|
+ big_app1_insert(pp, (cat1==decl || cat1==function) ? @|
( order_decl_stmt ? big_force : force ) : @|
( force_lines ? force : break_space ) ); reduce(pp,2,cat1,-1,76);
@z
diff --git a/Build/source/texk/web2c/cwebdir/cweav-w2c.ch b/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
index 8da07cb330a..fecc9e6d203 100644
--- a/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
+++ b/Build/source/texk/web2c/cwebdir/cweav-w2c.ch
@@ -335,7 +335,7 @@ else if ((cat1==binop||cat1==colon) && cat2==exp && (cat3==comma ||
cat3==semi || cat3==rpar))
squash(pp,3,decl_head,-1,36);
else if (cat1==cast) squash(pp,2,decl_head,-1,37);
-else if (cat1==lbrace || cat1==int_like || cat1==decl) {
+else if (cat1==int_like || cat1==lbrace || cat1==decl) {
big_app(dindent); squash(pp,1,fn_decl,0,38);
}
else if (cat1==semi) squash(pp,2,decl,-1,39);
@@ -355,7 +355,7 @@ else if ((cat1==binop||cat1==colon) && cat2==exp && (cat3==comma ||
cat3==semi || cat3==rpar))
squash(pp,3,decl_head,-1,36);
else if (cat1==cast) squash(pp,2,decl_head,-1,37);
-else if (cat1==lbrace || cat1==int_like || cat1==decl) {
+else if (cat1==int_like || cat1==lbrace || cat1==decl) {
if (indent_param_decl) big_app(dindent);
squash(pp,1,fn_decl,0,38);
}
@@ -412,10 +412,10 @@ else if (cat1==stmt) {
@z
@x
- big_app1_insert(pp, (cat1==function || cat1==decl) ? big_force :
+ big_app1_insert(pp, (cat1==decl || cat1==function) ? big_force :
force_lines ? force : break_space); reduce(pp,2,cat1,-1,76);
@y
- big_app1_insert(pp, (cat1==function || cat1==decl) ? @|
+ big_app1_insert(pp, (cat1==decl || cat1==function) ? @|
( order_decl_stmt ? big_force : force ) : @|
( force_lines ? force : break_space ) ); reduce(pp,2,cat1,-1,76);
@z
diff --git a/Build/source/texk/web2c/cwebdir/cweave.w b/Build/source/texk/web2c/cwebdir/cweave.w
index 4fb3ca68e9f..24926f61310 100644
--- a/Build/source/texk/web2c/cwebdir/cweave.w
+++ b/Build/source/texk/web2c/cwebdir/cweave.w
@@ -2715,6 +2715,7 @@ if (cat1==binop) {
if (cat1==lpar) squash(pp,2,lpar,-1,21);
else if (cat1==exp) {
big_app1(pp); app_str("\\,"); big_app1(pp+1); reduce(pp,2,exp,-2,21);
+@.\\,@>
}
else if (cat1==semi) reduce(pp,0,exp,-2,22);
@@ -2759,7 +2760,7 @@ else if ((cat1==binop||cat1==colon) && cat2==exp && (cat3==comma ||
cat3==semi || cat3==rpar))
squash(pp,3,decl_head,-1,36);
else if (cat1==cast) squash(pp,2,decl_head,-1,37);
-else if (cat1==lbrace || cat1==int_like || cat1==decl) {
+else if (cat1==int_like || cat1==lbrace || cat1==decl) {
big_app(dindent); squash(pp,1,fn_decl,0,38);
}
else if (cat1==semi) squash(pp,2,decl,-1,39);
@@ -2797,7 +2798,7 @@ else if (cat1==exp||cat1==int_like) {
big_app1_insert(pp,' ');
if (cat2==semi) reduce(pp,2,decl_head,0,45);
else {
- big_app(' '); big_app1(pp+2);reduce(pp,3,struct_head,0,46);
+ big_app(' '); big_app1(pp+2); reduce(pp,3,struct_head,0,46);
}
}
else if (cat2==colon) reduce(pp+2,0,base,2,47);
@@ -2837,7 +2838,7 @@ else if (cat1==attr) {
}
@ @<Cases for |function|@>=
-if (cat1==function || cat1==decl || cat1==stmt) {
+if (cat1==stmt || cat1==decl || cat1==function) {
big_app1_insert(pp,big_force); reduce(pp,2,cat1,-1,53);
}
@@ -2946,8 +2947,8 @@ grouped together on the same line.
force_lines=true;
@ @<Cases for |stmt|@>=
-if (cat1==stmt||cat1==decl||cat1==function) {
- big_app1_insert(pp, (cat1==function || cat1==decl) ? big_force :
+if (cat1==stmt || cat1==decl || cat1==function) {
+ big_app1_insert(pp, (cat1==decl || cat1==function) ? big_force :
force_lines ? force : break_space); reduce(pp,2,cat1,-1,76);
}
@@ -2956,7 +2957,7 @@ big_app(' '); squash(pp,1,stmt,-1,77);
@ @<Cases for |lproc|@>=
if (cat1==define_like) make_underlined(pp+2);
-if (cat1==else_like || cat1==if_like || cat1==define_like)
+if (cat1==if_like || cat1==else_like || cat1==define_like)
squash(pp,2,lproc,0,78);
else if (cat1==rproc) {
app(inserted); squash(pp,2,insert,-1,79);
diff --git a/Build/source/texk/web2c/cwebdir/prod-cweave.w b/Build/source/texk/web2c/cwebdir/prod-cweave.w
index 6b104d5ae0e..8576f7dc15a 100644
--- a/Build/source/texk/web2c/cwebdir/prod-cweave.w
+++ b/Build/source/texk/web2c/cwebdir/prod-cweave.w
@@ -56,7 +56,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
|insert| & \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
& stmt; \4\4 \C{comment}\cr
\+\dagit& |exp| \altt|lbrace| |int_like| |decl|
- & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=E^*\,\\{din}$
+ & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=\\{din}\,E^*$
& \malt {\\{main}(\,) $\{$}
{$\\{main}(\\{ac},\\{av}){}$ \&{int} \\{ac};} \cr
\+& |exp| |unop| & |exp| & $x\PP$ \cr
@@ -118,7 +118,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
& \malt {\&{int} $f(\&{int}\ x=2)$} {\&{int} $b$ : 1} \cr
\+& |decl_head| |cast| & |decl_head| & \&{int} $f$(\&{int})\cr
\+\dagit& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
- \altt|int_like| |lbrace| |decl| \hfill $F=D\,\\{din}$
+ \altt|int_like| |lbrace| |decl| \hfill $F=\\{din}\,D$
& \&{long} \\{time}(\,) $\{$\cr
\+& |decl_head| |semi| & |decl| & \&{int} $n$;\cr
\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$
@@ -166,7 +166,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
$|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$
& \&{else} $x=0;$\cr
\+& |else_head| \alt|stmt| |exp| & |stmt| \hfill
- $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$
+ $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{force}$
& $\!\!$ \&{else} $\{x=0;\}$\cr
\+& |if_clause| |lbrace| & |if_head| |lbrace| & \&{if} ($x$) $\{$\cr
\+& |if_clause| |stmt| |else_like| |if_like| & |if_like| \hfill
@@ -193,7 +193,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |case_like| |colon| & |tag| & |default:|\cr
\+& |case_like| |exp| & |exp| \hfill $C\.\ E$ & |return 0|\cr
\+\dagit& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
- $C$\alt $C$ $E$ \unskip \\{din} & |catch (...)|\cr
+ $C$\,\\{din}\,\alt $C$ $E$ & |catch (...)|\cr
\+& |tag| |tag| & |tag| \hfill $T_1\,\\{bsp}\,T_2$ & |case 0: case 1:|\cr
\+& |tag| \altt|stmt| |decl| |function| & \altt|stmt| |decl| |function|
\hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$
@@ -296,7 +296,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |using_like| & |int_like| & \&{using} not in attributes \cr
\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$
& \&{struct} [[\\{deprecated}]]\cr
-\+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
+\+& |exp| |attr| & |exp| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$
& |[[deprecated]] typedef| \cr
\+& |raw_int| |lbrack| & |exp| & |int[3]| \cr
@@ -313,10 +313,10 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |exp| |colcol| |int_like| & |int_like| & $\\{std}\DC\&{atomic}$ \cr
\advance\midcol-30pt
\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |comma| &
- |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $C$
+ |langle| \hfill $LS$\.\ \alt $E^{**}$ $I^{**}$ \unskip $C$
& $\langle$\&{typename} $t,$\cr
\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |prerangle| &
- |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $P$
+ |cast| \hfill $LS$\.\ \alt $E^{**}$ $I^{**}$ \unskip $P$
& $\langle$\&{typename} $t\rangle$ \cr
\advance\midcol30pt
\+& |template_like| |cast| |struct_like| & |struct_like| \hfill $T\.\ CS$ &
diff --git a/Build/source/texk/web2c/cwebdir/prod-twill.w b/Build/source/texk/web2c/cwebdir/prod-twill.w
index f43dfec6406..57acb995143 100644
--- a/Build/source/texk/web2c/cwebdir/prod-twill.w
+++ b/Build/source/texk/web2c/cwebdir/prod-twill.w
@@ -56,7 +56,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
|insert| & \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
& stmt; \4\4 \C{comment}\cr
\+\dagit& |exp| \altt|lbrace| |int_like| |decl|
- & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=E^*\,\\{din}$
+ & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=\\{din}\,E^*$
& \malt {\\{main}(\,) $\{$}
{$\\{main}(\\{ac},\\{av}){}$ \&{int} \\{ac};} \cr
\+& |exp| |unop| & |exp| & $x\PP$ \cr
@@ -118,7 +118,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
& \malt {\&{int} $f(\&{int}\ x=2)$} {\&{int} $b$ : 1} \cr
\+& |decl_head| |cast| & |decl_head| & \&{int} $f$(\&{int})\cr
\+\dagit& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
- \altt|int_like| |lbrace| |decl| \hfill $F=D\,\\{din}$
+ \altt|int_like| |lbrace| |decl| \hfill $F=\\{din}\,D$
& \&{long} \\{time}(\,) $\{$\cr
\+& |decl_head| |semi| & |decl| & \&{int} $n$;\cr
\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$
@@ -166,7 +166,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
$|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$
& \&{else} $x=0;$\cr
\+& |else_head| \alt|stmt| |exp| & |stmt| \hfill
- $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$
+ $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{force}$
& $\!\!$ \&{else} $\{x=0;\}$\cr
\+& |if_clause| |lbrace| & |if_head| |lbrace| & \&{if} ($x$) $\{$\cr
\+& |if_clause| |stmt| |else_like| |if_like| & |if_like| \hfill
@@ -193,7 +193,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |case_like| |colon| & |tag| & |default:|\cr
\+& |case_like| |exp| & |exp| \hfill $C\.\ E$ & |return 0|\cr
\+\dagit& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
- $C$\alt $C$ $E$ \unskip \\{din} & |catch (...)|\cr
+ $C$\,\\{din}\,\alt $C$ $E$ & |catch (...)|\cr
\+& |tag| |tag| & |tag| \hfill $T_1\,\\{bsp}\,T_2$ & |case 0: case 1:|\cr
\+& |tag| \altt|stmt| |decl| |function| & \altt|stmt| |decl| |function|
\hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$
@@ -291,7 +291,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |using_like| & |int_like| & \&{using} not in attributes \cr
\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$
& \&{struct} [[\\{deprecated}]]\cr
-\+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
+\+& |exp| |attr| & |exp| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$
& |[[deprecated]] typedef| \cr
\+& |raw_int| |lbrack| & |exp| & |int[3]| \cr
@@ -308,10 +308,10 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |exp| |colcol| |int_like| & |int_like| & $\\{std}\DC\&{atomic}$ \cr
\advance\midcol-30pt
\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |comma| &
- |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $C$
+ |langle| \hfill $LS$\.\ \alt $E^{**}$ $I^{**}$ \unskip $C$
& $\langle$\&{typename} $t,$\cr
\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |prerangle| &
- |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $P$
+ |cast| \hfill $LS$\.\ \alt $E^{**}$ $I^{**}$ \unskip $P$
& $\langle$\&{typename} $t\rangle$ \cr
\advance\midcol30pt
\+& |template_like| |cast| |struct_like| & |struct_like| \hfill $T\.\ CS$ &
diff --git a/Build/source/texk/web2c/cwebdir/prod.w b/Build/source/texk/web2c/cwebdir/prod.w
index 243aa6f7255..203a77e49d2 100644
--- a/Build/source/texk/web2c/cwebdir/prod.w
+++ b/Build/source/texk/web2c/cwebdir/prod.w
@@ -56,7 +56,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
|insert| & \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
& stmt; \4\4 \C{comment}\cr
\+& |exp| \altt|lbrace| |int_like| |decl|
- & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=E^*\,\\{din}$
+ & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=\\{din}\,E^*$
& \malt {\\{main}(\,) $\{$}
{$\\{main}(\\{ac},\\{av}){}$ \&{int} \\{ac};} \cr
\+& |exp| |unop| & |exp| & $x\PP$ \cr
@@ -118,7 +118,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
& \malt {\&{int} $f(\&{int}\ x=2)$} {\&{int} $b$ : 1} \cr
\+& |decl_head| |cast| & |decl_head| & \&{int} $f$(\&{int})\cr
\+& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
- \altt|int_like| |lbrace| |decl| \hfill $F=D\,\\{din}$
+ \altt|int_like| |lbrace| |decl| \hfill $F=\\{din}\,D$
& \&{long} \\{time}(\,) $\{$\cr
\+& |decl_head| |semi| & |decl| & \&{int} $n$;\cr
\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$
@@ -166,7 +166,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
$|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$
& \&{else} $x=0;$\cr
\+& |else_head| \alt|stmt| |exp| & |stmt| \hfill
- $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$
+ $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{force}$
& $\!\!$ \&{else} $\{x=0;\}$\cr
\+& |if_clause| |lbrace| & |if_head| |lbrace| & \&{if} ($x$) $\{$\cr
\+& |if_clause| |stmt| |else_like| |if_like| & |if_like| \hfill
@@ -193,7 +193,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |case_like| |colon| & |tag| & |default:|\cr
\+& |case_like| |exp| & |exp| \hfill $C\.\ E$ & |return 0|\cr
\+& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
- $C$\alt $C$ $E$ \unskip \\{din} & |catch (...)|\cr
+ $C$\,\\{din}\,\alt $C$ $E$ & |catch (...)|\cr
\+& |tag| |tag| & |tag| \hfill $T_1\,\\{bsp}\,T_2$ & |case 0: case 1:|\cr
\+& |tag| \altt|stmt| |decl| |function| & \altt|stmt| |decl| |function|
\hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$
@@ -296,7 +296,7 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |using_like| & |int_like| & \&{using} not in attributes \cr
\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$
& \&{struct} [[\\{deprecated}]]\cr
-\+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
+\+& |exp| |attr| & |exp| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$
& |[[deprecated]] typedef| \cr
\+& |raw_int| |lbrack| & |exp| & |int[3]| \cr
@@ -313,10 +313,10 @@ We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
\+& |exp| |colcol| |int_like| & |int_like| & $\\{std}\DC\&{atomic}$ \cr
\advance\midcol-30pt
\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |comma| &
- |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $C$
+ |langle| \hfill $LS$\.\ \alt $E^{**}$ $I^{**}$ \unskip $C$
& $\langle$\&{typename} $t,$\cr
\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |prerangle| &
- |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $P$
+ |cast| \hfill $LS$\.\ \alt $E^{**}$ $I^{**}$ \unskip $P$
& $\langle$\&{typename} $t\rangle$ \cr
\advance\midcol30pt
\+& |template_like| |cast| |struct_like| & |struct_like| \hfill $T\.\ CS$ &