diff --git a/tools/spec_parser/Dart.g b/tools/spec_parser/Dart.g index 65bc14e08d66..43196007bda2 100644 --- a/tools/spec_parser/Dart.g +++ b/tools/spec_parser/Dart.g @@ -4,6 +4,8 @@ // CHANGES: // +// v0.49 Add support for static and top-level members with no implementation. +// // v0.48 Add support for enhanced parts. // // v0.47 Make `augment` a built-in identifier (this happened in the feature @@ -291,10 +293,10 @@ topLevelDefinition | EXTERNAL getterSignature ';' | EXTERNAL setterSignature ';' | EXTERNAL finalVarOrType identifierList ';' - | AUGMENT? getterSignature functionBody - | AUGMENT? setterSignature functionBody - | AUGMENT? functionSignature functionBody - | AUGMENT? (FINAL | CONST) type? staticFinalDeclarationList ';' + | AUGMENT? getterSignature (functionBody | ';') + | AUGMENT? setterSignature (functionBody | ';') + | AUGMENT? functionSignature (functionBody | ';') + | AUGMENT? (FINAL | CONST) type? initializedIdentifierList ';' | AUGMENT? LATE FINAL type? initializedIdentifierList ';' | AUGMENT? LATE? varOrType initializedIdentifierList ';' ; @@ -506,16 +508,16 @@ methodSignature ; declaration - : EXTERNAL factoryConstructorSignature + : EXTERNAL? factoryConstructorSignature | EXTERNAL constantConstructorSignature | EXTERNAL constructorSignature - | (EXTERNAL STATIC?)? getterSignature - | (EXTERNAL STATIC?)? setterSignature - | (EXTERNAL STATIC?)? functionSignature + | EXTERNAL? STATIC? getterSignature + | EXTERNAL? STATIC? setterSignature + | EXTERNAL? STATIC? functionSignature | EXTERNAL (STATIC? finalVarOrType | COVARIANT varOrType) identifierList | EXTERNAL? operatorSignature | ABSTRACT (finalVarOrType | COVARIANT varOrType) identifierList - | AUGMENT? STATIC (FINAL | CONST) type? staticFinalDeclarationList + | AUGMENT? STATIC (FINAL | CONST) type? initializedIdentifierList | AUGMENT? STATIC LATE FINAL type? initializedIdentifierList | AUGMENT? STATIC LATE? varOrType initializedIdentifierList | AUGMENT? COVARIANT LATE FINAL type? identifierList @@ -526,14 +528,6 @@ declaration | AUGMENT? constructorSignature (redirection | initializers)? ; -staticFinalDeclarationList - : staticFinalDeclaration (',' staticFinalDeclaration)* - ; - -staticFinalDeclaration - : identifier '=' expression - ; - operatorSignature : type? OPERATOR operator formalParameterList ; diff --git a/tools/spec_parser/dart_spec_parser/Dart.g4 b/tools/spec_parser/dart_spec_parser/Dart.g4 index d6c098583363..33bf5733a73b 100644 --- a/tools/spec_parser/dart_spec_parser/Dart.g4 +++ b/tools/spec_parser/dart_spec_parser/Dart.g4 @@ -4,6 +4,8 @@ // CHANGES: // +// v0.50 Add support for static and top-level members with no implementation. +// // v0.49 Add support for enhanced parts. // // v0.48 Make `augment` a built-in identifier (this happened in the feature @@ -297,10 +299,10 @@ topLevelDefinition | EXTERNAL getterSignature ';' | EXTERNAL setterSignature ';' | EXTERNAL finalVarOrType identifierList ';' - | AUGMENT? getterSignature functionBody - | AUGMENT? setterSignature functionBody - | AUGMENT? functionSignature functionBody - | AUGMENT? (FINAL | CONST) type? staticFinalDeclarationList ';' + | AUGMENT? getterSignature (functionBody | ';') + | AUGMENT? setterSignature (functionBody | ';') + | AUGMENT? functionSignature (functionBody | ';') + | AUGMENT? (FINAL | CONST) type? initializedIdentifierList ';' | AUGMENT? LATE FINAL type? initializedIdentifierList ';' | AUGMENT? LATE? varOrType initializedIdentifierList ';' ; @@ -512,16 +514,16 @@ methodSignature ; declaration - : EXTERNAL factoryConstructorSignature + : EXTERNAL? factoryConstructorSignature | EXTERNAL constantConstructorSignature | EXTERNAL constructorSignature - | (EXTERNAL STATIC?)? getterSignature - | (EXTERNAL STATIC?)? setterSignature - | (EXTERNAL STATIC?)? functionSignature + | EXTERNAL? STATIC? getterSignature + | EXTERNAL? STATIC? setterSignature + | EXTERNAL? STATIC? functionSignature | EXTERNAL (STATIC? finalVarOrType | COVARIANT varOrType) identifierList | EXTERNAL? operatorSignature | ABSTRACT (finalVarOrType | COVARIANT varOrType) identifierList - | AUGMENT? STATIC (FINAL | CONST) type? staticFinalDeclarationList + | AUGMENT? STATIC (FINAL | CONST) type? initializedIdentifierList | AUGMENT? STATIC LATE FINAL type? initializedIdentifierList | AUGMENT? STATIC LATE? varOrType initializedIdentifierList | AUGMENT? COVARIANT LATE FINAL type? identifierList @@ -532,14 +534,6 @@ declaration | AUGMENT? constructorSignature (redirection | initializers)? ; -staticFinalDeclarationList - : staticFinalDeclaration (',' staticFinalDeclaration)* - ; - -staticFinalDeclaration - : identifier '=' expression - ; - operatorSignature : type? OPERATOR operator formalParameterList ;