@@ -197,26 +197,26 @@ statement ::= import_statement
197197 | return_statement
198198 | block
199199
200- import_statement ::= 'import' name ( 'as' name )? ';'
201- | 'import' STRING 'as' name ';'
202- | 'import' '{' name ( ',' name )* '}' 'from' ( name | STRING ) ';'
200+ import_statement ::= 'import' NAME ( 'as' NAME )? ';'
201+ | 'import' STRING 'as' NAME ';'
202+ | 'import' '{' NAME ( ',' NAME )* '}' 'from' ( NAME | STRING ) ';'
203203
204- variable_declaration ::= 'let' name '=' expression
205- | 'mut' name ( '=' expression )?
206- | ( 'let' | 'mut' ) '[' '_' | name ( ',' '_' | name )* ']' '=' expression
207- | ( 'let' | 'mut' ) '{' name ( ',' name )* '}' '=' expression
204+ variable_declaration ::= 'let' NAME '=' expression
205+ | 'mut' NAME ( '=' expression )?
206+ | ( 'let' | 'mut' ) '[' '_' | NAME ( ',' '_' | NAME )* ']' '=' expression
207+ | ( 'let' | 'mut' ) '{' NAME ( ',' NAME )* '}' '=' expression
208208
209- assign_call ::= name subscript* assign_op expression
210- | name subscript* ( '++' | '--' )
211- | name subscript* '[' ']' '=' expression
212- | name subscript* subscript '=' expression
213- | name ( subscript | call )* call
209+ assign_call ::= NAME subscript* assign_op expression
210+ | NAME subscript* ( '++' | '--' )
211+ | NAME subscript* '[' ']' '=' expression
212+ | NAME subscript* subscript '=' expression
213+ | NAME ( subscript | call )* call
214214
215- struct_declaration ::= 'struct' name '{' ( string | name ( ',' string | name )* )? '}'
215+ struct_declaration ::= 'struct' NAME '{' ( string | NAME ( ',' string | NAME )* )? '}'
216216
217- function_declaration ::= 'fn' name '(' ( 'mut'? name ( ',' 'mut'? name )* )? ')' ( '=>' expression | block )
217+ function_declaration ::= 'fn' NAME '(' ( 'mut'? NAME ( ',' 'mut'? NAME )* )? ')' ( '=>' expression ";" | block )
218218
219- delete_statement ::= 'del' name subscript* '[' expression ']' ';'
219+ delete_statement ::= 'del' NAME subscript* '[' expression ']' ';'
220220
221221if_statement ::= ( 'if' | 'if!' ) '(' ( variable_declaration ';' )? expression ')'
222222 statement ( 'else' statement )?
@@ -230,7 +230,7 @@ while_statement ::= ( 'while' | 'while!' ) '(' expression ')' statement
230230 | 'do' statement ( 'while' | 'while!' ) '(' expression ')' ';'
231231
232232for_statement ::= 'for' '(' ( variable_declaration | assign_call )? ';' expression? ';' assign_call? ')' statement
233- | 'foreach' '(' name 'in' expression ')' statement
233+ | 'foreach' '(' NAME 'in' expression ')' statement
234234
235235break_statement ::= ( 'break' | 'continue' ) ';'
236236
@@ -241,7 +241,7 @@ block ::= '{' stmt* '}'
241241assign_op ::= '=' | '|=' | '^=' | '&=' | '<<=' | '>>='
242242 | '+=' | '-=' | '*=' | '/=' | '~/=' | '%='
243243
244- subscript ::= '[' expression ']' | '.' name
244+ subscript ::= '[' expression ']' | '.' NAME
245245
246246call ::= '(' ( expression ( ',' expression )* )? ')'
247247
@@ -283,19 +283,19 @@ literal ::= 'nil' | 'false' | 'true' | number | string
283283
284284array_constructor ::= '[' ( expression ( ',' expression )* )? ']'
285285
286- struct_constructor ::= '{' ( string | name ':' expression ( ',' string | name ':' expression )* )? '}'
286+ struct_constructor ::= '{' ( string | NAME ':' expression ( ',' string | NAME ':' expression )* )? '}'
287287
288- anonymous_struct ::= 'struct' '{' ( string | name ( ',' string | name )* )? '}'
288+ anonymous_struct ::= 'struct' '{' ( string | NAME ( ',' string | NAME )* )? '}'
289289
290- anonymous_function ::= '|' ( 'mut'? name ( ',' 'mut'? name )* )? '|' ( '=>' expression | block )
290+ anonymous_function ::= '|' ( 'mut'? NAME ( ',' 'mut'? NAME )* )? '|' ( '=>' expression | block )
291291 | '||' ( '=>' expression | block )
292292
293293if_expression ::= ( 'if' | 'if!' ) '(' expression ')' expression 'else' expression
294294
295295match_expression ::= 'match' '(' expression ')' '{' expression '=>' expression ( ',' expression '=>' expression )*
296296 ',' '_' '=>' expression '}'
297297
298- subscript_call ::= name ( subscript | call )* ( '{' ( expression ( ',' expression )* )? '}' )?
298+ subscript_call ::= NAME ( subscript | call )* ( '{' ( expression ( ',' expression )* )? '}' )?
299299
300300group_expression ::= '(' expression ')'
301301```
0 commit comments