projects
/
c-standard
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6c55e01
)
automatic <sub>opt</sub>
author
nsz
<nsz@port70.net>
Fri, 22 Jul 2011 10:53:18 +0000
(12:53 +0200)
committer
nsz
<nsz@port70.net>
Fri, 22 Jul 2011 10:53:18 +0000
(12:53 +0200)
ann2html.sh
patch
|
blob
|
history
n1548.html
patch
|
blob
|
history
diff --git
a/ann2html.sh
b/ann2html.sh
index
509e3a2
..
8999198
100755
(executable)
--- a/
ann2html.sh
+++ b/
ann2html.sh
@@
-1,7
+1,5
@@
#!/bin/sh
#!/bin/sh
-# todo: <sub>opt</sub>
-
export LC_ALL=C
awk '
BEGIN {
export LC_ALL=C
awk '
BEGIN {
@@
-213,6
+211,11
@@
seencontents && !seenfore && /^[^@]/ {
}
s = p s
p = ""
}
s = p s
p = ""
+ # TODO: false positives..
+ while (match(s, /[a-z]opt[ )]/))
+ s = substr(s,1,RSTART) "<sub>opt</sub>" substr(s,RSTART+RLENGTH-1)
+ if (match(s, /[a-z]opt$/))
+ s = substr(s,1,RSTART) "<sub>opt</sub>"
for (;;) {
while (match(s, noteid-1 "\\)")) {
p = p substr(s,1,RSTART-1)
for (;;) {
while (match(s, noteid-1 "\\)")) {
p = p substr(s,1,RSTART-1)
diff --git
a/n1548.html
b/n1548.html
index
47d9b1b
..
5f12277
100644
(file)
--- a/
n1548.html
+++ b/
n1548.html
@@
-2400,7
+2400,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
definitions are listed on separate lines, except when prefaced by the words ''one of''. An
optional symbol is indicated by the subscript ''opt'', so that
<pre>
definitions are listed on separate lines, except when prefaced by the words ''one of''. An
optional symbol is indicated by the subscript ''opt'', so that
<pre>
- { expression
opt
}</pre>
+ { expression
<sub>opt</sub>
}</pre>
indicates an optional expression enclosed in braces.
<p><!--para 2 -->
When syntactic categories are referred to in the main text, they are not italicized and
indicates an optional expression enclosed in braces.
<p><!--para 2 -->
When syntactic categories are referred to in the main text, they are not italicized and
@@
-3695,9
+3695,9
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<!--page 81 -->
<pre>
integer-constant:
<!--page 81 -->
<pre>
integer-constant:
- decimal-constant integer-suffix
opt
- octal-constant integer-suffix
opt
- hexadecimal-constant integer-suffix
opt
+ decimal-constant integer-suffix
<sub>opt</sub>
+ octal-constant integer-suffix
<sub>opt</sub>
+ hexadecimal-constant integer-suffix
<sub>opt</sub>
decimal-constant:
nonzero-digit
decimal-constant digit
decimal-constant:
nonzero-digit
decimal-constant digit
@@
-3718,10
+3718,10
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
a b c d e f
A B C D E F
integer-suffix:
a b c d e f
A B C D E F
integer-suffix:
- unsigned-suffix long-suffix
opt
+ unsigned-suffix long-suffix
<sub>opt</sub>
unsigned-suffix long-long-suffix
unsigned-suffix long-long-suffix
- long-suffix unsigned-suffix
opt
- long-long-suffix unsigned-suffix
opt
+ long-suffix unsigned-suffix
<sub>opt</sub>
+ long-long-suffix unsigned-suffix
<sub>opt</sub>
unsigned-suffix: one of
u U
long-suffix: one of
unsigned-suffix: one of
u U
long-suffix: one of
@@
-3797,31
+3797,31
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
decimal-floating-constant
hexadecimal-floating-constant
decimal-floating-constant:
decimal-floating-constant
hexadecimal-floating-constant
decimal-floating-constant:
- fractional-constant exponent-part
opt floating-suffixopt
- digit-sequence exponent-part floating-suffix
opt
+ fractional-constant exponent-part
<sub>opt</sub> floating-suffix<sub>opt</sub>
+ digit-sequence exponent-part floating-suffix
<sub>opt</sub>
hexadecimal-floating-constant:
hexadecimal-prefix hexadecimal-fractional-constant
hexadecimal-floating-constant:
hexadecimal-prefix hexadecimal-fractional-constant
- binary-exponent-part floating-suffix
opt
+ binary-exponent-part floating-suffix
<sub>opt</sub>
hexadecimal-prefix hexadecimal-digit-sequence
hexadecimal-prefix hexadecimal-digit-sequence
- binary-exponent-part floating-suffix
opt
+ binary-exponent-part floating-suffix
<sub>opt</sub>
fractional-constant:
fractional-constant:
- digit-sequence
opt
. digit-sequence
+ digit-sequence
<sub>opt</sub>
. digit-sequence
digit-sequence .
exponent-part:
digit-sequence .
exponent-part:
- e sign
opt
digit-sequence
- E sign
opt
digit-sequence
+ e sign
<sub>opt</sub>
digit-sequence
+ E sign
<sub>opt</sub>
digit-sequence
sign: one of
+ -
digit-sequence:
digit
digit-sequence digit
hexadecimal-fractional-constant:
sign: one of
+ -
digit-sequence:
digit
digit-sequence digit
hexadecimal-fractional-constant:
- hexadecimal-digit-sequence
opt
.
+ hexadecimal-digit-sequence
<sub>opt</sub>
.
hexadecimal-digit-sequence
hexadecimal-digit-sequence .
binary-exponent-part:
hexadecimal-digit-sequence
hexadecimal-digit-sequence .
binary-exponent-part:
- p sign
opt
digit-sequence
- P sign
opt
digit-sequence
+ p sign
<sub>opt</sub>
digit-sequence
+ P sign
<sub>opt</sub>
digit-sequence
hexadecimal-digit-sequence:
hexadecimal-digit
hexadecimal-digit-sequence hexadecimal-digit
hexadecimal-digit-sequence:
hexadecimal-digit
hexadecimal-digit-sequence hexadecimal-digit
@@
-4035,7
+4035,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
string-literal:
<p><!--para 1 -->
<pre>
string-literal:
- encoding-prefix
opt " s-char-sequenceopt
"
+ encoding-prefix
<sub>opt</sub> " s-char-sequence<sub>opt</sub>
"
encoding-prefix:
u8
u
encoding-prefix:
u8
u
@@
-4483,7
+4483,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
postfix-expression:
primary-expression
postfix-expression [ expression ]
postfix-expression:
primary-expression
postfix-expression [ expression ]
- postfix-expression ( argument-expression-list
opt
)
+ postfix-expression ( argument-expression-list
<sub>opt</sub>
)
postfix-expression . identifier
postfix-expression -> identifier
postfix-expression ++
postfix-expression . identifier
postfix-expression -> identifier
postfix-expression ++
@@
-5833,14
+5833,14
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
declaration:
<p><!--para 1 -->
<pre>
declaration:
- declaration-specifiers init-declarator-list
opt
;
+ declaration-specifiers init-declarator-list
<sub>opt</sub>
;
static_assert-declaration
declaration-specifiers:
static_assert-declaration
declaration-specifiers:
- storage-class-specifier declaration-specifiers
opt
- type-specifier declaration-specifiers
opt
- type-qualifier declaration-specifiers
opt
- function-specifier declaration-specifiers
opt
- alignment-specifier declaration-specifiers
opt
+ storage-class-specifier declaration-specifiers
<sub>opt</sub>
+ type-specifier declaration-specifiers
<sub>opt</sub>
+ type-qualifier declaration-specifiers
<sub>opt</sub>
+ function-specifier declaration-specifiers
<sub>opt</sub>
+ alignment-specifier declaration-specifiers
<sub>opt</sub>
init-declarator-list:
init-declarator
init-declarator-list , init-declarator
init-declarator-list:
init-declarator
init-declarator-list , init-declarator
@@
-6023,7
+6023,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
struct-or-union-specifier:
<p><!--para 1 -->
<pre>
struct-or-union-specifier:
- struct-or-union identifier
opt
{ struct-declaration-list }
+ struct-or-union identifier
<sub>opt</sub>
{ struct-declaration-list }
struct-or-union identifier
struct-or-union:
struct
struct-or-union identifier
struct-or-union:
struct
@@
-6032,17
+6032,17
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
struct-declaration
struct-declaration-list struct-declaration
struct-declaration:
struct-declaration
struct-declaration-list struct-declaration
struct-declaration:
- specifier-qualifier-list struct-declarator-list
opt
;
+ specifier-qualifier-list struct-declarator-list
<sub>opt</sub>
;
static_assert-declaration
specifier-qualifier-list:
static_assert-declaration
specifier-qualifier-list:
- type-specifier specifier-qualifier-list
opt
- type-qualifier specifier-qualifier-list
opt
+ type-specifier specifier-qualifier-list
<sub>opt</sub>
+ type-qualifier specifier-qualifier-list
<sub>opt</sub>
struct-declarator-list:
struct-declarator
struct-declarator-list , struct-declarator
struct-declarator:
declarator
struct-declarator-list:
struct-declarator
struct-declarator-list , struct-declarator
struct-declarator:
declarator
- declarator
opt
: constant-expression</pre>
+ declarator
<sub>opt</sub>
: constant-expression</pre>
<h6>Constraints</h6>
<p><!--para 2 -->
A struct-declaration that does not declare an anonymous structure or anonymous union
<h6>Constraints</h6>
<p><!--para 2 -->
A struct-declaration that does not declare an anonymous structure or anonymous union
@@
-6252,8
+6252,8
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
enum-specifier:
<p><!--para 1 -->
<pre>
enum-specifier:
- enum identifier
opt
{ enumerator-list }
- enum identifier
opt
{ enumerator-list , }
+ enum identifier
<sub>opt</sub>
{ enumerator-list }
+ enum identifier
<sub>opt</sub>
{ enumerator-list , }
enum identifier
enumerator-list:
enumerator
enum identifier
enumerator-list:
enumerator
@@
-6339,13
+6339,13
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<!--page 136 -->
<pre>
<!--page 136 -->
<pre>
- struct-or-union identifier
opt
{ struct-declaration-list }</pre>
+ struct-or-union identifier
<sub>opt</sub>
{ struct-declaration-list }</pre>
or
<pre>
or
<pre>
- enum identifier
opt
{ enumerator-list }</pre>
+ enum identifier
<sub>opt</sub>
{ enumerator-list }</pre>
or
<pre>
or
<pre>
- enum identifier
opt
{ enumerator-list , }</pre>
+ enum identifier
<sub>opt</sub>
{ enumerator-list , }</pre>
declares a structure, union, or enumerated type. The list defines the structure content,
union content, or enumeration content. If an identifier is provided,<sup><a href="#note130"><b>130)</b></a></sup> the type specifier
also declares the identifier to be the tag of that type.
declares a structure, union, or enumerated type. The list defines the structure content,
union content, or enumeration content. If an identifier is provided,<sup><a href="#note130"><b>130)</b></a></sup> the type specifier
also declares the identifier to be the tag of that type.
@@
-6834,19
+6834,19
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
declarator:
<p><!--para 1 -->
<pre>
declarator:
- pointer
opt
direct-declarator
+ pointer
<sub>opt</sub>
direct-declarator
direct-declarator:
identifier
( declarator )
direct-declarator:
identifier
( declarator )
- direct-declarator [ type-qualifier-list
opt assignment-expressionopt
]
- direct-declarator [ static type-qualifier-list
opt
assignment-expression ]
+ direct-declarator [ type-qualifier-list
<sub>opt</sub> assignment-expression<sub>opt</sub>
]
+ direct-declarator [ static type-qualifier-list
<sub>opt</sub>
assignment-expression ]
direct-declarator [ type-qualifier-list static assignment-expression ]
direct-declarator [ type-qualifier-list static assignment-expression ]
- direct-declarator [ type-qualifier-list
opt
* ]
+ direct-declarator [ type-qualifier-list
<sub>opt</sub>
* ]
direct-declarator ( parameter-type-list )
direct-declarator ( parameter-type-list )
- direct-declarator ( identifier-list
opt
)
+ direct-declarator ( identifier-list
<sub>opt</sub>
)
pointer:
pointer:
- * type-qualifier-list
opt
- * type-qualifier-list
opt
pointer
+ * type-qualifier-list
<sub>opt</sub>
+ * type-qualifier-list
<sub>opt</sub>
pointer
type-qualifier-list:
type-qualifier
type-qualifier-list type-qualifier
type-qualifier-list:
type-qualifier
type-qualifier-list type-qualifier
@@
-6858,7
+6858,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
parameter-list , parameter-declaration
parameter-declaration:
declaration-specifiers declarator
parameter-list , parameter-declaration
parameter-declaration:
declaration-specifiers declarator
- declaration-specifiers abstract-declarator
opt
+ declaration-specifiers abstract-declarator
<sub>opt</sub>
identifier-list:
identifier
identifier-list , identifier</pre>
identifier-list:
identifier
identifier-list , identifier</pre>
@@
-6905,7
+6905,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
If, in the declaration ''T D1'', D1 has the form
<pre>
<p><!--para 1 -->
If, in the declaration ''T D1'', D1 has the form
<pre>
- * type-qualifier-list
opt
D</pre>
+ * type-qualifier-list
<sub>opt</sub>
D</pre>
and the type specified for ident in the declaration ''T D'' is ''derived-declarator-type-list
T '', then the type specified for ident is ''derived-declarator-type-list type-qualifier-list
pointer to T ''. For each type qualifier in the list, ident is a so-qualified pointer.
and the type specified for ident in the declaration ''T D'' is ''derived-declarator-type-list
T '', then the type specified for ident is ''derived-declarator-type-list type-qualifier-list
pointer to T ''. For each type qualifier in the list, ident is a so-qualified pointer.
@@
-6951,10
+6951,10
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 3 -->
If, in the declaration ''T D1'', D1 has one of the forms:
<pre>
<p><!--para 3 -->
If, in the declaration ''T D1'', D1 has one of the forms:
<pre>
- D[ type-qualifier-list
opt assignment-expressionopt
]
- D[ static type-qualifier-list
opt
assignment-expression ]
+ D[ type-qualifier-list
<sub>opt</sub> assignment-expression<sub>opt</sub>
]
+ D[ static type-qualifier-list
<sub>opt</sub>
assignment-expression ]
D[ type-qualifier-list static assignment-expression ]
D[ type-qualifier-list static assignment-expression ]
- D[ type-qualifier-list
opt
* ]</pre>
+ D[ type-qualifier-list
<sub>opt</sub>
* ]</pre>
and the type specified for ident in the declaration ''T D'' is ''derived-declarator-type-list
T '', then the type specified for ident is ''derived-declarator-type-list array of T ''.<sup><a href="#note142"><b>142)</b></a></sup>
(See <a href="#6.7.6.3">6.7.6.3</a> for the meaning of the optional type qualifiers and the keyword static.)
and the type specified for ident in the declaration ''T D'' is ''derived-declarator-type-list
T '', then the type specified for ident is ''derived-declarator-type-list array of T ''.<sup><a href="#note142"><b>142)</b></a></sup>
(See <a href="#6.7.6.3">6.7.6.3</a> for the meaning of the optional type qualifiers and the keyword static.)
@@
-7074,7
+7074,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
D( parameter-type-list )</pre>
or
<pre>
D( parameter-type-list )</pre>
or
<pre>
- D( identifier-list
opt
)</pre>
+ D( identifier-list
<sub>opt</sub>
)</pre>
and the type specified for ident in the declaration ''T D'' is ''derived-declarator-type-list
T '', then the type specified for ident is ''derived-declarator-type-list function returning
T ''.
and the type specified for ident in the declaration ''T D'' is ''derived-declarator-type-list
T '', then the type specified for ident is ''derived-declarator-type-list function returning
T ''.
@@
-7224,20
+7224,20
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
type-name:
<p><!--para 1 -->
<pre>
type-name:
- specifier-qualifier-list abstract-declarator
opt
+ specifier-qualifier-list abstract-declarator
<sub>opt</sub>
abstract-declarator:
pointer
abstract-declarator:
pointer
- pointer
opt
direct-abstract-declarator
+ pointer
<sub>opt</sub>
direct-abstract-declarator
direct-abstract-declarator:
( abstract-declarator )
direct-abstract-declarator:
( abstract-declarator )
- direct-abstract-declarator
opt [ type-qualifier-listopt
- assignment-expression
opt
]
- direct-abstract-declarator
opt [ static type-qualifier-listopt
+ direct-abstract-declarator
<sub>opt</sub> [ type-qualifier-list<sub>opt</sub>
+ assignment-expression
<sub>opt</sub>
]
+ direct-abstract-declarator
<sub>opt</sub> [ static type-qualifier-list<sub>opt</sub>
assignment-expression ]
assignment-expression ]
- direct-abstract-declarator
opt
[ type-qualifier-list static
+ direct-abstract-declarator
<sub>opt</sub>
[ type-qualifier-list static
assignment-expression ]
assignment-expression ]
- direct-abstract-declarator
opt
[ * ]
- direct-abstract-declarator
opt ( parameter-type-listopt
)</pre>
+ direct-abstract-declarator
<sub>opt</sub>
[ * ]
+ direct-abstract-declarator
<sub>opt</sub> ( parameter-type-list<sub>opt</sub>
)</pre>
<h6>Semantics</h6>
<p><!--para 2 -->
In several contexts, it is necessary to specify a type. This is accomplished using a type
<h6>Semantics</h6>
<p><!--para 2 -->
In several contexts, it is necessary to specify a type. This is accomplished using a type
@@
-7378,8
+7378,8
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
{ initializer-list }
{ initializer-list , }
initializer-list:
{ initializer-list }
{ initializer-list , }
initializer-list:
- designation
opt
initializer
- initializer-list , designation
opt
initializer
+ designation
<sub>opt</sub>
initializer
+ initializer-list , designation
<sub>opt</sub>
initializer
designation:
designator-list =
designator-list:
designation:
designator-list =
designator-list:
@@
-7765,7
+7765,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
compound-statement:
<p><!--para 1 -->
<pre>
compound-statement:
- { block-item-list
opt
}
+ { block-item-list
<sub>opt</sub>
}
block-item-list:
block-item
block-item-list block-item
block-item-list:
block-item
block-item-list block-item
@@
-7781,7
+7781,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
expression-statement:
<p><!--para 1 -->
<pre>
expression-statement:
- expression
opt
;</pre>
+ expression
<sub>opt</sub>
;</pre>
<h6>Semantics</h6>
<p><!--para 2 -->
The expression in an expression statement is evaluated as a void expression for its side
<h6>Semantics</h6>
<p><!--para 2 -->
The expression in an expression statement is evaluated as a void expression for its side
@@
-7931,8
+7931,8
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
iteration-statement:
while ( expression ) statement
do statement while ( expression ) ;
iteration-statement:
while ( expression ) statement
do statement while ( expression ) ;
- for ( expression
opt ; expressionopt ; expressionopt
) statement
- for ( declaration expression
opt ; expressionopt
) statement</pre>
+ for ( expression
<sub>opt</sub> ; expression<sub>opt</sub> ; expression<sub>opt</sub>
) statement
+ for ( declaration expression
<sub>opt</sub> ; expression<sub>opt</sub>
) statement</pre>
<h6>Constraints</h6>
<p><!--para 2 -->
The controlling expression of an iteration statement shall have scalar type.
<h6>Constraints</h6>
<p><!--para 2 -->
The controlling expression of an iteration statement shall have scalar type.
@@
-8008,7
+8008,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
goto identifier ;
continue ;
break ;
goto identifier ;
continue ;
break ;
- return expression
opt
;</pre>
+ return expression
<sub>opt</sub>
;</pre>
@@
-8208,7
+8208,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
<pre>
function-definition:
<p><!--para 1 -->
<pre>
function-definition:
- declaration-specifiers declarator declaration-list
opt
compound-statement
+ declaration-specifiers declarator declaration-list
<sub>opt</sub>
compound-statement
declaration-list:
declaration
declaration-list declaration</pre>
declaration-list:
declaration
declaration-list declaration</pre>
@@
-8386,7
+8386,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<!--page 178 -->
<pre>
preprocessing-file:
<!--page 178 -->
<pre>
preprocessing-file:
- group
opt
+ group
<sub>opt</sub>
group:
group-part
group group-part
group:
group-part
group group-part
@@
-8396,41
+8396,41
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
text-line
# non-directive
if-section:
text-line
# non-directive
if-section:
- if-group elif-groups
opt else-groupopt
endif-line
+ if-group elif-groups
<sub>opt</sub> else-group<sub>opt</sub>
endif-line
if-group:
if-group:
- # if constant-expression new-line group
opt
- # ifdef identifier new-line group
opt
- # ifndef identifier new-line group
opt
+ # if constant-expression new-line group
<sub>opt</sub>
+ # ifdef identifier new-line group
<sub>opt</sub>
+ # ifndef identifier new-line group
<sub>opt</sub>
elif-groups:
elif-group
elif-groups elif-group
elif-group:
elif-groups:
elif-group
elif-groups elif-group
elif-group:
- # elif constant-expression new-line group
opt
+ # elif constant-expression new-line group
<sub>opt</sub>
else-group:
else-group:
- # else new-line group
opt
+ # else new-line group
<sub>opt</sub>
endif-line:
# endif new-line
control-line:
# include pp-tokens new-line
# define identifier replacement-list new-line
endif-line:
# endif new-line
control-line:
# include pp-tokens new-line
# define identifier replacement-list new-line
- # define identifier lparen identifier-list
opt
)
+ # define identifier lparen identifier-list
<sub>opt</sub>
)
replacement-list new-line
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... )
replacement-list new-line
# undef identifier new-line
# line pp-tokens new-line
replacement-list new-line
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... )
replacement-list new-line
# undef identifier new-line
# line pp-tokens new-line
- # error pp-tokens
opt
new-line
- # pragma pp-tokens
opt
new-line
+ # error pp-tokens
<sub>opt</sub>
new-line
+ # pragma pp-tokens
<sub>opt</sub>
new-line
# new-line
text-line:
# new-line
text-line:
- pp-tokens
opt
new-line
+ pp-tokens
<sub>opt</sub>
new-line
non-directive:
pp-tokens new-line
lparen:
a ( character not immediately preceded by white-space
replacement-list:
non-directive:
pp-tokens new-line
lparen:
a ( character not immediately preceded by white-space
replacement-list:
- pp-tokens
opt
+ pp-tokens
<sub>opt</sub>
pp-tokens:
preprocessing-token
pp-tokens preprocessing-token
pp-tokens:
preprocessing-token
pp-tokens preprocessing-token
@@
-8511,8
+8511,8
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 3 -->
Preprocessing directives of the forms
<pre>
<p><!--para 3 -->
Preprocessing directives of the forms
<pre>
- # if constant-expression new-line group
opt
- # elif constant-expression new-line group
opt
</pre>
+ # if constant-expression new-line group
<sub>opt</sub>
+ # elif constant-expression new-line group
<sub>opt</sub>
</pre>
check whether the controlling constant expression evaluates to nonzero.
<p><!--para 4 -->
Prior to evaluation, macro invocations in the list of preprocessing tokens that will become
check whether the controlling constant expression evaluates to nonzero.
<p><!--para 4 -->
Prior to evaluation, macro invocations in the list of preprocessing tokens that will become
@@
-8541,8
+8541,8
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 5 -->
Preprocessing directives of the forms
<pre>
<p><!--para 5 -->
Preprocessing directives of the forms
<pre>
- # ifdef identifier new-line group
opt
- # ifndef identifier new-line group
opt
</pre>
+ # ifdef identifier new-line group
<sub>opt</sub>
+ # ifndef identifier new-line group
<sub>opt</sub>
</pre>
check whether the identifier is or is not currently defined as a macro name. Their
conditions are equivalent to #if defined identifier and #if !defined identifier
respectively.
check whether the identifier is or is not currently defined as a macro name. Their
conditions are equivalent to #if defined identifier and #if !defined identifier
respectively.
@@
-8706,7
+8706,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 10 -->
A preprocessing directive of the form
<pre>
<p><!--para 10 -->
A preprocessing directive of the form
<pre>
- # define identifier lparen identifier-list
opt
) replacement-list new-line
+ # define identifier lparen identifier-list
<sub>opt</sub>
) replacement-list new-line
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... ) replacement-list new-line</pre>
defines a function-like macro with parameters, whose use is similar syntactically to a
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... ) replacement-list new-line</pre>
defines a function-like macro with parameters, whose use is similar syntactically to a
@@
-9034,7
+9034,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
A preprocessing directive of the form
<pre>
<p><!--para 1 -->
A preprocessing directive of the form
<pre>
- # error pp-tokens
opt
new-line</pre>
+ # error pp-tokens
<sub>opt</sub>
new-line</pre>
causes the implementation to produce a diagnostic message that includes the specified
sequence of preprocessing tokens.
causes the implementation to produce a diagnostic message that includes the specified
sequence of preprocessing tokens.
@@
-9043,7
+9043,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<p><!--para 1 -->
A preprocessing directive of the form
<pre>
<p><!--para 1 -->
A preprocessing directive of the form
<pre>
- # pragma pp-tokens
opt
new-line</pre>
+ # pragma pp-tokens
<sub>opt</sub>
new-line</pre>
where the preprocessing token STDC does not immediately follow pragma in the
directive (prior to any macro replacement)<sup><a href="#note174"><b>174)</b></a></sup> causes the implementation to behave in an
implementation-defined manner. The behavior might cause translation to fail or cause the
where the preprocessing token STDC does not immediately follow pragma in the
directive (prior to any macro replacement)<sup><a href="#note174"><b>174)</b></a></sup> causes the implementation to behave in an
implementation-defined manner. The behavior might cause translation to fail or cause the
@@
-16620,7
+16620,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<li> a 0x or 0X, then a nonempty sequence of hexadecimal digits optionally containing a
decimal-point character, then an optional binary exponent part as defined in <a href="#6.4.4.2">6.4.4.2</a>;
<li> INF or INFINITY, ignoring case
<li> a 0x or 0X, then a nonempty sequence of hexadecimal digits optionally containing a
decimal-point character, then an optional binary exponent part as defined in <a href="#6.4.4.2">6.4.4.2</a>;
<li> INF or INFINITY, ignoring case
-<li> NAN or NAN(n-char-sequence
opt
), ignoring case in the NAN part, where:
+<li> NAN or NAN(n-char-sequence
<sub>opt</sub>
), ignoring case in the NAN part, where:
<pre>
n-char-sequence:
digit
<pre>
n-char-sequence:
digit
@@
-16643,7
+16643,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
the subject sequence begins with a minus sign, the sequence is interpreted as negated.<sup><a href="#note285"><b>285)</b></a></sup>
A character sequence INF or INFINITY is interpreted as an infinity, if representable in
the return type, else like a floating constant that is too large for the range of the return
the subject sequence begins with a minus sign, the sequence is interpreted as negated.<sup><a href="#note285"><b>285)</b></a></sup>
A character sequence INF or INFINITY is interpreted as an infinity, if representable in
the return type, else like a floating constant that is too large for the range of the return
- type. A character sequence NAN or NAN(n-char-sequence
opt
), is interpreted as a quiet
+ type. A character sequence NAN or NAN(n-char-sequence
<sub>opt</sub>
), is interpreted as a quiet
NaN, if supported in the return type, else like a subject sequence part that does not have
the expected form; the meaning of the n-char sequences is implementation-defined.<sup><a href="#note286"><b>286)</b></a></sup> A
pointer to the final string is stored in the object pointed to by endptr, provided that
NaN, if supported in the return type, else like a subject sequence part that does not have
the expected form; the meaning of the n-char sequences is implementation-defined.<sup><a href="#note286"><b>286)</b></a></sup> A
pointer to the final string is stored in the object pointed to by endptr, provided that
@@
-20461,7
+20461,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
decimal-point wide character, then an optional binary exponent part as defined in
<a href="#6.4.4.2">6.4.4.2</a>;
<li> INF or INFINITY, or any other wide string equivalent except for case
decimal-point wide character, then an optional binary exponent part as defined in
<a href="#6.4.4.2">6.4.4.2</a>;
<li> INF or INFINITY, or any other wide string equivalent except for case
-<li> NAN or NAN(n-wchar-sequence
opt
), or any other wide string equivalent except for
+<li> NAN or NAN(n-wchar-sequence
<sub>opt</sub>
), or any other wide string equivalent except for
case in the NAN part, where:
<pre>
n-wchar-sequence:
case in the NAN part, where:
<pre>
n-wchar-sequence:
@@
-20487,7
+20487,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
sign, the sequence is interpreted as negated.<sup><a href="#note330"><b>330)</b></a></sup> A wide character sequence INF or
INFINITY is interpreted as an infinity, if representable in the return type, else like a
floating constant that is too large for the range of the return type. A wide character
sign, the sequence is interpreted as negated.<sup><a href="#note330"><b>330)</b></a></sup> A wide character sequence INF or
INFINITY is interpreted as an infinity, if representable in the return type, else like a
floating constant that is too large for the range of the return type. A wide character
- sequence NAN or NAN(n-wchar-sequence
opt
) is interpreted as a quiet NaN, if supported
+ sequence NAN or NAN(n-wchar-sequence
<sub>opt</sub>
) is interpreted as a quiet NaN, if supported
in the return type, else like a subject sequence part that does not have the expected form;
the meaning of the n-wchar sequences is implementation-defined.<sup><a href="#note331"><b>331)</b></a></sup> A pointer to the
final wide string is stored in the object pointed to by endptr, provided that endptr is
in the return type, else like a subject sequence part that does not have the expected form;
the meaning of the n-wchar sequences is implementation-defined.<sup><a href="#note331"><b>331)</b></a></sup> A pointer to the
final wide string is stored in the object pointed to by endptr, provided that endptr is
@@
-21962,9
+21962,9
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
character-constant</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) integer-constant:
<pre>
character-constant</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) integer-constant:
<pre>
- decimal-constant integer-suffix
opt
- octal-constant integer-suffix
opt
- hexadecimal-constant integer-suffix
opt
</pre>
+ decimal-constant integer-suffix
<sub>opt</sub>
+ octal-constant integer-suffix
<sub>opt</sub>
+ hexadecimal-constant integer-suffix
<sub>opt</sub>
</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) decimal-constant:
<pre>
nonzero-digit
(<a href="#6.4.4.1">6.4.4.1</a>) decimal-constant:
<pre>
nonzero-digit
@@
-21994,10
+21994,10
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
A B C D E F</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) integer-suffix:
<pre>
A B C D E F</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) integer-suffix:
<pre>
- unsigned-suffix long-suffix
opt
+ unsigned-suffix long-suffix
<sub>opt</sub>
unsigned-suffix long-long-suffix
unsigned-suffix long-long-suffix
- long-suffix unsigned-suffix
opt
- long-long-suffix unsigned-suffix
opt
</pre>
+ long-suffix unsigned-suffix
<sub>opt</sub>
+ long-long-suffix unsigned-suffix
<sub>opt</sub>
</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) unsigned-suffix: one of
<pre>
u U</pre>
(<a href="#6.4.4.1">6.4.4.1</a>) unsigned-suffix: one of
<pre>
u U</pre>
@@
-22013,22
+22013,22
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
hexadecimal-floating-constant</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) decimal-floating-constant:
<pre>
hexadecimal-floating-constant</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) decimal-floating-constant:
<pre>
- fractional-constant exponent-part
opt floating-suffixopt
- digit-sequence exponent-part floating-suffix
opt
</pre>
+ fractional-constant exponent-part
<sub>opt</sub> floating-suffix<sub>opt</sub>
+ digit-sequence exponent-part floating-suffix
<sub>opt</sub>
</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-floating-constant:
<pre>
hexadecimal-prefix hexadecimal-fractional-constant
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-floating-constant:
<pre>
hexadecimal-prefix hexadecimal-fractional-constant
- binary-exponent-part floating-suffix
opt
+ binary-exponent-part floating-suffix
<sub>opt</sub>
hexadecimal-prefix hexadecimal-digit-sequence
hexadecimal-prefix hexadecimal-digit-sequence
- binary-exponent-part floating-suffix
opt
</pre>
+ binary-exponent-part floating-suffix
<sub>opt</sub>
</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) fractional-constant:
<pre>
(<a href="#6.4.4.2">6.4.4.2</a>) fractional-constant:
<pre>
- digit-sequence
opt
. digit-sequence
+ digit-sequence
<sub>opt</sub>
. digit-sequence
digit-sequence .</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) exponent-part:
<pre>
digit-sequence .</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) exponent-part:
<pre>
- e sign
opt
digit-sequence
- E sign
opt
digit-sequence</pre>
+ e sign
<sub>opt</sub>
digit-sequence
+ E sign
<sub>opt</sub>
digit-sequence</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) sign: one of
<!--page 476 -->
<pre>
(<a href="#6.4.4.2">6.4.4.2</a>) sign: one of
<!--page 476 -->
<pre>
@@
-22039,13
+22039,13
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
digit-sequence digit</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-fractional-constant:
<pre>
digit-sequence digit</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-fractional-constant:
<pre>
- hexadecimal-digit-sequence
opt
.
+ hexadecimal-digit-sequence
<sub>opt</sub>
.
hexadecimal-digit-sequence
hexadecimal-digit-sequence .</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) binary-exponent-part:
<pre>
hexadecimal-digit-sequence
hexadecimal-digit-sequence .</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) binary-exponent-part:
<pre>
- p sign
opt
digit-sequence
- P sign
opt
digit-sequence</pre>
+ p sign
<sub>opt</sub>
digit-sequence
+ P sign
<sub>opt</sub>
digit-sequence</pre>
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-digit-sequence:
<pre>
hexadecimal-digit
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-digit-sequence:
<pre>
hexadecimal-digit
@@
-22095,7
+22095,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<h4><a name="A.1.6" href="#A.1.6">A.1.6 String literals</a></h4>
(<a href="#6.4.5">6.4.5</a>) string-literal:
<pre>
<h4><a name="A.1.6" href="#A.1.6">A.1.6 String literals</a></h4>
(<a href="#6.4.5">6.4.5</a>) string-literal:
<pre>
- encoding-prefix
opt " s-char-sequenceopt
"</pre>
+ encoding-prefix
<sub>opt</sub> " s-char-sequence<sub>opt</sub>
"</pre>
(<a href="#6.4.5">6.4.5</a>) encoding-prefix:
<pre>
u8
(<a href="#6.4.5">6.4.5</a>) encoding-prefix:
<pre>
u8
@@
-22185,7
+22185,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<pre>
primary-expression
postfix-expression [ expression ]
<pre>
primary-expression
postfix-expression [ expression ]
- postfix-expression ( argument-expression-list
opt
)
+ postfix-expression ( argument-expression-list
<sub>opt</sub>
)
postfix-expression . identifier
postfix-expression -> identifier
postfix-expression ++
postfix-expression . identifier
postfix-expression -> identifier
postfix-expression ++
@@
-22284,15
+22284,15
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<h4><a name="A.2.2" href="#A.2.2">A.2.2 Declarations</a></h4>
(<a href="#6.7">6.7</a>) declaration:
<pre>
<h4><a name="A.2.2" href="#A.2.2">A.2.2 Declarations</a></h4>
(<a href="#6.7">6.7</a>) declaration:
<pre>
- declaration-specifiers init-declarator-list
opt
;
+ declaration-specifiers init-declarator-list
<sub>opt</sub>
;
static_assert-declaration</pre>
(<a href="#6.7">6.7</a>) declaration-specifiers:
<pre>
static_assert-declaration</pre>
(<a href="#6.7">6.7</a>) declaration-specifiers:
<pre>
- storage-class-specifier declaration-specifiers
opt
- type-specifier declaration-specifiers
opt
- type-qualifier declaration-specifiers
opt
- function-specifier declaration-specifiers
opt
- alignment-specifier declaration-specifiers
opt
</pre>
+ storage-class-specifier declaration-specifiers
<sub>opt</sub>
+ type-specifier declaration-specifiers
<sub>opt</sub>
+ type-qualifier declaration-specifiers
<sub>opt</sub>
+ function-specifier declaration-specifiers
<sub>opt</sub>
+ alignment-specifier declaration-specifiers
<sub>opt</sub>
</pre>
(<a href="#6.7">6.7</a>) init-declarator-list:
<!--page 482 -->
<pre>
(<a href="#6.7">6.7</a>) init-declarator-list:
<!--page 482 -->
<pre>
@@
-22329,7
+22329,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
typedef-name</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) struct-or-union-specifier:
<pre>
typedef-name</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) struct-or-union-specifier:
<pre>
- struct-or-union identifier
opt
{ struct-declaration-list }
+ struct-or-union identifier
<sub>opt</sub>
{ struct-declaration-list }
struct-or-union identifier</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) struct-or-union:
<pre>
struct-or-union identifier</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) struct-or-union:
<pre>
@@
-22342,12
+22342,12
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
(<a href="#6.7.2.1">6.7.2.1</a>) struct-declaration:
<!--page 483 -->
<pre>
(<a href="#6.7.2.1">6.7.2.1</a>) struct-declaration:
<!--page 483 -->
<pre>
- specifier-qualifier-list struct-declarator-list
opt
;
+ specifier-qualifier-list struct-declarator-list
<sub>opt</sub>
;
static_assert-declaration</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) specifier-qualifier-list:
<pre>
static_assert-declaration</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) specifier-qualifier-list:
<pre>
- type-specifier specifier-qualifier-list
opt
- type-qualifier specifier-qualifier-list
opt
</pre>
+ type-specifier specifier-qualifier-list
<sub>opt</sub>
+ type-qualifier specifier-qualifier-list
<sub>opt</sub>
</pre>
(<a href="#6.7.2.1">6.7.2.1</a>) struct-declarator-list:
<pre>
struct-declarator
(<a href="#6.7.2.1">6.7.2.1</a>) struct-declarator-list:
<pre>
struct-declarator
@@
-22355,11
+22355,11
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
(<a href="#6.7.2.1">6.7.2.1</a>) struct-declarator:
<pre>
declarator
(<a href="#6.7.2.1">6.7.2.1</a>) struct-declarator:
<pre>
declarator
- declarator
opt
: constant-expression</pre>
+ declarator
<sub>opt</sub>
: constant-expression</pre>
(<a href="#6.7.2.2">6.7.2.2</a>) enum-specifier:
<pre>
(<a href="#6.7.2.2">6.7.2.2</a>) enum-specifier:
<pre>
- enum identifier
opt
{ enumerator-list }
- enum identifier
opt
{ enumerator-list , }
+ enum identifier
<sub>opt</sub>
{ enumerator-list }
+ enum identifier
<sub>opt</sub>
{ enumerator-list , }
enum identifier</pre>
(<a href="#6.7.2.2">6.7.2.2</a>) enumerator-list:
<pre>
enum identifier</pre>
(<a href="#6.7.2.2">6.7.2.2</a>) enumerator-list:
<pre>
@@
-22389,21
+22389,21
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
(<a href="#6.7.6">6.7.6</a>) declarator:
<!--page 484 -->
<pre>
(<a href="#6.7.6">6.7.6</a>) declarator:
<!--page 484 -->
<pre>
- pointer
opt
direct-declarator</pre>
+ pointer
<sub>opt</sub>
direct-declarator</pre>
(<a href="#6.7.6">6.7.6</a>) direct-declarator:
<pre>
identifier
( declarator )
(<a href="#6.7.6">6.7.6</a>) direct-declarator:
<pre>
identifier
( declarator )
- direct-declarator [ type-qualifier-list
opt assignment-expressionopt
]
- direct-declarator [ static type-qualifier-list
opt
assignment-expression ]
+ direct-declarator [ type-qualifier-list
<sub>opt</sub> assignment-expression<sub>opt</sub>
]
+ direct-declarator [ static type-qualifier-list
<sub>opt</sub>
assignment-expression ]
direct-declarator [ type-qualifier-list static assignment-expression ]
direct-declarator [ type-qualifier-list static assignment-expression ]
- direct-declarator [ type-qualifier-list
opt
* ]
+ direct-declarator [ type-qualifier-list
<sub>opt</sub>
* ]
direct-declarator ( parameter-type-list )
direct-declarator ( parameter-type-list )
- direct-declarator ( identifier-list
opt
)</pre>
+ direct-declarator ( identifier-list
<sub>opt</sub>
)</pre>
(<a href="#6.7.6">6.7.6</a>) pointer:
<pre>
(<a href="#6.7.6">6.7.6</a>) pointer:
<pre>
- * type-qualifier-list
opt
- * type-qualifier-list
opt
pointer</pre>
+ * type-qualifier-list
<sub>opt</sub>
+ * type-qualifier-list
<sub>opt</sub>
pointer</pre>
(<a href="#6.7.6">6.7.6</a>) type-qualifier-list:
<pre>
type-qualifier
(<a href="#6.7.6">6.7.6</a>) type-qualifier-list:
<pre>
type-qualifier
@@
-22419,30
+22419,30
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
(<a href="#6.7.6">6.7.6</a>) parameter-declaration:
<pre>
declaration-specifiers declarator
(<a href="#6.7.6">6.7.6</a>) parameter-declaration:
<pre>
declaration-specifiers declarator
- declaration-specifiers abstract-declarator
opt
</pre>
+ declaration-specifiers abstract-declarator
<sub>opt</sub>
</pre>
(<a href="#6.7.6">6.7.6</a>) identifier-list:
<pre>
identifier
identifier-list , identifier</pre>
(<a href="#6.7.7">6.7.7</a>) type-name:
<pre>
(<a href="#6.7.6">6.7.6</a>) identifier-list:
<pre>
identifier
identifier-list , identifier</pre>
(<a href="#6.7.7">6.7.7</a>) type-name:
<pre>
- specifier-qualifier-list abstract-declarator
opt
</pre>
+ specifier-qualifier-list abstract-declarator
<sub>opt</sub>
</pre>
(<a href="#6.7.7">6.7.7</a>) abstract-declarator:
<!--page 485 -->
<pre>
pointer
(<a href="#6.7.7">6.7.7</a>) abstract-declarator:
<!--page 485 -->
<pre>
pointer
- pointer
opt
direct-abstract-declarator</pre>
+ pointer
<sub>opt</sub>
direct-abstract-declarator</pre>
(<a href="#6.7.7">6.7.7</a>) direct-abstract-declarator:
<pre>
( abstract-declarator )
(<a href="#6.7.7">6.7.7</a>) direct-abstract-declarator:
<pre>
( abstract-declarator )
- direct-abstract-declarator
opt [ type-qualifier-listopt
- assignment-expression
opt
]
- direct-abstract-declarator
opt [ static type-qualifier-listopt
+ direct-abstract-declarator
<sub>opt</sub> [ type-qualifier-list<sub>opt</sub>
+ assignment-expression
<sub>opt</sub>
]
+ direct-abstract-declarator
<sub>opt</sub> [ static type-qualifier-list<sub>opt</sub>
assignment-expression ]
assignment-expression ]
- direct-abstract-declarator
opt
[ type-qualifier-list static
+ direct-abstract-declarator
<sub>opt</sub>
[ type-qualifier-list static
assignment-expression ]
assignment-expression ]
- direct-abstract-declarator
opt
[ * ]
- direct-abstract-declarator
opt ( parameter-type-listopt
)</pre>
+ direct-abstract-declarator
<sub>opt</sub>
[ * ]
+ direct-abstract-declarator
<sub>opt</sub> ( parameter-type-list<sub>opt</sub>
)</pre>
(<a href="#6.7.8">6.7.8</a>) typedef-name:
<pre>
identifier</pre>
(<a href="#6.7.8">6.7.8</a>) typedef-name:
<pre>
identifier</pre>
@@
-22453,8
+22453,8
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
{ initializer-list , }</pre>
(<a href="#6.7.9">6.7.9</a>) initializer-list:
<pre>
{ initializer-list , }</pre>
(<a href="#6.7.9">6.7.9</a>) initializer-list:
<pre>
- designation
opt
initializer
- initializer-list , designation
opt
initializer</pre>
+ designation
<sub>opt</sub>
initializer
+ initializer-list , designation
<sub>opt</sub>
initializer</pre>
(<a href="#6.7.9">6.7.9</a>) designation:
<pre>
designator-list =</pre>
(<a href="#6.7.9">6.7.9</a>) designation:
<pre>
designator-list =</pre>
@@
-22487,7
+22487,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
default : statement</pre>
(<a href="#6.8.2">6.8.2</a>) compound-statement:
<pre>
default : statement</pre>
(<a href="#6.8.2">6.8.2</a>) compound-statement:
<pre>
- { block-item-list
opt
}</pre>
+ { block-item-list
<sub>opt</sub>
}</pre>
(<a href="#6.8.2">6.8.2</a>) block-item-list:
<pre>
block-item
(<a href="#6.8.2">6.8.2</a>) block-item-list:
<pre>
block-item
@@
-22498,7
+22498,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
statement</pre>
(<a href="#6.8.3">6.8.3</a>) expression-statement:
<pre>
statement</pre>
(<a href="#6.8.3">6.8.3</a>) expression-statement:
<pre>
- expression
opt
;</pre>
+ expression
<sub>opt</sub>
;</pre>
(<a href="#6.8.4">6.8.4</a>) selection-statement:
<pre>
if ( expression ) statement
(<a href="#6.8.4">6.8.4</a>) selection-statement:
<pre>
if ( expression ) statement
@@
-22508,15
+22508,15
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<pre>
while ( expression ) statement
do statement while ( expression ) ;
<pre>
while ( expression ) statement
do statement while ( expression ) ;
- for ( expression
opt ; expressionopt ; expressionopt
) statement
- for ( declaration expression
opt ; expressionopt
) statement</pre>
+ for ( expression
<sub>opt</sub> ; expression<sub>opt</sub> ; expression<sub>opt</sub>
) statement
+ for ( declaration expression
<sub>opt</sub> ; expression<sub>opt</sub>
) statement</pre>
(<a href="#6.8.6">6.8.6</a>) jump-statement:
<!--page 487 -->
<pre>
goto identifier ;
continue ;
break ;
(<a href="#6.8.6">6.8.6</a>) jump-statement:
<!--page 487 -->
<pre>
goto identifier ;
continue ;
break ;
- return expression
opt
;</pre>
+ return expression
<sub>opt</sub>
;</pre>
<h4><a name="A.2.4" href="#A.2.4">A.2.4 External definitions</a></h4>
(<a href="#6.9">6.9</a>) translation-unit:
<h4><a name="A.2.4" href="#A.2.4">A.2.4 External definitions</a></h4>
(<a href="#6.9">6.9</a>) translation-unit:
@@
-22529,7
+22529,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
declaration</pre>
(<a href="#6.9.1">6.9.1</a>) function-definition:
<pre>
declaration</pre>
(<a href="#6.9.1">6.9.1</a>) function-definition:
<pre>
- declaration-specifiers declarator declaration-list
opt
compound-statement</pre>
+ declaration-specifiers declarator declaration-list
<sub>opt</sub>
compound-statement</pre>
(<a href="#6.9.1">6.9.1</a>) declaration-list:
<pre>
declaration
(<a href="#6.9.1">6.9.1</a>) declaration-list:
<pre>
declaration
@@
-22538,7
+22538,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<h3><a name="A.3" href="#A.3">A.3 Preprocessing directives</a></h3>
(<a href="#6.10">6.10</a>) preprocessing-file:
<pre>
<h3><a name="A.3" href="#A.3">A.3 Preprocessing directives</a></h3>
(<a href="#6.10">6.10</a>) preprocessing-file:
<pre>
- group
opt
</pre>
+ group
<sub>opt</sub>
</pre>
(<a href="#6.10">6.10</a>) group:
<pre>
group-part
(<a href="#6.10">6.10</a>) group:
<pre>
group-part
@@
-22551,12
+22551,12
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
# non-directive</pre>
(<a href="#6.10">6.10</a>) if-section:
<pre>
# non-directive</pre>
(<a href="#6.10">6.10</a>) if-section:
<pre>
- if-group elif-groups
opt else-groupopt
endif-line</pre>
+ if-group elif-groups
<sub>opt</sub> else-group<sub>opt</sub>
endif-line</pre>
(<a href="#6.10">6.10</a>) if-group:
<pre>
(<a href="#6.10">6.10</a>) if-group:
<pre>
- # if constant-expression new-line group
opt
- # ifdef identifier new-line group
opt
- # ifndef identifier new-line group
opt
</pre>
+ # if constant-expression new-line group
<sub>opt</sub>
+ # ifdef identifier new-line group
<sub>opt</sub>
+ # ifndef identifier new-line group
<sub>opt</sub>
</pre>
(<a href="#6.10">6.10</a>) elif-groups:
<pre>
elif-group
(<a href="#6.10">6.10</a>) elif-groups:
<pre>
elif-group
@@
-22564,10
+22564,10
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
(<a href="#6.10">6.10</a>) elif-group:
<!--page 488 -->
<pre>
(<a href="#6.10">6.10</a>) elif-group:
<!--page 488 -->
<pre>
- # elif constant-expression new-line group
opt
</pre>
+ # elif constant-expression new-line group
<sub>opt</sub>
</pre>
(<a href="#6.10">6.10</a>) else-group:
<pre>
(<a href="#6.10">6.10</a>) else-group:
<pre>
- # else new-line group
opt
</pre>
+ # else new-line group
<sub>opt</sub>
</pre>
(<a href="#6.10">6.10</a>) endif-line:
<pre>
# endif new-line</pre>
(<a href="#6.10">6.10</a>) endif-line:
<pre>
# endif new-line</pre>
@@
-22575,19
+22575,19
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
<pre>
# include pp-tokens new-line
# define identifier replacement-list new-line
<pre>
# include pp-tokens new-line
# define identifier replacement-list new-line
- # define identifier lparen identifier-list
opt
)
+ # define identifier lparen identifier-list
<sub>opt</sub>
)
replacement-list new-line
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... )
replacement-list new-line
# undef identifier new-line
# line pp-tokens new-line
replacement-list new-line
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... )
replacement-list new-line
# undef identifier new-line
# line pp-tokens new-line
- # error pp-tokens
opt
new-line
- # pragma pp-tokens
opt
new-line
+ # error pp-tokens
<sub>opt</sub>
new-line
+ # pragma pp-tokens
<sub>opt</sub>
new-line
# new-line</pre>
(<a href="#6.10">6.10</a>) text-line:
<pre>
# new-line</pre>
(<a href="#6.10">6.10</a>) text-line:
<pre>
- pp-tokens
opt
new-line</pre>
+ pp-tokens
<sub>opt</sub>
new-line</pre>
(<a href="#6.10">6.10</a>) non-directive:
<pre>
pp-tokens new-line</pre>
(<a href="#6.10">6.10</a>) non-directive:
<pre>
pp-tokens new-line</pre>
@@
-22596,7
+22596,7
@@
margin: deleted text is marked with ''*'', new or changed text with '' ''.
a ( character not immediately preceded by white-space</pre>
(<a href="#6.10">6.10</a>) replacement-list:
<pre>
a ( character not immediately preceded by white-space</pre>
(<a href="#6.10">6.10</a>) replacement-list:
<pre>
- pp-tokens
opt
</pre>
+ pp-tokens
<sub>opt</sub>
</pre>
(<a href="#6.10">6.10</a>) pp-tokens:
<pre>
preprocessing-token
(<a href="#6.10">6.10</a>) pp-tokens:
<pre>
preprocessing-token