11# Summary of the Grammar
22
3+ Read the whole formal grammar.
4+
35<!--
46
57=== IMPORTANT ===
@@ -13,6 +15,8 @@ make the same change here also.
1315
1416-->
1517
18+ ## Lexical Structure
19+
1620> Grammar of whitespace:
1721>
1822> * whitespace* → * whitespace-item* * whitespace* _ ?_
@@ -383,6 +387,8 @@ make the same change here also.
383387>
384388> * postfix-operator* → * operator*
385389
390+ ## Types
391+
386392> Grammar of a type:
387393>
388394> * type* → * function-type*
@@ -493,6 +499,8 @@ make the same change here also.
493499>
494500> * type-inheritance-list* → * attributes* _ ?_ * type-identifier* | * attributes* _ ?_ * type-identifier* ** ` , ` ** * type-inheritance-list*
495501
502+ ## Expressions
503+
496504> Grammar of an expression:
497505>
498506> * expression* → * try-operator* _ ?_ * await-operator* _ ?_ * prefix-expression* * infix-expressions* _ ?_
@@ -797,6 +805,8 @@ make the same change here also.
797805>
798806> * optional-chaining-expression* → * postfix-expression* ** ` ? ` **
799807
808+ ## Statements
809+
800810> Grammar of a statement:
801811>
802812> * statement* → * expression* ** ` ; ` ** _ ?_
@@ -1093,6 +1103,8 @@ make the same change here also.
10931103>
10941104> * platform-version* → * decimal-digits* ** ` . ` ** * decimal-digits* ** ` . ` ** * decimal-digits*
10951105
1106+ ## Declarations
1107+
10961108> Grammar of a declaration:
10971109>
10981110> * declaration* → * import-declaration*
@@ -1523,6 +1535,8 @@ make the same change here also.
15231535>
15241536> * actor-isolation-modifier* → ** ` nonisolated ` **
15251537
1538+ ## Attributes
1539+
15261540> Grammar of an attribute:
15271541>
15281542> * attribute* → ** ` @ ` ** * attribute-name* * attribute-argument-clause* _ ?_
@@ -1547,6 +1561,8 @@ make the same change here also.
15471561>
15481562> * balanced-token* → Any punctuation except ** ` ( ` ** , ** ` ) ` ** , ** ` [ ` ** , ** ` ] ` ** , ** ` { ` ** , or ** ` } ` **
15491563
1564+ ## Patterns
1565+
15501566> Grammar of a pattern:
15511567>
15521568> * pattern* → * wildcard-pattern* * type-annotation* _ ?_
@@ -1605,6 +1621,8 @@ make the same change here also.
16051621>
16061622> * expression-pattern* → * expression*
16071623
1624+ ## Generic Parameters and Arguments
1625+
16081626> Grammar of a generic parameter clause:
16091627>
16101628> * generic-parameter-clause* → ** ` < ` ** * generic-parameter-list* ** ` > ` **
0 commit comments