From Jason Turner

[gram.stmt]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpukrdleet/{from.md → to.md} +34 -10
tmp/tmpukrdleet/{from.md → to.md} RENAMED
@@ -5,11 +5,13 @@ statement:
5
  labeled-statement
6
  attribute-specifier-seqₒₚₜ expression-statement
7
  attribute-specifier-seqₒₚₜ compound-statement
8
  attribute-specifier-seqₒₚₜ selection-statement
9
  attribute-specifier-seqₒₚₜ iteration-statement
 
10
  attribute-specifier-seqₒₚₜ jump-statement
 
11
  declaration-statement
12
  attribute-specifier-seqₒₚₜ try-block
13
  ```
14
 
15
  ``` bnf
@@ -21,10 +23,22 @@ init-statement:
21
 
22
  ``` bnf
23
  condition:
24
  expression
25
  attribute-specifier-seqₒₚₜ decl-specifier-seq declarator brace-or-equal-initializer
 
 
 
 
 
 
 
 
 
 
 
 
26
  ```
27
 
28
  ``` bnf
29
  label:
30
  attribute-specifier-seqₒₚₜ identifier ':'
@@ -47,18 +61,16 @@ compound-statement:
47
  '{' statement-seqₒₚₜ label-seqₒₚₜ '}'
48
  ```
49
 
50
  ``` bnf
51
  statement-seq:
52
- statement
53
- statement-seq statement
54
  ```
55
 
56
  ``` bnf
57
  label-seq:
58
- label
59
- label-seq label
60
  ```
61
 
62
  ``` bnf
63
  selection-statement:
64
  if constexprₒₚₜ '(' init-statementₒₚₜ condition ')' statement
@@ -75,18 +87,25 @@ iteration-statement:
75
  for '(' init-statement conditionₒₚₜ ';' expressionₒₚₜ ')' statement
76
  for '(' init-statementₒₚₜ for-range-declaration ':' for-range-initializer ')' statement
77
  ```
78
 
79
  ``` bnf
80
- for-range-declaration:
81
- attribute-specifier-seqₒₚₜ decl-specifier-seq declarator
82
- attribute-specifier-seqₒₚₜ decl-specifier-seq ref-qualifierₒₚₜ '[' identifier-list ']'
 
83
  ```
84
 
85
  ``` bnf
86
- for-range-initializer:
87
- expr-or-braced-init-list
 
 
 
 
 
 
88
  ```
89
 
90
  ``` bnf
91
  jump-statement:
92
  break ';'
@@ -96,11 +115,16 @@ jump-statement:
96
  goto identifier ';'
97
  ```
98
 
99
  ``` bnf
100
  coroutine-return-statement:
101
- 'co_return' expr-or-braced-init-listₒₚₜ ';'
 
 
 
 
 
102
  ```
103
 
104
  ``` bnf
105
  declaration-statement:
106
  block-declaration
 
5
  labeled-statement
6
  attribute-specifier-seqₒₚₜ expression-statement
7
  attribute-specifier-seqₒₚₜ compound-statement
8
  attribute-specifier-seqₒₚₜ selection-statement
9
  attribute-specifier-seqₒₚₜ iteration-statement
10
+ attribute-specifier-seqₒₚₜ expansion-statement
11
  attribute-specifier-seqₒₚₜ jump-statement
12
+ attribute-specifier-seqₒₚₜ assertion-statement
13
  declaration-statement
14
  attribute-specifier-seqₒₚₜ try-block
15
  ```
16
 
17
  ``` bnf
 
23
 
24
  ``` bnf
25
  condition:
26
  expression
27
  attribute-specifier-seqₒₚₜ decl-specifier-seq declarator brace-or-equal-initializer
28
+ structured-binding-declaration initializer
29
+ ```
30
+
31
+ ``` bnf
32
+ for-range-declaration:
33
+ attribute-specifier-seqₒₚₜ decl-specifier-seq declarator
34
+ structured-binding-declaration
35
+ ```
36
+
37
+ ``` bnf
38
+ for-range-initializer:
39
+ expr-or-braced-init-list
40
  ```
41
 
42
  ``` bnf
43
  label:
44
  attribute-specifier-seqₒₚₜ identifier ':'
 
61
  '{' statement-seqₒₚₜ label-seqₒₚₜ '}'
62
  ```
63
 
64
  ``` bnf
65
  statement-seq:
66
+ statement statement-seqₒₚₜ
 
67
  ```
68
 
69
  ``` bnf
70
  label-seq:
71
+ label label-seqₒₚₜ
 
72
  ```
73
 
74
  ``` bnf
75
  selection-statement:
76
  if constexprₒₚₜ '(' init-statementₒₚₜ condition ')' statement
 
87
  for '(' init-statement conditionₒₚₜ ';' expressionₒₚₜ ')' statement
88
  for '(' init-statementₒₚₜ for-range-declaration ':' for-range-initializer ')' statement
89
  ```
90
 
91
  ``` bnf
92
+ expansion-statement:
93
+ template for '('
94
+ init-statementₒₚₜ for-range-declaration ':'
95
+ expansion-initializer ')' compound-statement
96
  ```
97
 
98
  ``` bnf
99
+ expansion-initializer:
100
+ expression
101
+ expansion-init-list
102
+ ```
103
+
104
+ ``` bnf
105
+ expansion-init-list:
106
+ '{' expression-listₒₚₜ '}'
107
  ```
108
 
109
  ``` bnf
110
  jump-statement:
111
  break ';'
 
115
  goto identifier ';'
116
  ```
117
 
118
  ``` bnf
119
  coroutine-return-statement:
120
+ co_return expr-or-braced-init-listₒₚₜ ';'
121
+ ```
122
+
123
+ ``` bnf
124
+ assertion-statement:
125
+ 'contract_assert' attribute-specifier-seqₒₚₜ '(' conditional-expression ')' ';'
126
  ```
127
 
128
  ``` bnf
129
  declaration-statement:
130
  block-declaration