|
42 | 42 | Child('Expression', kind='Expr'), |
43 | 43 | ]), |
44 | 44 |
|
45 | | - # switch-case-list -> switch-case switch-case-list? |
46 | | - Node('SwitchCaseList', name_for_diagnostics=None, kind='SyntaxCollection', |
47 | | - element='Syntax', element_name='SwitchCase', |
48 | | - element_choices=['SwitchCase', 'IfConfigDecl'], |
49 | | - elements_separated_by_newline=True), |
50 | | - |
51 | 45 | # repeat-while-stmt -> label? ':'? 'repeat' code-block 'while' expr ';'? |
52 | 46 | Node('RepeatWhileStmt', name_for_diagnostics="'repeat' statement", kind='Stmt', |
53 | 47 | traits=['WithCodeBlock'], |
|
99 | 93 | Child('Body', kind='CodeBlock', name_for_diagnostics='body'), |
100 | 94 | ]), |
101 | 95 |
|
102 | | - # switch-stmt -> identifier? ':'? 'switch' expr '{' |
103 | | - # switch-case-list '}' ';'? |
104 | | - Node('SwitchStmt', name_for_diagnostics="'switch' statement", kind='Stmt', |
105 | | - traits=['Braced'], |
106 | | - children=[ |
107 | | - Child('SwitchKeyword', kind='SwitchToken'), |
108 | | - Child('Expression', kind='Expr'), |
109 | | - Child('LeftBrace', kind='LeftBraceToken'), |
110 | | - Child('Cases', kind='SwitchCaseList', |
111 | | - collection_element_name='Case'), |
112 | | - Child('RightBrace', kind='RightBraceToken', |
113 | | - requires_leading_newline=True), |
114 | | - ]), |
115 | | - |
116 | 96 | # catch-clause-list -> catch-clause catch-clause-list? |
117 | 97 | Node('CatchClauseList', name_for_diagnostics="'catch' clause", |
118 | 98 | kind='SyntaxCollection', element='CatchClause'), |
|
271 | 251 | Child('Expression', kind='Expr'), |
272 | 252 | ]), |
273 | 253 |
|
274 | | - # switch-case -> unknown-attr? switch-case-label stmt-list |
275 | | - # | unknown-attr? switch-default-label stmt-list |
276 | | - Node('SwitchCase', name_for_diagnostics='switch case', kind='Syntax', |
277 | | - traits=['WithStatements'], |
278 | | - parser_function='parseSwitchCase', |
279 | | - children=[ |
280 | | - Child('UnknownAttr', kind='Attribute', is_optional=True), |
281 | | - Child('Label', kind='Syntax', name_for_diagnostics='label', |
282 | | - node_choices=[ |
283 | | - Child('Default', kind='SwitchDefaultLabel'), |
284 | | - Child('Case', kind='SwitchCaseLabel'), |
285 | | - ]), |
286 | | - Child('Statements', kind='CodeBlockItemList', |
287 | | - collection_element_name='Statement', |
288 | | - is_indented=True), |
289 | | - ]), |
290 | | - |
291 | | - # switch-default-label -> 'default' ':' |
292 | | - Node('SwitchDefaultLabel', name_for_diagnostics=None, kind='Syntax', |
293 | | - children=[ |
294 | | - Child('DefaultKeyword', kind='DefaultToken'), |
295 | | - Child('Colon', kind='ColonToken'), |
296 | | - ]), |
297 | | - |
298 | | - # case-item -> pattern where-clause? ','? |
299 | | - Node('CaseItem', name_for_diagnostics=None, kind='Syntax', |
300 | | - traits=['WithTrailingComma'], |
301 | | - children=[ |
302 | | - Child('Pattern', kind='Pattern'), |
303 | | - Child('WhereClause', kind='WhereClause', |
304 | | - is_optional=True), |
305 | | - Child('TrailingComma', kind='CommaToken', |
306 | | - is_optional=True), |
307 | | - ]), |
308 | | - |
309 | 254 | # catch-item -> pattern? where-clause? ','? |
310 | 255 | Node('CatchItem', name_for_diagnostics=None, kind='Syntax', |
311 | 256 | traits=['WithTrailingComma'], |
|
317 | 262 | is_optional=True), |
318 | 263 | ]), |
319 | 264 |
|
320 | | - # switch-case-label -> 'case' case-item-list ':' |
321 | | - Node('SwitchCaseLabel', name_for_diagnostics=None, kind='Syntax', |
322 | | - children=[ |
323 | | - Child('CaseKeyword', kind='CaseToken'), |
324 | | - Child('CaseItems', kind='CaseItemList', |
325 | | - collection_element_name='CaseItem'), |
326 | | - Child('Colon', kind='ColonToken'), |
327 | | - ]), |
328 | | - |
329 | 265 | # catch-clause 'catch' case-item-list? code-block |
330 | 266 | Node('CatchClause', name_for_diagnostics="'catch' clause", kind='Syntax', |
331 | 267 | traits=['WithCodeBlock'], |
|
0 commit comments