chiark / gitweb /
doc/concepts.tex: Typeset method rĂ´le names as identifiers.
[sod] / src / sod-module.5
index bdb13e5ee52302c635f6542b202a1590c920bbe5..8e21b5d438ded80adebb574086aa32002a03ff52 100644 (file)
@@ -106,7 +106,7 @@ are variables which vary over all nonterminal and terminal symbols,
 and the variables may also appear on the right-hand side
 in place of a nonterminal.
 Such a rule stands for a family of rules,
-in each variable is replaced by
+in which each variable is replaced by
 each possible simple nonterminal or terminal symbol.
 .PP
 The letter \*e denotes the empty nonterminal
@@ -542,6 +542,10 @@ class-definition
 .|
 .I initializer-item
 .|
+.I initarg-item
+.|
+.I fragment-item
+.|
 .I message-item
 .|
 .I method-item
@@ -568,13 +572,34 @@ class-definition
 .I slot-initializer
 ::=
 .I dotted-name
-.B =
-.I initializer
+.RB [ =
+.IR initializer ]
 .br
 .I initializer
 ::=
 .I c-fragment
 .br
+.I initarg-item
+::=
+.<
+.B initarg
+.IR declaration-specifier \*+
+.IR list [ init-declarator ]
+.B ;
+.br
+.I fragment-item
+::=
+.I fragment-kind
+.B {
+.I c-fragment
+.B }
+.br
+.I fragment-kind
+::=
+.B init
+|
+.B teardown
+.br
 .I message-item
 ::=
 .<
@@ -658,6 +683,10 @@ class-definition
 |
 .I identifier
 .|
+.B <
+.I plain-type
+.B >
+.|
 .B ?
 .I s-expression
 .|
@@ -710,15 +739,53 @@ class-definition
 .B _Complex
 .|
 .I qualifier
+.|
+.I storage-specifier
+.|
+.I atomic-type
 .br
 .I qualifier
 ::=
+.I atomic
+|
 .B const
 |
 .B volatile
 |
 .B restrict
 .br
+.I plain-type
+::=
+.IR declaration-specifier \*+
+.I abstract-declarator
+.br
+.I atomic-type
+::=
+.I
+atomic
+.B (
+.I plain-type
+.B )
+.br
+.I atomic
+::=
+.B atomic
+|
+.B _Atomic
+.br
+.I storage-specifier
+::=
+.I alignas
+.B (
+.I c-fragment
+.B )
+.br
+.I alignas
+::=
+.B alignas
+|
+.B _Alignas
+.br
 .I type-name
 ::=
 .I identifier
@@ -740,6 +807,8 @@ However, not all combinations are permitted.
 A declaration specifier must consist of 
 zero or more
 .IR qualifier s,
+zero or more
+.IR storage-specifier s,
 and one of the following, up to reordering.
 .hP \*o
 .I type-name
@@ -852,6 +921,10 @@ and one of the following, up to reordering.
 .IR declaration-specifier \*+
 .I argument-declarator
 .br
+.I abstract-declarator
+::=
+.IR declarator "[\*e, " argument-list ]
+.br
 .I argument-declarator
 ::=
 .IR declarator [ identifier " | \*e, " argument-list ]