@@ -575,6 +575,8 @@ make the same change here also.
575575>
576576> * primary-expression* → * wildcard-expression*
577577>
578+ > * primary-expression* → * macro-expansion-expression*
579+ >
578580> * primary-expression* → * key-path-expression*
579581>
580582> * primary-expression* → * selector-expression*
@@ -587,10 +589,6 @@ make the same change here also.
587589>
588590> * literal-expression* → * array-literal* | * dictionary-literal* | * playground-literal*
589591>
590- > * literal-expression* → ** ` #file ` ** | ** ` #fileID ` ** | ** ` #filePath ` **
591- >
592- > * literal-expression* → ** ` #line ` ** | ** ` #column ` ** | ** ` #function ` ** | ** ` #dsohandle ` **
593- >
594592>
595593>
596594> * array-literal* → ** ` [ ` ** * array-literal-items* _ ?_ ** ` ] ` **
@@ -697,6 +695,10 @@ make the same change here also.
697695>
698696> * wildcard-expression* → ** ` _ ` **
699697
698+ > Grammar of a macro-expansion expression:
699+ >
700+ > * macro-expansion-expression* → ** ` # ` ** * identifier* * generic-argument-clause* _ ?_ * function-call-argument-clause* _ ?_ * trailing-closures* _ ?_
701+
700702> Grammar of a key-path expression:
701703>
702704> * key-path-expression* → ** ` \ ` ** * type* _ ?_ ** ` . ` ** * key-path-components*
@@ -1063,16 +1065,6 @@ make the same change here also.
10631065>
10641066> * file-path* → * static-string-literal*
10651067
1066- > Grammar of a compile-time diagnostic statement:
1067- >
1068- > * diagnostic-statement* → ** ` #error ` ** ** ` ( ` ** * diagnostic-message* ** ` ) ` **
1069- >
1070- > * diagnostic-statement* → ** ` #warning ` ** ** ` ( ` ** * diagnostic-message* ** ` ) ` **
1071- >
1072- >
1073- >
1074- > * diagnostic-message* → * static-string-literal*
1075-
10761068> Grammar of an availability condition:
10771069>
10781070> * availability-condition* → ** ` #available ` ** ** ` ( ` ** * availability-arguments* ** ` ) ` **
@@ -1449,6 +1441,18 @@ make the same change here also.
14491441>
14501442> * subscript-result* → ** ` -> ` ** * attributes* _ ?_ * type*
14511443
1444+ > Grammar of a macro declaration:
1445+ >
1446+ > * macro-declaration* → * macro-head* * identifier* * generic-parameter-clause* _ ?_ * macro-signature* * macro-definition* _ ?_ * generic-where-clause*
1447+ >
1448+ > * macro-head* → * attributes* _ ?_ * declaration-modifiers* _ ?_ ** ` macro ` **
1449+ >
1450+ > * macro-signature* → * parameter-clause* * macro-function-signature-result* _ ?_
1451+ >
1452+ > * macro-function-signature-result* → ** ` -> ` ** * type*
1453+ >
1454+ > * macro-definition* → ** ` = ` ** * expression*
1455+
14521456> Grammar of an operator declaration:
14531457>
14541458> * operator-declaration* → * prefix-operator-declaration* | * postfix-operator-declaration* | * infix-operator-declaration*
0 commit comments