@@ -115,6 +115,15 @@ Include the following in each entry:
115115- metatype-type
116116 - ` MetatypeTypeSyntax `
117117
118+ - tuple-type
119+ - ` TupleTypeSyntax `
120+
121+ - tuple-type-element
122+ - ` TupleTypeElementSyntax `
123+
124+ - tuple-type-element-list
125+ - ` TupleTypeElementListSyntax `
126+
118127### Type Attributes
119128
120129- attribute
@@ -191,161 +200,163 @@ Include the following in each entry:
191200
192201## Unrepresented Grammar Productions
193202
194- - argument-names
203+ These are categorized somewhat by difficulty and priority.
204+
205+ ### Easy
206+
195207- array-literal
196208- array-literal-items
197209- as-pattern
198- - availability-argument
199- - availability-arguments
200- - availability-condition
201- - binary-expression
202- - binary-expressions
203- - binary-operator
204- - branch-statement
205- - capture-list
206- - capture-list-item
207- - capture-list-items
208- - capture-specifier
209210- case-condition
210- - case-item-list
211211- case-label
212- - catch-clause
213- - catch-clauses
214- - class-declaration
215- - closure-expression
216- - closure-parameter
217- - closure-parameter-clause
218- - closure-parameter-list
219- - closure-signature
220- - compilation-condition
221- - compiler-control-statement
222- - condition
223- - condition-list
224- - conditional-compilation-block
225- - conditional-operator
226- - constant-declaration
227- - declaration-modifier
228212- declaration-modifiers
229- - defer-statement
230- - deinitializer-declaration
231- - dictionary-literal
232- - dictionary-literal-item
233- - dictionary-literal-items
234- - didSet-clause
235- - do-statement
213+ - declaration-modifier
236214- dynamic-type-expression
237- - else-clause
238- - else-directive-clause
239- - elseif-directive-clause
240- - elseif-directive-clauses
241- - enum-case-pattern
242- - enum-declaration
243- - explicit-member-expression
244- - expression-list
245- - expression-pattern
246- - extension-declaration
247- - extension-members
248215- floating-point-literal
249- - for-in-statement
250216- forced-value-expression
251- - function-body
252- - function-declaration
253- - function-result
254- - function-signature
255- - getter-clause
256- - getter-keyword-clause
257- - getter-setter-block
258- - getter-setter-keyword-block
259- - guard-statement
260217- identifier-list
261- - if-directive-clause
262- - if-statement
263218- implicit-member-expression
264- - import-declaration
265219- import-path
266220- in-out-expression
267- - infix-operator-declaration
268- - infix-operator-group
269- - initializer-declaration
270- - initializer-head
271- - interpolated-string-literal
272221- interpolated-text
273222- interpolated-text-item
274223- is-pattern
275224- key-path-expression
276225- line-control-statement
277- - operator-declaration
278- - optional-binding-condition
279226- optional-chaining-expression
280227- optional-pattern
281- - parameter
282- - parameter-clause
283- - parameter-list
284228- parenthesized-expression
285- - pattern
286- - pattern-initializer
287- - pattern-initializer-list
288229- platform-condition
289230- platform-version
290- - playground-literal
291231- postfix-operator-declaration
292232- precedence-group-assignment
293233- precedence-group-associativity
294- - precedence-group-attribute
295- - precedence-group-attributes
296- - precedence-group-declaration
297234- precedence-group-names
298- - precedence-group-relation
299- - prefix-expression
300- - prefix-operator
301- - prefix-operator-declaration
302- - primary-expression
303- - protocol-associated-type-declaration
304- - protocol-composition-type
305- - protocol-declaration
306- - repeat-while-statement
307- - selector-expression
308- - setter-clause
309- - setter-keyword-clause
310- - setter-name
311235- statement-label
312236- static-string-literal
313- - string-literal
314- - subscript-declaration
315237- swift-version
316- - switch-case
317- - switch-cases
318- - switch-statement
319238- throw-statement
320- - tuple-element
321- - tuple-element-list
322- - tuple-expression
323- - tuple-pattern
324- - tuple-pattern-element
325- - tuple-pattern-element-list
326- - tuple-type
327- - tuple-type-element
328- - tuple-type-element-list
329- - type-casting-operator
330- - type-casting-pattern
331239- value-binding-pattern
332- - variable-declaration
333240- where-clause
334- - where-expression
241+ - dictionary-literal
242+ - dictionary-literal-items
243+ - dictionary-literal-item
244+ - capture-list
245+ - capture-list-items
246+ - capture-list-item
247+ - defer-statement
248+
249+ ### Medium
250+
251+ - else-directive-clause
252+ - elseif-directive-clauses
253+ - elseif-directive-clause
254+ - precedence-group-declaration
255+ - precedence-group-relation
256+ - expression-list
257+ - availability-condition
258+ - availability-arguments
259+ - availability-argument
260+ - switch-cases
261+ - switch-case
262+ - constant-declaration
263+ - catch-clauses
264+ - catch-clause
265+ - variable-declaration
266+ - do-statement
267+ - for-in-statement
268+ - guard-statement
269+ - case-item-list
270+ - import-declaration
271+ - if-directive-clause
272+ - if-statement
273+ - else-clause
274+ - protocol-associated-type-declaration
275+ - repeat-while-statement
335276- while-statement
277+ - tuple-expression
278+ - tuple-element-list
279+ - tuple-element
280+ - tuple-pattern
281+ - tuple-pattern-element-list
282+ - tuple-pattern-element
283+ - switch-statement
284+ - explicit-member-expression
285+ - optional-binding-condition
286+ - operator-declaration
287+ - selector-expression
288+ - protocol-composition-type
289+ - conditional-operator
290+ - deinitializer-declaration
291+ - didSet-clause
336292- willSet-clause
337- - willSet-didSet-block
293+ - pattern-initializer-list
294+ - pattern-initializer
295+ - prefix-expression
296+ - prefix-operator-declaration
297+ - infix-operator-declaration
298+ - infix-operator-group
299+ - binary-expression
300+
301+ ### Hard
302+
303+ - protocol-declaration
304+ - closure-expression
305+ - closure-signature
306+ - closure-parameter-clause
307+ - closure-parameter-list
308+ - closure-parameter
309+ - extension-declaration
310+ - enum-declaration
311+ - class-declaration
312+ - getter-setter-block
313+ - getter-setter-keyword-block
314+ - getter-keyword-clause
315+ - getter-clause
316+ - setter-keyword-clause
317+ - setter-clause
318+ - setter-name
319+ - subscript-declaration
320+ - function-declaration
321+ - function-body
322+ - function-result
323+ - function-signature
324+ - parameter-clause
325+ - parameter-list
326+ - parameter
327+ - enum-case-pattern
328+ - initializer-declaration
329+ - initializer-head
330+ - interpolated-string-literal
331+ - conditional-compilation-block
338332
339333## Trivial and Intermediate Grammar Productions
340334
335+ - binary-expressions
336+ - binary-operator
337+ - compilation-condition
338+ - capture-specifier
339+ - precedence-group-attributes
340+ - precedence-group-attribute
341+ - prefix-operator
342+ - type-casting-operator
343+ - willSet-didSet-block
341344- architecture
345+ - string-literal
346+ - argument-names
342347- array-literal-item
348+ - type-casting-pattern
343349- assignment-operator
350+ - expression-pattern
344351- binary-digit
345352- binary-literal-character
346353- binary-literal-characters
354+ - branch-statement
347355- class-member
348356- class-requirement
357+ - condition
358+ - condition-list
359+ - compiler-control-statement
349360- control-transfer-statement
350361- decimal-digit
351362- decimal-digits
@@ -375,6 +386,7 @@ Include the following in each entry:
375386- identifier-characters
376387- identifier-head
377388- if-directive
389+ - where-expression
378390- implicit-parameter-name
379391- initializer
380392- initializer-body
@@ -394,6 +406,7 @@ Include the following in each entry:
394406- operator-character
395407- operator-characters
396408- operator-head
409+ - pattern
397410- postfix-expression
398411- postfix-operator
399412- postfix-self-expression
@@ -402,6 +415,7 @@ Include the following in each entry:
402415- protocol-member
403416- protocol-member-declaration
404417- protocol-members
418+ - extension-members
405419- protocol-method-declaration
406420- protocol-property-declaration
407421- protocol-subscript-declaration
@@ -413,6 +427,7 @@ Include the following in each entry:
413427- raw-value-style-enum-case
414428- raw-value-style-enum-case-clause
415429- raw-value-style-enum-case-list
430+ - playground-literal
416431- raw-value-style-enum-member
417432- raw-value-style-enum-members
418433- requirement
@@ -442,9 +457,5 @@ Include the following in each entry:
442457- variable-declaration-head
443458- wildcard-expression
444459- wildcard-pattern
445-
446- ## Intermediate Grammar Productions
447-
448- These productions don't need to be represented directly in a class hierarchy.
449-
460+ - primary-expression
450461- generic-argument
0 commit comments