mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 22:31:50 +00:00
Update Dart.g to match the current pattern feature spec
This CL changes the Dart grammar in Dart.g such that it contains all the grammar changes applied to the patterns proposal since the previous update of Dart.g. Change-Id: I9b5f0d9a092d30ce0055db99da5fdbe3b9b1d5dc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275002 Reviewed-by: William Hesse <whesse@google.com> Auto-Submit: Erik Ernst <eernst@google.com> Commit-Queue: Erik Ernst <eernst@google.com>
This commit is contained in:
parent
9488163d7e
commit
ba5f8da95d
|
@ -4,9 +4,12 @@
|
||||||
|
|
||||||
// CHANGES:
|
// CHANGES:
|
||||||
//
|
//
|
||||||
// v0.24 Change constant pattern rules to allow Symbols and negative numbers
|
// v0.25 Update pattern rules following changes to the patterns feature
|
||||||
|
// specification since v0.24.
|
||||||
//
|
//
|
||||||
// v0.23 Change logical pattern rules to || and &&
|
// v0.24 Change constant pattern rules to allow Symbols and negative numbers.
|
||||||
|
//
|
||||||
|
// v0.23 Change logical pattern rules to || and &&.
|
||||||
//
|
//
|
||||||
// v0.22 Change pattern rules, following updated feature specification.
|
// v0.22 Change pattern rules, following updated feature specification.
|
||||||
//
|
//
|
||||||
|
@ -656,7 +659,7 @@ spreadElement
|
||||||
;
|
;
|
||||||
|
|
||||||
ifElement
|
ifElement
|
||||||
: IF '(' expression ')' element (ELSE element)?
|
: ifCondition element (ELSE element)?
|
||||||
;
|
;
|
||||||
|
|
||||||
forElement
|
forElement
|
||||||
|
@ -669,15 +672,11 @@ constructorTearoff
|
||||||
|
|
||||||
switchExpression
|
switchExpression
|
||||||
: SWITCH '(' expression ')'
|
: SWITCH '(' expression ')'
|
||||||
LBRACE switchExpressionCase* switchExpressionDefault? RBRACE
|
LBRACE switchExpressionCase (',' switchExpressionCase)* ','? RBRACE
|
||||||
;
|
;
|
||||||
|
|
||||||
switchExpressionCase
|
switchExpressionCase
|
||||||
: caseHead '=>' expression ';'
|
: guardedPattern '=>' expression
|
||||||
;
|
|
||||||
|
|
||||||
switchExpressionDefault
|
|
||||||
: DEFAULT '=>' expression ';'
|
|
||||||
;
|
;
|
||||||
|
|
||||||
throwExpression
|
throwExpression
|
||||||
|
@ -1031,7 +1030,7 @@ logicalAndPattern
|
||||||
;
|
;
|
||||||
|
|
||||||
relationalPattern
|
relationalPattern
|
||||||
: (equalityOperator | relationalOperator) relationalExpression
|
: (equalityOperator | relationalOperator) bitwiseOrExpression
|
||||||
| unaryPattern
|
| unaryPattern
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -1087,7 +1086,20 @@ parenthesizedPattern
|
||||||
;
|
;
|
||||||
|
|
||||||
listPattern
|
listPattern
|
||||||
: typeArguments? '[' patterns? ']'
|
: typeArguments? '[' listPatternElements? ']'
|
||||||
|
;
|
||||||
|
|
||||||
|
listPatternElements
|
||||||
|
: listPatternElement (',' listPatternElement)* ','?
|
||||||
|
;
|
||||||
|
|
||||||
|
listPatternElement
|
||||||
|
: pattern
|
||||||
|
| restPattern
|
||||||
|
;
|
||||||
|
|
||||||
|
restPattern
|
||||||
|
: '...' pattern?
|
||||||
;
|
;
|
||||||
|
|
||||||
mapPattern
|
mapPattern
|
||||||
|
@ -1100,6 +1112,7 @@ mapPatternEntries
|
||||||
|
|
||||||
mapPatternEntry
|
mapPatternEntry
|
||||||
: expression ':' pattern
|
: expression ':' pattern
|
||||||
|
| '...'
|
||||||
;
|
;
|
||||||
|
|
||||||
recordPattern
|
recordPattern
|
||||||
|
@ -1186,7 +1199,11 @@ localFunctionDeclaration
|
||||||
;
|
;
|
||||||
|
|
||||||
ifStatement
|
ifStatement
|
||||||
: IF '(' expression caseHead? ')' statement (ELSE statement)?
|
: ifCondition statement (ELSE statement)?
|
||||||
|
;
|
||||||
|
|
||||||
|
ifCondition
|
||||||
|
: IF '(' expression (CASE guardedPattern)? ')'
|
||||||
;
|
;
|
||||||
|
|
||||||
forStatement
|
forStatement
|
||||||
|
@ -1222,11 +1239,11 @@ switchStatement
|
||||||
;
|
;
|
||||||
|
|
||||||
switchStatementCase
|
switchStatementCase
|
||||||
: label* caseHead ':' statements
|
: label* CASE guardedPattern ':' statements
|
||||||
;
|
;
|
||||||
|
|
||||||
caseHead
|
guardedPattern
|
||||||
: CASE pattern (WHEN expression)?
|
: pattern (WHEN expression)?
|
||||||
;
|
;
|
||||||
|
|
||||||
switchStatementDefault
|
switchStatementDefault
|
||||||
|
@ -1393,7 +1410,7 @@ recordType
|
||||||
: '(' ')'
|
: '(' ')'
|
||||||
| '(' recordTypeFields ',' recordTypeNamedFields ')'
|
| '(' recordTypeFields ',' recordTypeNamedFields ')'
|
||||||
| '(' recordTypeFields ','? ')'
|
| '(' recordTypeFields ','? ')'
|
||||||
| '(' recordTypeNamedFields? ')'
|
| '(' recordTypeNamedFields ')'
|
||||||
;
|
;
|
||||||
|
|
||||||
recordTypeFields
|
recordTypeFields
|
||||||
|
|
Loading…
Reference in a new issue