diff options
author | Andreas Scherer <andreas_tex@freenet.de> | 2022-05-27 11:09:21 +0000 |
---|---|---|
committer | Andreas Scherer <andreas_tex@freenet.de> | 2022-05-27 11:09:21 +0000 |
commit | a0a752c86b459166c18bc676e93192c99fe4c455 (patch) | |
tree | e09051fc78e0a21824e92c62524be744498c9f1f | |
parent | 258262740b735282b25d4c5e6638ede0d40e5afa (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
-rw-r--r-- | Build/source/texk/web2c/cwebdir/ChangeLog | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/ctwill-mini.ch | 8 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/ctwill-w2c.ch | 8 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/cweav-w2c.ch | 8 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/cweave.w | 13 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/prod-cweave.w | 14 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/prod-twill.w | 14 | ||||
-rw-r--r-- | Build/source/texk/web2c/cwebdir/prod.w | 14 |
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$ & |