@@ -152,19 +152,19 @@ token : simple_token | ident | literal | symbol | whitespace token ;
152
152
153
153
<p id =" keyword-table-marker " ></p >
154
154
155
- | | | | | |
156
- | ----------| ----------| ----------| ----------| --------|
157
- | abstract | alignof | as | become | box |
158
- | break | const | continue | crate | do |
159
- | else | enum | extern | false | final |
160
- | fn | for | if | impl | in |
161
- | let | loop | match | mod | move |
162
- | mut | offsetof | once | override | priv |
163
- | proc | pub | pure | ref | return |
164
- | sizeof | static | self | struct | super |
165
- | true | trait | type | typeof | unsafe |
166
- | unsized | use | virtual | where | while |
167
- | yield | | | | |
155
+ | | | | | |
156
+ | ----------| ----------| ----------| ----------| --------- |
157
+ | abstract | alignof | as | become | box |
158
+ | break | const | continue | crate | do |
159
+ | else | enum | extern | false | final |
160
+ | fn | for | if | impl | in |
161
+ | let | loop | macro | match | mod |
162
+ | move | mut | offsetof | override | priv |
163
+ | proc | pub | pure | ref | return |
164
+ | Self | self | sizeof | static | struct |
165
+ | super | trait | true | type | typeof |
166
+ | unsafe | unsized | use | virtual | where |
167
+ | while | yield | | | |
168
168
169
169
170
170
Each of these keywords has special meaning in its grammar, and all of them are
@@ -524,6 +524,15 @@ array_elems : [expr [',' expr]*] | [expr ',' ".." expr] ;
524
524
idx_expr : expr '[' expr ']' ;
525
525
```
526
526
527
+ ### Range expressions
528
+
529
+ ``` antlr
530
+ range_expr : expr ".." expr |
531
+ expr ".." |
532
+ ".." expr |
533
+ ".." ;
534
+ ```
535
+
527
536
### Unary operator expressions
528
537
529
538
** FIXME:** grammar?
@@ -610,7 +619,7 @@ lambda_expr : '|' ident_list '|' expr ;
610
619
### While loops
611
620
612
621
``` antlr
613
- while_expr : "while" no_struct_literal_expr '{' block '}' ;
622
+ while_expr : [ lifetime ':' ] "while" no_struct_literal_expr '{' block '}' ;
614
623
```
615
624
616
625
### Infinite loops
@@ -634,7 +643,7 @@ continue_expr : "continue" [ lifetime ];
634
643
### For expressions
635
644
636
645
``` antlr
637
- for_expr : "for" pat "in" no_struct_literal_expr '{' block '}' ;
646
+ for_expr : [ lifetime ':' ] "for" pat "in" no_struct_literal_expr '{' block '}' ;
638
647
```
639
648
640
649
### If expressions
0 commit comments