@@ -59,33 +59,32 @@ balanced, but they are otherwise not special.
59
59
In the matcher, ` $ ` _ name_ ` : ` _ designator_ matches the nonterminal in the Rust
60
60
syntax named by _ designator_ . Valid designators are:
61
61
62
- * ` item ` : an [ item ]
63
- * ` block ` : a [ block ]
64
- * ` stmt ` : a [ statement ]
65
- * ` pat ` : a [ pattern ]
66
- * ` expr ` : an [ expression ]
67
- * ` ty ` : a [ type ]
68
- * ` ident ` : an [ identifier ] or [ keyword ]
62
+ * ` item ` : an [ _ Item _ ]
63
+ * ` block ` : a [ _ BlockExpression _ ]
64
+ * ` stmt ` : a [ _ Statement _ ] without the trailing semicolon
65
+ * ` pat ` : a [ _ Pattern _ ]
66
+ * ` expr ` : an [ _ Expression _ ]
67
+ * ` ty ` : a [ _ Type _ ]
68
+ * ` ident ` : an [ IDENTIFIER_OR_KEYWORD ]
69
69
* ` path ` : a [ _ TypePath_ ] style path
70
- * ` tt ` : a [ token tree]   ; (a single [ token] or tokens in matching delimiters ` () ` , ` [] ` , or ` {} ` )
71
- * ` meta ` : the contents of an [ attribute]
72
- * ` lifetime ` : a [ lifetime] . Examples: ` 'static ` , ` 'a ` .
73
- * ` vis ` : a [ visibility qualifier]
74
-
75
- [ item ] : items.html
76
- [ block ] : expressions/block-expr.html
77
- [ statement ] : statements.html
78
- [ pattern ] : patterns.html
79
- [ expression ] : expressions.html
80
- [ type ] : types.html
81
- [ identifier ] : identifiers.html
82
- [ keyword ] : keywords.html
70
+ * ` tt ` : a [ _ TokenTree_ ]   ; (a single [ token] or tokens in matching delimiters ` () ` , ` [] ` , or ` {} ` )
71
+ * ` meta ` : a [ _ MetaItem_ ] , the contents of an attribute
72
+ * ` lifetime ` : a [ LIFETIME_TOKEN]
73
+ * ` vis ` : a [ _ Visibility_ ] qualifier
74
+
75
+ [ IDENTIFIER_OR_KEYWORD ] : identifiers.html
76
+ [ LIFETIME_TOKEN ] : tokens.html#lifetimes-and-loop-labels
77
+ [ _BlockExpression_ ] : expressions/block-expr.html
78
+ [ _Expression_ ] : expressions.html
79
+ [ _Item_ ] : items.html
80
+ [ _MetaItem_ ] : attributes.html
81
+ [ _Pattern_ ] : patterns.html
82
+ [ _Statement_ ] : statements.html
83
+ [ _TokenTree_ ] : macros.html#macro-invocation
83
84
[ _TypePath_ ] : paths.html#paths-in-types
84
- [ token tree ] : macros.html#macro-invocation
85
+ [ _Type_ ] : types.html
86
+ [ _Visibility_ ] : visibility-and-privacy.html
85
87
[ token ] : tokens.html
86
- [ attribute ] : attributes.html
87
- [ lifetime ] : tokens.html#lifetimes-and-loop-labels
88
- [ visibility qualifier ] : visibility-and-privacy.html
89
88
90
89
In the transcriber, the
91
90
designator is already known, and so only the name of a matched nonterminal comes
@@ -140,7 +139,7 @@ Rust syntax is restricted in two ways:
140
139
* ` expr ` and ` stmt ` may only be followed by one of ` => ` , ` , ` , or ` ; ` .
141
140
* ` pat ` may only be followed by one of ` => ` , ` , ` , ` = ` , ` | ` , ` if ` , or ` in ` .
142
141
* ` path ` and ` ty ` may only be followed by one of ` => ` , ` , ` , ` = ` , ` | ` , ` ; ` ,
143
- ` : ` , ` > ` , ` [ ` , ` { ` , ` as ` , ` where ` , or a macro variable of ` block `
142
+ ` : ` , ` > ` , ` >> ` , ` [ ` , ` { ` , ` as ` , ` where ` , or a macro variable of ` block `
144
143
fragment type.
145
144
* ` vis ` may only be followed by one of ` , ` , ` priv ` , a raw identifier, any
146
145
token that can begin a type, or a macro variable of ` ident ` , ` ty ` , or
0 commit comments