mirror of
https://github.com/dart-lang/sdk
synced 2024-10-06 12:47:14 +00:00
Introduce support for augmentation libraries in Dart.g
Change-Id: Icc4b89f1b25dd633279d87e9d51f85372d962c7b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/358450 Commit-Queue: Erik Ernst <eernst@google.com> Reviewed-by: William Hesse <whesse@google.com>
This commit is contained in:
parent
eb615fc31b
commit
50ff1c7823
|
@ -4,6 +4,8 @@
|
|||
|
||||
// CHANGES:
|
||||
//
|
||||
// v0.40 Include support for augmentation libraries.
|
||||
//
|
||||
// v0.39 Include latest changes to mixin related class modifiers.
|
||||
//
|
||||
// v0.38 Broaden `initializerExpression` to match implemented behavior.
|
||||
|
@ -266,13 +268,12 @@ topLevelDefinition
|
|||
| EXTERNAL getterSignature ';'
|
||||
| EXTERNAL setterSignature ';'
|
||||
| EXTERNAL finalVarOrType identifierList ';'
|
||||
| getterSignature functionBody
|
||||
| setterSignature functionBody
|
||||
| functionSignature functionBody
|
||||
| (FINAL | CONST) type? staticFinalDeclarationList ';'
|
||||
| LATE FINAL type? initializedIdentifierList ';'
|
||||
| LATE? varOrType identifier ('=' expression)?
|
||||
(',' initializedIdentifier)* ';'
|
||||
| AUGMENT? getterSignature functionBody
|
||||
| AUGMENT? setterSignature functionBody
|
||||
| AUGMENT? functionSignature functionBody
|
||||
| AUGMENT? (FINAL | CONST) type? staticFinalDeclarationList ';'
|
||||
| AUGMENT? LATE FINAL type? initializedIdentifierList ';'
|
||||
| AUGMENT? LATE? varOrType initializedIdentifierList ';'
|
||||
;
|
||||
|
||||
declaredIdentifier
|
||||
|
@ -391,7 +392,7 @@ typeWithParameters
|
|||
;
|
||||
|
||||
classDeclaration
|
||||
: (classModifiers | mixinClassModifiers)
|
||||
: AUGMENT? (classModifiers | mixinClassModifiers)
|
||||
CLASS typeWithParameters superclass? interfaces?
|
||||
LBRACE (metadata classMemberDeclaration)* RBRACE
|
||||
| classModifiers MIXIN? CLASS mixinApplicationClass
|
||||
|
@ -420,7 +421,7 @@ interfaces
|
|||
;
|
||||
|
||||
classMemberDeclaration
|
||||
: methodSignature functionBody
|
||||
: AUGMENT? methodSignature functionBody
|
||||
| declaration ';'
|
||||
;
|
||||
|
||||
|
@ -429,7 +430,7 @@ mixinApplicationClass
|
|||
;
|
||||
|
||||
mixinDeclaration
|
||||
: BASE? MIXIN typeIdentifier typeParameters?
|
||||
: AUGMENT? BASE? MIXIN typeWithParameters
|
||||
(ON typeNotVoidNotFunctionList)? interfaces?
|
||||
LBRACE (metadata mixinMemberDeclaration)* RBRACE
|
||||
;
|
||||
|
@ -440,9 +441,8 @@ mixinMemberDeclaration
|
|||
;
|
||||
|
||||
extensionTypeDeclaration
|
||||
: EXTENSION TYPE CONST? typeWithParameters
|
||||
representationDeclaration
|
||||
interfaces?
|
||||
: AUGMENT? EXTENSION TYPE CONST? typeWithParameters
|
||||
representationDeclaration interfaces?
|
||||
LBRACE (metadata extensionTypeMemberDeclaration)* RBRACE
|
||||
;
|
||||
|
||||
|
@ -457,12 +457,12 @@ extensionTypeMemberDeclaration
|
|||
;
|
||||
|
||||
extensionDeclaration
|
||||
: EXTENSION typeIdentifierNotType? typeParameters? ON type
|
||||
LBRACE (metadata extensionMemberDefinition)* RBRACE
|
||||
: AUGMENT? EXTENSION typeIdentifierNotType? typeParameters? ON type
|
||||
LBRACE (metadata extensionMemberDeclaration)* RBRACE
|
||||
;
|
||||
|
||||
// TODO: We might want to make this more strict.
|
||||
extensionMemberDefinition
|
||||
extensionMemberDeclaration
|
||||
: classMemberDeclaration
|
||||
;
|
||||
|
||||
|
@ -484,17 +484,17 @@ declaration
|
|||
| (EXTERNAL STATIC?)? setterSignature
|
||||
| (EXTERNAL STATIC?)? functionSignature
|
||||
| EXTERNAL (STATIC? finalVarOrType | COVARIANT varOrType) identifierList
|
||||
| ABSTRACT (finalVarOrType | COVARIANT varOrType) identifierList
|
||||
| EXTERNAL? operatorSignature
|
||||
| STATIC (FINAL | CONST) type? staticFinalDeclarationList
|
||||
| STATIC LATE FINAL type? initializedIdentifierList
|
||||
| STATIC LATE? varOrType initializedIdentifierList
|
||||
| COVARIANT LATE FINAL type? identifierList
|
||||
| COVARIANT LATE? varOrType initializedIdentifierList
|
||||
| LATE? (FINAL type? | varOrType) initializedIdentifierList
|
||||
| redirectingFactoryConstructorSignature
|
||||
| constantConstructorSignature (redirection | initializers)?
|
||||
| constructorSignature (redirection | initializers)?
|
||||
| ABSTRACT (finalVarOrType | COVARIANT varOrType) identifierList
|
||||
| AUGMENT? STATIC (FINAL | CONST) type? staticFinalDeclarationList
|
||||
| AUGMENT? STATIC LATE FINAL type? initializedIdentifierList
|
||||
| AUGMENT? STATIC LATE? varOrType initializedIdentifierList
|
||||
| AUGMENT? COVARIANT LATE FINAL type? identifierList
|
||||
| AUGMENT? COVARIANT LATE? varOrType initializedIdentifierList
|
||||
| AUGMENT? LATE? (FINAL type? | varOrType) initializedIdentifierList
|
||||
| AUGMENT? redirectingFactoryConstructorSignature
|
||||
| AUGMENT? constantConstructorSignature (redirection | initializers)?
|
||||
| AUGMENT? constructorSignature (redirection | initializers)?
|
||||
;
|
||||
|
||||
staticFinalDeclarationList
|
||||
|
@ -591,7 +591,7 @@ mixinApplication
|
|||
;
|
||||
|
||||
enumType
|
||||
: ENUM typeIdentifier typeParameters? mixins? interfaces? LBRACE
|
||||
: AUGMENT? ENUM typeWithParameters? mixins? interfaces? LBRACE
|
||||
enumEntry (',' enumEntry)* (',')?
|
||||
(';' (metadata classMemberDeclaration)*)?
|
||||
RBRACE
|
||||
|
@ -1360,7 +1360,12 @@ assertion
|
|||
;
|
||||
|
||||
libraryName
|
||||
: metadata LIBRARY dottedIdentifierList? ';'
|
||||
: metadata libraryNameBody ';'
|
||||
;
|
||||
|
||||
libraryNameBody
|
||||
: LIBRARY dottedIdentifierList?
|
||||
| AUGMENT LIBRARY uri
|
||||
;
|
||||
|
||||
dottedIdentifierList
|
||||
|
@ -1369,6 +1374,7 @@ dottedIdentifierList
|
|||
|
||||
importOrExport
|
||||
: libraryImport
|
||||
| libraryAugmentImport
|
||||
| libraryExport
|
||||
;
|
||||
|
||||
|
@ -1376,6 +1382,10 @@ libraryImport
|
|||
: metadata importSpecification
|
||||
;
|
||||
|
||||
libraryAugmentImport
|
||||
: metadata IMPORT AUGMENT uri ';'
|
||||
;
|
||||
|
||||
importSpecification
|
||||
: IMPORT configurableUri (DEFERRED? AS typeIdentifier)? combinator* ';'
|
||||
;
|
||||
|
@ -1487,8 +1497,8 @@ typeNotVoidNotFunctionList
|
|||
;
|
||||
|
||||
typeAlias
|
||||
: TYPEDEF typeIdentifier typeParameters? '=' type ';'
|
||||
| TYPEDEF functionTypeAlias
|
||||
: AUGMENT? TYPEDEF typeIdentifier typeParameters? '=' type ';'
|
||||
| AUGMENT? TYPEDEF functionTypeAlias
|
||||
;
|
||||
|
||||
functionTypeAlias
|
||||
|
@ -1647,6 +1657,7 @@ builtInIdentifier
|
|||
|
||||
otherIdentifierNotType
|
||||
: ASYNC
|
||||
| AUGMENT
|
||||
| BASE
|
||||
| HIDE
|
||||
| OF
|
||||
|
@ -1931,6 +1942,10 @@ ASYNC
|
|||
: 'async'
|
||||
;
|
||||
|
||||
AUGMENT
|
||||
: 'augment'
|
||||
;
|
||||
|
||||
BASE
|
||||
: 'base'
|
||||
;
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
// CHANGES:
|
||||
//
|
||||
// v0.41 Include support for augmentation libraries.
|
||||
//
|
||||
// v0.40 Include latest changes to mixin related class modifiers.
|
||||
//
|
||||
// v0.39 Translate actions from Java to Dart.
|
||||
|
@ -272,13 +274,12 @@ topLevelDefinition
|
|||
| EXTERNAL getterSignature ';'
|
||||
| EXTERNAL setterSignature ';'
|
||||
| EXTERNAL finalVarOrType identifierList ';'
|
||||
| getterSignature functionBody
|
||||
| setterSignature functionBody
|
||||
| functionSignature functionBody
|
||||
| (FINAL | CONST) type? staticFinalDeclarationList ';'
|
||||
| LATE FINAL type? initializedIdentifierList ';'
|
||||
| LATE? varOrType identifier ('=' expression)?
|
||||
(',' initializedIdentifier)* ';'
|
||||
| AUGMENT? getterSignature functionBody
|
||||
| AUGMENT? setterSignature functionBody
|
||||
| AUGMENT? functionSignature functionBody
|
||||
| AUGMENT? (FINAL | CONST) type? staticFinalDeclarationList ';'
|
||||
| AUGMENT? LATE FINAL type? initializedIdentifierList ';'
|
||||
| AUGMENT? LATE? varOrType initializedIdentifierList ';'
|
||||
;
|
||||
|
||||
declaredIdentifier
|
||||
|
@ -397,7 +398,7 @@ typeWithParameters
|
|||
;
|
||||
|
||||
classDeclaration
|
||||
: (classModifiers | mixinClassModifiers)
|
||||
: AUGMENT? (classModifiers | mixinClassModifiers)
|
||||
CLASS typeWithParameters superclass? interfaces?
|
||||
LBRACE (metadata classMemberDeclaration)* RBRACE
|
||||
| classModifiers MIXIN? CLASS mixinApplicationClass
|
||||
|
@ -426,7 +427,7 @@ interfaces
|
|||
;
|
||||
|
||||
classMemberDeclaration
|
||||
: methodSignature functionBody
|
||||
: AUGMENT? methodSignature functionBody
|
||||
| declaration ';'
|
||||
;
|
||||
|
||||
|
@ -435,7 +436,7 @@ mixinApplicationClass
|
|||
;
|
||||
|
||||
mixinDeclaration
|
||||
: BASE? MIXIN typeIdentifier typeParameters?
|
||||
: AUGMENT? BASE? MIXIN typeWithParameters
|
||||
(ON typeNotVoidNotFunctionList)? interfaces?
|
||||
LBRACE (metadata mixinMemberDeclaration)* RBRACE
|
||||
;
|
||||
|
@ -446,9 +447,8 @@ mixinMemberDeclaration
|
|||
;
|
||||
|
||||
extensionTypeDeclaration
|
||||
: EXTENSION TYPE CONST? typeWithParameters
|
||||
representationDeclaration
|
||||
interfaces?
|
||||
: AUGMENT? EXTENSION TYPE CONST? typeWithParameters
|
||||
representationDeclaration interfaces?
|
||||
LBRACE (metadata extensionTypeMemberDeclaration)* RBRACE
|
||||
;
|
||||
|
||||
|
@ -463,12 +463,12 @@ extensionTypeMemberDeclaration
|
|||
;
|
||||
|
||||
extensionDeclaration
|
||||
: EXTENSION typeIdentifierNotType? typeParameters? ON type
|
||||
LBRACE (metadata extensionMemberDefinition)* RBRACE
|
||||
: AUGMENT? EXTENSION typeIdentifierNotType? typeParameters? ON type
|
||||
LBRACE (metadata extensionMemberDeclaration)* RBRACE
|
||||
;
|
||||
|
||||
// TODO: We might want to make this more strict.
|
||||
extensionMemberDefinition
|
||||
extensionMemberDeclaration
|
||||
: classMemberDeclaration
|
||||
;
|
||||
|
||||
|
@ -490,17 +490,17 @@ declaration
|
|||
| (EXTERNAL STATIC?)? setterSignature
|
||||
| (EXTERNAL STATIC?)? functionSignature
|
||||
| EXTERNAL (STATIC? finalVarOrType | COVARIANT varOrType) identifierList
|
||||
| ABSTRACT (finalVarOrType | COVARIANT varOrType) identifierList
|
||||
| EXTERNAL? operatorSignature
|
||||
| STATIC (FINAL | CONST) type? staticFinalDeclarationList
|
||||
| STATIC LATE FINAL type? initializedIdentifierList
|
||||
| STATIC LATE? varOrType initializedIdentifierList
|
||||
| COVARIANT LATE FINAL type? identifierList
|
||||
| COVARIANT LATE? varOrType initializedIdentifierList
|
||||
| LATE? (FINAL type? | varOrType) initializedIdentifierList
|
||||
| redirectingFactoryConstructorSignature
|
||||
| constantConstructorSignature (redirection | initializers)?
|
||||
| constructorSignature (redirection | initializers)?
|
||||
| ABSTRACT (finalVarOrType | COVARIANT varOrType) identifierList
|
||||
| AUGMENT? STATIC (FINAL | CONST) type? staticFinalDeclarationList
|
||||
| AUGMENT? STATIC LATE FINAL type? initializedIdentifierList
|
||||
| AUGMENT? STATIC LATE? varOrType initializedIdentifierList
|
||||
| AUGMENT? COVARIANT LATE FINAL type? identifierList
|
||||
| AUGMENT? COVARIANT LATE? varOrType initializedIdentifierList
|
||||
| AUGMENT? LATE? (FINAL type? | varOrType) initializedIdentifierList
|
||||
| AUGMENT? redirectingFactoryConstructorSignature
|
||||
| AUGMENT? constantConstructorSignature (redirection | initializers)?
|
||||
| AUGMENT? constructorSignature (redirection | initializers)?
|
||||
;
|
||||
|
||||
staticFinalDeclarationList
|
||||
|
@ -597,7 +597,7 @@ mixinApplication
|
|||
;
|
||||
|
||||
enumType
|
||||
: ENUM typeIdentifier typeParameters? mixins? interfaces? LBRACE
|
||||
: AUGMENT? ENUM typeWithParameters mixins? interfaces? LBRACE
|
||||
enumEntry (',' enumEntry)* (',')?
|
||||
(';' (metadata classMemberDeclaration)*)?
|
||||
RBRACE
|
||||
|
@ -1366,7 +1366,12 @@ assertion
|
|||
;
|
||||
|
||||
libraryName
|
||||
: metadata LIBRARY dottedIdentifierList? ';'
|
||||
: metadata libraryNameBody ';'
|
||||
;
|
||||
|
||||
libraryNameBody
|
||||
: LIBRARY dottedIdentifierList?
|
||||
| AUGMENT LIBRARY uri
|
||||
;
|
||||
|
||||
dottedIdentifierList
|
||||
|
@ -1375,6 +1380,7 @@ dottedIdentifierList
|
|||
|
||||
importOrExport
|
||||
: libraryImport
|
||||
| libraryAugmentImport
|
||||
| libraryExport
|
||||
;
|
||||
|
||||
|
@ -1382,6 +1388,10 @@ libraryImport
|
|||
: metadata importSpecification
|
||||
;
|
||||
|
||||
libraryAugmentImport
|
||||
: metadata IMPORT AUGMENT uri ';'
|
||||
;
|
||||
|
||||
importSpecification
|
||||
: IMPORT configurableUri (DEFERRED? AS typeIdentifier)? combinator* ';'
|
||||
;
|
||||
|
@ -1493,8 +1503,8 @@ typeNotVoidNotFunctionList
|
|||
;
|
||||
|
||||
typeAlias
|
||||
: TYPEDEF typeIdentifier typeParameters? '=' type ';'
|
||||
| TYPEDEF functionTypeAlias
|
||||
: AUGMENT? TYPEDEF typeWithParameters '=' type ';'
|
||||
| AUGMENT? TYPEDEF functionTypeAlias
|
||||
;
|
||||
|
||||
functionTypeAlias
|
||||
|
@ -1653,6 +1663,7 @@ builtInIdentifier
|
|||
|
||||
otherIdentifierNotType
|
||||
: ASYNC
|
||||
| AUGMENT
|
||||
| BASE
|
||||
| HIDE
|
||||
| OF
|
||||
|
@ -1937,6 +1948,10 @@ ASYNC
|
|||
: 'async'
|
||||
;
|
||||
|
||||
AUGMENT
|
||||
: 'augment'
|
||||
;
|
||||
|
||||
BASE
|
||||
: 'base'
|
||||
;
|
||||
|
|
Loading…
Reference in a new issue