Version 2.16.0-56.0.dev
Merge commit '6faa4b70c377ee25c1e08d9abb8fb69b2ee756b3' into 'dev'
diff --git a/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart b/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
index 930f1b0..306c9aa 100644
--- a/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
@@ -285,6 +285,10 @@
Uri fileUri,
TypeAliasBuilder aliasBuilder,
DartType type) {
+ // Don't report the error in case of InvalidType. An error has already been
+ // reported in this case.
+ if (type is InvalidType) return null;
+
Message message;
if (declaration!.isTypeVariable) {
message =
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 2950121..77ec205 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -811,7 +811,8 @@
supertype is TypeVariableBuilder ||
supertype is DynamicTypeDeclarationBuilder ||
supertype is VoidTypeDeclarationBuilder ||
- supertype is NeverTypeDeclarationBuilder) {
+ supertype is NeverTypeDeclarationBuilder ||
+ supertype is TypeAliasBuilder) {
builder.addSyntheticConstructor(_makeDefaultConstructor(
builder, constructorReference, tearOffReference));
} else {
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index 47f59d8..358b947 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -2260,7 +2260,7 @@
List<TypeVariableBuilder>? typeVariables;
Object? name;
int charOffset;
- TypeBuilder? aliasedType;
+ TypeBuilder aliasedType;
if (equals == null) {
List<FormalParameterBuilder>? formals =
pop() as List<FormalParameterBuilder>?;
@@ -2310,6 +2310,14 @@
// elsewhere.
addProblem(
messageTypedefNullableType, equals.charOffset, equals.length);
+ aliasedType = new NamedTypeBuilder.fromTypeDeclarationBuilder(
+ new InvalidTypeDeclarationBuilder(
+ "${name}",
+ messageTypedefNullableType.withLocation(
+ uri, equals.charOffset, equals.length)),
+ const NullabilityBuilder.omitted(),
+ instanceTypeVariableAccess:
+ InstanceTypeVariableAccessState.Allowed);
} else {
// TODO(ahe): We need to start a nested declaration when parsing the
// formals and return type so we can correctly bind
@@ -2323,18 +2331,40 @@
aliasedType = type;
} else {
addProblem(messageTypedefNotType, equals.charOffset, equals.length);
+ aliasedType = new NamedTypeBuilder.fromTypeDeclarationBuilder(
+ new InvalidTypeDeclarationBuilder(
+ "${name}",
+ messageTypedefNotType.withLocation(
+ uri, equals.charOffset, equals.length)),
+ const NullabilityBuilder.omitted(),
+ instanceTypeVariableAccess:
+ InstanceTypeVariableAccessState.Allowed);
}
} else {
+ assert(type is! FunctionTypeBuilder);
// TODO(ahe): Improve this error message.
- addProblem(messageTypedefNotFunction, equals.charOffset, equals.length);
- aliasedType = new NamedTypeBuilder.fromTypeDeclarationBuilder(
- new InvalidTypeDeclarationBuilder(
- "${name}",
- messageTypedefNotType.withLocation(
- uri, equals.charOffset, equals.length)),
- const NullabilityBuilder.omitted(),
- instanceTypeVariableAccess:
- InstanceTypeVariableAccessState.Allowed);
+ if (type is TypeBuilder) {
+ addProblem(
+ messageTypedefNotFunction, equals.charOffset, equals.length);
+ aliasedType = new NamedTypeBuilder.fromTypeDeclarationBuilder(
+ new InvalidTypeDeclarationBuilder(
+ "${name}",
+ messageTypedefNotFunction.withLocation(
+ uri, equals.charOffset, equals.length)),
+ const NullabilityBuilder.omitted(),
+ instanceTypeVariableAccess:
+ InstanceTypeVariableAccessState.Allowed);
+ } else {
+ addProblem(messageTypedefNotType, equals.charOffset, equals.length);
+ aliasedType = new NamedTypeBuilder.fromTypeDeclarationBuilder(
+ new InvalidTypeDeclarationBuilder(
+ "${name}",
+ messageTypedefNotType.withLocation(
+ uri, equals.charOffset, equals.length)),
+ const NullabilityBuilder.omitted(),
+ instanceTypeVariableAccess:
+ InstanceTypeVariableAccessState.Allowed);
+ }
}
}
List<MetadataBuilder>? metadata = pop() as List<MetadataBuilder>?;
diff --git a/pkg/front_end/lib/src/fasta/util/abstracted_ast_nodes.dart b/pkg/front_end/lib/src/fasta/util/abstracted_ast_nodes.dart
index 57ae59a..e731acd 100644
--- a/pkg/front_end/lib/src/fasta/util/abstracted_ast_nodes.dart
+++ b/pkg/front_end/lib/src/fasta/util/abstracted_ast_nodes.dart
@@ -3,14 +3,14 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:_fe_analyzer_shared/src/scanner/token.dart';
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart';
enum Coloring { Untouched, Marked }
abstract class AstNode {
Map<String, List<AstNode>> scope = {};
Container? parent;
- DirectParserASTContent get node;
+ ParserAstNode get node;
Token get startInclusive;
Token get endInclusive;
@@ -30,7 +30,7 @@
List<AstNode> _children = [];
Iterable<AstNode> get children => _children;
- void addChild(AstNode child, Map<DirectParserASTContent, AstNode> map) {
+ void addChild(AstNode child, Map<ParserAstNode, AstNode> map) {
child.parent = this;
_children.add(child);
map[child.node] = child;
@@ -42,9 +42,9 @@
final Uri uri;
@override
- final DirectParserASTContent node;
+ final ParserAstNode node;
- final Map<DirectParserASTContent, AstNode> map;
+ final Map<ParserAstNode, AstNode> map;
TopLevel(this.sourceText, this.uri, this.node, this.map);
@@ -91,7 +91,7 @@
class Class extends Container {
@override
- final DirectParserASTContentTopLevelDeclarationEnd node;
+ final TopLevelDeclarationEnd node;
final String name;
@override
final Token startInclusive;
@@ -138,7 +138,7 @@
class Mixin extends Container {
@override
- final DirectParserASTContentTopLevelDeclarationEnd node;
+ final TopLevelDeclarationEnd node;
final String name;
@override
final Token startInclusive;
@@ -185,7 +185,7 @@
class Extension extends Container {
@override
- final DirectParserASTContentTopLevelDeclarationEnd node;
+ final TopLevelDeclarationEnd node;
final String? name;
@override
final Token startInclusive;
@@ -236,7 +236,7 @@
class ClassConstructor extends AstNode {
@override
- final DirectParserASTContentClassConstructorEnd node;
+ final ClassConstructorEnd node;
final String name;
@override
final Token startInclusive;
@@ -269,7 +269,7 @@
class ClassFactoryMethod extends AstNode {
@override
- final DirectParserASTContentClassFactoryMethodEnd node;
+ final ClassFactoryMethodEnd node;
final String name;
@override
final Token startInclusive;
@@ -302,7 +302,7 @@
class ClassMethod extends AstNode {
@override
- final DirectParserASTContentClassMethodEnd node;
+ final ClassMethodEnd node;
final String name;
@override
final Token startInclusive;
@@ -333,7 +333,7 @@
class ExtensionMethod extends AstNode {
@override
- final DirectParserASTContentExtensionMethodEnd node;
+ final ExtensionMethodEnd node;
final String name;
@override
final Token startInclusive;
@@ -364,7 +364,7 @@
class MixinMethod extends AstNode {
@override
- final DirectParserASTContentMixinMethodEnd node;
+ final MixinMethodEnd node;
final String name;
@override
final Token startInclusive;
@@ -395,7 +395,7 @@
class Enum extends AstNode {
@override
- final DirectParserASTContentEnumEnd node;
+ final EnumEnd node;
final String name;
final List<String> members;
@override
@@ -432,7 +432,7 @@
class Import extends AstNode {
@override
- final DirectParserASTContentImportEnd node;
+ final ImportEnd node;
final Uri firstUri;
final List<Uri>? conditionalUris;
final String? asName;
@@ -475,7 +475,7 @@
class Export extends AstNode {
@override
- final DirectParserASTContentExportEnd node;
+ final ExportEnd node;
final Uri firstUri;
final List<Uri>? conditionalUris;
@override
@@ -510,7 +510,7 @@
class Part extends AstNode {
@override
- final DirectParserASTContentPartEnd node;
+ final PartEnd node;
final Uri uri;
@override
final Token startInclusive;
@@ -541,7 +541,7 @@
class TopLevelFields extends AstNode {
@override
- final DirectParserASTContentTopLevelFieldsEnd node;
+ final TopLevelFieldsEnd node;
final List<String> names;
@override
final Token startInclusive;
@@ -576,7 +576,7 @@
class TopLevelMethod extends AstNode {
@override
- final DirectParserASTContentTopLevelMethodEnd node;
+ final TopLevelMethodEnd node;
final String name;
@override
final Token startInclusive;
@@ -607,7 +607,7 @@
class Typedef extends AstNode {
@override
- final DirectParserASTContentTypedefEnd node;
+ final TypedefEnd node;
final String name;
@override
final Token startInclusive;
@@ -638,7 +638,7 @@
class ClassFields extends AstNode {
@override
- final DirectParserASTContentClassFieldsEnd node;
+ final ClassFieldsEnd node;
final List<String> names;
@override
final Token startInclusive;
@@ -673,7 +673,7 @@
class MixinFields extends AstNode {
@override
- final DirectParserASTContentMixinFieldsEnd node;
+ final MixinFieldsEnd node;
final List<String> names;
@override
final Token startInclusive;
@@ -708,7 +708,7 @@
class ExtensionFields extends AstNode {
@override
- final DirectParserASTContentExtensionFieldsEnd node;
+ final ExtensionFieldsEnd node;
final List<String> names;
@override
final Token startInclusive;
@@ -744,7 +744,7 @@
class Metadata extends AstNode {
@override
- final DirectParserASTContentMetadataEnd node;
+ final MetadataEnd node;
@override
final Token startInclusive;
@override
@@ -774,7 +774,7 @@
class LibraryName extends AstNode {
@override
- final DirectParserASTContentLibraryNameEnd node;
+ final LibraryNameEnd node;
@override
final Token startInclusive;
@override
@@ -804,7 +804,7 @@
class PartOf extends AstNode {
@override
- final DirectParserASTContentPartOfEnd node;
+ final PartOfEnd node;
@override
final Token startInclusive;
@override
@@ -835,7 +835,7 @@
class LanguageVersion extends AstNode {
@override
- final DirectParserASTContent node;
+ final ParserAstNode node;
@override
final Token startInclusive;
@override
diff --git a/pkg/front_end/lib/src/fasta/util/direct_parser_ast.dart b/pkg/front_end/lib/src/fasta/util/direct_parser_ast.dart
deleted file mode 100644
index a5bb20a..0000000
--- a/pkg/front_end/lib/src/fasta/util/direct_parser_ast.dart
+++ /dev/null
@@ -1,1618 +0,0 @@
-// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:typed_data' show Uint8List;
-
-import 'dart:io' show File;
-
-import 'package:_fe_analyzer_shared/src/messages/codes.dart';
-import 'package:_fe_analyzer_shared/src/scanner/scanner.dart'
- show ScannerConfiguration;
-
-import 'package:_fe_analyzer_shared/src/parser/parser.dart'
- show ClassMemberParser, Parser;
-
-import 'package:_fe_analyzer_shared/src/scanner/utf8_bytes_scanner.dart'
- show Utf8BytesScanner;
-
-import 'package:_fe_analyzer_shared/src/scanner/token.dart' show Token;
-
-import 'package:_fe_analyzer_shared/src/parser/listener.dart'
- show UnescapeErrorListener;
-
-import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
-
-import 'package:_fe_analyzer_shared/src/parser/quote.dart' show unescapeString;
-
-import '../source/diet_parser.dart';
-
-import 'direct_parser_ast_helper.dart';
-
-DirectParserASTContentCompilationUnitEnd getAST(List<int> rawBytes,
- {bool includeBody: true,
- bool includeComments: false,
- bool enableExtensionMethods: false,
- bool enableNonNullable: false,
- bool enableTripleShift: false,
- List<Token>? languageVersionsSeen}) {
- Uint8List bytes = new Uint8List(rawBytes.length + 1);
- bytes.setRange(0, rawBytes.length, rawBytes);
-
- ScannerConfiguration scannerConfiguration = new ScannerConfiguration(
- enableExtensionMethods: enableExtensionMethods,
- enableNonNullable: enableNonNullable,
- enableTripleShift: enableTripleShift);
-
- Utf8BytesScanner scanner = new Utf8BytesScanner(
- bytes,
- includeComments: includeComments,
- configuration: scannerConfiguration,
- languageVersionChanged: (scanner, languageVersion) {
- // For now don't do anything, but having it (making it non-null) means the
- // configuration won't be reset.
- languageVersionsSeen?.add(languageVersion);
- },
- );
- Token firstToken = scanner.tokenize();
- // ignore: unnecessary_null_comparison
- if (firstToken == null) {
- throw "firstToken is null";
- }
-
- DirectParserASTListener listener = new DirectParserASTListener();
- Parser parser;
- if (includeBody) {
- parser = new Parser(listener,
- useImplicitCreationExpression: useImplicitCreationExpressionInCfe);
- } else {
- parser = new ClassMemberParser(listener,
- useImplicitCreationExpression: useImplicitCreationExpressionInCfe);
- }
- parser.parseUnit(firstToken);
- return listener.data.single as DirectParserASTContentCompilationUnitEnd;
-}
-
-/// Best-effort visitor for DirectParserASTContent that visits top-level entries
-/// and class members only (i.e. no bodies, no field initializer content, no
-/// names etc).
-class DirectParserASTContentVisitor {
- void accept(DirectParserASTContent node) {
- if (node is DirectParserASTContentCompilationUnitEnd ||
- node is DirectParserASTContentTopLevelDeclarationEnd ||
- node is DirectParserASTContentClassOrMixinOrExtensionBodyEnd ||
- node is DirectParserASTContentMemberEnd) {
- visitChildren(node);
- return;
- }
-
- if (node.type == DirectParserASTType.BEGIN) {
- // Ignored. These are basically just dummy nodes anyway.
- assert(node.children == null);
- return;
- }
- if (node.type == DirectParserASTType.HANDLE) {
- // Ignored at least for know.
- assert(node.children == null);
- return;
- }
- if (node is DirectParserASTContentTypeVariablesEnd ||
- node is DirectParserASTContentTypeArgumentsEnd ||
- node is DirectParserASTContentTypeListEnd ||
- node is DirectParserASTContentFunctionTypeEnd ||
- node is DirectParserASTContentBlockEnd) {
- // Ignored at least for know.
- return;
- }
- if (node is DirectParserASTContentMetadataStarEnd) {
- DirectParserASTContentMetadataStarEnd metadata = node;
- visitMetadataStar(metadata);
- return;
- }
- if (node is DirectParserASTContentTypedefEnd) {
- DirectParserASTContentTypedefEnd typedefDecl = node;
- visitTypedef(
- typedefDecl, typedefDecl.typedefKeyword, typedefDecl.endToken);
- return;
- }
- if (node is DirectParserASTContentClassDeclarationEnd) {
- DirectParserASTContentClassDeclarationEnd cls = node;
- visitClass(cls, cls.beginToken, cls.endToken);
- return;
- }
- if (node is DirectParserASTContentTopLevelMethodEnd) {
- DirectParserASTContentTopLevelMethodEnd method = node;
- visitTopLevelMethod(method, method.beginToken, method.endToken);
- return;
- }
- if (node is DirectParserASTContentClassMethodEnd) {
- DirectParserASTContentClassMethodEnd method = node;
- visitClassMethod(method, method.beginToken, method.endToken);
- return;
- }
- if (node is DirectParserASTContentExtensionMethodEnd) {
- DirectParserASTContentExtensionMethodEnd method = node;
- visitExtensionMethod(method, method.beginToken, method.endToken);
- return;
- }
- if (node is DirectParserASTContentMixinMethodEnd) {
- DirectParserASTContentMixinMethodEnd method = node;
- visitMixinMethod(method, method.beginToken, method.endToken);
- return;
- }
- if (node is DirectParserASTContentImportEnd) {
- DirectParserASTContentImportEnd import = node;
- visitImport(import, import.importKeyword, import.semicolon);
- return;
- }
- if (node is DirectParserASTContentExportEnd) {
- DirectParserASTContentExportEnd export = node;
- visitExport(export, export.exportKeyword, export.semicolon);
- return;
- }
- if (node is DirectParserASTContentTopLevelFieldsEnd) {
- // TODO(jensj): Possibly this could go into more details too
- // (e.g. to split up a field declaration).
- DirectParserASTContentTopLevelFieldsEnd fields = node;
- visitTopLevelFields(fields, fields.beginToken, fields.endToken);
- return;
- }
- if (node is DirectParserASTContentClassFieldsEnd) {
- // TODO(jensj): Possibly this could go into more details too
- // (e.g. to split up a field declaration).
- DirectParserASTContentClassFieldsEnd fields = node;
- visitClassFields(fields, fields.beginToken, fields.endToken);
- return;
- }
- if (node is DirectParserASTContentExtensionFieldsEnd) {
- // TODO(jensj): Possibly this could go into more details too
- // (e.g. to split up a field declaration).
- DirectParserASTContentExtensionFieldsEnd fields = node;
- visitExtensionFields(fields, fields.beginToken, fields.endToken);
- return;
- }
- if (node is DirectParserASTContentMixinFieldsEnd) {
- // TODO(jensj): Possibly this could go into more details too
- // (e.g. to split up a field declaration).
- DirectParserASTContentMixinFieldsEnd fields = node;
- visitMixinFields(fields, fields.beginToken, fields.endToken);
- return;
- }
- if (node is DirectParserASTContentNamedMixinApplicationEnd) {
- DirectParserASTContentNamedMixinApplicationEnd namedMixin = node;
- visitNamedMixin(namedMixin, namedMixin.begin, namedMixin.endToken);
- return;
- }
- if (node is DirectParserASTContentMixinDeclarationEnd) {
- DirectParserASTContentMixinDeclarationEnd declaration = node;
- visitMixin(declaration, declaration.mixinKeyword, declaration.endToken);
- return;
- }
- if (node is DirectParserASTContentEnumEnd) {
- DirectParserASTContentEnumEnd declaration = node;
- visitEnum(declaration, declaration.enumKeyword,
- declaration.leftBrace.endGroup!);
- return;
- }
- if (node is DirectParserASTContentLibraryNameEnd) {
- DirectParserASTContentLibraryNameEnd name = node;
- visitLibraryName(name, name.libraryKeyword, name.semicolon);
- return;
- }
- if (node is DirectParserASTContentPartEnd) {
- DirectParserASTContentPartEnd part = node;
- visitPart(part, part.partKeyword, part.semicolon);
- return;
- }
- if (node is DirectParserASTContentPartOfEnd) {
- DirectParserASTContentPartOfEnd partOf = node;
- visitPartOf(partOf, partOf.partKeyword, partOf.semicolon);
- return;
- }
- if (node is DirectParserASTContentExtensionDeclarationEnd) {
- DirectParserASTContentExtensionDeclarationEnd ext = node;
- visitExtension(ext, ext.extensionKeyword, ext.endToken);
- return;
- }
- if (node is DirectParserASTContentClassConstructorEnd) {
- DirectParserASTContentClassConstructorEnd decl = node;
- visitClassConstructor(decl, decl.beginToken, decl.endToken);
- return;
- }
- if (node is DirectParserASTContentExtensionConstructorEnd) {
- DirectParserASTContentExtensionConstructorEnd decl = node;
- visitExtensionConstructor(decl, decl.beginToken, decl.endToken);
- return;
- }
- if (node is DirectParserASTContentClassFactoryMethodEnd) {
- DirectParserASTContentClassFactoryMethodEnd decl = node;
- visitClassFactoryMethod(decl, decl.beginToken, decl.endToken);
- return;
- }
- if (node is DirectParserASTContentExtensionFactoryMethodEnd) {
- DirectParserASTContentExtensionFactoryMethodEnd decl = node;
- visitExtensionFactoryMethod(decl, decl.beginToken, decl.endToken);
- return;
- }
- if (node is DirectParserASTContentMetadataEnd) {
- DirectParserASTContentMetadataEnd decl = node;
- // TODO(jensj): endToken is not part of the metadata! It's the first token
- // of the next thing.
- visitMetadata(decl, decl.beginToken, decl.endToken.previous!);
- return;
- }
-
- throw "Unknown: $node (${node.runtimeType} @ ${node.what})";
- }
-
- void visitChildren(DirectParserASTContent node) {
- if (node.children == null) return;
- final int numChildren = node.children!.length;
- for (int i = 0; i < numChildren; i++) {
- DirectParserASTContent child = node.children![i];
- accept(child);
- }
- }
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitImport(DirectParserASTContentImportEnd node, Token startInclusive,
- Token? endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitExport(DirectParserASTContentExportEnd node, Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitTypedef(DirectParserASTContentTypedefEnd node, Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers can call visitChildren on this node.
- void visitMetadataStar(DirectParserASTContentMetadataStarEnd node) {
- visitChildren(node);
- }
-
- /// Note: Implementers can call visitChildren on this node.
- void visitClass(DirectParserASTContentClassDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
- visitChildren(node);
- }
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitTopLevelMethod(DirectParserASTContentTopLevelMethodEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitClassMethod(DirectParserASTContentClassMethodEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitExtensionMethod(DirectParserASTContentExtensionMethodEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitMixinMethod(DirectParserASTContentMixinMethodEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitTopLevelFields(DirectParserASTContentTopLevelFieldsEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitClassFields(DirectParserASTContentClassFieldsEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitExtensionFields(DirectParserASTContentExtensionFieldsEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitMixinFields(DirectParserASTContentMixinFieldsEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers can call visitChildren on this node.
- void visitNamedMixin(DirectParserASTContentNamedMixinApplicationEnd node,
- Token startInclusive, Token endInclusive) {
- visitChildren(node);
- }
-
- /// Note: Implementers can call visitChildren on this node.
- void visitMixin(DirectParserASTContentMixinDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
- visitChildren(node);
- }
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitEnum(DirectParserASTContentEnumEnd node, Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitLibraryName(DirectParserASTContentLibraryNameEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitPart(DirectParserASTContentPartEnd node, Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitPartOf(DirectParserASTContentPartOfEnd node, Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers can call visitChildren on this node.
- void visitExtension(DirectParserASTContentExtensionDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
- visitChildren(node);
- }
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitClassConstructor(DirectParserASTContentClassConstructorEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitExtensionConstructor(
- DirectParserASTContentExtensionConstructorEnd node,
- Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitClassFactoryMethod(DirectParserASTContentClassFactoryMethodEnd node,
- Token startInclusive, Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitExtensionFactoryMethod(
- DirectParserASTContentExtensionFactoryMethodEnd node,
- Token startInclusive,
- Token endInclusive) {}
-
- /// Note: Implementers are NOT expected to call visitChildren on this node.
- void visitMetadata(DirectParserASTContentMetadataEnd node,
- Token startInclusive, Token endInclusive) {}
-}
-
-extension GeneralASTContentExtension on DirectParserASTContent {
- bool isClass() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- // ignore: lines_longer_than_80_chars
- is! DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentClassDeclarationEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentClassDeclarationEnd asClass() {
- if (!isClass()) throw "Not class";
- return children!.last as DirectParserASTContentClassDeclarationEnd;
- }
-
- bool isImport() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentImportEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentImportEnd asImport() {
- if (!isImport()) throw "Not import";
- return children!.last as DirectParserASTContentImportEnd;
- }
-
- bool isExport() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentExportEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentExportEnd asExport() {
- if (!isExport()) throw "Not export";
- return children!.last as DirectParserASTContentExportEnd;
- }
-
- bool isEnum() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentEnumEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentEnumEnd asEnum() {
- if (!isEnum()) throw "Not enum";
- return children!.last as DirectParserASTContentEnumEnd;
- }
-
- bool isTypedef() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentTypedefEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentTypedefEnd asTypedef() {
- if (!isTypedef()) throw "Not typedef";
- return children!.last as DirectParserASTContentTypedefEnd;
- }
-
- bool isScript() {
- if (this is! DirectParserASTContentScriptHandle) {
- return false;
- }
- return true;
- }
-
- DirectParserASTContentScriptHandle asScript() {
- if (!isScript()) throw "Not script";
- return this as DirectParserASTContentScriptHandle;
- }
-
- bool isExtension() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentExtensionDeclarationPreludeBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentExtensionDeclarationEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentExtensionDeclarationEnd asExtension() {
- if (!isExtension()) throw "Not extension";
- return children!.last as DirectParserASTContentExtensionDeclarationEnd;
- }
-
- bool isInvalidTopLevelDeclaration() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first is! DirectParserASTContentTopLevelMemberBegin) {
- return false;
- }
- if (children!.last
- is! DirectParserASTContentInvalidTopLevelDeclarationHandle) {
- return false;
- }
-
- return true;
- }
-
- bool isRecoverableError() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentRecoverableErrorHandle) {
- return false;
- }
-
- return true;
- }
-
- bool isRecoverImport() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentRecoverImportHandle) {
- return false;
- }
-
- return true;
- }
-
- bool isMixinDeclaration() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- // ignore: lines_longer_than_80_chars
- is! DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentMixinDeclarationEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentMixinDeclarationEnd asMixinDeclaration() {
- if (!isMixinDeclaration()) throw "Not mixin declaration";
- return children!.last as DirectParserASTContentMixinDeclarationEnd;
- }
-
- bool isNamedMixinDeclaration() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- // ignore: lines_longer_than_80_chars
- is! DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentNamedMixinApplicationEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentNamedMixinApplicationEnd asNamedMixinDeclaration() {
- if (!isNamedMixinDeclaration()) throw "Not named mixin declaration";
- return children!.last as DirectParserASTContentNamedMixinApplicationEnd;
- }
-
- bool isTopLevelMethod() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first is! DirectParserASTContentTopLevelMemberBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentTopLevelMethodEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentTopLevelMethodEnd asTopLevelMethod() {
- if (!isTopLevelMethod()) throw "Not top level method";
- return children!.last as DirectParserASTContentTopLevelMethodEnd;
- }
-
- bool isTopLevelFields() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first is! DirectParserASTContentTopLevelMemberBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentTopLevelFieldsEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentTopLevelFieldsEnd asTopLevelFields() {
- if (!isTopLevelFields()) throw "Not top level fields";
- return children!.last as DirectParserASTContentTopLevelFieldsEnd;
- }
-
- bool isLibraryName() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentLibraryNameEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentLibraryNameEnd asLibraryName() {
- if (!isLibraryName()) throw "Not library name";
- return children!.last as DirectParserASTContentLibraryNameEnd;
- }
-
- bool isPart() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentPartEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentPartEnd asPart() {
- if (!isPart()) throw "Not part";
- return children!.last as DirectParserASTContentPartEnd;
- }
-
- bool isPartOf() {
- if (this is! DirectParserASTContentTopLevelDeclarationEnd) {
- return false;
- }
- if (children!.first
- is! DirectParserASTContentUncategorizedTopLevelDeclarationBegin) {
- return false;
- }
- if (children!.last is! DirectParserASTContentPartOfEnd) {
- return false;
- }
-
- return true;
- }
-
- DirectParserASTContentPartOfEnd asPartOf() {
- if (!isPartOf()) throw "Not part of";
- return children!.last as DirectParserASTContentPartOfEnd;
- }
-
- bool isMetadata() {
- if (this is! DirectParserASTContentMetadataStarEnd) {
- return false;
- }
- if (children!.first is! DirectParserASTContentMetadataStarBegin) {
- return false;
- }
- return true;
- }
-
- DirectParserASTContentMetadataStarEnd asMetadata() {
- if (!isMetadata()) throw "Not metadata";
- return this as DirectParserASTContentMetadataStarEnd;
- }
-
- bool isFunctionBody() {
- if (this is DirectParserASTContentBlockFunctionBodyEnd) return true;
- return false;
- }
-
- DirectParserASTContentBlockFunctionBodyEnd asFunctionBody() {
- if (!isFunctionBody()) throw "Not function body";
- return this as DirectParserASTContentBlockFunctionBodyEnd;
- }
-
- List<E> recursivelyFind<E extends DirectParserASTContent>() {
- Set<E> result = {};
- _recursivelyFindInternal(this, result);
- return result.toList();
- }
-
- static void _recursivelyFindInternal<E extends DirectParserASTContent>(
- DirectParserASTContent node, Set<E> result) {
- if (node is E) {
- result.add(node);
- return;
- }
- if (node.children == null) return;
- for (DirectParserASTContent child in node.children!) {
- _recursivelyFindInternal(child, result);
- }
- }
-
- void debugDumpNodeRecursively({String indent = ""}) {
- print("$indent${runtimeType} (${what}) "
- "(${deprecatedArguments})");
- if (children == null) return;
- for (DirectParserASTContent child in children!) {
- child.debugDumpNodeRecursively(indent: " $indent");
- }
- }
-}
-
-extension MetadataStarExtension on DirectParserASTContentMetadataStarEnd {
- List<DirectParserASTContentMetadataEnd> getMetadataEntries() {
- List<DirectParserASTContentMetadataEnd> result = [];
- for (DirectParserASTContent topLevel in children!) {
- if (topLevel is! DirectParserASTContentMetadataEnd) continue;
- result.add(topLevel);
- }
- return result;
- }
-}
-
-extension CompilationUnitExtension on DirectParserASTContentCompilationUnitEnd {
- List<DirectParserASTContentTopLevelDeclarationEnd> getClasses() {
- List<DirectParserASTContentTopLevelDeclarationEnd> result = [];
- for (DirectParserASTContent topLevel in children!) {
- if (!topLevel.isClass()) continue;
- result.add(topLevel as DirectParserASTContentTopLevelDeclarationEnd);
- }
- return result;
- }
-
- List<DirectParserASTContentTopLevelDeclarationEnd> getMixinDeclarations() {
- List<DirectParserASTContentTopLevelDeclarationEnd> result = [];
- for (DirectParserASTContent topLevel in children!) {
- if (!topLevel.isMixinDeclaration()) continue;
- result.add(topLevel as DirectParserASTContentTopLevelDeclarationEnd);
- }
- return result;
- }
-
- List<DirectParserASTContentImportEnd> getImports() {
- List<DirectParserASTContentImportEnd> result = [];
- for (DirectParserASTContent topLevel in children!) {
- if (!topLevel.isImport()) continue;
- result.add(topLevel.children!.last as DirectParserASTContentImportEnd);
- }
- return result;
- }
-
- List<DirectParserASTContentExportEnd> getExports() {
- List<DirectParserASTContentExportEnd> result = [];
- for (DirectParserASTContent topLevel in children!) {
- if (!topLevel.isExport()) continue;
- result.add(topLevel.children!.last as DirectParserASTContentExportEnd);
- }
- return result;
- }
-
- // List<DirectParserASTContentMetadataStarEnd> getMetadata() {
- // List<DirectParserASTContentMetadataStarEnd> result = [];
- // for (DirectParserASTContent topLevel in children) {
- // if (!topLevel.isMetadata()) continue;
- // result.add(topLevel);
- // }
- // return result;
- // }
-
- // List<DirectParserASTContentEnumEnd> getEnums() {
- // List<DirectParserASTContentEnumEnd> result = [];
- // for (DirectParserASTContent topLevel in children) {
- // if (!topLevel.isEnum()) continue;
- // result.add(topLevel.children.last);
- // }
- // return result;
- // }
-
- // List<DirectParserASTContentFunctionTypeAliasEnd> getTypedefs() {
- // List<DirectParserASTContentFunctionTypeAliasEnd> result = [];
- // for (DirectParserASTContent topLevel in children) {
- // if (!topLevel.isTypedef()) continue;
- // result.add(topLevel.children.last);
- // }
- // return result;
- // }
-
- // List<DirectParserASTContentMixinDeclarationEnd> getMixinDeclarations() {
- // List<DirectParserASTContentMixinDeclarationEnd> result = [];
- // for (DirectParserASTContent topLevel in children) {
- // if (!topLevel.isMixinDeclaration()) continue;
- // result.add(topLevel.children.last);
- // }
- // return result;
- // }
-
- // List<DirectParserASTContentTopLevelMethodEnd> getTopLevelMethods() {
- // List<DirectParserASTContentTopLevelMethodEnd> result = [];
- // for (DirectParserASTContent topLevel in children) {
- // if (!topLevel.isTopLevelMethod()) continue;
- // result.add(topLevel.children.last);
- // }
- // return result;
- // }
-
- DirectParserASTContentCompilationUnitBegin getBegin() {
- return children!.first as DirectParserASTContentCompilationUnitBegin;
- }
-}
-
-extension TopLevelDeclarationExtension
- on DirectParserASTContentTopLevelDeclarationEnd {
- DirectParserASTContentIdentifierHandle getIdentifier() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) return child;
- }
- throw "Not found.";
- }
-
- DirectParserASTContentClassDeclarationEnd getClassDeclaration() {
- if (!isClass()) {
- throw "Not a class";
- }
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentClassDeclarationEnd) {
- return child;
- }
- }
- throw "Not found.";
- }
-}
-
-extension MixinDeclarationExtension
- on DirectParserASTContentMixinDeclarationEnd {
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd
- getClassOrMixinOrExtensionBody() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentClassOrMixinOrExtensionBodyEnd) {
- return child;
- }
- }
- throw "Not found.";
- }
-}
-
-extension ClassDeclarationExtension
- on DirectParserASTContentClassDeclarationEnd {
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd
- getClassOrMixinOrExtensionBody() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentClassOrMixinOrExtensionBodyEnd) {
- return child;
- }
- }
- throw "Not found.";
- }
-
- DirectParserASTContentClassExtendsHandle getClassExtends() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentClassExtendsHandle) return child;
- }
- throw "Not found.";
- }
-
- DirectParserASTContentClassOrMixinImplementsHandle getClassImplements() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentClassOrMixinImplementsHandle) {
- return child;
- }
- }
- throw "Not found.";
- }
-
- DirectParserASTContentClassWithClauseHandle? getClassWithClause() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentClassWithClauseHandle) {
- return child;
- }
- }
- return null;
- }
-}
-
-extension ClassOrMixinBodyExtension
- on DirectParserASTContentClassOrMixinOrExtensionBodyEnd {
- List<DirectParserASTContentMemberEnd> getMembers() {
- List<DirectParserASTContentMemberEnd> members = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentMemberEnd) {
- members.add(child);
- }
- }
- return members;
- }
-}
-
-extension MemberExtension on DirectParserASTContentMemberEnd {
- bool isClassConstructor() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassConstructorEnd) return true;
- return false;
- }
-
- DirectParserASTContentClassConstructorEnd getClassConstructor() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassConstructorEnd) return child;
- throw "Not found";
- }
-
- bool isClassFactoryMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassFactoryMethodEnd) return true;
- return false;
- }
-
- DirectParserASTContentClassFactoryMethodEnd getClassFactoryMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassFactoryMethodEnd) return child;
- throw "Not found";
- }
-
- bool isClassFields() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassFieldsEnd) return true;
- return false;
- }
-
- DirectParserASTContentClassFieldsEnd getClassFields() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassFieldsEnd) return child;
- throw "Not found";
- }
-
- bool isMixinFields() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinFieldsEnd) return true;
- return false;
- }
-
- DirectParserASTContentMixinFieldsEnd getMixinFields() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinFieldsEnd) return child;
- throw "Not found";
- }
-
- bool isMixinMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinMethodEnd) return true;
- return false;
- }
-
- DirectParserASTContentMixinMethodEnd getMixinMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinMethodEnd) return child;
- throw "Not found";
- }
-
- bool isMixinFactoryMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinFactoryMethodEnd) return true;
- return false;
- }
-
- DirectParserASTContentMixinFactoryMethodEnd getMixinFactoryMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinFactoryMethodEnd) return child;
- throw "Not found";
- }
-
- bool isMixinConstructor() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinConstructorEnd) return true;
- return false;
- }
-
- DirectParserASTContentMixinConstructorEnd getMixinConstructor() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentMixinConstructorEnd) return child;
- throw "Not found";
- }
-
- bool isClassMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassMethodEnd) return true;
- return false;
- }
-
- DirectParserASTContentClassMethodEnd getClassMethod() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentClassMethodEnd) return child;
- throw "Not found";
- }
-
- bool isClassRecoverableError() {
- DirectParserASTContent child = children![1];
- if (child is DirectParserASTContentRecoverableErrorHandle) return true;
- return false;
- }
-}
-
-extension MixinFieldsExtension on DirectParserASTContentMixinFieldsEnd {
- List<DirectParserASTContentIdentifierHandle> getFieldIdentifiers() {
- int countLeft = count;
- List<DirectParserASTContentIdentifierHandle>? identifiers;
- for (int i = children!.length - 1; i >= 0; i--) {
- DirectParserASTContent child = children![i];
- if (child is DirectParserASTContentIdentifierHandle &&
- child.context == IdentifierContext.fieldDeclaration) {
- countLeft--;
- if (identifiers == null) {
- identifiers = new List<DirectParserASTContentIdentifierHandle>.filled(
- count, child);
- } else {
- identifiers[countLeft] = child;
- }
- if (countLeft == 0) break;
- }
- }
- if (countLeft != 0) throw "Didn't find the expected number of identifiers";
- return identifiers ?? [];
- }
-}
-
-extension ExtensionFieldsExtension on DirectParserASTContentExtensionFieldsEnd {
- List<DirectParserASTContentIdentifierHandle> getFieldIdentifiers() {
- int countLeft = count;
- List<DirectParserASTContentIdentifierHandle>? identifiers;
- for (int i = children!.length - 1; i >= 0; i--) {
- DirectParserASTContent child = children![i];
- if (child is DirectParserASTContentIdentifierHandle &&
- child.context == IdentifierContext.fieldDeclaration) {
- countLeft--;
- if (identifiers == null) {
- identifiers = new List<DirectParserASTContentIdentifierHandle>.filled(
- count, child);
- } else {
- identifiers[countLeft] = child;
- }
- if (countLeft == 0) break;
- }
- }
- if (countLeft != 0) throw "Didn't find the expected number of identifiers";
- return identifiers ?? [];
- }
-}
-
-extension ClassFieldsExtension on DirectParserASTContentClassFieldsEnd {
- List<DirectParserASTContentIdentifierHandle> getFieldIdentifiers() {
- int countLeft = count;
- List<DirectParserASTContentIdentifierHandle>? identifiers;
- for (int i = children!.length - 1; i >= 0; i--) {
- DirectParserASTContent child = children![i];
- if (child is DirectParserASTContentIdentifierHandle &&
- child.context == IdentifierContext.fieldDeclaration) {
- countLeft--;
- if (identifiers == null) {
- identifiers = new List<DirectParserASTContentIdentifierHandle>.filled(
- count, child);
- } else {
- identifiers[countLeft] = child;
- }
- if (countLeft == 0) break;
- }
- }
- if (countLeft != 0) throw "Didn't find the expected number of identifiers";
- return identifiers ?? [];
- }
-
- DirectParserASTContentTypeHandle? getFirstType() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentTypeHandle) return child;
- }
- return null;
- }
-
- DirectParserASTContentFieldInitializerEnd? getFieldInitializer() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentFieldInitializerEnd) return child;
- }
- return null;
- }
-}
-
-extension EnumExtension on DirectParserASTContentEnumEnd {
- List<DirectParserASTContentIdentifierHandle> getIdentifiers() {
- List<DirectParserASTContentIdentifierHandle> ids = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) ids.add(child);
- }
- return ids;
- }
-}
-
-extension ExtensionDeclarationExtension
- on DirectParserASTContentExtensionDeclarationEnd {
- List<DirectParserASTContentIdentifierHandle> getIdentifiers() {
- List<DirectParserASTContentIdentifierHandle> ids = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) ids.add(child);
- }
- return ids;
- }
-}
-
-extension TopLevelMethodExtension on DirectParserASTContentTopLevelMethodEnd {
- DirectParserASTContentIdentifierHandle getNameIdentifier() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) {
- if (child.context == IdentifierContext.topLevelFunctionDeclaration) {
- return child;
- }
- }
- }
- throw "Didn't find the name identifier!";
- }
-}
-
-extension TypedefExtension on DirectParserASTContentTypedefEnd {
- DirectParserASTContentIdentifierHandle getNameIdentifier() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) {
- if (child.context == IdentifierContext.typedefDeclaration) {
- return child;
- }
- }
- }
- throw "Didn't find the name identifier!";
- }
-}
-
-extension ImportExtension on DirectParserASTContentImportEnd {
- DirectParserASTContentIdentifierHandle? getImportPrefix() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) {
- if (child.context == IdentifierContext.importPrefixDeclaration) {
- return child;
- }
- }
- }
- }
-
- String getImportUriString() {
- StringBuffer sb = new StringBuffer();
- bool foundOne = false;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentLiteralStringEnd) {
- DirectParserASTContentLiteralStringBegin uri =
- child.children!.single as DirectParserASTContentLiteralStringBegin;
- sb.write(unescapeString(
- uri.token.lexeme, uri.token, const UnescapeErrorListenerDummy()));
- foundOne = true;
- }
- }
- if (!foundOne) throw "Didn't find any";
- return sb.toString();
- }
-
- List<String>? getConditionalImportUriStrings() {
- List<String>? result;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentConditionalUrisEnd) {
- for (DirectParserASTContent child2 in child.children!) {
- if (child2 is DirectParserASTContentConditionalUriEnd) {
- DirectParserASTContentLiteralStringEnd end =
- child2.children!.last as DirectParserASTContentLiteralStringEnd;
- DirectParserASTContentLiteralStringBegin uri = end.children!.single
- as DirectParserASTContentLiteralStringBegin;
- (result ??= []).add(unescapeString(uri.token.lexeme, uri.token,
- const UnescapeErrorListenerDummy()));
- }
- }
- return result;
- }
- }
- return result;
- }
-}
-
-extension ExportExtension on DirectParserASTContentExportEnd {
- String getExportUriString() {
- StringBuffer sb = new StringBuffer();
- bool foundOne = false;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentLiteralStringEnd) {
- DirectParserASTContentLiteralStringBegin uri =
- child.children!.single as DirectParserASTContentLiteralStringBegin;
- sb.write(unescapeString(
- uri.token.lexeme, uri.token, const UnescapeErrorListenerDummy()));
- foundOne = true;
- }
- }
- if (!foundOne) throw "Didn't find any";
- return sb.toString();
- }
-
- List<String>? getConditionalExportUriStrings() {
- List<String>? result;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentConditionalUrisEnd) {
- for (DirectParserASTContent child2 in child.children!) {
- if (child2 is DirectParserASTContentConditionalUriEnd) {
- DirectParserASTContentLiteralStringEnd end =
- child2.children!.last as DirectParserASTContentLiteralStringEnd;
- DirectParserASTContentLiteralStringBegin uri = end.children!.single
- as DirectParserASTContentLiteralStringBegin;
- (result ??= []).add(unescapeString(uri.token.lexeme, uri.token,
- const UnescapeErrorListenerDummy()));
- }
- }
- return result;
- }
- }
- return result;
- }
-}
-
-extension PartExtension on DirectParserASTContentPartEnd {
- String getPartUriString() {
- StringBuffer sb = new StringBuffer();
- bool foundOne = false;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentLiteralStringEnd) {
- DirectParserASTContentLiteralStringBegin uri =
- child.children!.single as DirectParserASTContentLiteralStringBegin;
- sb.write(unescapeString(
- uri.token.lexeme, uri.token, const UnescapeErrorListenerDummy()));
- foundOne = true;
- }
- }
- if (!foundOne) throw "Didn't find any";
- return sb.toString();
- }
-}
-
-class UnescapeErrorListenerDummy implements UnescapeErrorListener {
- const UnescapeErrorListenerDummy();
-
- @override
- void handleUnescapeError(
- Message message, covariant location, int offset, int length) {
- // Purposely doesn't do anything.
- }
-}
-
-extension TopLevelFieldsExtension on DirectParserASTContentTopLevelFieldsEnd {
- List<DirectParserASTContentIdentifierHandle> getFieldIdentifiers() {
- int countLeft = count;
- List<DirectParserASTContentIdentifierHandle>? identifiers;
- for (int i = children!.length - 1; i >= 0; i--) {
- DirectParserASTContent child = children![i];
- if (child is DirectParserASTContentIdentifierHandle &&
- child.context == IdentifierContext.topLevelVariableDeclaration) {
- countLeft--;
- if (identifiers == null) {
- identifiers = new List<DirectParserASTContentIdentifierHandle>.filled(
- count, child);
- } else {
- identifiers[countLeft] = child;
- }
- if (countLeft == 0) break;
- }
- }
- if (countLeft != 0) throw "Didn't find the expected number of identifiers";
- return identifiers ?? [];
- }
-}
-
-extension ClassMethodExtension on DirectParserASTContentClassMethodEnd {
- DirectParserASTContentBlockFunctionBodyEnd? getBlockFunctionBody() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentBlockFunctionBodyEnd) {
- return child;
- }
- }
- return null;
- }
-
- String getNameIdentifier() {
- bool foundType = false;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentTypeHandle ||
- child is DirectParserASTContentNoTypeHandle ||
- child is DirectParserASTContentVoidKeywordHandle ||
- child is DirectParserASTContentFunctionTypeEnd) {
- foundType = true;
- }
- if (foundType && child is DirectParserASTContentIdentifierHandle) {
- return child.token.lexeme;
- } else if (foundType &&
- child is DirectParserASTContentOperatorNameHandle) {
- return child.token.lexeme;
- }
- }
- throw "No identifier found: $children";
- }
-}
-
-extension MixinMethodExtension on DirectParserASTContentMixinMethodEnd {
- String getNameIdentifier() {
- bool foundType = false;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentTypeHandle ||
- child is DirectParserASTContentNoTypeHandle ||
- child is DirectParserASTContentVoidKeywordHandle) {
- foundType = true;
- }
- if (foundType && child is DirectParserASTContentIdentifierHandle) {
- return child.token.lexeme;
- } else if (foundType &&
- child is DirectParserASTContentOperatorNameHandle) {
- return child.token.lexeme;
- }
- }
- throw "No identifier found: $children";
- }
-}
-
-extension ExtensionMethodExtension on DirectParserASTContentExtensionMethodEnd {
- String getNameIdentifier() {
- bool foundType = false;
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentTypeHandle ||
- child is DirectParserASTContentNoTypeHandle ||
- child is DirectParserASTContentVoidKeywordHandle) {
- foundType = true;
- }
- if (foundType && child is DirectParserASTContentIdentifierHandle) {
- return child.token.lexeme;
- } else if (foundType &&
- child is DirectParserASTContentOperatorNameHandle) {
- return child.token.lexeme;
- }
- }
- throw "No identifier found: $children";
- }
-}
-
-extension ClassFactoryMethodExtension
- on DirectParserASTContentClassFactoryMethodEnd {
- List<DirectParserASTContentIdentifierHandle> getIdentifiers() {
- List<DirectParserASTContentIdentifierHandle> result = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) {
- result.add(child);
- } else if (child is DirectParserASTContentFormalParametersEnd) {
- break;
- }
- }
- return result;
- }
-}
-
-extension ClassConstructorExtension
- on DirectParserASTContentClassConstructorEnd {
- DirectParserASTContentFormalParametersEnd getFormalParameters() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentFormalParametersEnd) {
- return child;
- }
- }
- throw "Not found";
- }
-
- DirectParserASTContentInitializersEnd? getInitializers() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentInitializersEnd) {
- return child;
- }
- }
- return null;
- }
-
- DirectParserASTContentBlockFunctionBodyEnd? getBlockFunctionBody() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentBlockFunctionBodyEnd) {
- return child;
- }
- }
- return null;
- }
-
- List<DirectParserASTContentIdentifierHandle> getIdentifiers() {
- List<DirectParserASTContentIdentifierHandle> result = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentIdentifierHandle) {
- result.add(child);
- }
- }
- return result;
- }
-}
-
-extension FormalParametersExtension
- on DirectParserASTContentFormalParametersEnd {
- List<DirectParserASTContentFormalParameterEnd> getFormalParameters() {
- List<DirectParserASTContentFormalParameterEnd> result = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentFormalParameterEnd) {
- result.add(child);
- }
- }
- return result;
- }
-
- DirectParserASTContentOptionalFormalParametersEnd?
- getOptionalFormalParameters() {
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentOptionalFormalParametersEnd) {
- return child;
- }
- }
- return null;
- }
-}
-
-extension FormalParameterExtension on DirectParserASTContentFormalParameterEnd {
- DirectParserASTContentFormalParameterBegin getBegin() {
- return children!.first as DirectParserASTContentFormalParameterBegin;
- }
-}
-
-extension OptionalFormalParametersExtension
- on DirectParserASTContentOptionalFormalParametersEnd {
- List<DirectParserASTContentFormalParameterEnd> getFormalParameters() {
- List<DirectParserASTContentFormalParameterEnd> result = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentFormalParameterEnd) {
- result.add(child);
- }
- }
- return result;
- }
-}
-
-extension InitializersExtension on DirectParserASTContentInitializersEnd {
- List<DirectParserASTContentInitializerEnd> getInitializers() {
- List<DirectParserASTContentInitializerEnd> result = [];
- for (DirectParserASTContent child in children!) {
- if (child is DirectParserASTContentInitializerEnd) {
- result.add(child);
- }
- }
- return result;
- }
-
- DirectParserASTContentInitializersBegin getBegin() {
- return children!.first as DirectParserASTContentInitializersBegin;
- }
-}
-
-extension InitializerExtension on DirectParserASTContentInitializerEnd {
- DirectParserASTContentInitializerBegin getBegin() {
- return children!.first as DirectParserASTContentInitializerBegin;
- }
-}
-
-void main(List<String> args) {
- File f = new File(args[0]);
- Uint8List data = f.readAsBytesSync();
- DirectParserASTContent ast = getAST(data);
- if (args.length > 1 && args[1] == "--benchmark") {
- Stopwatch stopwatch = new Stopwatch()..start();
- int numRuns = 100;
- for (int i = 0; i < numRuns; i++) {
- DirectParserASTContent ast2 = getAST(data);
- if (ast.what != ast2.what) {
- throw "Not the same result every time";
- }
- }
- stopwatch.stop();
- print("First $numRuns took ${stopwatch.elapsedMilliseconds} ms "
- "(i.e. ${stopwatch.elapsedMilliseconds / numRuns}ms/iteration)");
- stopwatch = new Stopwatch()..start();
- numRuns = 2500;
- for (int i = 0; i < numRuns; i++) {
- DirectParserASTContent ast2 = getAST(data);
- if (ast.what != ast2.what) {
- throw "Not the same result every time";
- }
- }
- stopwatch.stop();
- print("Next $numRuns took ${stopwatch.elapsedMilliseconds} ms "
- "(i.e. ${stopwatch.elapsedMilliseconds / numRuns}ms/iteration)");
- } else {
- print(ast);
- }
-}
-
-class DirectParserASTListener extends AbstractDirectParserASTListener {
- @override
- void seen(DirectParserASTContent entry) {
- switch (entry.type) {
- case DirectParserASTType.BEGIN:
- case DirectParserASTType.HANDLE:
- // This just adds stuff.
- data.add(entry);
- break;
- case DirectParserASTType.END:
- // End should gobble up everything until the corresponding begin (which
- // should be the latest begin).
- int? beginIndex;
- for (int i = data.length - 1; i >= 0; i--) {
- if (data[i].type == DirectParserASTType.BEGIN) {
- beginIndex = i;
- break;
- }
- }
- if (beginIndex == null) {
- throw "Couldn't find a begin for ${entry.what}. Has:\n"
- "${data.map((e) => "${e.what}: ${e.type}").join("\n")}";
- }
- String begin = data[beginIndex].what;
- String end = entry.what;
- if (begin == end) {
- // Exact match.
- } else if (end == "TopLevelDeclaration" &&
- (begin == "ExtensionDeclarationPrelude" ||
- begin == "ClassOrMixinOrNamedMixinApplicationPrelude" ||
- begin == "TopLevelMember" ||
- begin == "UncategorizedTopLevelDeclaration")) {
- // endTopLevelDeclaration is started by one of
- // beginExtensionDeclarationPrelude,
- // beginClassOrNamedMixinApplicationPrelude
- // beginTopLevelMember or beginUncategorizedTopLevelDeclaration.
- } else if (begin == "Method" &&
- (end == "ClassConstructor" ||
- end == "ClassMethod" ||
- end == "ExtensionConstructor" ||
- end == "ExtensionMethod" ||
- end == "MixinConstructor" ||
- end == "MixinMethod")) {
- // beginMethod is ended by one of endClassConstructor, endClassMethod,
- // endExtensionMethod, endMixinConstructor or endMixinMethod.
- } else if (begin == "Fields" &&
- (end == "TopLevelFields" ||
- end == "ClassFields" ||
- end == "MixinFields" ||
- end == "ExtensionFields")) {
- // beginFields is ended by one of endTopLevelFields, endMixinFields or
- // endExtensionFields.
- } else if (begin == "ForStatement" && end == "ForIn") {
- // beginForStatement is ended by either endForStatement or endForIn.
- } else if (begin == "FactoryMethod" &&
- (end == "ClassFactoryMethod" ||
- end == "MixinFactoryMethod" ||
- end == "ExtensionFactoryMethod")) {
- // beginFactoryMethod is ended by either endClassFactoryMethod,
- // endMixinFactoryMethod or endExtensionFactoryMethod.
- } else if (begin == "ForControlFlow" && (end == "ForInControlFlow")) {
- // beginForControlFlow is ended by either endForControlFlow or
- // endForInControlFlow.
- } else if (begin == "IfControlFlow" && (end == "IfElseControlFlow")) {
- // beginIfControlFlow is ended by either endIfControlFlow or
- // endIfElseControlFlow.
- } else if (begin == "AwaitExpression" &&
- (end == "InvalidAwaitExpression")) {
- // beginAwaitExpression is ended by either endAwaitExpression or
- // endInvalidAwaitExpression.
- } else if (begin == "YieldStatement" &&
- (end == "InvalidYieldStatement")) {
- // beginYieldStatement is ended by either endYieldStatement or
- // endInvalidYieldStatement.
- } else {
- throw "Unknown combination: begin$begin and end$end";
- }
- List<DirectParserASTContent> children = data.sublist(beginIndex);
- for (DirectParserASTContent child in children) {
- child.parent = entry;
- }
- data.length = beginIndex;
- data.add(entry..children = children);
- break;
- }
- }
-
- @override
- void reportVarianceModifierNotEnabled(Token? variance) {
- throw new UnimplementedError();
- }
-
- @override
- Uri get uri => throw new UnimplementedError();
-
- @override
- void logEvent(String name) {
- throw new UnimplementedError();
- }
-}
diff --git a/pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart b/pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart
deleted file mode 100644
index b0a2688..0000000
--- a/pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart
+++ /dev/null
@@ -1,7642 +0,0 @@
-// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:_fe_analyzer_shared/src/parser/assert.dart';
-import 'package:_fe_analyzer_shared/src/parser/block_kind.dart';
-import 'package:_fe_analyzer_shared/src/parser/constructor_reference_context.dart';
-import 'package:_fe_analyzer_shared/src/parser/declaration_kind.dart';
-import 'package:_fe_analyzer_shared/src/parser/formal_parameter_kind.dart';
-import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
-import 'package:_fe_analyzer_shared/src/parser/listener.dart';
-import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
-import 'package:_fe_analyzer_shared/src/scanner/error_token.dart';
-import 'package:_fe_analyzer_shared/src/scanner/token.dart';
-import 'package:front_end/src/fasta/messages.dart';
-
-// ignore_for_file: lines_longer_than_80_chars
-
-// THIS FILE IS AUTO GENERATED BY
-// 'tool/_fasta/direct_parser_ast_helper_creator.dart'
-// Run this command to update it:
-// 'dart pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart'
-
-abstract class DirectParserASTContent {
- final String what;
- final DirectParserASTType type;
- Map<String, Object?> get deprecatedArguments;
- List<DirectParserASTContent>? children;
- DirectParserASTContent? parent;
-
- DirectParserASTContent(this.what, this.type);
-
- // TODO(jensj): Compare two ASTs.
-}
-
-enum DirectParserASTType { BEGIN, END, HANDLE }
-
-abstract class AbstractDirectParserASTListener implements Listener {
- List<DirectParserASTContent> data = [];
-
- void seen(DirectParserASTContent entry);
-
- @override
- void beginArguments(Token token) {
- DirectParserASTContentArgumentsBegin data =
- new DirectParserASTContentArgumentsBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endArguments(int count, Token beginToken, Token endToken) {
- DirectParserASTContentArgumentsEnd data =
- new DirectParserASTContentArgumentsEnd(DirectParserASTType.END,
- count: count, beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void handleAsyncModifier(Token? asyncToken, Token? starToken) {
- DirectParserASTContentAsyncModifierHandle data =
- new DirectParserASTContentAsyncModifierHandle(
- DirectParserASTType.HANDLE,
- asyncToken: asyncToken,
- starToken: starToken);
- seen(data);
- }
-
- @override
- void beginAwaitExpression(Token token) {
- DirectParserASTContentAwaitExpressionBegin data =
- new DirectParserASTContentAwaitExpressionBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endAwaitExpression(Token beginToken, Token endToken) {
- DirectParserASTContentAwaitExpressionEnd data =
- new DirectParserASTContentAwaitExpressionEnd(DirectParserASTType.END,
- beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void endInvalidAwaitExpression(
- Token beginToken, Token endToken, MessageCode errorCode) {
- DirectParserASTContentInvalidAwaitExpressionEnd data =
- new DirectParserASTContentInvalidAwaitExpressionEnd(
- DirectParserASTType.END,
- beginToken: beginToken,
- endToken: endToken,
- errorCode: errorCode);
- seen(data);
- }
-
- @override
- void beginBlock(Token token, BlockKind blockKind) {
- DirectParserASTContentBlockBegin data =
- new DirectParserASTContentBlockBegin(DirectParserASTType.BEGIN,
- token: token, blockKind: blockKind);
- seen(data);
- }
-
- @override
- void endBlock(
- int count, Token beginToken, Token endToken, BlockKind blockKind) {
- DirectParserASTContentBlockEnd data = new DirectParserASTContentBlockEnd(
- DirectParserASTType.END,
- count: count,
- beginToken: beginToken,
- endToken: endToken,
- blockKind: blockKind);
- seen(data);
- }
-
- @override
- void handleInvalidTopLevelBlock(Token token) {
- DirectParserASTContentInvalidTopLevelBlockHandle data =
- new DirectParserASTContentInvalidTopLevelBlockHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginCascade(Token token) {
- DirectParserASTContentCascadeBegin data =
- new DirectParserASTContentCascadeBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endCascade() {
- DirectParserASTContentCascadeEnd data =
- new DirectParserASTContentCascadeEnd(DirectParserASTType.END);
- seen(data);
- }
-
- @override
- void beginCaseExpression(Token caseKeyword) {
- DirectParserASTContentCaseExpressionBegin data =
- new DirectParserASTContentCaseExpressionBegin(DirectParserASTType.BEGIN,
- caseKeyword: caseKeyword);
- seen(data);
- }
-
- @override
- void endCaseExpression(Token colon) {
- DirectParserASTContentCaseExpressionEnd data =
- new DirectParserASTContentCaseExpressionEnd(DirectParserASTType.END,
- colon: colon);
- seen(data);
- }
-
- @override
- void beginClassOrMixinOrExtensionBody(DeclarationKind kind, Token token) {
- DirectParserASTContentClassOrMixinOrExtensionBodyBegin data =
- new DirectParserASTContentClassOrMixinOrExtensionBodyBegin(
- DirectParserASTType.BEGIN,
- kind: kind,
- token: token);
- seen(data);
- }
-
- @override
- void endClassOrMixinOrExtensionBody(
- DeclarationKind kind, int memberCount, Token beginToken, Token endToken) {
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd data =
- new DirectParserASTContentClassOrMixinOrExtensionBodyEnd(
- DirectParserASTType.END,
- kind: kind,
- memberCount: memberCount,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginClassOrMixinOrNamedMixinApplicationPrelude(Token token) {
- DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin data =
- new DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void beginClassDeclaration(Token begin, Token? abstractToken, Token name) {
- DirectParserASTContentClassDeclarationBegin data =
- new DirectParserASTContentClassDeclarationBegin(
- DirectParserASTType.BEGIN,
- begin: begin,
- abstractToken: abstractToken,
- name: name);
- seen(data);
- }
-
- @override
- void handleClassExtends(Token? extendsKeyword, int typeCount) {
- DirectParserASTContentClassExtendsHandle data =
- new DirectParserASTContentClassExtendsHandle(DirectParserASTType.HANDLE,
- extendsKeyword: extendsKeyword, typeCount: typeCount);
- seen(data);
- }
-
- @override
- void handleClassOrMixinImplements(
- Token? implementsKeyword, int interfacesCount) {
- DirectParserASTContentClassOrMixinImplementsHandle data =
- new DirectParserASTContentClassOrMixinImplementsHandle(
- DirectParserASTType.HANDLE,
- implementsKeyword: implementsKeyword,
- interfacesCount: interfacesCount);
- seen(data);
- }
-
- @override
- void handleExtensionShowHide(Token? showKeyword, int showElementCount,
- Token? hideKeyword, int hideElementCount) {
- DirectParserASTContentExtensionShowHideHandle data =
- new DirectParserASTContentExtensionShowHideHandle(
- DirectParserASTType.HANDLE,
- showKeyword: showKeyword,
- showElementCount: showElementCount,
- hideKeyword: hideKeyword,
- hideElementCount: hideElementCount);
- seen(data);
- }
-
- @override
- void handleClassHeader(Token begin, Token classKeyword, Token? nativeToken) {
- DirectParserASTContentClassHeaderHandle data =
- new DirectParserASTContentClassHeaderHandle(DirectParserASTType.HANDLE,
- begin: begin, classKeyword: classKeyword, nativeToken: nativeToken);
- seen(data);
- }
-
- @override
- void handleRecoverClassHeader() {
- DirectParserASTContentRecoverClassHeaderHandle data =
- new DirectParserASTContentRecoverClassHeaderHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void endClassDeclaration(Token beginToken, Token endToken) {
- DirectParserASTContentClassDeclarationEnd data =
- new DirectParserASTContentClassDeclarationEnd(DirectParserASTType.END,
- beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginMixinDeclaration(Token mixinKeyword, Token name) {
- DirectParserASTContentMixinDeclarationBegin data =
- new DirectParserASTContentMixinDeclarationBegin(
- DirectParserASTType.BEGIN,
- mixinKeyword: mixinKeyword,
- name: name);
- seen(data);
- }
-
- @override
- void handleMixinOn(Token? onKeyword, int typeCount) {
- DirectParserASTContentMixinOnHandle data =
- new DirectParserASTContentMixinOnHandle(DirectParserASTType.HANDLE,
- onKeyword: onKeyword, typeCount: typeCount);
- seen(data);
- }
-
- @override
- void handleMixinHeader(Token mixinKeyword) {
- DirectParserASTContentMixinHeaderHandle data =
- new DirectParserASTContentMixinHeaderHandle(DirectParserASTType.HANDLE,
- mixinKeyword: mixinKeyword);
- seen(data);
- }
-
- @override
- void handleRecoverMixinHeader() {
- DirectParserASTContentRecoverMixinHeaderHandle data =
- new DirectParserASTContentRecoverMixinHeaderHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void endMixinDeclaration(Token mixinKeyword, Token endToken) {
- DirectParserASTContentMixinDeclarationEnd data =
- new DirectParserASTContentMixinDeclarationEnd(DirectParserASTType.END,
- mixinKeyword: mixinKeyword, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginUncategorizedTopLevelDeclaration(Token token) {
- DirectParserASTContentUncategorizedTopLevelDeclarationBegin data =
- new DirectParserASTContentUncategorizedTopLevelDeclarationBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void beginExtensionDeclarationPrelude(Token extensionKeyword) {
- DirectParserASTContentExtensionDeclarationPreludeBegin data =
- new DirectParserASTContentExtensionDeclarationPreludeBegin(
- DirectParserASTType.BEGIN,
- extensionKeyword: extensionKeyword);
- seen(data);
- }
-
- @override
- void beginExtensionDeclaration(Token extensionKeyword, Token? name) {
- DirectParserASTContentExtensionDeclarationBegin data =
- new DirectParserASTContentExtensionDeclarationBegin(
- DirectParserASTType.BEGIN,
- extensionKeyword: extensionKeyword,
- name: name);
- seen(data);
- }
-
- @override
- void endExtensionDeclaration(Token extensionKeyword, Token? typeKeyword,
- Token onKeyword, Token? showKeyword, Token? hideKeyword, Token endToken) {
- DirectParserASTContentExtensionDeclarationEnd data =
- new DirectParserASTContentExtensionDeclarationEnd(
- DirectParserASTType.END,
- extensionKeyword: extensionKeyword,
- typeKeyword: typeKeyword,
- onKeyword: onKeyword,
- showKeyword: showKeyword,
- hideKeyword: hideKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginCombinators(Token token) {
- DirectParserASTContentCombinatorsBegin data =
- new DirectParserASTContentCombinatorsBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endCombinators(int count) {
- DirectParserASTContentCombinatorsEnd data =
- new DirectParserASTContentCombinatorsEnd(DirectParserASTType.END,
- count: count);
- seen(data);
- }
-
- @override
- void beginCompilationUnit(Token token) {
- DirectParserASTContentCompilationUnitBegin data =
- new DirectParserASTContentCompilationUnitBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void handleDirectivesOnly() {
- DirectParserASTContentDirectivesOnlyHandle data =
- new DirectParserASTContentDirectivesOnlyHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void endCompilationUnit(int count, Token token) {
- DirectParserASTContentCompilationUnitEnd data =
- new DirectParserASTContentCompilationUnitEnd(DirectParserASTType.END,
- count: count, token: token);
- seen(data);
- }
-
- @override
- void beginConstLiteral(Token token) {
- DirectParserASTContentConstLiteralBegin data =
- new DirectParserASTContentConstLiteralBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endConstLiteral(Token token) {
- DirectParserASTContentConstLiteralEnd data =
- new DirectParserASTContentConstLiteralEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginConstructorReference(Token start) {
- DirectParserASTContentConstructorReferenceBegin data =
- new DirectParserASTContentConstructorReferenceBegin(
- DirectParserASTType.BEGIN,
- start: start);
- seen(data);
- }
-
- @override
- void endConstructorReference(Token start, Token? periodBeforeName,
- Token endToken, ConstructorReferenceContext constructorReferenceContext) {
- DirectParserASTContentConstructorReferenceEnd data =
- new DirectParserASTContentConstructorReferenceEnd(
- DirectParserASTType.END,
- start: start,
- periodBeforeName: periodBeforeName,
- endToken: endToken,
- constructorReferenceContext: constructorReferenceContext);
- seen(data);
- }
-
- @override
- void beginDoWhileStatement(Token token) {
- DirectParserASTContentDoWhileStatementBegin data =
- new DirectParserASTContentDoWhileStatementBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endDoWhileStatement(
- Token doKeyword, Token whileKeyword, Token endToken) {
- DirectParserASTContentDoWhileStatementEnd data =
- new DirectParserASTContentDoWhileStatementEnd(DirectParserASTType.END,
- doKeyword: doKeyword,
- whileKeyword: whileKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginDoWhileStatementBody(Token token) {
- DirectParserASTContentDoWhileStatementBodyBegin data =
- new DirectParserASTContentDoWhileStatementBodyBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endDoWhileStatementBody(Token token) {
- DirectParserASTContentDoWhileStatementBodyEnd data =
- new DirectParserASTContentDoWhileStatementBodyEnd(
- DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginWhileStatementBody(Token token) {
- DirectParserASTContentWhileStatementBodyBegin data =
- new DirectParserASTContentWhileStatementBodyBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endWhileStatementBody(Token token) {
- DirectParserASTContentWhileStatementBodyEnd data =
- new DirectParserASTContentWhileStatementBodyEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginEnum(Token enumKeyword) {
- DirectParserASTContentEnumBegin data = new DirectParserASTContentEnumBegin(
- DirectParserASTType.BEGIN,
- enumKeyword: enumKeyword);
- seen(data);
- }
-
- @override
- void endEnum(Token enumKeyword, Token leftBrace, int count) {
- DirectParserASTContentEnumEnd data = new DirectParserASTContentEnumEnd(
- DirectParserASTType.END,
- enumKeyword: enumKeyword,
- leftBrace: leftBrace,
- count: count);
- seen(data);
- }
-
- @override
- void beginExport(Token token) {
- DirectParserASTContentExportBegin data =
- new DirectParserASTContentExportBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endExport(Token exportKeyword, Token semicolon) {
- DirectParserASTContentExportEnd data = new DirectParserASTContentExportEnd(
- DirectParserASTType.END,
- exportKeyword: exportKeyword,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleExtraneousExpression(Token token, Message message) {
- DirectParserASTContentExtraneousExpressionHandle data =
- new DirectParserASTContentExtraneousExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token,
- message: message);
- seen(data);
- }
-
- @override
- void handleExpressionStatement(Token token) {
- DirectParserASTContentExpressionStatementHandle data =
- new DirectParserASTContentExpressionStatementHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginFactoryMethod(DeclarationKind declarationKind, Token lastConsumed,
- Token? externalToken, Token? constToken) {
- DirectParserASTContentFactoryMethodBegin data =
- new DirectParserASTContentFactoryMethodBegin(DirectParserASTType.BEGIN,
- declarationKind: declarationKind,
- lastConsumed: lastConsumed,
- externalToken: externalToken,
- constToken: constToken);
- seen(data);
- }
-
- @override
- void endClassFactoryMethod(
- Token beginToken, Token factoryKeyword, Token endToken) {
- DirectParserASTContentClassFactoryMethodEnd data =
- new DirectParserASTContentClassFactoryMethodEnd(DirectParserASTType.END,
- beginToken: beginToken,
- factoryKeyword: factoryKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endMixinFactoryMethod(
- Token beginToken, Token factoryKeyword, Token endToken) {
- DirectParserASTContentMixinFactoryMethodEnd data =
- new DirectParserASTContentMixinFactoryMethodEnd(DirectParserASTType.END,
- beginToken: beginToken,
- factoryKeyword: factoryKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endExtensionFactoryMethod(
- Token beginToken, Token factoryKeyword, Token endToken) {
- DirectParserASTContentExtensionFactoryMethodEnd data =
- new DirectParserASTContentExtensionFactoryMethodEnd(
- DirectParserASTType.END,
- beginToken: beginToken,
- factoryKeyword: factoryKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginFormalParameter(Token token, MemberKind kind, Token? requiredToken,
- Token? covariantToken, Token? varFinalOrConst) {
- DirectParserASTContentFormalParameterBegin data =
- new DirectParserASTContentFormalParameterBegin(
- DirectParserASTType.BEGIN,
- token: token,
- kind: kind,
- requiredToken: requiredToken,
- covariantToken: covariantToken,
- varFinalOrConst: varFinalOrConst);
- seen(data);
- }
-
- @override
- void endFormalParameter(
- Token? thisKeyword,
- Token? superKeyword,
- Token? periodAfterThisOrSuper,
- Token nameToken,
- Token? initializerStart,
- Token? initializerEnd,
- FormalParameterKind kind,
- MemberKind memberKind) {
- DirectParserASTContentFormalParameterEnd data =
- new DirectParserASTContentFormalParameterEnd(DirectParserASTType.END,
- thisKeyword: thisKeyword,
- superKeyword: superKeyword,
- periodAfterThisOrSuper: periodAfterThisOrSuper,
- nameToken: nameToken,
- initializerStart: initializerStart,
- initializerEnd: initializerEnd,
- kind: kind,
- memberKind: memberKind);
- seen(data);
- }
-
- @override
- void handleNoFormalParameters(Token token, MemberKind kind) {
- DirectParserASTContentNoFormalParametersHandle data =
- new DirectParserASTContentNoFormalParametersHandle(
- DirectParserASTType.HANDLE,
- token: token,
- kind: kind);
- seen(data);
- }
-
- @override
- void beginFormalParameters(Token token, MemberKind kind) {
- DirectParserASTContentFormalParametersBegin data =
- new DirectParserASTContentFormalParametersBegin(
- DirectParserASTType.BEGIN,
- token: token,
- kind: kind);
- seen(data);
- }
-
- @override
- void endFormalParameters(
- int count, Token beginToken, Token endToken, MemberKind kind) {
- DirectParserASTContentFormalParametersEnd data =
- new DirectParserASTContentFormalParametersEnd(DirectParserASTType.END,
- count: count,
- beginToken: beginToken,
- endToken: endToken,
- kind: kind);
- seen(data);
- }
-
- @override
- void endClassFields(
- Token? abstractToken,
- Token? externalToken,
- Token? staticToken,
- Token? covariantToken,
- Token? lateToken,
- Token? varFinalOrConst,
- int count,
- Token beginToken,
- Token endToken) {
- DirectParserASTContentClassFieldsEnd data =
- new DirectParserASTContentClassFieldsEnd(DirectParserASTType.END,
- abstractToken: abstractToken,
- externalToken: externalToken,
- staticToken: staticToken,
- covariantToken: covariantToken,
- lateToken: lateToken,
- varFinalOrConst: varFinalOrConst,
- count: count,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endMixinFields(
- Token? abstractToken,
- Token? externalToken,
- Token? staticToken,
- Token? covariantToken,
- Token? lateToken,
- Token? varFinalOrConst,
- int count,
- Token beginToken,
- Token endToken) {
- DirectParserASTContentMixinFieldsEnd data =
- new DirectParserASTContentMixinFieldsEnd(DirectParserASTType.END,
- abstractToken: abstractToken,
- externalToken: externalToken,
- staticToken: staticToken,
- covariantToken: covariantToken,
- lateToken: lateToken,
- varFinalOrConst: varFinalOrConst,
- count: count,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endExtensionFields(
- Token? abstractToken,
- Token? externalToken,
- Token? staticToken,
- Token? covariantToken,
- Token? lateToken,
- Token? varFinalOrConst,
- int count,
- Token beginToken,
- Token endToken) {
- DirectParserASTContentExtensionFieldsEnd data =
- new DirectParserASTContentExtensionFieldsEnd(DirectParserASTType.END,
- abstractToken: abstractToken,
- externalToken: externalToken,
- staticToken: staticToken,
- covariantToken: covariantToken,
- lateToken: lateToken,
- varFinalOrConst: varFinalOrConst,
- count: count,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void handleForInitializerEmptyStatement(Token token) {
- DirectParserASTContentForInitializerEmptyStatementHandle data =
- new DirectParserASTContentForInitializerEmptyStatementHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleForInitializerExpressionStatement(Token token, bool forIn) {
- DirectParserASTContentForInitializerExpressionStatementHandle data =
- new DirectParserASTContentForInitializerExpressionStatementHandle(
- DirectParserASTType.HANDLE,
- token: token,
- forIn: forIn);
- seen(data);
- }
-
- @override
- void handleForInitializerLocalVariableDeclaration(Token token, bool forIn) {
- DirectParserASTContentForInitializerLocalVariableDeclarationHandle data =
- new DirectParserASTContentForInitializerLocalVariableDeclarationHandle(
- DirectParserASTType.HANDLE,
- token: token,
- forIn: forIn);
- seen(data);
- }
-
- @override
- void beginForStatement(Token token) {
- DirectParserASTContentForStatementBegin data =
- new DirectParserASTContentForStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void handleForLoopParts(Token forKeyword, Token leftParen,
- Token leftSeparator, int updateExpressionCount) {
- DirectParserASTContentForLoopPartsHandle data =
- new DirectParserASTContentForLoopPartsHandle(DirectParserASTType.HANDLE,
- forKeyword: forKeyword,
- leftParen: leftParen,
- leftSeparator: leftSeparator,
- updateExpressionCount: updateExpressionCount);
- seen(data);
- }
-
- @override
- void endForStatement(Token endToken) {
- DirectParserASTContentForStatementEnd data =
- new DirectParserASTContentForStatementEnd(DirectParserASTType.END,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginForStatementBody(Token token) {
- DirectParserASTContentForStatementBodyBegin data =
- new DirectParserASTContentForStatementBodyBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endForStatementBody(Token token) {
- DirectParserASTContentForStatementBodyEnd data =
- new DirectParserASTContentForStatementBodyEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void handleForInLoopParts(Token? awaitToken, Token forToken,
- Token leftParenthesis, Token inKeyword) {
- DirectParserASTContentForInLoopPartsHandle data =
- new DirectParserASTContentForInLoopPartsHandle(
- DirectParserASTType.HANDLE,
- awaitToken: awaitToken,
- forToken: forToken,
- leftParenthesis: leftParenthesis,
- inKeyword: inKeyword);
- seen(data);
- }
-
- @override
- void endForIn(Token endToken) {
- DirectParserASTContentForInEnd data = new DirectParserASTContentForInEnd(
- DirectParserASTType.END,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginForInExpression(Token token) {
- DirectParserASTContentForInExpressionBegin data =
- new DirectParserASTContentForInExpressionBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endForInExpression(Token token) {
- DirectParserASTContentForInExpressionEnd data =
- new DirectParserASTContentForInExpressionEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginForInBody(Token token) {
- DirectParserASTContentForInBodyBegin data =
- new DirectParserASTContentForInBodyBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endForInBody(Token token) {
- DirectParserASTContentForInBodyEnd data =
- new DirectParserASTContentForInBodyEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginNamedFunctionExpression(Token token) {
- DirectParserASTContentNamedFunctionExpressionBegin data =
- new DirectParserASTContentNamedFunctionExpressionBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endNamedFunctionExpression(Token endToken) {
- DirectParserASTContentNamedFunctionExpressionEnd data =
- new DirectParserASTContentNamedFunctionExpressionEnd(
- DirectParserASTType.END,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginLocalFunctionDeclaration(Token token) {
- DirectParserASTContentLocalFunctionDeclarationBegin data =
- new DirectParserASTContentLocalFunctionDeclarationBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endLocalFunctionDeclaration(Token endToken) {
- DirectParserASTContentLocalFunctionDeclarationEnd data =
- new DirectParserASTContentLocalFunctionDeclarationEnd(
- DirectParserASTType.END,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginBlockFunctionBody(Token token) {
- DirectParserASTContentBlockFunctionBodyBegin data =
- new DirectParserASTContentBlockFunctionBodyBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endBlockFunctionBody(int count, Token beginToken, Token endToken) {
- DirectParserASTContentBlockFunctionBodyEnd data =
- new DirectParserASTContentBlockFunctionBodyEnd(DirectParserASTType.END,
- count: count, beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void handleNoFunctionBody(Token token) {
- DirectParserASTContentNoFunctionBodyHandle data =
- new DirectParserASTContentNoFunctionBodyHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleFunctionBodySkipped(Token token, bool isExpressionBody) {
- DirectParserASTContentFunctionBodySkippedHandle data =
- new DirectParserASTContentFunctionBodySkippedHandle(
- DirectParserASTType.HANDLE,
- token: token,
- isExpressionBody: isExpressionBody);
- seen(data);
- }
-
- @override
- void beginFunctionName(Token token) {
- DirectParserASTContentFunctionNameBegin data =
- new DirectParserASTContentFunctionNameBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endFunctionName(Token beginToken, Token token) {
- DirectParserASTContentFunctionNameEnd data =
- new DirectParserASTContentFunctionNameEnd(DirectParserASTType.END,
- beginToken: beginToken, token: token);
- seen(data);
- }
-
- @override
- void beginTypedef(Token token) {
- DirectParserASTContentTypedefBegin data =
- new DirectParserASTContentTypedefBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endTypedef(Token typedefKeyword, Token? equals, Token endToken) {
- DirectParserASTContentTypedefEnd data =
- new DirectParserASTContentTypedefEnd(DirectParserASTType.END,
- typedefKeyword: typedefKeyword, equals: equals, endToken: endToken);
- seen(data);
- }
-
- @override
- void handleClassWithClause(Token withKeyword) {
- DirectParserASTContentClassWithClauseHandle data =
- new DirectParserASTContentClassWithClauseHandle(
- DirectParserASTType.HANDLE,
- withKeyword: withKeyword);
- seen(data);
- }
-
- @override
- void handleClassNoWithClause() {
- DirectParserASTContentClassNoWithClauseHandle data =
- new DirectParserASTContentClassNoWithClauseHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void beginNamedMixinApplication(
- Token begin, Token? abstractToken, Token name) {
- DirectParserASTContentNamedMixinApplicationBegin data =
- new DirectParserASTContentNamedMixinApplicationBegin(
- DirectParserASTType.BEGIN,
- begin: begin,
- abstractToken: abstractToken,
- name: name);
- seen(data);
- }
-
- @override
- void handleNamedMixinApplicationWithClause(Token withKeyword) {
- DirectParserASTContentNamedMixinApplicationWithClauseHandle data =
- new DirectParserASTContentNamedMixinApplicationWithClauseHandle(
- DirectParserASTType.HANDLE,
- withKeyword: withKeyword);
- seen(data);
- }
-
- @override
- void endNamedMixinApplication(Token begin, Token classKeyword, Token equals,
- Token? implementsKeyword, Token endToken) {
- DirectParserASTContentNamedMixinApplicationEnd data =
- new DirectParserASTContentNamedMixinApplicationEnd(
- DirectParserASTType.END,
- begin: begin,
- classKeyword: classKeyword,
- equals: equals,
- implementsKeyword: implementsKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginHide(Token hideKeyword) {
- DirectParserASTContentHideBegin data = new DirectParserASTContentHideBegin(
- DirectParserASTType.BEGIN,
- hideKeyword: hideKeyword);
- seen(data);
- }
-
- @override
- void endHide(Token hideKeyword) {
- DirectParserASTContentHideEnd data = new DirectParserASTContentHideEnd(
- DirectParserASTType.END,
- hideKeyword: hideKeyword);
- seen(data);
- }
-
- @override
- void handleIdentifierList(int count) {
- DirectParserASTContentIdentifierListHandle data =
- new DirectParserASTContentIdentifierListHandle(
- DirectParserASTType.HANDLE,
- count: count);
- seen(data);
- }
-
- @override
- void beginTypeList(Token token) {
- DirectParserASTContentTypeListBegin data =
- new DirectParserASTContentTypeListBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endTypeList(int count) {
- DirectParserASTContentTypeListEnd data =
- new DirectParserASTContentTypeListEnd(DirectParserASTType.END,
- count: count);
- seen(data);
- }
-
- @override
- void beginIfStatement(Token token) {
- DirectParserASTContentIfStatementBegin data =
- new DirectParserASTContentIfStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endIfStatement(Token ifToken, Token? elseToken) {
- DirectParserASTContentIfStatementEnd data =
- new DirectParserASTContentIfStatementEnd(DirectParserASTType.END,
- ifToken: ifToken, elseToken: elseToken);
- seen(data);
- }
-
- @override
- void beginThenStatement(Token token) {
- DirectParserASTContentThenStatementBegin data =
- new DirectParserASTContentThenStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endThenStatement(Token token) {
- DirectParserASTContentThenStatementEnd data =
- new DirectParserASTContentThenStatementEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginElseStatement(Token token) {
- DirectParserASTContentElseStatementBegin data =
- new DirectParserASTContentElseStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endElseStatement(Token token) {
- DirectParserASTContentElseStatementEnd data =
- new DirectParserASTContentElseStatementEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginImport(Token importKeyword) {
- DirectParserASTContentImportBegin data =
- new DirectParserASTContentImportBegin(DirectParserASTType.BEGIN,
- importKeyword: importKeyword);
- seen(data);
- }
-
- @override
- void handleImportPrefix(Token? deferredKeyword, Token? asKeyword) {
- DirectParserASTContentImportPrefixHandle data =
- new DirectParserASTContentImportPrefixHandle(DirectParserASTType.HANDLE,
- deferredKeyword: deferredKeyword, asKeyword: asKeyword);
- seen(data);
- }
-
- @override
- void endImport(Token importKeyword, Token? semicolon) {
- DirectParserASTContentImportEnd data = new DirectParserASTContentImportEnd(
- DirectParserASTType.END,
- importKeyword: importKeyword,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleRecoverImport(Token? semicolon) {
- DirectParserASTContentRecoverImportHandle data =
- new DirectParserASTContentRecoverImportHandle(
- DirectParserASTType.HANDLE,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void beginConditionalUris(Token token) {
- DirectParserASTContentConditionalUrisBegin data =
- new DirectParserASTContentConditionalUrisBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endConditionalUris(int count) {
- DirectParserASTContentConditionalUrisEnd data =
- new DirectParserASTContentConditionalUrisEnd(DirectParserASTType.END,
- count: count);
- seen(data);
- }
-
- @override
- void beginConditionalUri(Token ifKeyword) {
- DirectParserASTContentConditionalUriBegin data =
- new DirectParserASTContentConditionalUriBegin(DirectParserASTType.BEGIN,
- ifKeyword: ifKeyword);
- seen(data);
- }
-
- @override
- void endConditionalUri(Token ifKeyword, Token leftParen, Token? equalSign) {
- DirectParserASTContentConditionalUriEnd data =
- new DirectParserASTContentConditionalUriEnd(DirectParserASTType.END,
- ifKeyword: ifKeyword, leftParen: leftParen, equalSign: equalSign);
- seen(data);
- }
-
- @override
- void handleDottedName(int count, Token firstIdentifier) {
- DirectParserASTContentDottedNameHandle data =
- new DirectParserASTContentDottedNameHandle(DirectParserASTType.HANDLE,
- count: count, firstIdentifier: firstIdentifier);
- seen(data);
- }
-
- @override
- void beginImplicitCreationExpression(Token token) {
- DirectParserASTContentImplicitCreationExpressionBegin data =
- new DirectParserASTContentImplicitCreationExpressionBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endImplicitCreationExpression(Token token, Token openAngleBracket) {
- DirectParserASTContentImplicitCreationExpressionEnd data =
- new DirectParserASTContentImplicitCreationExpressionEnd(
- DirectParserASTType.END,
- token: token,
- openAngleBracket: openAngleBracket);
- seen(data);
- }
-
- @override
- void beginInitializedIdentifier(Token token) {
- DirectParserASTContentInitializedIdentifierBegin data =
- new DirectParserASTContentInitializedIdentifierBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endInitializedIdentifier(Token nameToken) {
- DirectParserASTContentInitializedIdentifierEnd data =
- new DirectParserASTContentInitializedIdentifierEnd(
- DirectParserASTType.END,
- nameToken: nameToken);
- seen(data);
- }
-
- @override
- void beginFieldInitializer(Token token) {
- DirectParserASTContentFieldInitializerBegin data =
- new DirectParserASTContentFieldInitializerBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endFieldInitializer(Token assignment, Token token) {
- DirectParserASTContentFieldInitializerEnd data =
- new DirectParserASTContentFieldInitializerEnd(DirectParserASTType.END,
- assignment: assignment, token: token);
- seen(data);
- }
-
- @override
- void handleNoFieldInitializer(Token token) {
- DirectParserASTContentNoFieldInitializerHandle data =
- new DirectParserASTContentNoFieldInitializerHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginVariableInitializer(Token token) {
- DirectParserASTContentVariableInitializerBegin data =
- new DirectParserASTContentVariableInitializerBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endVariableInitializer(Token assignmentOperator) {
- DirectParserASTContentVariableInitializerEnd data =
- new DirectParserASTContentVariableInitializerEnd(
- DirectParserASTType.END,
- assignmentOperator: assignmentOperator);
- seen(data);
- }
-
- @override
- void handleNoVariableInitializer(Token token) {
- DirectParserASTContentNoVariableInitializerHandle data =
- new DirectParserASTContentNoVariableInitializerHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginInitializer(Token token) {
- DirectParserASTContentInitializerBegin data =
- new DirectParserASTContentInitializerBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endInitializer(Token token) {
- DirectParserASTContentInitializerEnd data =
- new DirectParserASTContentInitializerEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginInitializers(Token token) {
- DirectParserASTContentInitializersBegin data =
- new DirectParserASTContentInitializersBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endInitializers(int count, Token beginToken, Token endToken) {
- DirectParserASTContentInitializersEnd data =
- new DirectParserASTContentInitializersEnd(DirectParserASTType.END,
- count: count, beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void handleNoInitializers() {
- DirectParserASTContentNoInitializersHandle data =
- new DirectParserASTContentNoInitializersHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void handleInvalidExpression(Token token) {
- DirectParserASTContentInvalidExpressionHandle data =
- new DirectParserASTContentInvalidExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleInvalidFunctionBody(Token token) {
- DirectParserASTContentInvalidFunctionBodyHandle data =
- new DirectParserASTContentInvalidFunctionBodyHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleInvalidTypeReference(Token token) {
- DirectParserASTContentInvalidTypeReferenceHandle data =
- new DirectParserASTContentInvalidTypeReferenceHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleLabel(Token token) {
- DirectParserASTContentLabelHandle data =
- new DirectParserASTContentLabelHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginLabeledStatement(Token token, int labelCount) {
- DirectParserASTContentLabeledStatementBegin data =
- new DirectParserASTContentLabeledStatementBegin(
- DirectParserASTType.BEGIN,
- token: token,
- labelCount: labelCount);
- seen(data);
- }
-
- @override
- void endLabeledStatement(int labelCount) {
- DirectParserASTContentLabeledStatementEnd data =
- new DirectParserASTContentLabeledStatementEnd(DirectParserASTType.END,
- labelCount: labelCount);
- seen(data);
- }
-
- @override
- void beginLibraryName(Token token) {
- DirectParserASTContentLibraryNameBegin data =
- new DirectParserASTContentLibraryNameBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endLibraryName(Token libraryKeyword, Token semicolon) {
- DirectParserASTContentLibraryNameEnd data =
- new DirectParserASTContentLibraryNameEnd(DirectParserASTType.END,
- libraryKeyword: libraryKeyword, semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleLiteralMapEntry(Token colon, Token endToken) {
- DirectParserASTContentLiteralMapEntryHandle data =
- new DirectParserASTContentLiteralMapEntryHandle(
- DirectParserASTType.HANDLE,
- colon: colon,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginLiteralString(Token token) {
- DirectParserASTContentLiteralStringBegin data =
- new DirectParserASTContentLiteralStringBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void handleInterpolationExpression(Token leftBracket, Token? rightBracket) {
- DirectParserASTContentInterpolationExpressionHandle data =
- new DirectParserASTContentInterpolationExpressionHandle(
- DirectParserASTType.HANDLE,
- leftBracket: leftBracket,
- rightBracket: rightBracket);
- seen(data);
- }
-
- @override
- void endLiteralString(int interpolationCount, Token endToken) {
- DirectParserASTContentLiteralStringEnd data =
- new DirectParserASTContentLiteralStringEnd(DirectParserASTType.END,
- interpolationCount: interpolationCount, endToken: endToken);
- seen(data);
- }
-
- @override
- void handleStringJuxtaposition(Token startToken, int literalCount) {
- DirectParserASTContentStringJuxtapositionHandle data =
- new DirectParserASTContentStringJuxtapositionHandle(
- DirectParserASTType.HANDLE,
- startToken: startToken,
- literalCount: literalCount);
- seen(data);
- }
-
- @override
- void beginMember() {
- DirectParserASTContentMemberBegin data =
- new DirectParserASTContentMemberBegin(DirectParserASTType.BEGIN);
- seen(data);
- }
-
- @override
- void handleInvalidMember(Token endToken) {
- DirectParserASTContentInvalidMemberHandle data =
- new DirectParserASTContentInvalidMemberHandle(
- DirectParserASTType.HANDLE,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endMember() {
- DirectParserASTContentMemberEnd data =
- new DirectParserASTContentMemberEnd(DirectParserASTType.END);
- seen(data);
- }
-
- @override
- void beginMethod(
- DeclarationKind declarationKind,
- Token? externalToken,
- Token? staticToken,
- Token? covariantToken,
- Token? varFinalOrConst,
- Token? getOrSet,
- Token name) {
- DirectParserASTContentMethodBegin data =
- new DirectParserASTContentMethodBegin(DirectParserASTType.BEGIN,
- declarationKind: declarationKind,
- externalToken: externalToken,
- staticToken: staticToken,
- covariantToken: covariantToken,
- varFinalOrConst: varFinalOrConst,
- getOrSet: getOrSet,
- name: name);
- seen(data);
- }
-
- @override
- void endClassMethod(Token? getOrSet, Token beginToken, Token beginParam,
- Token? beginInitializers, Token endToken) {
- DirectParserASTContentClassMethodEnd data =
- new DirectParserASTContentClassMethodEnd(DirectParserASTType.END,
- getOrSet: getOrSet,
- beginToken: beginToken,
- beginParam: beginParam,
- beginInitializers: beginInitializers,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endMixinMethod(Token? getOrSet, Token beginToken, Token beginParam,
- Token? beginInitializers, Token endToken) {
- DirectParserASTContentMixinMethodEnd data =
- new DirectParserASTContentMixinMethodEnd(DirectParserASTType.END,
- getOrSet: getOrSet,
- beginToken: beginToken,
- beginParam: beginParam,
- beginInitializers: beginInitializers,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endExtensionMethod(Token? getOrSet, Token beginToken, Token beginParam,
- Token? beginInitializers, Token endToken) {
- DirectParserASTContentExtensionMethodEnd data =
- new DirectParserASTContentExtensionMethodEnd(DirectParserASTType.END,
- getOrSet: getOrSet,
- beginToken: beginToken,
- beginParam: beginParam,
- beginInitializers: beginInitializers,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endClassConstructor(Token? getOrSet, Token beginToken, Token beginParam,
- Token? beginInitializers, Token endToken) {
- DirectParserASTContentClassConstructorEnd data =
- new DirectParserASTContentClassConstructorEnd(DirectParserASTType.END,
- getOrSet: getOrSet,
- beginToken: beginToken,
- beginParam: beginParam,
- beginInitializers: beginInitializers,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endMixinConstructor(Token? getOrSet, Token beginToken, Token beginParam,
- Token? beginInitializers, Token endToken) {
- DirectParserASTContentMixinConstructorEnd data =
- new DirectParserASTContentMixinConstructorEnd(DirectParserASTType.END,
- getOrSet: getOrSet,
- beginToken: beginToken,
- beginParam: beginParam,
- beginInitializers: beginInitializers,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endExtensionConstructor(Token? getOrSet, Token beginToken,
- Token beginParam, Token? beginInitializers, Token endToken) {
- DirectParserASTContentExtensionConstructorEnd data =
- new DirectParserASTContentExtensionConstructorEnd(
- DirectParserASTType.END,
- getOrSet: getOrSet,
- beginToken: beginToken,
- beginParam: beginParam,
- beginInitializers: beginInitializers,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginMetadataStar(Token token) {
- DirectParserASTContentMetadataStarBegin data =
- new DirectParserASTContentMetadataStarBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endMetadataStar(int count) {
- DirectParserASTContentMetadataStarEnd data =
- new DirectParserASTContentMetadataStarEnd(DirectParserASTType.END,
- count: count);
- seen(data);
- }
-
- @override
- void beginMetadata(Token token) {
- DirectParserASTContentMetadataBegin data =
- new DirectParserASTContentMetadataBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endMetadata(Token beginToken, Token? periodBeforeName, Token endToken) {
- DirectParserASTContentMetadataEnd data =
- new DirectParserASTContentMetadataEnd(DirectParserASTType.END,
- beginToken: beginToken,
- periodBeforeName: periodBeforeName,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginOptionalFormalParameters(Token token) {
- DirectParserASTContentOptionalFormalParametersBegin data =
- new DirectParserASTContentOptionalFormalParametersBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endOptionalFormalParameters(
- int count, Token beginToken, Token endToken) {
- DirectParserASTContentOptionalFormalParametersEnd data =
- new DirectParserASTContentOptionalFormalParametersEnd(
- DirectParserASTType.END,
- count: count,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginPart(Token token) {
- DirectParserASTContentPartBegin data = new DirectParserASTContentPartBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endPart(Token partKeyword, Token semicolon) {
- DirectParserASTContentPartEnd data = new DirectParserASTContentPartEnd(
- DirectParserASTType.END,
- partKeyword: partKeyword,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void beginPartOf(Token token) {
- DirectParserASTContentPartOfBegin data =
- new DirectParserASTContentPartOfBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endPartOf(
- Token partKeyword, Token ofKeyword, Token semicolon, bool hasName) {
- DirectParserASTContentPartOfEnd data = new DirectParserASTContentPartOfEnd(
- DirectParserASTType.END,
- partKeyword: partKeyword,
- ofKeyword: ofKeyword,
- semicolon: semicolon,
- hasName: hasName);
- seen(data);
- }
-
- @override
- void beginRedirectingFactoryBody(Token token) {
- DirectParserASTContentRedirectingFactoryBodyBegin data =
- new DirectParserASTContentRedirectingFactoryBodyBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endRedirectingFactoryBody(Token beginToken, Token endToken) {
- DirectParserASTContentRedirectingFactoryBodyEnd data =
- new DirectParserASTContentRedirectingFactoryBodyEnd(
- DirectParserASTType.END,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginReturnStatement(Token token) {
- DirectParserASTContentReturnStatementBegin data =
- new DirectParserASTContentReturnStatementBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void handleNativeFunctionBody(Token nativeToken, Token semicolon) {
- DirectParserASTContentNativeFunctionBodyHandle data =
- new DirectParserASTContentNativeFunctionBodyHandle(
- DirectParserASTType.HANDLE,
- nativeToken: nativeToken,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleNativeFunctionBodyIgnored(Token nativeToken, Token semicolon) {
- DirectParserASTContentNativeFunctionBodyIgnoredHandle data =
- new DirectParserASTContentNativeFunctionBodyIgnoredHandle(
- DirectParserASTType.HANDLE,
- nativeToken: nativeToken,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleNativeFunctionBodySkipped(Token nativeToken, Token semicolon) {
- DirectParserASTContentNativeFunctionBodySkippedHandle data =
- new DirectParserASTContentNativeFunctionBodySkippedHandle(
- DirectParserASTType.HANDLE,
- nativeToken: nativeToken,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleEmptyFunctionBody(Token semicolon) {
- DirectParserASTContentEmptyFunctionBodyHandle data =
- new DirectParserASTContentEmptyFunctionBodyHandle(
- DirectParserASTType.HANDLE,
- semicolon: semicolon);
- seen(data);
- }
-
- @override
- void handleExpressionFunctionBody(Token arrowToken, Token? endToken) {
- DirectParserASTContentExpressionFunctionBodyHandle data =
- new DirectParserASTContentExpressionFunctionBodyHandle(
- DirectParserASTType.HANDLE,
- arrowToken: arrowToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void endReturnStatement(
- bool hasExpression, Token beginToken, Token endToken) {
- DirectParserASTContentReturnStatementEnd data =
- new DirectParserASTContentReturnStatementEnd(DirectParserASTType.END,
- hasExpression: hasExpression,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void handleSend(Token beginToken, Token endToken) {
- DirectParserASTContentSendHandle data =
- new DirectParserASTContentSendHandle(DirectParserASTType.HANDLE,
- beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginShow(Token showKeyword) {
- DirectParserASTContentShowBegin data = new DirectParserASTContentShowBegin(
- DirectParserASTType.BEGIN,
- showKeyword: showKeyword);
- seen(data);
- }
-
- @override
- void endShow(Token showKeyword) {
- DirectParserASTContentShowEnd data = new DirectParserASTContentShowEnd(
- DirectParserASTType.END,
- showKeyword: showKeyword);
- seen(data);
- }
-
- @override
- void beginSwitchStatement(Token token) {
- DirectParserASTContentSwitchStatementBegin data =
- new DirectParserASTContentSwitchStatementBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endSwitchStatement(Token switchKeyword, Token endToken) {
- DirectParserASTContentSwitchStatementEnd data =
- new DirectParserASTContentSwitchStatementEnd(DirectParserASTType.END,
- switchKeyword: switchKeyword, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginSwitchBlock(Token token) {
- DirectParserASTContentSwitchBlockBegin data =
- new DirectParserASTContentSwitchBlockBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endSwitchBlock(int caseCount, Token beginToken, Token endToken) {
- DirectParserASTContentSwitchBlockEnd data =
- new DirectParserASTContentSwitchBlockEnd(DirectParserASTType.END,
- caseCount: caseCount, beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginLiteralSymbol(Token token) {
- DirectParserASTContentLiteralSymbolBegin data =
- new DirectParserASTContentLiteralSymbolBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endLiteralSymbol(Token hashToken, int identifierCount) {
- DirectParserASTContentLiteralSymbolEnd data =
- new DirectParserASTContentLiteralSymbolEnd(DirectParserASTType.END,
- hashToken: hashToken, identifierCount: identifierCount);
- seen(data);
- }
-
- @override
- void handleThrowExpression(Token throwToken, Token endToken) {
- DirectParserASTContentThrowExpressionHandle data =
- new DirectParserASTContentThrowExpressionHandle(
- DirectParserASTType.HANDLE,
- throwToken: throwToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginRethrowStatement(Token token) {
- DirectParserASTContentRethrowStatementBegin data =
- new DirectParserASTContentRethrowStatementBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endRethrowStatement(Token rethrowToken, Token endToken) {
- DirectParserASTContentRethrowStatementEnd data =
- new DirectParserASTContentRethrowStatementEnd(DirectParserASTType.END,
- rethrowToken: rethrowToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void endTopLevelDeclaration(Token nextToken) {
- DirectParserASTContentTopLevelDeclarationEnd data =
- new DirectParserASTContentTopLevelDeclarationEnd(
- DirectParserASTType.END,
- nextToken: nextToken);
- seen(data);
- }
-
- @override
- void handleInvalidTopLevelDeclaration(Token endToken) {
- DirectParserASTContentInvalidTopLevelDeclarationHandle data =
- new DirectParserASTContentInvalidTopLevelDeclarationHandle(
- DirectParserASTType.HANDLE,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginTopLevelMember(Token token) {
- DirectParserASTContentTopLevelMemberBegin data =
- new DirectParserASTContentTopLevelMemberBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void beginFields(
- DeclarationKind declarationKind,
- Token? abstractToken,
- Token? externalToken,
- Token? staticToken,
- Token? covariantToken,
- Token? lateToken,
- Token? varFinalOrConst,
- Token lastConsumed) {
- DirectParserASTContentFieldsBegin data =
- new DirectParserASTContentFieldsBegin(DirectParserASTType.BEGIN,
- declarationKind: declarationKind,
- abstractToken: abstractToken,
- externalToken: externalToken,
- staticToken: staticToken,
- covariantToken: covariantToken,
- lateToken: lateToken,
- varFinalOrConst: varFinalOrConst,
- lastConsumed: lastConsumed);
- seen(data);
- }
-
- @override
- void endTopLevelFields(
- Token? externalToken,
- Token? staticToken,
- Token? covariantToken,
- Token? lateToken,
- Token? varFinalOrConst,
- int count,
- Token beginToken,
- Token endToken) {
- DirectParserASTContentTopLevelFieldsEnd data =
- new DirectParserASTContentTopLevelFieldsEnd(DirectParserASTType.END,
- externalToken: externalToken,
- staticToken: staticToken,
- covariantToken: covariantToken,
- lateToken: lateToken,
- varFinalOrConst: varFinalOrConst,
- count: count,
- beginToken: beginToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
- DirectParserASTContentTopLevelMethodBegin data =
- new DirectParserASTContentTopLevelMethodBegin(DirectParserASTType.BEGIN,
- lastConsumed: lastConsumed, externalToken: externalToken);
- seen(data);
- }
-
- @override
- void endTopLevelMethod(Token beginToken, Token? getOrSet, Token endToken) {
- DirectParserASTContentTopLevelMethodEnd data =
- new DirectParserASTContentTopLevelMethodEnd(DirectParserASTType.END,
- beginToken: beginToken, getOrSet: getOrSet, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginTryStatement(Token token) {
- DirectParserASTContentTryStatementBegin data =
- new DirectParserASTContentTryStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void handleCaseMatch(Token caseKeyword, Token colon) {
- DirectParserASTContentCaseMatchHandle data =
- new DirectParserASTContentCaseMatchHandle(DirectParserASTType.HANDLE,
- caseKeyword: caseKeyword, colon: colon);
- seen(data);
- }
-
- @override
- void beginCatchClause(Token token) {
- DirectParserASTContentCatchClauseBegin data =
- new DirectParserASTContentCatchClauseBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endCatchClause(Token token) {
- DirectParserASTContentCatchClauseEnd data =
- new DirectParserASTContentCatchClauseEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void handleCatchBlock(Token? onKeyword, Token? catchKeyword, Token? comma) {
- DirectParserASTContentCatchBlockHandle data =
- new DirectParserASTContentCatchBlockHandle(DirectParserASTType.HANDLE,
- onKeyword: onKeyword, catchKeyword: catchKeyword, comma: comma);
- seen(data);
- }
-
- @override
- void handleFinallyBlock(Token finallyKeyword) {
- DirectParserASTContentFinallyBlockHandle data =
- new DirectParserASTContentFinallyBlockHandle(DirectParserASTType.HANDLE,
- finallyKeyword: finallyKeyword);
- seen(data);
- }
-
- @override
- void endTryStatement(
- int catchCount, Token tryKeyword, Token? finallyKeyword) {
- DirectParserASTContentTryStatementEnd data =
- new DirectParserASTContentTryStatementEnd(DirectParserASTType.END,
- catchCount: catchCount,
- tryKeyword: tryKeyword,
- finallyKeyword: finallyKeyword);
- seen(data);
- }
-
- @override
- void handleType(Token beginToken, Token? questionMark) {
- DirectParserASTContentTypeHandle data =
- new DirectParserASTContentTypeHandle(DirectParserASTType.HANDLE,
- beginToken: beginToken, questionMark: questionMark);
- seen(data);
- }
-
- @override
- void handleNonNullAssertExpression(Token bang) {
- DirectParserASTContentNonNullAssertExpressionHandle data =
- new DirectParserASTContentNonNullAssertExpressionHandle(
- DirectParserASTType.HANDLE,
- bang: bang);
- seen(data);
- }
-
- @override
- void handleNoName(Token token) {
- DirectParserASTContentNoNameHandle data =
- new DirectParserASTContentNoNameHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginFunctionType(Token beginToken) {
- DirectParserASTContentFunctionTypeBegin data =
- new DirectParserASTContentFunctionTypeBegin(DirectParserASTType.BEGIN,
- beginToken: beginToken);
- seen(data);
- }
-
- @override
- void endFunctionType(Token functionToken, Token? questionMark) {
- DirectParserASTContentFunctionTypeEnd data =
- new DirectParserASTContentFunctionTypeEnd(DirectParserASTType.END,
- functionToken: functionToken, questionMark: questionMark);
- seen(data);
- }
-
- @override
- void beginTypeArguments(Token token) {
- DirectParserASTContentTypeArgumentsBegin data =
- new DirectParserASTContentTypeArgumentsBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endTypeArguments(int count, Token beginToken, Token endToken) {
- DirectParserASTContentTypeArgumentsEnd data =
- new DirectParserASTContentTypeArgumentsEnd(DirectParserASTType.END,
- count: count, beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void handleInvalidTypeArguments(Token token) {
- DirectParserASTContentInvalidTypeArgumentsHandle data =
- new DirectParserASTContentInvalidTypeArgumentsHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleNoTypeArguments(Token token) {
- DirectParserASTContentNoTypeArgumentsHandle data =
- new DirectParserASTContentNoTypeArgumentsHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginTypeVariable(Token token) {
- DirectParserASTContentTypeVariableBegin data =
- new DirectParserASTContentTypeVariableBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void handleTypeVariablesDefined(Token token, int count) {
- DirectParserASTContentTypeVariablesDefinedHandle data =
- new DirectParserASTContentTypeVariablesDefinedHandle(
- DirectParserASTType.HANDLE,
- token: token,
- count: count);
- seen(data);
- }
-
- @override
- void endTypeVariable(
- Token token, int index, Token? extendsOrSuper, Token? variance) {
- DirectParserASTContentTypeVariableEnd data =
- new DirectParserASTContentTypeVariableEnd(DirectParserASTType.END,
- token: token,
- index: index,
- extendsOrSuper: extendsOrSuper,
- variance: variance);
- seen(data);
- }
-
- @override
- void beginTypeVariables(Token token) {
- DirectParserASTContentTypeVariablesBegin data =
- new DirectParserASTContentTypeVariablesBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endTypeVariables(Token beginToken, Token endToken) {
- DirectParserASTContentTypeVariablesEnd data =
- new DirectParserASTContentTypeVariablesEnd(DirectParserASTType.END,
- beginToken: beginToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginFunctionExpression(Token token) {
- DirectParserASTContentFunctionExpressionBegin data =
- new DirectParserASTContentFunctionExpressionBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endFunctionExpression(Token beginToken, Token token) {
- DirectParserASTContentFunctionExpressionEnd data =
- new DirectParserASTContentFunctionExpressionEnd(DirectParserASTType.END,
- beginToken: beginToken, token: token);
- seen(data);
- }
-
- @override
- void beginVariablesDeclaration(
- Token token, Token? lateToken, Token? varFinalOrConst) {
- DirectParserASTContentVariablesDeclarationBegin data =
- new DirectParserASTContentVariablesDeclarationBegin(
- DirectParserASTType.BEGIN,
- token: token,
- lateToken: lateToken,
- varFinalOrConst: varFinalOrConst);
- seen(data);
- }
-
- @override
- void endVariablesDeclaration(int count, Token? endToken) {
- DirectParserASTContentVariablesDeclarationEnd data =
- new DirectParserASTContentVariablesDeclarationEnd(
- DirectParserASTType.END,
- count: count,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void beginWhileStatement(Token token) {
- DirectParserASTContentWhileStatementBegin data =
- new DirectParserASTContentWhileStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endWhileStatement(Token whileKeyword, Token endToken) {
- DirectParserASTContentWhileStatementEnd data =
- new DirectParserASTContentWhileStatementEnd(DirectParserASTType.END,
- whileKeyword: whileKeyword, endToken: endToken);
- seen(data);
- }
-
- @override
- void beginAsOperatorType(Token operator) {
- DirectParserASTContentAsOperatorTypeBegin data =
- new DirectParserASTContentAsOperatorTypeBegin(DirectParserASTType.BEGIN,
- operator: operator);
- seen(data);
- }
-
- @override
- void endAsOperatorType(Token operator) {
- DirectParserASTContentAsOperatorTypeEnd data =
- new DirectParserASTContentAsOperatorTypeEnd(DirectParserASTType.END,
- operator: operator);
- seen(data);
- }
-
- @override
- void handleAsOperator(Token operator) {
- DirectParserASTContentAsOperatorHandle data =
- new DirectParserASTContentAsOperatorHandle(DirectParserASTType.HANDLE,
- operator: operator);
- seen(data);
- }
-
- @override
- void handleAssignmentExpression(Token token) {
- DirectParserASTContentAssignmentExpressionHandle data =
- new DirectParserASTContentAssignmentExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginBinaryExpression(Token token) {
- DirectParserASTContentBinaryExpressionBegin data =
- new DirectParserASTContentBinaryExpressionBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endBinaryExpression(Token token) {
- DirectParserASTContentBinaryExpressionEnd data =
- new DirectParserASTContentBinaryExpressionEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void handleEndingBinaryExpression(Token token) {
- DirectParserASTContentEndingBinaryExpressionHandle data =
- new DirectParserASTContentEndingBinaryExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginConditionalExpression(Token question) {
- DirectParserASTContentConditionalExpressionBegin data =
- new DirectParserASTContentConditionalExpressionBegin(
- DirectParserASTType.BEGIN,
- question: question);
- seen(data);
- }
-
- @override
- void handleConditionalExpressionColon() {
- DirectParserASTContentConditionalExpressionColonHandle data =
- new DirectParserASTContentConditionalExpressionColonHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void endConditionalExpression(Token question, Token colon) {
- DirectParserASTContentConditionalExpressionEnd data =
- new DirectParserASTContentConditionalExpressionEnd(
- DirectParserASTType.END,
- question: question,
- colon: colon);
- seen(data);
- }
-
- @override
- void beginConstExpression(Token constKeyword) {
- DirectParserASTContentConstExpressionBegin data =
- new DirectParserASTContentConstExpressionBegin(
- DirectParserASTType.BEGIN,
- constKeyword: constKeyword);
- seen(data);
- }
-
- @override
- void endConstExpression(Token token) {
- DirectParserASTContentConstExpressionEnd data =
- new DirectParserASTContentConstExpressionEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void handleConstFactory(Token constKeyword) {
- DirectParserASTContentConstFactoryHandle data =
- new DirectParserASTContentConstFactoryHandle(DirectParserASTType.HANDLE,
- constKeyword: constKeyword);
- seen(data);
- }
-
- @override
- void beginForControlFlow(Token? awaitToken, Token forToken) {
- DirectParserASTContentForControlFlowBegin data =
- new DirectParserASTContentForControlFlowBegin(DirectParserASTType.BEGIN,
- awaitToken: awaitToken, forToken: forToken);
- seen(data);
- }
-
- @override
- void endForControlFlow(Token token) {
- DirectParserASTContentForControlFlowEnd data =
- new DirectParserASTContentForControlFlowEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void endForInControlFlow(Token token) {
- DirectParserASTContentForInControlFlowEnd data =
- new DirectParserASTContentForInControlFlowEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void beginIfControlFlow(Token ifToken) {
- DirectParserASTContentIfControlFlowBegin data =
- new DirectParserASTContentIfControlFlowBegin(DirectParserASTType.BEGIN,
- ifToken: ifToken);
- seen(data);
- }
-
- @override
- void handleThenControlFlow(Token token) {
- DirectParserASTContentThenControlFlowHandle data =
- new DirectParserASTContentThenControlFlowHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleElseControlFlow(Token elseToken) {
- DirectParserASTContentElseControlFlowHandle data =
- new DirectParserASTContentElseControlFlowHandle(
- DirectParserASTType.HANDLE,
- elseToken: elseToken);
- seen(data);
- }
-
- @override
- void endIfControlFlow(Token token) {
- DirectParserASTContentIfControlFlowEnd data =
- new DirectParserASTContentIfControlFlowEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void endIfElseControlFlow(Token token) {
- DirectParserASTContentIfElseControlFlowEnd data =
- new DirectParserASTContentIfElseControlFlowEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void handleSpreadExpression(Token spreadToken) {
- DirectParserASTContentSpreadExpressionHandle data =
- new DirectParserASTContentSpreadExpressionHandle(
- DirectParserASTType.HANDLE,
- spreadToken: spreadToken);
- seen(data);
- }
-
- @override
- void beginFunctionTypedFormalParameter(Token token) {
- DirectParserASTContentFunctionTypedFormalParameterBegin data =
- new DirectParserASTContentFunctionTypedFormalParameterBegin(
- DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endFunctionTypedFormalParameter(Token nameToken, Token? question) {
- DirectParserASTContentFunctionTypedFormalParameterEnd data =
- new DirectParserASTContentFunctionTypedFormalParameterEnd(
- DirectParserASTType.END,
- nameToken: nameToken,
- question: question);
- seen(data);
- }
-
- @override
- void handleIdentifier(Token token, IdentifierContext context) {
- DirectParserASTContentIdentifierHandle data =
- new DirectParserASTContentIdentifierHandle(DirectParserASTType.HANDLE,
- token: token, context: context);
- seen(data);
- }
-
- @override
- void handleShowHideIdentifier(Token? modifier, Token identifier) {
- DirectParserASTContentShowHideIdentifierHandle data =
- new DirectParserASTContentShowHideIdentifierHandle(
- DirectParserASTType.HANDLE,
- modifier: modifier,
- identifier: identifier);
- seen(data);
- }
-
- @override
- void handleIndexedExpression(
- Token? question, Token openSquareBracket, Token closeSquareBracket) {
- DirectParserASTContentIndexedExpressionHandle data =
- new DirectParserASTContentIndexedExpressionHandle(
- DirectParserASTType.HANDLE,
- question: question,
- openSquareBracket: openSquareBracket,
- closeSquareBracket: closeSquareBracket);
- seen(data);
- }
-
- @override
- void beginIsOperatorType(Token operator) {
- DirectParserASTContentIsOperatorTypeBegin data =
- new DirectParserASTContentIsOperatorTypeBegin(DirectParserASTType.BEGIN,
- operator: operator);
- seen(data);
- }
-
- @override
- void endIsOperatorType(Token operator) {
- DirectParserASTContentIsOperatorTypeEnd data =
- new DirectParserASTContentIsOperatorTypeEnd(DirectParserASTType.END,
- operator: operator);
- seen(data);
- }
-
- @override
- void handleIsOperator(Token isOperator, Token? not) {
- DirectParserASTContentIsOperatorHandle data =
- new DirectParserASTContentIsOperatorHandle(DirectParserASTType.HANDLE,
- isOperator: isOperator, not: not);
- seen(data);
- }
-
- @override
- void handleLiteralBool(Token token) {
- DirectParserASTContentLiteralBoolHandle data =
- new DirectParserASTContentLiteralBoolHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleBreakStatement(
- bool hasTarget, Token breakKeyword, Token endToken) {
- DirectParserASTContentBreakStatementHandle data =
- new DirectParserASTContentBreakStatementHandle(
- DirectParserASTType.HANDLE,
- hasTarget: hasTarget,
- breakKeyword: breakKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void handleContinueStatement(
- bool hasTarget, Token continueKeyword, Token endToken) {
- DirectParserASTContentContinueStatementHandle data =
- new DirectParserASTContentContinueStatementHandle(
- DirectParserASTType.HANDLE,
- hasTarget: hasTarget,
- continueKeyword: continueKeyword,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void handleEmptyStatement(Token token) {
- DirectParserASTContentEmptyStatementHandle data =
- new DirectParserASTContentEmptyStatementHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginAssert(Token assertKeyword, Assert kind) {
- DirectParserASTContentAssertBegin data =
- new DirectParserASTContentAssertBegin(DirectParserASTType.BEGIN,
- assertKeyword: assertKeyword, kind: kind);
- seen(data);
- }
-
- @override
- void endAssert(Token assertKeyword, Assert kind, Token leftParenthesis,
- Token? commaToken, Token semicolonToken) {
- DirectParserASTContentAssertEnd data = new DirectParserASTContentAssertEnd(
- DirectParserASTType.END,
- assertKeyword: assertKeyword,
- kind: kind,
- leftParenthesis: leftParenthesis,
- commaToken: commaToken,
- semicolonToken: semicolonToken);
- seen(data);
- }
-
- @override
- void handleLiteralDouble(Token token) {
- DirectParserASTContentLiteralDoubleHandle data =
- new DirectParserASTContentLiteralDoubleHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleLiteralInt(Token token) {
- DirectParserASTContentLiteralIntHandle data =
- new DirectParserASTContentLiteralIntHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleLiteralList(
- int count, Token leftBracket, Token? constKeyword, Token rightBracket) {
- DirectParserASTContentLiteralListHandle data =
- new DirectParserASTContentLiteralListHandle(DirectParserASTType.HANDLE,
- count: count,
- leftBracket: leftBracket,
- constKeyword: constKeyword,
- rightBracket: rightBracket);
- seen(data);
- }
-
- @override
- void handleLiteralSetOrMap(
- int count,
- Token leftBrace,
- Token? constKeyword,
- Token rightBrace,
- bool hasSetEntry,
- ) {
- DirectParserASTContentLiteralSetOrMapHandle data =
- new DirectParserASTContentLiteralSetOrMapHandle(
- DirectParserASTType.HANDLE,
- count: count,
- leftBrace: leftBrace,
- constKeyword: constKeyword,
- rightBrace: rightBrace,
- hasSetEntry: hasSetEntry);
- seen(data);
- }
-
- @override
- void handleLiteralNull(Token token) {
- DirectParserASTContentLiteralNullHandle data =
- new DirectParserASTContentLiteralNullHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleNativeClause(Token nativeToken, bool hasName) {
- DirectParserASTContentNativeClauseHandle data =
- new DirectParserASTContentNativeClauseHandle(DirectParserASTType.HANDLE,
- nativeToken: nativeToken, hasName: hasName);
- seen(data);
- }
-
- @override
- void handleNamedArgument(Token colon) {
- DirectParserASTContentNamedArgumentHandle data =
- new DirectParserASTContentNamedArgumentHandle(
- DirectParserASTType.HANDLE,
- colon: colon);
- seen(data);
- }
-
- @override
- void beginNewExpression(Token token) {
- DirectParserASTContentNewExpressionBegin data =
- new DirectParserASTContentNewExpressionBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endNewExpression(Token token) {
- DirectParserASTContentNewExpressionEnd data =
- new DirectParserASTContentNewExpressionEnd(DirectParserASTType.END,
- token: token);
- seen(data);
- }
-
- @override
- void handleNoArguments(Token token) {
- DirectParserASTContentNoArgumentsHandle data =
- new DirectParserASTContentNoArgumentsHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleNoConstructorReferenceContinuationAfterTypeArguments(Token token) {
- DirectParserASTContentNoConstructorReferenceContinuationAfterTypeArgumentsHandle
- data =
- new DirectParserASTContentNoConstructorReferenceContinuationAfterTypeArgumentsHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleNoType(Token lastConsumed) {
- DirectParserASTContentNoTypeHandle data =
- new DirectParserASTContentNoTypeHandle(DirectParserASTType.HANDLE,
- lastConsumed: lastConsumed);
- seen(data);
- }
-
- @override
- void handleNoTypeVariables(Token token) {
- DirectParserASTContentNoTypeVariablesHandle data =
- new DirectParserASTContentNoTypeVariablesHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleOperator(Token token) {
- DirectParserASTContentOperatorHandle data =
- new DirectParserASTContentOperatorHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleSymbolVoid(Token token) {
- DirectParserASTContentSymbolVoidHandle data =
- new DirectParserASTContentSymbolVoidHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleOperatorName(Token operatorKeyword, Token token) {
- DirectParserASTContentOperatorNameHandle data =
- new DirectParserASTContentOperatorNameHandle(DirectParserASTType.HANDLE,
- operatorKeyword: operatorKeyword, token: token);
- seen(data);
- }
-
- @override
- void handleInvalidOperatorName(Token operatorKeyword, Token token) {
- DirectParserASTContentInvalidOperatorNameHandle data =
- new DirectParserASTContentInvalidOperatorNameHandle(
- DirectParserASTType.HANDLE,
- operatorKeyword: operatorKeyword,
- token: token);
- seen(data);
- }
-
- @override
- void handleParenthesizedCondition(Token token) {
- DirectParserASTContentParenthesizedConditionHandle data =
- new DirectParserASTContentParenthesizedConditionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleParenthesizedExpression(Token token) {
- DirectParserASTContentParenthesizedExpressionHandle data =
- new DirectParserASTContentParenthesizedExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleQualified(Token period) {
- DirectParserASTContentQualifiedHandle data =
- new DirectParserASTContentQualifiedHandle(DirectParserASTType.HANDLE,
- period: period);
- seen(data);
- }
-
- @override
- void handleStringPart(Token token) {
- DirectParserASTContentStringPartHandle data =
- new DirectParserASTContentStringPartHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleSuperExpression(Token token, IdentifierContext context) {
- DirectParserASTContentSuperExpressionHandle data =
- new DirectParserASTContentSuperExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token,
- context: context);
- seen(data);
- }
-
- @override
- void beginSwitchCase(int labelCount, int expressionCount, Token firstToken) {
- DirectParserASTContentSwitchCaseBegin data =
- new DirectParserASTContentSwitchCaseBegin(DirectParserASTType.BEGIN,
- labelCount: labelCount,
- expressionCount: expressionCount,
- firstToken: firstToken);
- seen(data);
- }
-
- @override
- void endSwitchCase(
- int labelCount,
- int expressionCount,
- Token? defaultKeyword,
- Token? colonAfterDefault,
- int statementCount,
- Token firstToken,
- Token endToken) {
- DirectParserASTContentSwitchCaseEnd data =
- new DirectParserASTContentSwitchCaseEnd(DirectParserASTType.END,
- labelCount: labelCount,
- expressionCount: expressionCount,
- defaultKeyword: defaultKeyword,
- colonAfterDefault: colonAfterDefault,
- statementCount: statementCount,
- firstToken: firstToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void handleThisExpression(Token token, IdentifierContext context) {
- DirectParserASTContentThisExpressionHandle data =
- new DirectParserASTContentThisExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token,
- context: context);
- seen(data);
- }
-
- @override
- void handleUnaryPostfixAssignmentExpression(Token token) {
- DirectParserASTContentUnaryPostfixAssignmentExpressionHandle data =
- new DirectParserASTContentUnaryPostfixAssignmentExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleUnaryPrefixExpression(Token token) {
- DirectParserASTContentUnaryPrefixExpressionHandle data =
- new DirectParserASTContentUnaryPrefixExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleUnaryPrefixAssignmentExpression(Token token) {
- DirectParserASTContentUnaryPrefixAssignmentExpressionHandle data =
- new DirectParserASTContentUnaryPrefixAssignmentExpressionHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginFormalParameterDefaultValueExpression() {
- DirectParserASTContentFormalParameterDefaultValueExpressionBegin data =
- new DirectParserASTContentFormalParameterDefaultValueExpressionBegin(
- DirectParserASTType.BEGIN);
- seen(data);
- }
-
- @override
- void endFormalParameterDefaultValueExpression() {
- DirectParserASTContentFormalParameterDefaultValueExpressionEnd data =
- new DirectParserASTContentFormalParameterDefaultValueExpressionEnd(
- DirectParserASTType.END);
- seen(data);
- }
-
- @override
- void handleValuedFormalParameter(Token equals, Token token) {
- DirectParserASTContentValuedFormalParameterHandle data =
- new DirectParserASTContentValuedFormalParameterHandle(
- DirectParserASTType.HANDLE,
- equals: equals,
- token: token);
- seen(data);
- }
-
- @override
- void handleFormalParameterWithoutValue(Token token) {
- DirectParserASTContentFormalParameterWithoutValueHandle data =
- new DirectParserASTContentFormalParameterWithoutValueHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleVoidKeyword(Token token) {
- DirectParserASTContentVoidKeywordHandle data =
- new DirectParserASTContentVoidKeywordHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleVoidKeywordWithTypeArguments(Token token) {
- DirectParserASTContentVoidKeywordWithTypeArgumentsHandle data =
- new DirectParserASTContentVoidKeywordWithTypeArgumentsHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void beginYieldStatement(Token token) {
- DirectParserASTContentYieldStatementBegin data =
- new DirectParserASTContentYieldStatementBegin(DirectParserASTType.BEGIN,
- token: token);
- seen(data);
- }
-
- @override
- void endYieldStatement(Token yieldToken, Token? starToken, Token endToken) {
- DirectParserASTContentYieldStatementEnd data =
- new DirectParserASTContentYieldStatementEnd(DirectParserASTType.END,
- yieldToken: yieldToken, starToken: starToken, endToken: endToken);
- seen(data);
- }
-
- @override
- void endInvalidYieldStatement(Token beginToken, Token? starToken,
- Token endToken, MessageCode errorCode) {
- DirectParserASTContentInvalidYieldStatementEnd data =
- new DirectParserASTContentInvalidYieldStatementEnd(
- DirectParserASTType.END,
- beginToken: beginToken,
- starToken: starToken,
- endToken: endToken,
- errorCode: errorCode);
- seen(data);
- }
-
- @override
- void handleRecoverableError(
- Message message, Token startToken, Token endToken) {
- DirectParserASTContentRecoverableErrorHandle data =
- new DirectParserASTContentRecoverableErrorHandle(
- DirectParserASTType.HANDLE,
- message: message,
- startToken: startToken,
- endToken: endToken);
- seen(data);
- }
-
- @override
- void handleErrorToken(ErrorToken token) {
- DirectParserASTContentErrorTokenHandle data =
- new DirectParserASTContentErrorTokenHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleUnescapeError(
- Message message, Token location, int stringOffset, int length) {
- DirectParserASTContentUnescapeErrorHandle data =
- new DirectParserASTContentUnescapeErrorHandle(
- DirectParserASTType.HANDLE,
- message: message,
- location: location,
- stringOffset: stringOffset,
- length: length);
- seen(data);
- }
-
- @override
- void handleInvalidStatement(Token token, Message message) {
- DirectParserASTContentInvalidStatementHandle data =
- new DirectParserASTContentInvalidStatementHandle(
- DirectParserASTType.HANDLE,
- token: token,
- message: message);
- seen(data);
- }
-
- @override
- void handleScript(Token token) {
- DirectParserASTContentScriptHandle data =
- new DirectParserASTContentScriptHandle(DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-
- @override
- void handleCommentReferenceText(String referenceSource, int referenceOffset) {
- DirectParserASTContentCommentReferenceTextHandle data =
- new DirectParserASTContentCommentReferenceTextHandle(
- DirectParserASTType.HANDLE,
- referenceSource: referenceSource,
- referenceOffset: referenceOffset);
- seen(data);
- }
-
- @override
- void handleCommentReference(
- Token? newKeyword, Token? prefix, Token? period, Token token) {
- DirectParserASTContentCommentReferenceHandle data =
- new DirectParserASTContentCommentReferenceHandle(
- DirectParserASTType.HANDLE,
- newKeyword: newKeyword,
- prefix: prefix,
- period: period,
- token: token);
- seen(data);
- }
-
- @override
- void handleNoCommentReference() {
- DirectParserASTContentNoCommentReferenceHandle data =
- new DirectParserASTContentNoCommentReferenceHandle(
- DirectParserASTType.HANDLE);
- seen(data);
- }
-
- @override
- void handleTypeArgumentApplication(Token openAngleBracket) {
- DirectParserASTContentTypeArgumentApplicationHandle data =
- new DirectParserASTContentTypeArgumentApplicationHandle(
- DirectParserASTType.HANDLE,
- openAngleBracket: openAngleBracket);
- seen(data);
- }
-
- @override
- void handleNewAsIdentifier(Token token) {
- DirectParserASTContentNewAsIdentifierHandle data =
- new DirectParserASTContentNewAsIdentifierHandle(
- DirectParserASTType.HANDLE,
- token: token);
- seen(data);
- }
-}
-
-class DirectParserASTContentArgumentsBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentArgumentsBegin(DirectParserASTType type,
- {required this.token})
- : super("Arguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentArgumentsEnd extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentArgumentsEnd(DirectParserASTType type,
- {required this.count, required this.beginToken, required this.endToken})
- : super("Arguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentAsyncModifierHandle extends DirectParserASTContent {
- final Token? asyncToken;
- final Token? starToken;
-
- DirectParserASTContentAsyncModifierHandle(DirectParserASTType type,
- {this.asyncToken, this.starToken})
- : super("AsyncModifier", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "asyncToken": asyncToken,
- "starToken": starToken,
- };
-}
-
-class DirectParserASTContentAwaitExpressionBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentAwaitExpressionBegin(DirectParserASTType type,
- {required this.token})
- : super("AwaitExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentAwaitExpressionEnd extends DirectParserASTContent {
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentAwaitExpressionEnd(DirectParserASTType type,
- {required this.beginToken, required this.endToken})
- : super("AwaitExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentInvalidAwaitExpressionEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token endToken;
- final MessageCode errorCode;
-
- DirectParserASTContentInvalidAwaitExpressionEnd(DirectParserASTType type,
- {required this.beginToken,
- required this.endToken,
- required this.errorCode})
- : super("InvalidAwaitExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "endToken": endToken,
- "errorCode": errorCode,
- };
-}
-
-class DirectParserASTContentBlockBegin extends DirectParserASTContent {
- final Token token;
- final BlockKind blockKind;
-
- DirectParserASTContentBlockBegin(DirectParserASTType type,
- {required this.token, required this.blockKind})
- : super("Block", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "blockKind": blockKind,
- };
-}
-
-class DirectParserASTContentBlockEnd extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
- final BlockKind blockKind;
-
- DirectParserASTContentBlockEnd(DirectParserASTType type,
- {required this.count,
- required this.beginToken,
- required this.endToken,
- required this.blockKind})
- : super("Block", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- "blockKind": blockKind,
- };
-}
-
-class DirectParserASTContentInvalidTopLevelBlockHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInvalidTopLevelBlockHandle(DirectParserASTType type,
- {required this.token})
- : super("InvalidTopLevelBlock", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCascadeBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentCascadeBegin(DirectParserASTType type,
- {required this.token})
- : super("Cascade", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCascadeEnd extends DirectParserASTContent {
- DirectParserASTContentCascadeEnd(DirectParserASTType type)
- : super("Cascade", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentCaseExpressionBegin extends DirectParserASTContent {
- final Token caseKeyword;
-
- DirectParserASTContentCaseExpressionBegin(DirectParserASTType type,
- {required this.caseKeyword})
- : super("CaseExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "caseKeyword": caseKeyword,
- };
-}
-
-class DirectParserASTContentCaseExpressionEnd extends DirectParserASTContent {
- final Token colon;
-
- DirectParserASTContentCaseExpressionEnd(DirectParserASTType type,
- {required this.colon})
- : super("CaseExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "colon": colon,
- };
-}
-
-class DirectParserASTContentClassOrMixinOrExtensionBodyBegin
- extends DirectParserASTContent {
- final DeclarationKind kind;
- final Token token;
-
- DirectParserASTContentClassOrMixinOrExtensionBodyBegin(
- DirectParserASTType type,
- {required this.kind,
- required this.token})
- : super("ClassOrMixinOrExtensionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "kind": kind,
- "token": token,
- };
-}
-
-class DirectParserASTContentClassOrMixinOrExtensionBodyEnd
- extends DirectParserASTContent {
- final DeclarationKind kind;
- final int memberCount;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd(DirectParserASTType type,
- {required this.kind,
- required this.memberCount,
- required this.beginToken,
- required this.endToken})
- : super("ClassOrMixinOrExtensionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "kind": kind,
- "memberCount": memberCount,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentClassOrMixinOrNamedMixinApplicationPreludeBegin(
- DirectParserASTType type,
- {required this.token})
- : super("ClassOrMixinOrNamedMixinApplicationPrelude", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentClassDeclarationBegin
- extends DirectParserASTContent {
- final Token begin;
- final Token? abstractToken;
- final Token name;
-
- DirectParserASTContentClassDeclarationBegin(DirectParserASTType type,
- {required this.begin, this.abstractToken, required this.name})
- : super("ClassDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "begin": begin,
- "abstractToken": abstractToken,
- "name": name,
- };
-}
-
-class DirectParserASTContentClassExtendsHandle extends DirectParserASTContent {
- final Token? extendsKeyword;
- final int typeCount;
-
- DirectParserASTContentClassExtendsHandle(DirectParserASTType type,
- {this.extendsKeyword, required this.typeCount})
- : super("ClassExtends", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "extendsKeyword": extendsKeyword,
- "typeCount": typeCount,
- };
-}
-
-class DirectParserASTContentClassOrMixinImplementsHandle
- extends DirectParserASTContent {
- final Token? implementsKeyword;
- final int interfacesCount;
-
- DirectParserASTContentClassOrMixinImplementsHandle(DirectParserASTType type,
- {this.implementsKeyword, required this.interfacesCount})
- : super("ClassOrMixinImplements", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "implementsKeyword": implementsKeyword,
- "interfacesCount": interfacesCount,
- };
-}
-
-class DirectParserASTContentExtensionShowHideHandle
- extends DirectParserASTContent {
- final Token? showKeyword;
- final int showElementCount;
- final Token? hideKeyword;
- final int hideElementCount;
-
- DirectParserASTContentExtensionShowHideHandle(DirectParserASTType type,
- {this.showKeyword,
- required this.showElementCount,
- this.hideKeyword,
- required this.hideElementCount})
- : super("ExtensionShowHide", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "showKeyword": showKeyword,
- "showElementCount": showElementCount,
- "hideKeyword": hideKeyword,
- "hideElementCount": hideElementCount,
- };
-}
-
-class DirectParserASTContentClassHeaderHandle extends DirectParserASTContent {
- final Token begin;
- final Token classKeyword;
- final Token? nativeToken;
-
- DirectParserASTContentClassHeaderHandle(DirectParserASTType type,
- {required this.begin, required this.classKeyword, this.nativeToken})
- : super("ClassHeader", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "begin": begin,
- "classKeyword": classKeyword,
- "nativeToken": nativeToken,
- };
-}
-
-class DirectParserASTContentRecoverClassHeaderHandle
- extends DirectParserASTContent {
- DirectParserASTContentRecoverClassHeaderHandle(DirectParserASTType type)
- : super("RecoverClassHeader", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentClassDeclarationEnd extends DirectParserASTContent {
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentClassDeclarationEnd(DirectParserASTType type,
- {required this.beginToken, required this.endToken})
- : super("ClassDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMixinDeclarationBegin
- extends DirectParserASTContent {
- final Token mixinKeyword;
- final Token name;
-
- DirectParserASTContentMixinDeclarationBegin(DirectParserASTType type,
- {required this.mixinKeyword, required this.name})
- : super("MixinDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "mixinKeyword": mixinKeyword,
- "name": name,
- };
-}
-
-class DirectParserASTContentMixinOnHandle extends DirectParserASTContent {
- final Token? onKeyword;
- final int typeCount;
-
- DirectParserASTContentMixinOnHandle(DirectParserASTType type,
- {this.onKeyword, required this.typeCount})
- : super("MixinOn", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "onKeyword": onKeyword,
- "typeCount": typeCount,
- };
-}
-
-class DirectParserASTContentMixinHeaderHandle extends DirectParserASTContent {
- final Token mixinKeyword;
-
- DirectParserASTContentMixinHeaderHandle(DirectParserASTType type,
- {required this.mixinKeyword})
- : super("MixinHeader", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "mixinKeyword": mixinKeyword,
- };
-}
-
-class DirectParserASTContentRecoverMixinHeaderHandle
- extends DirectParserASTContent {
- DirectParserASTContentRecoverMixinHeaderHandle(DirectParserASTType type)
- : super("RecoverMixinHeader", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentMixinDeclarationEnd extends DirectParserASTContent {
- final Token mixinKeyword;
- final Token endToken;
-
- DirectParserASTContentMixinDeclarationEnd(DirectParserASTType type,
- {required this.mixinKeyword, required this.endToken})
- : super("MixinDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "mixinKeyword": mixinKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentUncategorizedTopLevelDeclarationBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentUncategorizedTopLevelDeclarationBegin(
- DirectParserASTType type,
- {required this.token})
- : super("UncategorizedTopLevelDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentExtensionDeclarationPreludeBegin
- extends DirectParserASTContent {
- final Token extensionKeyword;
-
- DirectParserASTContentExtensionDeclarationPreludeBegin(
- DirectParserASTType type,
- {required this.extensionKeyword})
- : super("ExtensionDeclarationPrelude", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "extensionKeyword": extensionKeyword,
- };
-}
-
-class DirectParserASTContentExtensionDeclarationBegin
- extends DirectParserASTContent {
- final Token extensionKeyword;
- final Token? name;
-
- DirectParserASTContentExtensionDeclarationBegin(DirectParserASTType type,
- {required this.extensionKeyword, this.name})
- : super("ExtensionDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "extensionKeyword": extensionKeyword,
- "name": name,
- };
-}
-
-class DirectParserASTContentExtensionDeclarationEnd
- extends DirectParserASTContent {
- final Token extensionKeyword;
- final Token? typeKeyword;
- final Token onKeyword;
- final Token? showKeyword;
- final Token? hideKeyword;
- final Token endToken;
-
- DirectParserASTContentExtensionDeclarationEnd(DirectParserASTType type,
- {required this.extensionKeyword,
- this.typeKeyword,
- required this.onKeyword,
- this.showKeyword,
- this.hideKeyword,
- required this.endToken})
- : super("ExtensionDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "extensionKeyword": extensionKeyword,
- "typeKeyword": typeKeyword,
- "onKeyword": onKeyword,
- "showKeyword": showKeyword,
- "hideKeyword": hideKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentCombinatorsBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentCombinatorsBegin(DirectParserASTType type,
- {required this.token})
- : super("Combinators", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCombinatorsEnd extends DirectParserASTContent {
- final int count;
-
- DirectParserASTContentCombinatorsEnd(DirectParserASTType type,
- {required this.count})
- : super("Combinators", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- };
-}
-
-class DirectParserASTContentCompilationUnitBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentCompilationUnitBegin(DirectParserASTType type,
- {required this.token})
- : super("CompilationUnit", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentDirectivesOnlyHandle
- extends DirectParserASTContent {
- DirectParserASTContentDirectivesOnlyHandle(DirectParserASTType type)
- : super("DirectivesOnly", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentCompilationUnitEnd extends DirectParserASTContent {
- final int count;
- final Token token;
-
- DirectParserASTContentCompilationUnitEnd(DirectParserASTType type,
- {required this.count, required this.token})
- : super("CompilationUnit", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "token": token,
- };
-}
-
-class DirectParserASTContentConstLiteralBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentConstLiteralBegin(DirectParserASTType type,
- {required this.token})
- : super("ConstLiteral", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentConstLiteralEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentConstLiteralEnd(DirectParserASTType type,
- {required this.token})
- : super("ConstLiteral", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentConstructorReferenceBegin
- extends DirectParserASTContent {
- final Token start;
-
- DirectParserASTContentConstructorReferenceBegin(DirectParserASTType type,
- {required this.start})
- : super("ConstructorReference", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "start": start,
- };
-}
-
-class DirectParserASTContentConstructorReferenceEnd
- extends DirectParserASTContent {
- final Token start;
- final Token? periodBeforeName;
- final Token endToken;
- final ConstructorReferenceContext constructorReferenceContext;
-
- DirectParserASTContentConstructorReferenceEnd(DirectParserASTType type,
- {required this.start,
- this.periodBeforeName,
- required this.endToken,
- required this.constructorReferenceContext})
- : super("ConstructorReference", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "start": start,
- "periodBeforeName": periodBeforeName,
- "endToken": endToken,
- "constructorReferenceContext": constructorReferenceContext,
- };
-}
-
-class DirectParserASTContentDoWhileStatementBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentDoWhileStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("DoWhileStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentDoWhileStatementEnd extends DirectParserASTContent {
- final Token doKeyword;
- final Token whileKeyword;
- final Token endToken;
-
- DirectParserASTContentDoWhileStatementEnd(DirectParserASTType type,
- {required this.doKeyword,
- required this.whileKeyword,
- required this.endToken})
- : super("DoWhileStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "doKeyword": doKeyword,
- "whileKeyword": whileKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentDoWhileStatementBodyBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentDoWhileStatementBodyBegin(DirectParserASTType type,
- {required this.token})
- : super("DoWhileStatementBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentDoWhileStatementBodyEnd
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentDoWhileStatementBodyEnd(DirectParserASTType type,
- {required this.token})
- : super("DoWhileStatementBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentWhileStatementBodyBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentWhileStatementBodyBegin(DirectParserASTType type,
- {required this.token})
- : super("WhileStatementBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentWhileStatementBodyEnd
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentWhileStatementBodyEnd(DirectParserASTType type,
- {required this.token})
- : super("WhileStatementBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentEnumBegin extends DirectParserASTContent {
- final Token enumKeyword;
-
- DirectParserASTContentEnumBegin(DirectParserASTType type,
- {required this.enumKeyword})
- : super("Enum", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "enumKeyword": enumKeyword,
- };
-}
-
-class DirectParserASTContentEnumEnd extends DirectParserASTContent {
- final Token enumKeyword;
- final Token leftBrace;
- final int count;
-
- DirectParserASTContentEnumEnd(DirectParserASTType type,
- {required this.enumKeyword, required this.leftBrace, required this.count})
- : super("Enum", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "enumKeyword": enumKeyword,
- "leftBrace": leftBrace,
- "count": count,
- };
-}
-
-class DirectParserASTContentExportBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentExportBegin(DirectParserASTType type,
- {required this.token})
- : super("Export", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentExportEnd extends DirectParserASTContent {
- final Token exportKeyword;
- final Token semicolon;
-
- DirectParserASTContentExportEnd(DirectParserASTType type,
- {required this.exportKeyword, required this.semicolon})
- : super("Export", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "exportKeyword": exportKeyword,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentExtraneousExpressionHandle
- extends DirectParserASTContent {
- final Token token;
- final Message message;
-
- DirectParserASTContentExtraneousExpressionHandle(DirectParserASTType type,
- {required this.token, required this.message})
- : super("ExtraneousExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "message": message,
- };
-}
-
-class DirectParserASTContentExpressionStatementHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentExpressionStatementHandle(DirectParserASTType type,
- {required this.token})
- : super("ExpressionStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFactoryMethodBegin extends DirectParserASTContent {
- final DeclarationKind declarationKind;
- final Token lastConsumed;
- final Token? externalToken;
- final Token? constToken;
-
- DirectParserASTContentFactoryMethodBegin(DirectParserASTType type,
- {required this.declarationKind,
- required this.lastConsumed,
- this.externalToken,
- this.constToken})
- : super("FactoryMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "declarationKind": declarationKind,
- "lastConsumed": lastConsumed,
- "externalToken": externalToken,
- "constToken": constToken,
- };
-}
-
-class DirectParserASTContentClassFactoryMethodEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token factoryKeyword;
- final Token endToken;
-
- DirectParserASTContentClassFactoryMethodEnd(DirectParserASTType type,
- {required this.beginToken,
- required this.factoryKeyword,
- required this.endToken})
- : super("ClassFactoryMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "factoryKeyword": factoryKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMixinFactoryMethodEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token factoryKeyword;
- final Token endToken;
-
- DirectParserASTContentMixinFactoryMethodEnd(DirectParserASTType type,
- {required this.beginToken,
- required this.factoryKeyword,
- required this.endToken})
- : super("MixinFactoryMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "factoryKeyword": factoryKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentExtensionFactoryMethodEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token factoryKeyword;
- final Token endToken;
-
- DirectParserASTContentExtensionFactoryMethodEnd(DirectParserASTType type,
- {required this.beginToken,
- required this.factoryKeyword,
- required this.endToken})
- : super("ExtensionFactoryMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "factoryKeyword": factoryKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentFormalParameterBegin
- extends DirectParserASTContent {
- final Token token;
- final MemberKind kind;
- final Token? requiredToken;
- final Token? covariantToken;
- final Token? varFinalOrConst;
-
- DirectParserASTContentFormalParameterBegin(DirectParserASTType type,
- {required this.token,
- required this.kind,
- this.requiredToken,
- this.covariantToken,
- this.varFinalOrConst})
- : super("FormalParameter", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "kind": kind,
- "requiredToken": requiredToken,
- "covariantToken": covariantToken,
- "varFinalOrConst": varFinalOrConst,
- };
-}
-
-class DirectParserASTContentFormalParameterEnd extends DirectParserASTContent {
- final Token? thisKeyword;
- final Token? superKeyword;
- final Token? periodAfterThisOrSuper;
- final Token nameToken;
- final Token? initializerStart;
- final Token? initializerEnd;
- final FormalParameterKind kind;
- final MemberKind memberKind;
-
- DirectParserASTContentFormalParameterEnd(DirectParserASTType type,
- {this.thisKeyword,
- this.superKeyword,
- this.periodAfterThisOrSuper,
- required this.nameToken,
- this.initializerStart,
- this.initializerEnd,
- required this.kind,
- required this.memberKind})
- : super("FormalParameter", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "thisKeyword": thisKeyword,
- "superKeyword": superKeyword,
- "periodAfterThisOrSuper": periodAfterThisOrSuper,
- "nameToken": nameToken,
- "initializerStart": initializerStart,
- "initializerEnd": initializerEnd,
- "kind": kind,
- "memberKind": memberKind,
- };
-}
-
-class DirectParserASTContentNoFormalParametersHandle
- extends DirectParserASTContent {
- final Token token;
- final MemberKind kind;
-
- DirectParserASTContentNoFormalParametersHandle(DirectParserASTType type,
- {required this.token, required this.kind})
- : super("NoFormalParameters", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "kind": kind,
- };
-}
-
-class DirectParserASTContentFormalParametersBegin
- extends DirectParserASTContent {
- final Token token;
- final MemberKind kind;
-
- DirectParserASTContentFormalParametersBegin(DirectParserASTType type,
- {required this.token, required this.kind})
- : super("FormalParameters", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "kind": kind,
- };
-}
-
-class DirectParserASTContentFormalParametersEnd extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
- final MemberKind kind;
-
- DirectParserASTContentFormalParametersEnd(DirectParserASTType type,
- {required this.count,
- required this.beginToken,
- required this.endToken,
- required this.kind})
- : super("FormalParameters", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- "kind": kind,
- };
-}
-
-class DirectParserASTContentClassFieldsEnd extends DirectParserASTContent {
- final Token? abstractToken;
- final Token? externalToken;
- final Token? staticToken;
- final Token? covariantToken;
- final Token? lateToken;
- final Token? varFinalOrConst;
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentClassFieldsEnd(DirectParserASTType type,
- {this.abstractToken,
- this.externalToken,
- this.staticToken,
- this.covariantToken,
- this.lateToken,
- this.varFinalOrConst,
- required this.count,
- required this.beginToken,
- required this.endToken})
- : super("ClassFields", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "abstractToken": abstractToken,
- "externalToken": externalToken,
- "staticToken": staticToken,
- "covariantToken": covariantToken,
- "lateToken": lateToken,
- "varFinalOrConst": varFinalOrConst,
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMixinFieldsEnd extends DirectParserASTContent {
- final Token? abstractToken;
- final Token? externalToken;
- final Token? staticToken;
- final Token? covariantToken;
- final Token? lateToken;
- final Token? varFinalOrConst;
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentMixinFieldsEnd(DirectParserASTType type,
- {this.abstractToken,
- this.externalToken,
- this.staticToken,
- this.covariantToken,
- this.lateToken,
- this.varFinalOrConst,
- required this.count,
- required this.beginToken,
- required this.endToken})
- : super("MixinFields", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "abstractToken": abstractToken,
- "externalToken": externalToken,
- "staticToken": staticToken,
- "covariantToken": covariantToken,
- "lateToken": lateToken,
- "varFinalOrConst": varFinalOrConst,
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentExtensionFieldsEnd extends DirectParserASTContent {
- final Token? abstractToken;
- final Token? externalToken;
- final Token? staticToken;
- final Token? covariantToken;
- final Token? lateToken;
- final Token? varFinalOrConst;
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentExtensionFieldsEnd(DirectParserASTType type,
- {this.abstractToken,
- this.externalToken,
- this.staticToken,
- this.covariantToken,
- this.lateToken,
- this.varFinalOrConst,
- required this.count,
- required this.beginToken,
- required this.endToken})
- : super("ExtensionFields", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "abstractToken": abstractToken,
- "externalToken": externalToken,
- "staticToken": staticToken,
- "covariantToken": covariantToken,
- "lateToken": lateToken,
- "varFinalOrConst": varFinalOrConst,
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentForInitializerEmptyStatementHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForInitializerEmptyStatementHandle(
- DirectParserASTType type,
- {required this.token})
- : super("ForInitializerEmptyStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForInitializerExpressionStatementHandle
- extends DirectParserASTContent {
- final Token token;
- final bool forIn;
-
- DirectParserASTContentForInitializerExpressionStatementHandle(
- DirectParserASTType type,
- {required this.token,
- required this.forIn})
- : super("ForInitializerExpressionStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "forIn": forIn,
- };
-}
-
-class DirectParserASTContentForInitializerLocalVariableDeclarationHandle
- extends DirectParserASTContent {
- final Token token;
- final bool forIn;
-
- DirectParserASTContentForInitializerLocalVariableDeclarationHandle(
- DirectParserASTType type,
- {required this.token,
- required this.forIn})
- : super("ForInitializerLocalVariableDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "forIn": forIn,
- };
-}
-
-class DirectParserASTContentForStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("ForStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForLoopPartsHandle extends DirectParserASTContent {
- final Token forKeyword;
- final Token leftParen;
- final Token leftSeparator;
- final int updateExpressionCount;
-
- DirectParserASTContentForLoopPartsHandle(DirectParserASTType type,
- {required this.forKeyword,
- required this.leftParen,
- required this.leftSeparator,
- required this.updateExpressionCount})
- : super("ForLoopParts", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "forKeyword": forKeyword,
- "leftParen": leftParen,
- "leftSeparator": leftSeparator,
- "updateExpressionCount": updateExpressionCount,
- };
-}
-
-class DirectParserASTContentForStatementEnd extends DirectParserASTContent {
- final Token endToken;
-
- DirectParserASTContentForStatementEnd(DirectParserASTType type,
- {required this.endToken})
- : super("ForStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentForStatementBodyBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForStatementBodyBegin(DirectParserASTType type,
- {required this.token})
- : super("ForStatementBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForStatementBodyEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForStatementBodyEnd(DirectParserASTType type,
- {required this.token})
- : super("ForStatementBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForInLoopPartsHandle
- extends DirectParserASTContent {
- final Token? awaitToken;
- final Token forToken;
- final Token leftParenthesis;
- final Token inKeyword;
-
- DirectParserASTContentForInLoopPartsHandle(DirectParserASTType type,
- {this.awaitToken,
- required this.forToken,
- required this.leftParenthesis,
- required this.inKeyword})
- : super("ForInLoopParts", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "awaitToken": awaitToken,
- "forToken": forToken,
- "leftParenthesis": leftParenthesis,
- "inKeyword": inKeyword,
- };
-}
-
-class DirectParserASTContentForInEnd extends DirectParserASTContent {
- final Token endToken;
-
- DirectParserASTContentForInEnd(DirectParserASTType type,
- {required this.endToken})
- : super("ForIn", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentForInExpressionBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForInExpressionBegin(DirectParserASTType type,
- {required this.token})
- : super("ForInExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForInExpressionEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForInExpressionEnd(DirectParserASTType type,
- {required this.token})
- : super("ForInExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForInBodyBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForInBodyBegin(DirectParserASTType type,
- {required this.token})
- : super("ForInBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForInBodyEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForInBodyEnd(DirectParserASTType type,
- {required this.token})
- : super("ForInBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNamedFunctionExpressionBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNamedFunctionExpressionBegin(DirectParserASTType type,
- {required this.token})
- : super("NamedFunctionExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNamedFunctionExpressionEnd
- extends DirectParserASTContent {
- final Token endToken;
-
- DirectParserASTContentNamedFunctionExpressionEnd(DirectParserASTType type,
- {required this.endToken})
- : super("NamedFunctionExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentLocalFunctionDeclarationBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLocalFunctionDeclarationBegin(DirectParserASTType type,
- {required this.token})
- : super("LocalFunctionDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLocalFunctionDeclarationEnd
- extends DirectParserASTContent {
- final Token endToken;
-
- DirectParserASTContentLocalFunctionDeclarationEnd(DirectParserASTType type,
- {required this.endToken})
- : super("LocalFunctionDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentBlockFunctionBodyBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentBlockFunctionBodyBegin(DirectParserASTType type,
- {required this.token})
- : super("BlockFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentBlockFunctionBodyEnd
- extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentBlockFunctionBodyEnd(DirectParserASTType type,
- {required this.count, required this.beginToken, required this.endToken})
- : super("BlockFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentNoFunctionBodyHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoFunctionBodyHandle(DirectParserASTType type,
- {required this.token})
- : super("NoFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFunctionBodySkippedHandle
- extends DirectParserASTContent {
- final Token token;
- final bool isExpressionBody;
-
- DirectParserASTContentFunctionBodySkippedHandle(DirectParserASTType type,
- {required this.token, required this.isExpressionBody})
- : super("FunctionBodySkipped", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "isExpressionBody": isExpressionBody,
- };
-}
-
-class DirectParserASTContentFunctionNameBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentFunctionNameBegin(DirectParserASTType type,
- {required this.token})
- : super("FunctionName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFunctionNameEnd extends DirectParserASTContent {
- final Token beginToken;
- final Token token;
-
- DirectParserASTContentFunctionNameEnd(DirectParserASTType type,
- {required this.beginToken, required this.token})
- : super("FunctionName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "token": token,
- };
-}
-
-class DirectParserASTContentTypedefBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTypedefBegin(DirectParserASTType type,
- {required this.token})
- : super("Typedef", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentTypedefEnd extends DirectParserASTContent {
- final Token typedefKeyword;
- final Token? equals;
- final Token endToken;
-
- DirectParserASTContentTypedefEnd(DirectParserASTType type,
- {required this.typedefKeyword, this.equals, required this.endToken})
- : super("Typedef", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "typedefKeyword": typedefKeyword,
- "equals": equals,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentClassWithClauseHandle
- extends DirectParserASTContent {
- final Token withKeyword;
-
- DirectParserASTContentClassWithClauseHandle(DirectParserASTType type,
- {required this.withKeyword})
- : super("ClassWithClause", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "withKeyword": withKeyword,
- };
-}
-
-class DirectParserASTContentClassNoWithClauseHandle
- extends DirectParserASTContent {
- DirectParserASTContentClassNoWithClauseHandle(DirectParserASTType type)
- : super("ClassNoWithClause", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentNamedMixinApplicationBegin
- extends DirectParserASTContent {
- final Token begin;
- final Token? abstractToken;
- final Token name;
-
- DirectParserASTContentNamedMixinApplicationBegin(DirectParserASTType type,
- {required this.begin, this.abstractToken, required this.name})
- : super("NamedMixinApplication", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "begin": begin,
- "abstractToken": abstractToken,
- "name": name,
- };
-}
-
-class DirectParserASTContentNamedMixinApplicationWithClauseHandle
- extends DirectParserASTContent {
- final Token withKeyword;
-
- DirectParserASTContentNamedMixinApplicationWithClauseHandle(
- DirectParserASTType type,
- {required this.withKeyword})
- : super("NamedMixinApplicationWithClause", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "withKeyword": withKeyword,
- };
-}
-
-class DirectParserASTContentNamedMixinApplicationEnd
- extends DirectParserASTContent {
- final Token begin;
- final Token classKeyword;
- final Token equals;
- final Token? implementsKeyword;
- final Token endToken;
-
- DirectParserASTContentNamedMixinApplicationEnd(DirectParserASTType type,
- {required this.begin,
- required this.classKeyword,
- required this.equals,
- this.implementsKeyword,
- required this.endToken})
- : super("NamedMixinApplication", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "begin": begin,
- "classKeyword": classKeyword,
- "equals": equals,
- "implementsKeyword": implementsKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentHideBegin extends DirectParserASTContent {
- final Token hideKeyword;
-
- DirectParserASTContentHideBegin(DirectParserASTType type,
- {required this.hideKeyword})
- : super("Hide", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "hideKeyword": hideKeyword,
- };
-}
-
-class DirectParserASTContentHideEnd extends DirectParserASTContent {
- final Token hideKeyword;
-
- DirectParserASTContentHideEnd(DirectParserASTType type,
- {required this.hideKeyword})
- : super("Hide", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "hideKeyword": hideKeyword,
- };
-}
-
-class DirectParserASTContentIdentifierListHandle
- extends DirectParserASTContent {
- final int count;
-
- DirectParserASTContentIdentifierListHandle(DirectParserASTType type,
- {required this.count})
- : super("IdentifierList", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- };
-}
-
-class DirectParserASTContentTypeListBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTypeListBegin(DirectParserASTType type,
- {required this.token})
- : super("TypeList", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentTypeListEnd extends DirectParserASTContent {
- final int count;
-
- DirectParserASTContentTypeListEnd(DirectParserASTType type,
- {required this.count})
- : super("TypeList", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- };
-}
-
-class DirectParserASTContentIfStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentIfStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("IfStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentIfStatementEnd extends DirectParserASTContent {
- final Token ifToken;
- final Token? elseToken;
-
- DirectParserASTContentIfStatementEnd(DirectParserASTType type,
- {required this.ifToken, this.elseToken})
- : super("IfStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "ifToken": ifToken,
- "elseToken": elseToken,
- };
-}
-
-class DirectParserASTContentThenStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentThenStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("ThenStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentThenStatementEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentThenStatementEnd(DirectParserASTType type,
- {required this.token})
- : super("ThenStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentElseStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentElseStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("ElseStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentElseStatementEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentElseStatementEnd(DirectParserASTType type,
- {required this.token})
- : super("ElseStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentImportBegin extends DirectParserASTContent {
- final Token importKeyword;
-
- DirectParserASTContentImportBegin(DirectParserASTType type,
- {required this.importKeyword})
- : super("Import", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "importKeyword": importKeyword,
- };
-}
-
-class DirectParserASTContentImportPrefixHandle extends DirectParserASTContent {
- final Token? deferredKeyword;
- final Token? asKeyword;
-
- DirectParserASTContentImportPrefixHandle(DirectParserASTType type,
- {this.deferredKeyword, this.asKeyword})
- : super("ImportPrefix", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "deferredKeyword": deferredKeyword,
- "asKeyword": asKeyword,
- };
-}
-
-class DirectParserASTContentImportEnd extends DirectParserASTContent {
- final Token importKeyword;
- final Token? semicolon;
-
- DirectParserASTContentImportEnd(DirectParserASTType type,
- {required this.importKeyword, this.semicolon})
- : super("Import", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "importKeyword": importKeyword,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentRecoverImportHandle extends DirectParserASTContent {
- final Token? semicolon;
-
- DirectParserASTContentRecoverImportHandle(DirectParserASTType type,
- {this.semicolon})
- : super("RecoverImport", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentConditionalUrisBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentConditionalUrisBegin(DirectParserASTType type,
- {required this.token})
- : super("ConditionalUris", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentConditionalUrisEnd extends DirectParserASTContent {
- final int count;
-
- DirectParserASTContentConditionalUrisEnd(DirectParserASTType type,
- {required this.count})
- : super("ConditionalUris", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- };
-}
-
-class DirectParserASTContentConditionalUriBegin extends DirectParserASTContent {
- final Token ifKeyword;
-
- DirectParserASTContentConditionalUriBegin(DirectParserASTType type,
- {required this.ifKeyword})
- : super("ConditionalUri", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "ifKeyword": ifKeyword,
- };
-}
-
-class DirectParserASTContentConditionalUriEnd extends DirectParserASTContent {
- final Token ifKeyword;
- final Token leftParen;
- final Token? equalSign;
-
- DirectParserASTContentConditionalUriEnd(DirectParserASTType type,
- {required this.ifKeyword, required this.leftParen, this.equalSign})
- : super("ConditionalUri", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "ifKeyword": ifKeyword,
- "leftParen": leftParen,
- "equalSign": equalSign,
- };
-}
-
-class DirectParserASTContentDottedNameHandle extends DirectParserASTContent {
- final int count;
- final Token firstIdentifier;
-
- DirectParserASTContentDottedNameHandle(DirectParserASTType type,
- {required this.count, required this.firstIdentifier})
- : super("DottedName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "firstIdentifier": firstIdentifier,
- };
-}
-
-class DirectParserASTContentImplicitCreationExpressionBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentImplicitCreationExpressionBegin(
- DirectParserASTType type,
- {required this.token})
- : super("ImplicitCreationExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentImplicitCreationExpressionEnd
- extends DirectParserASTContent {
- final Token token;
- final Token openAngleBracket;
-
- DirectParserASTContentImplicitCreationExpressionEnd(DirectParserASTType type,
- {required this.token, required this.openAngleBracket})
- : super("ImplicitCreationExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "openAngleBracket": openAngleBracket,
- };
-}
-
-class DirectParserASTContentInitializedIdentifierBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInitializedIdentifierBegin(DirectParserASTType type,
- {required this.token})
- : super("InitializedIdentifier", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInitializedIdentifierEnd
- extends DirectParserASTContent {
- final Token nameToken;
-
- DirectParserASTContentInitializedIdentifierEnd(DirectParserASTType type,
- {required this.nameToken})
- : super("InitializedIdentifier", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nameToken": nameToken,
- };
-}
-
-class DirectParserASTContentFieldInitializerBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentFieldInitializerBegin(DirectParserASTType type,
- {required this.token})
- : super("FieldInitializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFieldInitializerEnd extends DirectParserASTContent {
- final Token assignment;
- final Token token;
-
- DirectParserASTContentFieldInitializerEnd(DirectParserASTType type,
- {required this.assignment, required this.token})
- : super("FieldInitializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "assignment": assignment,
- "token": token,
- };
-}
-
-class DirectParserASTContentNoFieldInitializerHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoFieldInitializerHandle(DirectParserASTType type,
- {required this.token})
- : super("NoFieldInitializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentVariableInitializerBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentVariableInitializerBegin(DirectParserASTType type,
- {required this.token})
- : super("VariableInitializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentVariableInitializerEnd
- extends DirectParserASTContent {
- final Token assignmentOperator;
-
- DirectParserASTContentVariableInitializerEnd(DirectParserASTType type,
- {required this.assignmentOperator})
- : super("VariableInitializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "assignmentOperator": assignmentOperator,
- };
-}
-
-class DirectParserASTContentNoVariableInitializerHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoVariableInitializerHandle(DirectParserASTType type,
- {required this.token})
- : super("NoVariableInitializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInitializerBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInitializerBegin(DirectParserASTType type,
- {required this.token})
- : super("Initializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInitializerEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInitializerEnd(DirectParserASTType type,
- {required this.token})
- : super("Initializer", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInitializersBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInitializersBegin(DirectParserASTType type,
- {required this.token})
- : super("Initializers", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInitializersEnd extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentInitializersEnd(DirectParserASTType type,
- {required this.count, required this.beginToken, required this.endToken})
- : super("Initializers", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentNoInitializersHandle
- extends DirectParserASTContent {
- DirectParserASTContentNoInitializersHandle(DirectParserASTType type)
- : super("NoInitializers", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentInvalidExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInvalidExpressionHandle(DirectParserASTType type,
- {required this.token})
- : super("InvalidExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInvalidFunctionBodyHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInvalidFunctionBodyHandle(DirectParserASTType type,
- {required this.token})
- : super("InvalidFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInvalidTypeReferenceHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInvalidTypeReferenceHandle(DirectParserASTType type,
- {required this.token})
- : super("InvalidTypeReference", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLabelHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLabelHandle(DirectParserASTType type,
- {required this.token})
- : super("Label", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLabeledStatementBegin
- extends DirectParserASTContent {
- final Token token;
- final int labelCount;
-
- DirectParserASTContentLabeledStatementBegin(DirectParserASTType type,
- {required this.token, required this.labelCount})
- : super("LabeledStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "labelCount": labelCount,
- };
-}
-
-class DirectParserASTContentLabeledStatementEnd extends DirectParserASTContent {
- final int labelCount;
-
- DirectParserASTContentLabeledStatementEnd(DirectParserASTType type,
- {required this.labelCount})
- : super("LabeledStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "labelCount": labelCount,
- };
-}
-
-class DirectParserASTContentLibraryNameBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLibraryNameBegin(DirectParserASTType type,
- {required this.token})
- : super("LibraryName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLibraryNameEnd extends DirectParserASTContent {
- final Token libraryKeyword;
- final Token semicolon;
-
- DirectParserASTContentLibraryNameEnd(DirectParserASTType type,
- {required this.libraryKeyword, required this.semicolon})
- : super("LibraryName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "libraryKeyword": libraryKeyword,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentLiteralMapEntryHandle
- extends DirectParserASTContent {
- final Token colon;
- final Token endToken;
-
- DirectParserASTContentLiteralMapEntryHandle(DirectParserASTType type,
- {required this.colon, required this.endToken})
- : super("LiteralMapEntry", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "colon": colon,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentLiteralStringBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLiteralStringBegin(DirectParserASTType type,
- {required this.token})
- : super("LiteralString", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentInterpolationExpressionHandle
- extends DirectParserASTContent {
- final Token leftBracket;
- final Token? rightBracket;
-
- DirectParserASTContentInterpolationExpressionHandle(DirectParserASTType type,
- {required this.leftBracket, this.rightBracket})
- : super("InterpolationExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "leftBracket": leftBracket,
- "rightBracket": rightBracket,
- };
-}
-
-class DirectParserASTContentLiteralStringEnd extends DirectParserASTContent {
- final int interpolationCount;
- final Token endToken;
-
- DirectParserASTContentLiteralStringEnd(DirectParserASTType type,
- {required this.interpolationCount, required this.endToken})
- : super("LiteralString", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "interpolationCount": interpolationCount,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentStringJuxtapositionHandle
- extends DirectParserASTContent {
- final Token startToken;
- final int literalCount;
-
- DirectParserASTContentStringJuxtapositionHandle(DirectParserASTType type,
- {required this.startToken, required this.literalCount})
- : super("StringJuxtaposition", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "startToken": startToken,
- "literalCount": literalCount,
- };
-}
-
-class DirectParserASTContentMemberBegin extends DirectParserASTContent {
- DirectParserASTContentMemberBegin(DirectParserASTType type)
- : super("Member", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentInvalidMemberHandle extends DirectParserASTContent {
- final Token endToken;
-
- DirectParserASTContentInvalidMemberHandle(DirectParserASTType type,
- {required this.endToken})
- : super("InvalidMember", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMemberEnd extends DirectParserASTContent {
- DirectParserASTContentMemberEnd(DirectParserASTType type)
- : super("Member", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentMethodBegin extends DirectParserASTContent {
- final DeclarationKind declarationKind;
- final Token? externalToken;
- final Token? staticToken;
- final Token? covariantToken;
- final Token? varFinalOrConst;
- final Token? getOrSet;
- final Token name;
-
- DirectParserASTContentMethodBegin(DirectParserASTType type,
- {required this.declarationKind,
- this.externalToken,
- this.staticToken,
- this.covariantToken,
- this.varFinalOrConst,
- this.getOrSet,
- required this.name})
- : super("Method", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "declarationKind": declarationKind,
- "externalToken": externalToken,
- "staticToken": staticToken,
- "covariantToken": covariantToken,
- "varFinalOrConst": varFinalOrConst,
- "getOrSet": getOrSet,
- "name": name,
- };
-}
-
-class DirectParserASTContentClassMethodEnd extends DirectParserASTContent {
- final Token? getOrSet;
- final Token beginToken;
- final Token beginParam;
- final Token? beginInitializers;
- final Token endToken;
-
- DirectParserASTContentClassMethodEnd(DirectParserASTType type,
- {this.getOrSet,
- required this.beginToken,
- required this.beginParam,
- this.beginInitializers,
- required this.endToken})
- : super("ClassMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "getOrSet": getOrSet,
- "beginToken": beginToken,
- "beginParam": beginParam,
- "beginInitializers": beginInitializers,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMixinMethodEnd extends DirectParserASTContent {
- final Token? getOrSet;
- final Token beginToken;
- final Token beginParam;
- final Token? beginInitializers;
- final Token endToken;
-
- DirectParserASTContentMixinMethodEnd(DirectParserASTType type,
- {this.getOrSet,
- required this.beginToken,
- required this.beginParam,
- this.beginInitializers,
- required this.endToken})
- : super("MixinMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "getOrSet": getOrSet,
- "beginToken": beginToken,
- "beginParam": beginParam,
- "beginInitializers": beginInitializers,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentExtensionMethodEnd extends DirectParserASTContent {
- final Token? getOrSet;
- final Token beginToken;
- final Token beginParam;
- final Token? beginInitializers;
- final Token endToken;
-
- DirectParserASTContentExtensionMethodEnd(DirectParserASTType type,
- {this.getOrSet,
- required this.beginToken,
- required this.beginParam,
- this.beginInitializers,
- required this.endToken})
- : super("ExtensionMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "getOrSet": getOrSet,
- "beginToken": beginToken,
- "beginParam": beginParam,
- "beginInitializers": beginInitializers,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentClassConstructorEnd extends DirectParserASTContent {
- final Token? getOrSet;
- final Token beginToken;
- final Token beginParam;
- final Token? beginInitializers;
- final Token endToken;
-
- DirectParserASTContentClassConstructorEnd(DirectParserASTType type,
- {this.getOrSet,
- required this.beginToken,
- required this.beginParam,
- this.beginInitializers,
- required this.endToken})
- : super("ClassConstructor", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "getOrSet": getOrSet,
- "beginToken": beginToken,
- "beginParam": beginParam,
- "beginInitializers": beginInitializers,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMixinConstructorEnd extends DirectParserASTContent {
- final Token? getOrSet;
- final Token beginToken;
- final Token beginParam;
- final Token? beginInitializers;
- final Token endToken;
-
- DirectParserASTContentMixinConstructorEnd(DirectParserASTType type,
- {this.getOrSet,
- required this.beginToken,
- required this.beginParam,
- this.beginInitializers,
- required this.endToken})
- : super("MixinConstructor", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "getOrSet": getOrSet,
- "beginToken": beginToken,
- "beginParam": beginParam,
- "beginInitializers": beginInitializers,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentExtensionConstructorEnd
- extends DirectParserASTContent {
- final Token? getOrSet;
- final Token beginToken;
- final Token beginParam;
- final Token? beginInitializers;
- final Token endToken;
-
- DirectParserASTContentExtensionConstructorEnd(DirectParserASTType type,
- {this.getOrSet,
- required this.beginToken,
- required this.beginParam,
- this.beginInitializers,
- required this.endToken})
- : super("ExtensionConstructor", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "getOrSet": getOrSet,
- "beginToken": beginToken,
- "beginParam": beginParam,
- "beginInitializers": beginInitializers,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentMetadataStarBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentMetadataStarBegin(DirectParserASTType type,
- {required this.token})
- : super("MetadataStar", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentMetadataStarEnd extends DirectParserASTContent {
- final int count;
-
- DirectParserASTContentMetadataStarEnd(DirectParserASTType type,
- {required this.count})
- : super("MetadataStar", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- };
-}
-
-class DirectParserASTContentMetadataBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentMetadataBegin(DirectParserASTType type,
- {required this.token})
- : super("Metadata", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentMetadataEnd extends DirectParserASTContent {
- final Token beginToken;
- final Token? periodBeforeName;
- final Token endToken;
-
- DirectParserASTContentMetadataEnd(DirectParserASTType type,
- {required this.beginToken, this.periodBeforeName, required this.endToken})
- : super("Metadata", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "periodBeforeName": periodBeforeName,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentOptionalFormalParametersBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentOptionalFormalParametersBegin(DirectParserASTType type,
- {required this.token})
- : super("OptionalFormalParameters", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentOptionalFormalParametersEnd
- extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentOptionalFormalParametersEnd(DirectParserASTType type,
- {required this.count, required this.beginToken, required this.endToken})
- : super("OptionalFormalParameters", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentPartBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentPartBegin(DirectParserASTType type,
- {required this.token})
- : super("Part", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentPartEnd extends DirectParserASTContent {
- final Token partKeyword;
- final Token semicolon;
-
- DirectParserASTContentPartEnd(DirectParserASTType type,
- {required this.partKeyword, required this.semicolon})
- : super("Part", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "partKeyword": partKeyword,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentPartOfBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentPartOfBegin(DirectParserASTType type,
- {required this.token})
- : super("PartOf", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentPartOfEnd extends DirectParserASTContent {
- final Token partKeyword;
- final Token ofKeyword;
- final Token semicolon;
- final bool hasName;
-
- DirectParserASTContentPartOfEnd(DirectParserASTType type,
- {required this.partKeyword,
- required this.ofKeyword,
- required this.semicolon,
- required this.hasName})
- : super("PartOf", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "partKeyword": partKeyword,
- "ofKeyword": ofKeyword,
- "semicolon": semicolon,
- "hasName": hasName,
- };
-}
-
-class DirectParserASTContentRedirectingFactoryBodyBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentRedirectingFactoryBodyBegin(DirectParserASTType type,
- {required this.token})
- : super("RedirectingFactoryBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentRedirectingFactoryBodyEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentRedirectingFactoryBodyEnd(DirectParserASTType type,
- {required this.beginToken, required this.endToken})
- : super("RedirectingFactoryBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentReturnStatementBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentReturnStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("ReturnStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNativeFunctionBodyHandle
- extends DirectParserASTContent {
- final Token nativeToken;
- final Token semicolon;
-
- DirectParserASTContentNativeFunctionBodyHandle(DirectParserASTType type,
- {required this.nativeToken, required this.semicolon})
- : super("NativeFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nativeToken": nativeToken,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentNativeFunctionBodyIgnoredHandle
- extends DirectParserASTContent {
- final Token nativeToken;
- final Token semicolon;
-
- DirectParserASTContentNativeFunctionBodyIgnoredHandle(
- DirectParserASTType type,
- {required this.nativeToken,
- required this.semicolon})
- : super("NativeFunctionBodyIgnored", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nativeToken": nativeToken,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentNativeFunctionBodySkippedHandle
- extends DirectParserASTContent {
- final Token nativeToken;
- final Token semicolon;
-
- DirectParserASTContentNativeFunctionBodySkippedHandle(
- DirectParserASTType type,
- {required this.nativeToken,
- required this.semicolon})
- : super("NativeFunctionBodySkipped", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nativeToken": nativeToken,
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentEmptyFunctionBodyHandle
- extends DirectParserASTContent {
- final Token semicolon;
-
- DirectParserASTContentEmptyFunctionBodyHandle(DirectParserASTType type,
- {required this.semicolon})
- : super("EmptyFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "semicolon": semicolon,
- };
-}
-
-class DirectParserASTContentExpressionFunctionBodyHandle
- extends DirectParserASTContent {
- final Token arrowToken;
- final Token? endToken;
-
- DirectParserASTContentExpressionFunctionBodyHandle(DirectParserASTType type,
- {required this.arrowToken, this.endToken})
- : super("ExpressionFunctionBody", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "arrowToken": arrowToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentReturnStatementEnd extends DirectParserASTContent {
- final bool hasExpression;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentReturnStatementEnd(DirectParserASTType type,
- {required this.hasExpression,
- required this.beginToken,
- required this.endToken})
- : super("ReturnStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "hasExpression": hasExpression,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentSendHandle extends DirectParserASTContent {
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentSendHandle(DirectParserASTType type,
- {required this.beginToken, required this.endToken})
- : super("Send", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentShowBegin extends DirectParserASTContent {
- final Token showKeyword;
-
- DirectParserASTContentShowBegin(DirectParserASTType type,
- {required this.showKeyword})
- : super("Show", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "showKeyword": showKeyword,
- };
-}
-
-class DirectParserASTContentShowEnd extends DirectParserASTContent {
- final Token showKeyword;
-
- DirectParserASTContentShowEnd(DirectParserASTType type,
- {required this.showKeyword})
- : super("Show", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "showKeyword": showKeyword,
- };
-}
-
-class DirectParserASTContentSwitchStatementBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentSwitchStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("SwitchStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentSwitchStatementEnd extends DirectParserASTContent {
- final Token switchKeyword;
- final Token endToken;
-
- DirectParserASTContentSwitchStatementEnd(DirectParserASTType type,
- {required this.switchKeyword, required this.endToken})
- : super("SwitchStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "switchKeyword": switchKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentSwitchBlockBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentSwitchBlockBegin(DirectParserASTType type,
- {required this.token})
- : super("SwitchBlock", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentSwitchBlockEnd extends DirectParserASTContent {
- final int caseCount;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentSwitchBlockEnd(DirectParserASTType type,
- {required this.caseCount,
- required this.beginToken,
- required this.endToken})
- : super("SwitchBlock", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "caseCount": caseCount,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentLiteralSymbolBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLiteralSymbolBegin(DirectParserASTType type,
- {required this.token})
- : super("LiteralSymbol", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLiteralSymbolEnd extends DirectParserASTContent {
- final Token hashToken;
- final int identifierCount;
-
- DirectParserASTContentLiteralSymbolEnd(DirectParserASTType type,
- {required this.hashToken, required this.identifierCount})
- : super("LiteralSymbol", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "hashToken": hashToken,
- "identifierCount": identifierCount,
- };
-}
-
-class DirectParserASTContentThrowExpressionHandle
- extends DirectParserASTContent {
- final Token throwToken;
- final Token endToken;
-
- DirectParserASTContentThrowExpressionHandle(DirectParserASTType type,
- {required this.throwToken, required this.endToken})
- : super("ThrowExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "throwToken": throwToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentRethrowStatementBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentRethrowStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("RethrowStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentRethrowStatementEnd extends DirectParserASTContent {
- final Token rethrowToken;
- final Token endToken;
-
- DirectParserASTContentRethrowStatementEnd(DirectParserASTType type,
- {required this.rethrowToken, required this.endToken})
- : super("RethrowStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "rethrowToken": rethrowToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentTopLevelDeclarationEnd
- extends DirectParserASTContent {
- final Token nextToken;
-
- DirectParserASTContentTopLevelDeclarationEnd(DirectParserASTType type,
- {required this.nextToken})
- : super("TopLevelDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nextToken": nextToken,
- };
-}
-
-class DirectParserASTContentInvalidTopLevelDeclarationHandle
- extends DirectParserASTContent {
- final Token endToken;
-
- DirectParserASTContentInvalidTopLevelDeclarationHandle(
- DirectParserASTType type,
- {required this.endToken})
- : super("InvalidTopLevelDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentTopLevelMemberBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTopLevelMemberBegin(DirectParserASTType type,
- {required this.token})
- : super("TopLevelMember", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFieldsBegin extends DirectParserASTContent {
- final DeclarationKind declarationKind;
- final Token? abstractToken;
- final Token? externalToken;
- final Token? staticToken;
- final Token? covariantToken;
- final Token? lateToken;
- final Token? varFinalOrConst;
- final Token lastConsumed;
-
- DirectParserASTContentFieldsBegin(DirectParserASTType type,
- {required this.declarationKind,
- this.abstractToken,
- this.externalToken,
- this.staticToken,
- this.covariantToken,
- this.lateToken,
- this.varFinalOrConst,
- required this.lastConsumed})
- : super("Fields", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "declarationKind": declarationKind,
- "abstractToken": abstractToken,
- "externalToken": externalToken,
- "staticToken": staticToken,
- "covariantToken": covariantToken,
- "lateToken": lateToken,
- "varFinalOrConst": varFinalOrConst,
- "lastConsumed": lastConsumed,
- };
-}
-
-class DirectParserASTContentTopLevelFieldsEnd extends DirectParserASTContent {
- final Token? externalToken;
- final Token? staticToken;
- final Token? covariantToken;
- final Token? lateToken;
- final Token? varFinalOrConst;
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentTopLevelFieldsEnd(DirectParserASTType type,
- {this.externalToken,
- this.staticToken,
- this.covariantToken,
- this.lateToken,
- this.varFinalOrConst,
- required this.count,
- required this.beginToken,
- required this.endToken})
- : super("TopLevelFields", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "externalToken": externalToken,
- "staticToken": staticToken,
- "covariantToken": covariantToken,
- "lateToken": lateToken,
- "varFinalOrConst": varFinalOrConst,
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentTopLevelMethodBegin extends DirectParserASTContent {
- final Token lastConsumed;
- final Token? externalToken;
-
- DirectParserASTContentTopLevelMethodBegin(DirectParserASTType type,
- {required this.lastConsumed, this.externalToken})
- : super("TopLevelMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "lastConsumed": lastConsumed,
- "externalToken": externalToken,
- };
-}
-
-class DirectParserASTContentTopLevelMethodEnd extends DirectParserASTContent {
- final Token beginToken;
- final Token? getOrSet;
- final Token endToken;
-
- DirectParserASTContentTopLevelMethodEnd(DirectParserASTType type,
- {required this.beginToken, this.getOrSet, required this.endToken})
- : super("TopLevelMethod", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "getOrSet": getOrSet,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentTryStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTryStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("TryStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCaseMatchHandle extends DirectParserASTContent {
- final Token caseKeyword;
- final Token colon;
-
- DirectParserASTContentCaseMatchHandle(DirectParserASTType type,
- {required this.caseKeyword, required this.colon})
- : super("CaseMatch", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "caseKeyword": caseKeyword,
- "colon": colon,
- };
-}
-
-class DirectParserASTContentCatchClauseBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentCatchClauseBegin(DirectParserASTType type,
- {required this.token})
- : super("CatchClause", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCatchClauseEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentCatchClauseEnd(DirectParserASTType type,
- {required this.token})
- : super("CatchClause", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCatchBlockHandle extends DirectParserASTContent {
- final Token? onKeyword;
- final Token? catchKeyword;
- final Token? comma;
-
- DirectParserASTContentCatchBlockHandle(DirectParserASTType type,
- {this.onKeyword, this.catchKeyword, this.comma})
- : super("CatchBlock", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "onKeyword": onKeyword,
- "catchKeyword": catchKeyword,
- "comma": comma,
- };
-}
-
-class DirectParserASTContentFinallyBlockHandle extends DirectParserASTContent {
- final Token finallyKeyword;
-
- DirectParserASTContentFinallyBlockHandle(DirectParserASTType type,
- {required this.finallyKeyword})
- : super("FinallyBlock", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "finallyKeyword": finallyKeyword,
- };
-}
-
-class DirectParserASTContentTryStatementEnd extends DirectParserASTContent {
- final int catchCount;
- final Token tryKeyword;
- final Token? finallyKeyword;
-
- DirectParserASTContentTryStatementEnd(DirectParserASTType type,
- {required this.catchCount, required this.tryKeyword, this.finallyKeyword})
- : super("TryStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "catchCount": catchCount,
- "tryKeyword": tryKeyword,
- "finallyKeyword": finallyKeyword,
- };
-}
-
-class DirectParserASTContentTypeHandle extends DirectParserASTContent {
- final Token beginToken;
- final Token? questionMark;
-
- DirectParserASTContentTypeHandle(DirectParserASTType type,
- {required this.beginToken, this.questionMark})
- : super("Type", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "questionMark": questionMark,
- };
-}
-
-class DirectParserASTContentNonNullAssertExpressionHandle
- extends DirectParserASTContent {
- final Token bang;
-
- DirectParserASTContentNonNullAssertExpressionHandle(DirectParserASTType type,
- {required this.bang})
- : super("NonNullAssertExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "bang": bang,
- };
-}
-
-class DirectParserASTContentNoNameHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoNameHandle(DirectParserASTType type,
- {required this.token})
- : super("NoName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFunctionTypeBegin extends DirectParserASTContent {
- final Token beginToken;
-
- DirectParserASTContentFunctionTypeBegin(DirectParserASTType type,
- {required this.beginToken})
- : super("FunctionType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- };
-}
-
-class DirectParserASTContentFunctionTypeEnd extends DirectParserASTContent {
- final Token functionToken;
- final Token? questionMark;
-
- DirectParserASTContentFunctionTypeEnd(DirectParserASTType type,
- {required this.functionToken, this.questionMark})
- : super("FunctionType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "functionToken": functionToken,
- "questionMark": questionMark,
- };
-}
-
-class DirectParserASTContentTypeArgumentsBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTypeArgumentsBegin(DirectParserASTType type,
- {required this.token})
- : super("TypeArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentTypeArgumentsEnd extends DirectParserASTContent {
- final int count;
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentTypeArgumentsEnd(DirectParserASTType type,
- {required this.count, required this.beginToken, required this.endToken})
- : super("TypeArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentInvalidTypeArgumentsHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentInvalidTypeArgumentsHandle(DirectParserASTType type,
- {required this.token})
- : super("InvalidTypeArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNoTypeArgumentsHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoTypeArgumentsHandle(DirectParserASTType type,
- {required this.token})
- : super("NoTypeArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentTypeVariableBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTypeVariableBegin(DirectParserASTType type,
- {required this.token})
- : super("TypeVariable", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentTypeVariablesDefinedHandle
- extends DirectParserASTContent {
- final Token token;
- final int count;
-
- DirectParserASTContentTypeVariablesDefinedHandle(DirectParserASTType type,
- {required this.token, required this.count})
- : super("TypeVariablesDefined", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "count": count,
- };
-}
-
-class DirectParserASTContentTypeVariableEnd extends DirectParserASTContent {
- final Token token;
- final int index;
- final Token? extendsOrSuper;
- final Token? variance;
-
- DirectParserASTContentTypeVariableEnd(DirectParserASTType type,
- {required this.token,
- required this.index,
- this.extendsOrSuper,
- this.variance})
- : super("TypeVariable", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "index": index,
- "extendsOrSuper": extendsOrSuper,
- "variance": variance,
- };
-}
-
-class DirectParserASTContentTypeVariablesBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentTypeVariablesBegin(DirectParserASTType type,
- {required this.token})
- : super("TypeVariables", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentTypeVariablesEnd extends DirectParserASTContent {
- final Token beginToken;
- final Token endToken;
-
- DirectParserASTContentTypeVariablesEnd(DirectParserASTType type,
- {required this.beginToken, required this.endToken})
- : super("TypeVariables", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentFunctionExpressionBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentFunctionExpressionBegin(DirectParserASTType type,
- {required this.token})
- : super("FunctionExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFunctionExpressionEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token token;
-
- DirectParserASTContentFunctionExpressionEnd(DirectParserASTType type,
- {required this.beginToken, required this.token})
- : super("FunctionExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "token": token,
- };
-}
-
-class DirectParserASTContentVariablesDeclarationBegin
- extends DirectParserASTContent {
- final Token token;
- final Token? lateToken;
- final Token? varFinalOrConst;
-
- DirectParserASTContentVariablesDeclarationBegin(DirectParserASTType type,
- {required this.token, this.lateToken, this.varFinalOrConst})
- : super("VariablesDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "lateToken": lateToken,
- "varFinalOrConst": varFinalOrConst,
- };
-}
-
-class DirectParserASTContentVariablesDeclarationEnd
- extends DirectParserASTContent {
- final int count;
- final Token? endToken;
-
- DirectParserASTContentVariablesDeclarationEnd(DirectParserASTType type,
- {required this.count, this.endToken})
- : super("VariablesDeclaration", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentWhileStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentWhileStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("WhileStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentWhileStatementEnd extends DirectParserASTContent {
- final Token whileKeyword;
- final Token endToken;
-
- DirectParserASTContentWhileStatementEnd(DirectParserASTType type,
- {required this.whileKeyword, required this.endToken})
- : super("WhileStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "whileKeyword": whileKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentAsOperatorTypeBegin extends DirectParserASTContent {
- final Token operator;
-
- DirectParserASTContentAsOperatorTypeBegin(DirectParserASTType type,
- {required this.operator})
- : super("AsOperatorType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operator": operator,
- };
-}
-
-class DirectParserASTContentAsOperatorTypeEnd extends DirectParserASTContent {
- final Token operator;
-
- DirectParserASTContentAsOperatorTypeEnd(DirectParserASTType type,
- {required this.operator})
- : super("AsOperatorType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operator": operator,
- };
-}
-
-class DirectParserASTContentAsOperatorHandle extends DirectParserASTContent {
- final Token operator;
-
- DirectParserASTContentAsOperatorHandle(DirectParserASTType type,
- {required this.operator})
- : super("AsOperator", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operator": operator,
- };
-}
-
-class DirectParserASTContentAssignmentExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentAssignmentExpressionHandle(DirectParserASTType type,
- {required this.token})
- : super("AssignmentExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentBinaryExpressionBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentBinaryExpressionBegin(DirectParserASTType type,
- {required this.token})
- : super("BinaryExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentBinaryExpressionEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentBinaryExpressionEnd(DirectParserASTType type,
- {required this.token})
- : super("BinaryExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentEndingBinaryExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentEndingBinaryExpressionHandle(DirectParserASTType type,
- {required this.token})
- : super("EndingBinaryExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentConditionalExpressionBegin
- extends DirectParserASTContent {
- final Token question;
-
- DirectParserASTContentConditionalExpressionBegin(DirectParserASTType type,
- {required this.question})
- : super("ConditionalExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "question": question,
- };
-}
-
-class DirectParserASTContentConditionalExpressionColonHandle
- extends DirectParserASTContent {
- DirectParserASTContentConditionalExpressionColonHandle(
- DirectParserASTType type)
- : super("ConditionalExpressionColon", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentConditionalExpressionEnd
- extends DirectParserASTContent {
- final Token question;
- final Token colon;
-
- DirectParserASTContentConditionalExpressionEnd(DirectParserASTType type,
- {required this.question, required this.colon})
- : super("ConditionalExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "question": question,
- "colon": colon,
- };
-}
-
-class DirectParserASTContentConstExpressionBegin
- extends DirectParserASTContent {
- final Token constKeyword;
-
- DirectParserASTContentConstExpressionBegin(DirectParserASTType type,
- {required this.constKeyword})
- : super("ConstExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "constKeyword": constKeyword,
- };
-}
-
-class DirectParserASTContentConstExpressionEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentConstExpressionEnd(DirectParserASTType type,
- {required this.token})
- : super("ConstExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentConstFactoryHandle extends DirectParserASTContent {
- final Token constKeyword;
-
- DirectParserASTContentConstFactoryHandle(DirectParserASTType type,
- {required this.constKeyword})
- : super("ConstFactory", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "constKeyword": constKeyword,
- };
-}
-
-class DirectParserASTContentForControlFlowBegin extends DirectParserASTContent {
- final Token? awaitToken;
- final Token forToken;
-
- DirectParserASTContentForControlFlowBegin(DirectParserASTType type,
- {this.awaitToken, required this.forToken})
- : super("ForControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "awaitToken": awaitToken,
- "forToken": forToken,
- };
-}
-
-class DirectParserASTContentForControlFlowEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForControlFlowEnd(DirectParserASTType type,
- {required this.token})
- : super("ForControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentForInControlFlowEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentForInControlFlowEnd(DirectParserASTType type,
- {required this.token})
- : super("ForInControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentIfControlFlowBegin extends DirectParserASTContent {
- final Token ifToken;
-
- DirectParserASTContentIfControlFlowBegin(DirectParserASTType type,
- {required this.ifToken})
- : super("IfControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "ifToken": ifToken,
- };
-}
-
-class DirectParserASTContentThenControlFlowHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentThenControlFlowHandle(DirectParserASTType type,
- {required this.token})
- : super("ThenControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentElseControlFlowHandle
- extends DirectParserASTContent {
- final Token elseToken;
-
- DirectParserASTContentElseControlFlowHandle(DirectParserASTType type,
- {required this.elseToken})
- : super("ElseControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "elseToken": elseToken,
- };
-}
-
-class DirectParserASTContentIfControlFlowEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentIfControlFlowEnd(DirectParserASTType type,
- {required this.token})
- : super("IfControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentIfElseControlFlowEnd
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentIfElseControlFlowEnd(DirectParserASTType type,
- {required this.token})
- : super("IfElseControlFlow", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentSpreadExpressionHandle
- extends DirectParserASTContent {
- final Token spreadToken;
-
- DirectParserASTContentSpreadExpressionHandle(DirectParserASTType type,
- {required this.spreadToken})
- : super("SpreadExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "spreadToken": spreadToken,
- };
-}
-
-class DirectParserASTContentFunctionTypedFormalParameterBegin
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentFunctionTypedFormalParameterBegin(
- DirectParserASTType type,
- {required this.token})
- : super("FunctionTypedFormalParameter", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFunctionTypedFormalParameterEnd
- extends DirectParserASTContent {
- final Token nameToken;
- final Token? question;
-
- DirectParserASTContentFunctionTypedFormalParameterEnd(
- DirectParserASTType type,
- {required this.nameToken,
- this.question})
- : super("FunctionTypedFormalParameter", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nameToken": nameToken,
- "question": question,
- };
-}
-
-class DirectParserASTContentIdentifierHandle extends DirectParserASTContent {
- final Token token;
- final IdentifierContext context;
-
- DirectParserASTContentIdentifierHandle(DirectParserASTType type,
- {required this.token, required this.context})
- : super("Identifier", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "context": context,
- };
-}
-
-class DirectParserASTContentShowHideIdentifierHandle
- extends DirectParserASTContent {
- final Token? modifier;
- final Token identifier;
-
- DirectParserASTContentShowHideIdentifierHandle(DirectParserASTType type,
- {this.modifier, required this.identifier})
- : super("ShowHideIdentifier", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "modifier": modifier,
- "identifier": identifier,
- };
-}
-
-class DirectParserASTContentIndexedExpressionHandle
- extends DirectParserASTContent {
- final Token? question;
- final Token openSquareBracket;
- final Token closeSquareBracket;
-
- DirectParserASTContentIndexedExpressionHandle(DirectParserASTType type,
- {this.question,
- required this.openSquareBracket,
- required this.closeSquareBracket})
- : super("IndexedExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "question": question,
- "openSquareBracket": openSquareBracket,
- "closeSquareBracket": closeSquareBracket,
- };
-}
-
-class DirectParserASTContentIsOperatorTypeBegin extends DirectParserASTContent {
- final Token operator;
-
- DirectParserASTContentIsOperatorTypeBegin(DirectParserASTType type,
- {required this.operator})
- : super("IsOperatorType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operator": operator,
- };
-}
-
-class DirectParserASTContentIsOperatorTypeEnd extends DirectParserASTContent {
- final Token operator;
-
- DirectParserASTContentIsOperatorTypeEnd(DirectParserASTType type,
- {required this.operator})
- : super("IsOperatorType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operator": operator,
- };
-}
-
-class DirectParserASTContentIsOperatorHandle extends DirectParserASTContent {
- final Token isOperator;
- final Token? not;
-
- DirectParserASTContentIsOperatorHandle(DirectParserASTType type,
- {required this.isOperator, this.not})
- : super("IsOperator", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "isOperator": isOperator,
- "not": not,
- };
-}
-
-class DirectParserASTContentLiteralBoolHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLiteralBoolHandle(DirectParserASTType type,
- {required this.token})
- : super("LiteralBool", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentBreakStatementHandle
- extends DirectParserASTContent {
- final bool hasTarget;
- final Token breakKeyword;
- final Token endToken;
-
- DirectParserASTContentBreakStatementHandle(DirectParserASTType type,
- {required this.hasTarget,
- required this.breakKeyword,
- required this.endToken})
- : super("BreakStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "hasTarget": hasTarget,
- "breakKeyword": breakKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentContinueStatementHandle
- extends DirectParserASTContent {
- final bool hasTarget;
- final Token continueKeyword;
- final Token endToken;
-
- DirectParserASTContentContinueStatementHandle(DirectParserASTType type,
- {required this.hasTarget,
- required this.continueKeyword,
- required this.endToken})
- : super("ContinueStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "hasTarget": hasTarget,
- "continueKeyword": continueKeyword,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentEmptyStatementHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentEmptyStatementHandle(DirectParserASTType type,
- {required this.token})
- : super("EmptyStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentAssertBegin extends DirectParserASTContent {
- final Token assertKeyword;
- final Assert kind;
-
- DirectParserASTContentAssertBegin(DirectParserASTType type,
- {required this.assertKeyword, required this.kind})
- : super("Assert", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "assertKeyword": assertKeyword,
- "kind": kind,
- };
-}
-
-class DirectParserASTContentAssertEnd extends DirectParserASTContent {
- final Token assertKeyword;
- final Assert kind;
- final Token leftParenthesis;
- final Token? commaToken;
- final Token semicolonToken;
-
- DirectParserASTContentAssertEnd(DirectParserASTType type,
- {required this.assertKeyword,
- required this.kind,
- required this.leftParenthesis,
- this.commaToken,
- required this.semicolonToken})
- : super("Assert", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "assertKeyword": assertKeyword,
- "kind": kind,
- "leftParenthesis": leftParenthesis,
- "commaToken": commaToken,
- "semicolonToken": semicolonToken,
- };
-}
-
-class DirectParserASTContentLiteralDoubleHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLiteralDoubleHandle(DirectParserASTType type,
- {required this.token})
- : super("LiteralDouble", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLiteralIntHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLiteralIntHandle(DirectParserASTType type,
- {required this.token})
- : super("LiteralInt", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentLiteralListHandle extends DirectParserASTContent {
- final int count;
- final Token leftBracket;
- final Token? constKeyword;
- final Token rightBracket;
-
- DirectParserASTContentLiteralListHandle(DirectParserASTType type,
- {required this.count,
- required this.leftBracket,
- this.constKeyword,
- required this.rightBracket})
- : super("LiteralList", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "leftBracket": leftBracket,
- "constKeyword": constKeyword,
- "rightBracket": rightBracket,
- };
-}
-
-class DirectParserASTContentLiteralSetOrMapHandle
- extends DirectParserASTContent {
- final int count;
- final Token leftBrace;
- final Token? constKeyword;
- final Token rightBrace;
- final bool hasSetEntry;
-
- DirectParserASTContentLiteralSetOrMapHandle(DirectParserASTType type,
- {required this.count,
- required this.leftBrace,
- this.constKeyword,
- required this.rightBrace,
- required this.hasSetEntry})
- : super("LiteralSetOrMap", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "count": count,
- "leftBrace": leftBrace,
- "constKeyword": constKeyword,
- "rightBrace": rightBrace,
- "hasSetEntry": hasSetEntry,
- };
-}
-
-class DirectParserASTContentLiteralNullHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentLiteralNullHandle(DirectParserASTType type,
- {required this.token})
- : super("LiteralNull", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNativeClauseHandle extends DirectParserASTContent {
- final Token nativeToken;
- final bool hasName;
-
- DirectParserASTContentNativeClauseHandle(DirectParserASTType type,
- {required this.nativeToken, required this.hasName})
- : super("NativeClause", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "nativeToken": nativeToken,
- "hasName": hasName,
- };
-}
-
-class DirectParserASTContentNamedArgumentHandle extends DirectParserASTContent {
- final Token colon;
-
- DirectParserASTContentNamedArgumentHandle(DirectParserASTType type,
- {required this.colon})
- : super("NamedArgument", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "colon": colon,
- };
-}
-
-class DirectParserASTContentNewExpressionBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNewExpressionBegin(DirectParserASTType type,
- {required this.token})
- : super("NewExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNewExpressionEnd extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNewExpressionEnd(DirectParserASTType type,
- {required this.token})
- : super("NewExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNoArgumentsHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoArgumentsHandle(DirectParserASTType type,
- {required this.token})
- : super("NoArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNoConstructorReferenceContinuationAfterTypeArgumentsHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoConstructorReferenceContinuationAfterTypeArgumentsHandle(
- DirectParserASTType type,
- {required this.token})
- : super("NoConstructorReferenceContinuationAfterTypeArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentNoTypeHandle extends DirectParserASTContent {
- final Token lastConsumed;
-
- DirectParserASTContentNoTypeHandle(DirectParserASTType type,
- {required this.lastConsumed})
- : super("NoType", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "lastConsumed": lastConsumed,
- };
-}
-
-class DirectParserASTContentNoTypeVariablesHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNoTypeVariablesHandle(DirectParserASTType type,
- {required this.token})
- : super("NoTypeVariables", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentOperatorHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentOperatorHandle(DirectParserASTType type,
- {required this.token})
- : super("Operator", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentSymbolVoidHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentSymbolVoidHandle(DirectParserASTType type,
- {required this.token})
- : super("SymbolVoid", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentOperatorNameHandle extends DirectParserASTContent {
- final Token operatorKeyword;
- final Token token;
-
- DirectParserASTContentOperatorNameHandle(DirectParserASTType type,
- {required this.operatorKeyword, required this.token})
- : super("OperatorName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operatorKeyword": operatorKeyword,
- "token": token,
- };
-}
-
-class DirectParserASTContentInvalidOperatorNameHandle
- extends DirectParserASTContent {
- final Token operatorKeyword;
- final Token token;
-
- DirectParserASTContentInvalidOperatorNameHandle(DirectParserASTType type,
- {required this.operatorKeyword, required this.token})
- : super("InvalidOperatorName", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "operatorKeyword": operatorKeyword,
- "token": token,
- };
-}
-
-class DirectParserASTContentParenthesizedConditionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentParenthesizedConditionHandle(DirectParserASTType type,
- {required this.token})
- : super("ParenthesizedCondition", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentParenthesizedExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentParenthesizedExpressionHandle(DirectParserASTType type,
- {required this.token})
- : super("ParenthesizedExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentQualifiedHandle extends DirectParserASTContent {
- final Token period;
-
- DirectParserASTContentQualifiedHandle(DirectParserASTType type,
- {required this.period})
- : super("Qualified", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "period": period,
- };
-}
-
-class DirectParserASTContentStringPartHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentStringPartHandle(DirectParserASTType type,
- {required this.token})
- : super("StringPart", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentSuperExpressionHandle
- extends DirectParserASTContent {
- final Token token;
- final IdentifierContext context;
-
- DirectParserASTContentSuperExpressionHandle(DirectParserASTType type,
- {required this.token, required this.context})
- : super("SuperExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "context": context,
- };
-}
-
-class DirectParserASTContentSwitchCaseBegin extends DirectParserASTContent {
- final int labelCount;
- final int expressionCount;
- final Token firstToken;
-
- DirectParserASTContentSwitchCaseBegin(DirectParserASTType type,
- {required this.labelCount,
- required this.expressionCount,
- required this.firstToken})
- : super("SwitchCase", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "labelCount": labelCount,
- "expressionCount": expressionCount,
- "firstToken": firstToken,
- };
-}
-
-class DirectParserASTContentSwitchCaseEnd extends DirectParserASTContent {
- final int labelCount;
- final int expressionCount;
- final Token? defaultKeyword;
- final Token? colonAfterDefault;
- final int statementCount;
- final Token firstToken;
- final Token endToken;
-
- DirectParserASTContentSwitchCaseEnd(DirectParserASTType type,
- {required this.labelCount,
- required this.expressionCount,
- this.defaultKeyword,
- this.colonAfterDefault,
- required this.statementCount,
- required this.firstToken,
- required this.endToken})
- : super("SwitchCase", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "labelCount": labelCount,
- "expressionCount": expressionCount,
- "defaultKeyword": defaultKeyword,
- "colonAfterDefault": colonAfterDefault,
- "statementCount": statementCount,
- "firstToken": firstToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentThisExpressionHandle
- extends DirectParserASTContent {
- final Token token;
- final IdentifierContext context;
-
- DirectParserASTContentThisExpressionHandle(DirectParserASTType type,
- {required this.token, required this.context})
- : super("ThisExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "context": context,
- };
-}
-
-class DirectParserASTContentUnaryPostfixAssignmentExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentUnaryPostfixAssignmentExpressionHandle(
- DirectParserASTType type,
- {required this.token})
- : super("UnaryPostfixAssignmentExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentUnaryPrefixExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentUnaryPrefixExpressionHandle(DirectParserASTType type,
- {required this.token})
- : super("UnaryPrefixExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentUnaryPrefixAssignmentExpressionHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentUnaryPrefixAssignmentExpressionHandle(
- DirectParserASTType type,
- {required this.token})
- : super("UnaryPrefixAssignmentExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentFormalParameterDefaultValueExpressionBegin
- extends DirectParserASTContent {
- DirectParserASTContentFormalParameterDefaultValueExpressionBegin(
- DirectParserASTType type)
- : super("FormalParameterDefaultValueExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentFormalParameterDefaultValueExpressionEnd
- extends DirectParserASTContent {
- DirectParserASTContentFormalParameterDefaultValueExpressionEnd(
- DirectParserASTType type)
- : super("FormalParameterDefaultValueExpression", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentValuedFormalParameterHandle
- extends DirectParserASTContent {
- final Token equals;
- final Token token;
-
- DirectParserASTContentValuedFormalParameterHandle(DirectParserASTType type,
- {required this.equals, required this.token})
- : super("ValuedFormalParameter", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "equals": equals,
- "token": token,
- };
-}
-
-class DirectParserASTContentFormalParameterWithoutValueHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentFormalParameterWithoutValueHandle(
- DirectParserASTType type,
- {required this.token})
- : super("FormalParameterWithoutValue", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentVoidKeywordHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentVoidKeywordHandle(DirectParserASTType type,
- {required this.token})
- : super("VoidKeyword", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentVoidKeywordWithTypeArgumentsHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentVoidKeywordWithTypeArgumentsHandle(
- DirectParserASTType type,
- {required this.token})
- : super("VoidKeywordWithTypeArguments", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentYieldStatementBegin extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentYieldStatementBegin(DirectParserASTType type,
- {required this.token})
- : super("YieldStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentYieldStatementEnd extends DirectParserASTContent {
- final Token yieldToken;
- final Token? starToken;
- final Token endToken;
-
- DirectParserASTContentYieldStatementEnd(DirectParserASTType type,
- {required this.yieldToken, this.starToken, required this.endToken})
- : super("YieldStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "yieldToken": yieldToken,
- "starToken": starToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentInvalidYieldStatementEnd
- extends DirectParserASTContent {
- final Token beginToken;
- final Token? starToken;
- final Token endToken;
- final MessageCode errorCode;
-
- DirectParserASTContentInvalidYieldStatementEnd(DirectParserASTType type,
- {required this.beginToken,
- this.starToken,
- required this.endToken,
- required this.errorCode})
- : super("InvalidYieldStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "beginToken": beginToken,
- "starToken": starToken,
- "endToken": endToken,
- "errorCode": errorCode,
- };
-}
-
-class DirectParserASTContentRecoverableErrorHandle
- extends DirectParserASTContent {
- final Message message;
- final Token startToken;
- final Token endToken;
-
- DirectParserASTContentRecoverableErrorHandle(DirectParserASTType type,
- {required this.message, required this.startToken, required this.endToken})
- : super("RecoverableError", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "message": message,
- "startToken": startToken,
- "endToken": endToken,
- };
-}
-
-class DirectParserASTContentErrorTokenHandle extends DirectParserASTContent {
- final ErrorToken token;
-
- DirectParserASTContentErrorTokenHandle(DirectParserASTType type,
- {required this.token})
- : super("ErrorToken", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentUnescapeErrorHandle extends DirectParserASTContent {
- final Message message;
- final Token location;
- final int stringOffset;
- final int length;
-
- DirectParserASTContentUnescapeErrorHandle(DirectParserASTType type,
- {required this.message,
- required this.location,
- required this.stringOffset,
- required this.length})
- : super("UnescapeError", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "message": message,
- "location": location,
- "stringOffset": stringOffset,
- "length": length,
- };
-}
-
-class DirectParserASTContentInvalidStatementHandle
- extends DirectParserASTContent {
- final Token token;
- final Message message;
-
- DirectParserASTContentInvalidStatementHandle(DirectParserASTType type,
- {required this.token, required this.message})
- : super("InvalidStatement", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- "message": message,
- };
-}
-
-class DirectParserASTContentScriptHandle extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentScriptHandle(DirectParserASTType type,
- {required this.token})
- : super("Script", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
-
-class DirectParserASTContentCommentReferenceTextHandle
- extends DirectParserASTContent {
- final String referenceSource;
- final int referenceOffset;
-
- DirectParserASTContentCommentReferenceTextHandle(DirectParserASTType type,
- {required this.referenceSource, required this.referenceOffset})
- : super("CommentReferenceText", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "referenceSource": referenceSource,
- "referenceOffset": referenceOffset,
- };
-}
-
-class DirectParserASTContentCommentReferenceHandle
- extends DirectParserASTContent {
- final Token? newKeyword;
- final Token? prefix;
- final Token? period;
- final Token token;
-
- DirectParserASTContentCommentReferenceHandle(DirectParserASTType type,
- {this.newKeyword, this.prefix, this.period, required this.token})
- : super("CommentReference", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "newKeyword": newKeyword,
- "prefix": prefix,
- "period": period,
- "token": token,
- };
-}
-
-class DirectParserASTContentNoCommentReferenceHandle
- extends DirectParserASTContent {
- DirectParserASTContentNoCommentReferenceHandle(DirectParserASTType type)
- : super("NoCommentReference", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {};
-}
-
-class DirectParserASTContentTypeArgumentApplicationHandle
- extends DirectParserASTContent {
- final Token openAngleBracket;
-
- DirectParserASTContentTypeArgumentApplicationHandle(DirectParserASTType type,
- {required this.openAngleBracket})
- : super("TypeArgumentApplication", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "openAngleBracket": openAngleBracket,
- };
-}
-
-class DirectParserASTContentNewAsIdentifierHandle
- extends DirectParserASTContent {
- final Token token;
-
- DirectParserASTContentNewAsIdentifierHandle(DirectParserASTType type,
- {required this.token})
- : super("NewAsIdentifier", type);
-
- @override
- Map<String, Object?> get deprecatedArguments => {
- "token": token,
- };
-}
diff --git a/pkg/front_end/lib/src/fasta/util/outline_extractor.dart b/pkg/front_end/lib/src/fasta/util/outline_extractor.dart
index e8ba2cc..8caa3f6 100644
--- a/pkg/front_end/lib/src/fasta/util/outline_extractor.dart
+++ b/pkg/front_end/lib/src/fasta/util/outline_extractor.dart
@@ -12,12 +12,12 @@
import 'package:front_end/src/base/processed_options.dart';
import 'package:front_end/src/fasta/compiler_context.dart';
import 'package:front_end/src/fasta/uri_translator.dart';
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart';
import 'package:front_end/src/fasta/util/textual_outline.dart';
import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
import 'package:kernel/target/targets.dart';
-import "direct_parser_ast.dart";
+import "parser_ast.dart";
import "abstracted_ast_nodes.dart";
// Overall TODO(s):
@@ -135,7 +135,7 @@
final List<int> bytes2 = utf8.encode(outlined);
getAstStopwatch.start();
List<Token> languageVersionsSeen = [];
- final DirectParserASTContent ast = getAST(bytes2,
+ final ParserAstNode ast = getAST(bytes2,
enableExtensionMethods: configuration.enableExtensionMethods,
enableNonNullable: configuration.enableNonNullable,
enableTripleShift: configuration.enableTripleShift,
@@ -154,13 +154,12 @@
extractIdentifierStopwatch.start();
identifierExtractor.extract(ast);
extractIdentifierStopwatch.stop();
- for (DirectParserASTContentIdentifierHandle identifier
- in identifierExtractor.identifiers) {
+ for (IdentifierHandle identifier in identifierExtractor.identifiers) {
if (identifier.context == IdentifierContext.typeVariableDeclaration) {
// Hack: Put type variable declarations into scope so any overlap in
// name doesn't mark usages (e.g. a class E shouldn't be marked if we're
// talking about the type variable E).
- DirectParserASTContent content = identifier;
+ ParserAstNode content = identifier;
AstNode? nearestAstNode = visitor.map[content];
while (nearestAstNode == null && content.parent != null) {
content = content.parent!;
@@ -277,9 +276,8 @@
}
List<AstNode>? prevLookupResult;
nextIdentifier:
- for (DirectParserASTContentIdentifierHandle identifier
- in identifierExtractor.identifiers) {
- DirectParserASTContent content = identifier;
+ for (IdentifierHandle identifier in identifierExtractor.identifiers) {
+ ParserAstNode content = identifier;
AstNode? nearestAstNode = entry.topLevel.map[content];
while (nearestAstNode == null && content.parent != null) {
content = content.parent!;
@@ -540,43 +538,36 @@
}
class _IdentifierExtractor {
- List<DirectParserASTContentIdentifierHandle> identifiers = [];
+ List<IdentifierHandle> identifiers = [];
- void extract(DirectParserASTContent ast) {
- if (ast is DirectParserASTContentIdentifierHandle) {
+ void extract(ParserAstNode ast) {
+ if (ast is IdentifierHandle) {
identifiers.add(ast);
}
- List<DirectParserASTContent>? children = ast.children;
+ List<ParserAstNode>? children = ast.children;
if (children != null) {
- for (DirectParserASTContent child in children) {
+ for (ParserAstNode child in children) {
extract(child);
}
}
}
}
-class _ParserAstVisitor extends DirectParserASTContentVisitor {
+class _ParserAstVisitor extends ParserAstVisitor {
final Uri uri;
final Uri? partOfUri;
late Container currentContainer;
- final Map<DirectParserASTContent, AstNode> map = {};
+ final Map<ParserAstNode, AstNode> map = {};
final int verbosityLevel;
final List<Token> languageVersionsSeen;
- _ParserAstVisitor(
- this.verbosityLevel,
- String sourceText,
- this.uri,
- this.partOfUri,
- DirectParserASTContent rootAst,
- this.languageVersionsSeen) {
+ _ParserAstVisitor(this.verbosityLevel, String sourceText, this.uri,
+ this.partOfUri, ParserAstNode rootAst, this.languageVersionsSeen) {
currentContainer = new TopLevel(sourceText, uri, rootAst, map);
if (languageVersionsSeen.isNotEmpty) {
// Use first one.
Token languageVersion = languageVersionsSeen.first;
- DirectParserASTContent dummyNode =
- new DirectParserASTContentNoInitializersHandle(
- DirectParserASTType.HANDLE);
+ ParserAstNode dummyNode = new NoInitializersHandle(ParserAstType.HANDLE);
LanguageVersion version =
new LanguageVersion(dummyNode, languageVersion, languageVersion);
version.marked = Coloring.Marked;
@@ -596,11 +587,10 @@
}
@override
- void visitClass(DirectParserASTContentClassDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
- DirectParserASTContentTopLevelDeclarationEnd parent =
- node.parent! as DirectParserASTContentTopLevelDeclarationEnd;
- DirectParserASTContentIdentifierHandle identifier = parent.getIdentifier();
+ void visitClass(
+ ClassDeclarationEnd node, Token startInclusive, Token endInclusive) {
+ TopLevelDeclarationEnd parent = node.parent! as TopLevelDeclarationEnd;
+ IdentifierHandle identifier = parent.getIdentifier();
log("Hello from class ${identifier.token}");
@@ -615,10 +605,10 @@
}
@override
- void visitClassConstructor(DirectParserASTContentClassConstructorEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitClassConstructor(
+ ClassConstructorEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Class);
- List<DirectParserASTContentIdentifierHandle> ids = node.getIdentifiers();
+ List<IdentifierHandle> ids = node.getIdentifiers();
if (ids.length == 1) {
ClassConstructor classConstructor = new ClassConstructor(
node, ids.single.token.lexeme, startInclusive, endInclusive);
@@ -638,10 +628,10 @@
}
@override
- void visitClassFactoryMethod(DirectParserASTContentClassFactoryMethodEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitClassFactoryMethod(
+ ClassFactoryMethodEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Class);
- List<DirectParserASTContentIdentifierHandle> ids = node.getIdentifiers();
+ List<IdentifierHandle> ids = node.getIdentifiers();
if (ids.length == 1) {
ClassFactoryMethod classFactoryMethod = new ClassFactoryMethod(
node, ids.single.token.lexeme, startInclusive, endInclusive);
@@ -670,8 +660,8 @@
}
@override
- void visitClassFields(DirectParserASTContentClassFieldsEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitClassFields(
+ ClassFieldsEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Class);
List<String> fields =
node.getFieldIdentifiers().map((e) => e.token.lexeme).toList();
@@ -683,8 +673,8 @@
}
@override
- void visitClassMethod(DirectParserASTContentClassMethodEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitClassMethod(
+ ClassMethodEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Class);
String identifier;
@@ -709,9 +699,8 @@
}
@override
- void visitEnum(DirectParserASTContentEnumEnd node, Token startInclusive,
- Token endInclusive) {
- List<DirectParserASTContentIdentifierHandle> ids = node.getIdentifiers();
+ void visitEnum(EnumEnd node, Token startInclusive, Token endInclusive) {
+ List<IdentifierHandle> ids = node.getIdentifiers();
Enum e = new Enum(
node,
@@ -727,8 +716,7 @@
}
@override
- void visitExport(DirectParserASTContentExportEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitExport(ExportEnd node, Token startInclusive, Token endInclusive) {
String uriString = node.getExportUriString();
Uri exportUri = uri.resolve(uriString);
List<String>? conditionalUriStrings = node.getConditionalExportUriStrings();
@@ -747,12 +735,11 @@
}
@override
- void visitExtension(DirectParserASTContentExtensionDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
- DirectParserASTContentExtensionDeclarationBegin begin =
- node.children!.first as DirectParserASTContentExtensionDeclarationBegin;
- DirectParserASTContentTopLevelDeclarationEnd parent =
- node.parent! as DirectParserASTContentTopLevelDeclarationEnd;
+ void visitExtension(
+ ExtensionDeclarationEnd node, Token startInclusive, Token endInclusive) {
+ ExtensionDeclarationBegin begin =
+ node.children!.first as ExtensionDeclarationBegin;
+ TopLevelDeclarationEnd parent = node.parent! as TopLevelDeclarationEnd;
log("Hello from extension ${begin.name}");
Extension extension =
new Extension(parent, begin.name?.lexeme, startInclusive, endInclusive);
@@ -766,25 +753,21 @@
@override
void visitExtensionConstructor(
- DirectParserASTContentExtensionConstructorEnd node,
- Token startInclusive,
- Token endInclusive) {
+ ExtensionConstructorEnd node, Token startInclusive, Token endInclusive) {
// TODO: implement visitExtensionConstructor
throw node;
}
@override
- void visitExtensionFactoryMethod(
- DirectParserASTContentExtensionFactoryMethodEnd node,
- Token startInclusive,
- Token endInclusive) {
+ void visitExtensionFactoryMethod(ExtensionFactoryMethodEnd node,
+ Token startInclusive, Token endInclusive) {
// TODO: implement visitExtensionFactoryMethod
throw node;
}
@override
- void visitExtensionFields(DirectParserASTContentExtensionFieldsEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitExtensionFields(
+ ExtensionFieldsEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Extension);
List<String> fields =
node.getFieldIdentifiers().map((e) => e.token.lexeme).toList();
@@ -796,8 +779,8 @@
}
@override
- void visitExtensionMethod(DirectParserASTContentExtensionMethodEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitExtensionMethod(
+ ExtensionMethodEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Extension);
ExtensionMethod extensionMethod = new ExtensionMethod(
node, node.getNameIdentifier(), startInclusive, endInclusive);
@@ -807,9 +790,8 @@
}
@override
- void visitImport(DirectParserASTContentImportEnd node, Token startInclusive,
- Token? endInclusive) {
- DirectParserASTContentIdentifierHandle? prefix = node.getImportPrefix();
+ void visitImport(ImportEnd node, Token startInclusive, Token? endInclusive) {
+ IdentifierHandle? prefix = node.getImportPrefix();
String uriString = node.getImportUriString();
Uri importUri = uri.resolve(uriString);
List<String>? conditionalUriStrings = node.getConditionalImportUriStrings();
@@ -835,26 +817,25 @@
}
@override
- void visitLibraryName(DirectParserASTContentLibraryNameEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitLibraryName(
+ LibraryNameEnd node, Token startInclusive, Token endInclusive) {
LibraryName name = new LibraryName(node, startInclusive, endInclusive);
name.marked = Coloring.Marked;
currentContainer.addChild(name, map);
}
@override
- void visitMetadata(DirectParserASTContentMetadataEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitMetadata(
+ MetadataEnd node, Token startInclusive, Token endInclusive) {
Metadata m = new Metadata(node, startInclusive, endInclusive);
currentContainer.addChild(m, map);
}
@override
- void visitMixin(DirectParserASTContentMixinDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
- DirectParserASTContentTopLevelDeclarationEnd parent =
- node.parent! as DirectParserASTContentTopLevelDeclarationEnd;
- DirectParserASTContentIdentifierHandle identifier = parent.getIdentifier();
+ void visitMixin(
+ MixinDeclarationEnd node, Token startInclusive, Token endInclusive) {
+ TopLevelDeclarationEnd parent = node.parent! as TopLevelDeclarationEnd;
+ IdentifierHandle identifier = parent.getIdentifier();
log("Hello from mixin ${identifier.token}");
Mixin mixin = new Mixin(
@@ -868,8 +849,8 @@
}
@override
- void visitMixinFields(DirectParserASTContentMixinFieldsEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitMixinFields(
+ MixinFieldsEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Mixin);
List<String> fields =
node.getFieldIdentifiers().map((e) => e.token.lexeme).toList();
@@ -881,8 +862,8 @@
}
@override
- void visitMixinMethod(DirectParserASTContentMixinMethodEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitMixinMethod(
+ MixinMethodEnd node, Token startInclusive, Token endInclusive) {
assert(currentContainer is Mixin);
MixinMethod classMethod = new MixinMethod(
node, node.getNameIdentifier(), startInclusive, endInclusive);
@@ -892,11 +873,10 @@
}
@override
- void visitNamedMixin(DirectParserASTContentNamedMixinApplicationEnd node,
- Token startInclusive, Token endInclusive) {
- DirectParserASTContentTopLevelDeclarationEnd parent =
- node.parent! as DirectParserASTContentTopLevelDeclarationEnd;
- DirectParserASTContentIdentifierHandle identifier = parent.getIdentifier();
+ void visitNamedMixin(
+ NamedMixinApplicationEnd node, Token startInclusive, Token endInclusive) {
+ TopLevelDeclarationEnd parent = node.parent! as TopLevelDeclarationEnd;
+ IdentifierHandle identifier = parent.getIdentifier();
log("Hello from named mixin ${identifier.token}");
Mixin mixin = new Mixin(
@@ -910,8 +890,7 @@
}
@override
- void visitPart(DirectParserASTContentPartEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitPart(PartEnd node, Token startInclusive, Token endInclusive) {
String uriString = node.getPartUriString();
Uri partUri = uri.resolve(uriString);
@@ -921,8 +900,7 @@
}
@override
- void visitPartOf(DirectParserASTContentPartOfEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitPartOf(PartOfEnd node, Token startInclusive, Token endInclusive) {
// We'll assume we've gotten here via a "part" so we'll ignore that for now.
// TODO: partOfUri could - in an error case - be null.
PartOf partof = new PartOf(node, partOfUri!, startInclusive, endInclusive);
@@ -931,8 +909,8 @@
}
@override
- void visitTopLevelFields(DirectParserASTContentTopLevelFieldsEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitTopLevelFields(
+ TopLevelFieldsEnd node, Token startInclusive, Token endInclusive) {
List<String> fields =
node.getFieldIdentifiers().map((e) => e.token.lexeme).toList();
TopLevelFields f =
@@ -943,8 +921,8 @@
}
@override
- void visitTopLevelMethod(DirectParserASTContentTopLevelMethodEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitTopLevelMethod(
+ TopLevelMethodEnd node, Token startInclusive, Token endInclusive) {
TopLevelMethod m = new TopLevelMethod(node,
node.getNameIdentifier().token.lexeme, startInclusive, endInclusive);
currentContainer.addChild(m, map);
@@ -953,8 +931,7 @@
}
@override
- void visitTypedef(DirectParserASTContentTypedefEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitTypedef(TypedefEnd node, Token startInclusive, Token endInclusive) {
Typedef t = new Typedef(node, node.getNameIdentifier().token.lexeme,
startInclusive, endInclusive);
currentContainer.addChild(t, map);
diff --git a/pkg/front_end/lib/src/fasta/util/parser_ast.dart b/pkg/front_end/lib/src/fasta/util/parser_ast.dart
new file mode 100644
index 0000000..3fe3f31
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/util/parser_ast.dart
@@ -0,0 +1,1572 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:typed_data' show Uint8List;
+
+import 'dart:io' show File;
+
+import 'package:_fe_analyzer_shared/src/messages/codes.dart';
+import 'package:_fe_analyzer_shared/src/scanner/scanner.dart'
+ show ScannerConfiguration;
+
+import 'package:_fe_analyzer_shared/src/parser/parser.dart'
+ show ClassMemberParser, Parser;
+
+import 'package:_fe_analyzer_shared/src/scanner/utf8_bytes_scanner.dart'
+ show Utf8BytesScanner;
+
+import 'package:_fe_analyzer_shared/src/scanner/token.dart' show Token;
+
+import 'package:_fe_analyzer_shared/src/parser/listener.dart'
+ show UnescapeErrorListener;
+
+import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
+
+import 'package:_fe_analyzer_shared/src/parser/quote.dart' show unescapeString;
+
+import '../source/diet_parser.dart';
+
+import 'parser_ast_helper.dart';
+
+CompilationUnitEnd getAST(List<int> rawBytes,
+ {bool includeBody: true,
+ bool includeComments: false,
+ bool enableExtensionMethods: false,
+ bool enableNonNullable: false,
+ bool enableTripleShift: false,
+ List<Token>? languageVersionsSeen}) {
+ Uint8List bytes = new Uint8List(rawBytes.length + 1);
+ bytes.setRange(0, rawBytes.length, rawBytes);
+
+ ScannerConfiguration scannerConfiguration = new ScannerConfiguration(
+ enableExtensionMethods: enableExtensionMethods,
+ enableNonNullable: enableNonNullable,
+ enableTripleShift: enableTripleShift);
+
+ Utf8BytesScanner scanner = new Utf8BytesScanner(
+ bytes,
+ includeComments: includeComments,
+ configuration: scannerConfiguration,
+ languageVersionChanged: (scanner, languageVersion) {
+ // For now don't do anything, but having it (making it non-null) means the
+ // configuration won't be reset.
+ languageVersionsSeen?.add(languageVersion);
+ },
+ );
+ Token firstToken = scanner.tokenize();
+ // ignore: unnecessary_null_comparison
+ if (firstToken == null) {
+ throw "firstToken is null";
+ }
+
+ ParserASTListener listener = new ParserASTListener();
+ Parser parser;
+ if (includeBody) {
+ parser = new Parser(listener,
+ useImplicitCreationExpression: useImplicitCreationExpressionInCfe);
+ } else {
+ parser = new ClassMemberParser(listener,
+ useImplicitCreationExpression: useImplicitCreationExpressionInCfe);
+ }
+ parser.parseUnit(firstToken);
+ return listener.data.single as CompilationUnitEnd;
+}
+
+/// Best-effort visitor for ParserAstNode that visits top-level entries
+/// and class members only (i.e. no bodies, no field initializer content, no
+/// names etc).
+class ParserAstVisitor {
+ void accept(ParserAstNode node) {
+ if (node is CompilationUnitEnd ||
+ node is TopLevelDeclarationEnd ||
+ node is ClassOrMixinOrExtensionBodyEnd ||
+ node is MemberEnd) {
+ visitChildren(node);
+ return;
+ }
+
+ if (node.type == ParserAstType.BEGIN) {
+ // Ignored. These are basically just dummy nodes anyway.
+ assert(node.children == null);
+ return;
+ }
+ if (node.type == ParserAstType.HANDLE) {
+ // Ignored at least for know.
+ assert(node.children == null);
+ return;
+ }
+ if (node is TypeVariablesEnd ||
+ node is TypeArgumentsEnd ||
+ node is TypeListEnd ||
+ node is FunctionTypeEnd ||
+ node is BlockEnd) {
+ // Ignored at least for know.
+ return;
+ }
+ if (node is MetadataStarEnd) {
+ MetadataStarEnd metadata = node;
+ visitMetadataStar(metadata);
+ return;
+ }
+ if (node is TypedefEnd) {
+ TypedefEnd typedefDecl = node;
+ visitTypedef(
+ typedefDecl, typedefDecl.typedefKeyword, typedefDecl.endToken);
+ return;
+ }
+ if (node is ClassDeclarationEnd) {
+ ClassDeclarationEnd cls = node;
+ visitClass(cls, cls.beginToken, cls.endToken);
+ return;
+ }
+ if (node is TopLevelMethodEnd) {
+ TopLevelMethodEnd method = node;
+ visitTopLevelMethod(method, method.beginToken, method.endToken);
+ return;
+ }
+ if (node is ClassMethodEnd) {
+ ClassMethodEnd method = node;
+ visitClassMethod(method, method.beginToken, method.endToken);
+ return;
+ }
+ if (node is ExtensionMethodEnd) {
+ ExtensionMethodEnd method = node;
+ visitExtensionMethod(method, method.beginToken, method.endToken);
+ return;
+ }
+ if (node is MixinMethodEnd) {
+ MixinMethodEnd method = node;
+ visitMixinMethod(method, method.beginToken, method.endToken);
+ return;
+ }
+ if (node is ImportEnd) {
+ ImportEnd import = node;
+ visitImport(import, import.importKeyword, import.semicolon);
+ return;
+ }
+ if (node is ExportEnd) {
+ ExportEnd export = node;
+ visitExport(export, export.exportKeyword, export.semicolon);
+ return;
+ }
+ if (node is TopLevelFieldsEnd) {
+ // TODO(jensj): Possibly this could go into more details too
+ // (e.g. to split up a field declaration).
+ TopLevelFieldsEnd fields = node;
+ visitTopLevelFields(fields, fields.beginToken, fields.endToken);
+ return;
+ }
+ if (node is ClassFieldsEnd) {
+ // TODO(jensj): Possibly this could go into more details too
+ // (e.g. to split up a field declaration).
+ ClassFieldsEnd fields = node;
+ visitClassFields(fields, fields.beginToken, fields.endToken);
+ return;
+ }
+ if (node is ExtensionFieldsEnd) {
+ // TODO(jensj): Possibly this could go into more details too
+ // (e.g. to split up a field declaration).
+ ExtensionFieldsEnd fields = node;
+ visitExtensionFields(fields, fields.beginToken, fields.endToken);
+ return;
+ }
+ if (node is MixinFieldsEnd) {
+ // TODO(jensj): Possibly this could go into more details too
+ // (e.g. to split up a field declaration).
+ MixinFieldsEnd fields = node;
+ visitMixinFields(fields, fields.beginToken, fields.endToken);
+ return;
+ }
+ if (node is NamedMixinApplicationEnd) {
+ NamedMixinApplicationEnd namedMixin = node;
+ visitNamedMixin(namedMixin, namedMixin.begin, namedMixin.endToken);
+ return;
+ }
+ if (node is MixinDeclarationEnd) {
+ MixinDeclarationEnd declaration = node;
+ visitMixin(declaration, declaration.mixinKeyword, declaration.endToken);
+ return;
+ }
+ if (node is EnumEnd) {
+ EnumEnd declaration = node;
+ visitEnum(declaration, declaration.enumKeyword,
+ declaration.leftBrace.endGroup!);
+ return;
+ }
+ if (node is LibraryNameEnd) {
+ LibraryNameEnd name = node;
+ visitLibraryName(name, name.libraryKeyword, name.semicolon);
+ return;
+ }
+ if (node is PartEnd) {
+ PartEnd part = node;
+ visitPart(part, part.partKeyword, part.semicolon);
+ return;
+ }
+ if (node is PartOfEnd) {
+ PartOfEnd partOf = node;
+ visitPartOf(partOf, partOf.partKeyword, partOf.semicolon);
+ return;
+ }
+ if (node is ExtensionDeclarationEnd) {
+ ExtensionDeclarationEnd ext = node;
+ visitExtension(ext, ext.extensionKeyword, ext.endToken);
+ return;
+ }
+ if (node is ClassConstructorEnd) {
+ ClassConstructorEnd decl = node;
+ visitClassConstructor(decl, decl.beginToken, decl.endToken);
+ return;
+ }
+ if (node is ExtensionConstructorEnd) {
+ ExtensionConstructorEnd decl = node;
+ visitExtensionConstructor(decl, decl.beginToken, decl.endToken);
+ return;
+ }
+ if (node is ClassFactoryMethodEnd) {
+ ClassFactoryMethodEnd decl = node;
+ visitClassFactoryMethod(decl, decl.beginToken, decl.endToken);
+ return;
+ }
+ if (node is ExtensionFactoryMethodEnd) {
+ ExtensionFactoryMethodEnd decl = node;
+ visitExtensionFactoryMethod(decl, decl.beginToken, decl.endToken);
+ return;
+ }
+ if (node is MetadataEnd) {
+ MetadataEnd decl = node;
+ // TODO(jensj): endToken is not part of the metadata! It's the first token
+ // of the next thing.
+ visitMetadata(decl, decl.beginToken, decl.endToken.previous!);
+ return;
+ }
+
+ throw "Unknown: $node (${node.runtimeType} @ ${node.what})";
+ }
+
+ void visitChildren(ParserAstNode node) {
+ if (node.children == null) return;
+ final int numChildren = node.children!.length;
+ for (int i = 0; i < numChildren; i++) {
+ ParserAstNode child = node.children![i];
+ accept(child);
+ }
+ }
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitImport(ImportEnd node, Token startInclusive, Token? endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitExport(ExportEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitTypedef(
+ TypedefEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers can call visitChildren on this node.
+ void visitMetadataStar(MetadataStarEnd node) {
+ visitChildren(node);
+ }
+
+ /// Note: Implementers can call visitChildren on this node.
+ void visitClass(
+ ClassDeclarationEnd node, Token startInclusive, Token endInclusive) {
+ visitChildren(node);
+ }
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitTopLevelMethod(
+ TopLevelMethodEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitClassMethod(
+ ClassMethodEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitExtensionMethod(
+ ExtensionMethodEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitMixinMethod(
+ MixinMethodEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitTopLevelFields(
+ TopLevelFieldsEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitClassFields(
+ ClassFieldsEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitExtensionFields(
+ ExtensionFieldsEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitMixinFields(
+ MixinFieldsEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers can call visitChildren on this node.
+ void visitNamedMixin(
+ NamedMixinApplicationEnd node, Token startInclusive, Token endInclusive) {
+ visitChildren(node);
+ }
+
+ /// Note: Implementers can call visitChildren on this node.
+ void visitMixin(
+ MixinDeclarationEnd node, Token startInclusive, Token endInclusive) {
+ visitChildren(node);
+ }
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitEnum(EnumEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitLibraryName(
+ LibraryNameEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitPart(PartEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitPartOf(PartOfEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers can call visitChildren on this node.
+ void visitExtension(
+ ExtensionDeclarationEnd node, Token startInclusive, Token endInclusive) {
+ visitChildren(node);
+ }
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitClassConstructor(
+ ClassConstructorEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitExtensionConstructor(
+ ExtensionConstructorEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitClassFactoryMethod(
+ ClassFactoryMethodEnd node, Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitExtensionFactoryMethod(ExtensionFactoryMethodEnd node,
+ Token startInclusive, Token endInclusive) {}
+
+ /// Note: Implementers are NOT expected to call visitChildren on this node.
+ void visitMetadata(
+ MetadataEnd node, Token startInclusive, Token endInclusive) {}
+}
+
+extension GeneralASTContentExtension on ParserAstNode {
+ bool isClass() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first
+ // ignore: lines_longer_than_80_chars
+ is! ClassOrMixinOrNamedMixinApplicationPreludeBegin) {
+ return false;
+ }
+ if (children!.last is! ClassDeclarationEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ ClassDeclarationEnd asClass() {
+ if (!isClass()) throw "Not class";
+ return children!.last as ClassDeclarationEnd;
+ }
+
+ bool isImport() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! ImportEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ ImportEnd asImport() {
+ if (!isImport()) throw "Not import";
+ return children!.last as ImportEnd;
+ }
+
+ bool isExport() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! ExportEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ ExportEnd asExport() {
+ if (!isExport()) throw "Not export";
+ return children!.last as ExportEnd;
+ }
+
+ bool isEnum() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! EnumEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ EnumEnd asEnum() {
+ if (!isEnum()) throw "Not enum";
+ return children!.last as EnumEnd;
+ }
+
+ bool isTypedef() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! TypedefEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ TypedefEnd asTypedef() {
+ if (!isTypedef()) throw "Not typedef";
+ return children!.last as TypedefEnd;
+ }
+
+ bool isScript() {
+ if (this is! ScriptHandle) {
+ return false;
+ }
+ return true;
+ }
+
+ ScriptHandle asScript() {
+ if (!isScript()) throw "Not script";
+ return this as ScriptHandle;
+ }
+
+ bool isExtension() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! ExtensionDeclarationPreludeBegin) {
+ return false;
+ }
+ if (children!.last is! ExtensionDeclarationEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ ExtensionDeclarationEnd asExtension() {
+ if (!isExtension()) throw "Not extension";
+ return children!.last as ExtensionDeclarationEnd;
+ }
+
+ bool isInvalidTopLevelDeclaration() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! TopLevelMemberBegin) {
+ return false;
+ }
+ if (children!.last is! InvalidTopLevelDeclarationHandle) {
+ return false;
+ }
+
+ return true;
+ }
+
+ bool isRecoverableError() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! RecoverableErrorHandle) {
+ return false;
+ }
+
+ return true;
+ }
+
+ bool isRecoverImport() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! RecoverImportHandle) {
+ return false;
+ }
+
+ return true;
+ }
+
+ bool isMixinDeclaration() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first
+ // ignore: lines_longer_than_80_chars
+ is! ClassOrMixinOrNamedMixinApplicationPreludeBegin) {
+ return false;
+ }
+ if (children!.last is! MixinDeclarationEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ MixinDeclarationEnd asMixinDeclaration() {
+ if (!isMixinDeclaration()) throw "Not mixin declaration";
+ return children!.last as MixinDeclarationEnd;
+ }
+
+ bool isNamedMixinDeclaration() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first
+ // ignore: lines_longer_than_80_chars
+ is! ClassOrMixinOrNamedMixinApplicationPreludeBegin) {
+ return false;
+ }
+ if (children!.last is! NamedMixinApplicationEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ NamedMixinApplicationEnd asNamedMixinDeclaration() {
+ if (!isNamedMixinDeclaration()) throw "Not named mixin declaration";
+ return children!.last as NamedMixinApplicationEnd;
+ }
+
+ bool isTopLevelMethod() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! TopLevelMemberBegin) {
+ return false;
+ }
+ if (children!.last is! TopLevelMethodEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ TopLevelMethodEnd asTopLevelMethod() {
+ if (!isTopLevelMethod()) throw "Not top level method";
+ return children!.last as TopLevelMethodEnd;
+ }
+
+ bool isTopLevelFields() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! TopLevelMemberBegin) {
+ return false;
+ }
+ if (children!.last is! TopLevelFieldsEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ TopLevelFieldsEnd asTopLevelFields() {
+ if (!isTopLevelFields()) throw "Not top level fields";
+ return children!.last as TopLevelFieldsEnd;
+ }
+
+ bool isLibraryName() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! LibraryNameEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ LibraryNameEnd asLibraryName() {
+ if (!isLibraryName()) throw "Not library name";
+ return children!.last as LibraryNameEnd;
+ }
+
+ bool isPart() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! PartEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ PartEnd asPart() {
+ if (!isPart()) throw "Not part";
+ return children!.last as PartEnd;
+ }
+
+ bool isPartOf() {
+ if (this is! TopLevelDeclarationEnd) {
+ return false;
+ }
+ if (children!.first is! UncategorizedTopLevelDeclarationBegin) {
+ return false;
+ }
+ if (children!.last is! PartOfEnd) {
+ return false;
+ }
+
+ return true;
+ }
+
+ PartOfEnd asPartOf() {
+ if (!isPartOf()) throw "Not part of";
+ return children!.last as PartOfEnd;
+ }
+
+ bool isMetadata() {
+ if (this is! MetadataStarEnd) {
+ return false;
+ }
+ if (children!.first is! MetadataStarBegin) {
+ return false;
+ }
+ return true;
+ }
+
+ MetadataStarEnd asMetadata() {
+ if (!isMetadata()) throw "Not metadata";
+ return this as MetadataStarEnd;
+ }
+
+ bool isFunctionBody() {
+ if (this is BlockFunctionBodyEnd) return true;
+ return false;
+ }
+
+ BlockFunctionBodyEnd asFunctionBody() {
+ if (!isFunctionBody()) throw "Not function body";
+ return this as BlockFunctionBodyEnd;
+ }
+
+ List<E> recursivelyFind<E extends ParserAstNode>() {
+ Set<E> result = {};
+ _recursivelyFindInternal(this, result);
+ return result.toList();
+ }
+
+ static void _recursivelyFindInternal<E extends ParserAstNode>(
+ ParserAstNode node, Set<E> result) {
+ if (node is E) {
+ result.add(node);
+ return;
+ }
+ if (node.children == null) return;
+ for (ParserAstNode child in node.children!) {
+ _recursivelyFindInternal(child, result);
+ }
+ }
+
+ void debugDumpNodeRecursively({String indent = ""}) {
+ print("$indent${runtimeType} (${what}) "
+ "(${deprecatedArguments})");
+ if (children == null) return;
+ for (ParserAstNode child in children!) {
+ child.debugDumpNodeRecursively(indent: " $indent");
+ }
+ }
+}
+
+extension MetadataStarExtension on MetadataStarEnd {
+ List<MetadataEnd> getMetadataEntries() {
+ List<MetadataEnd> result = [];
+ for (ParserAstNode topLevel in children!) {
+ if (topLevel is! MetadataEnd) continue;
+ result.add(topLevel);
+ }
+ return result;
+ }
+}
+
+extension CompilationUnitExtension on CompilationUnitEnd {
+ List<TopLevelDeclarationEnd> getClasses() {
+ List<TopLevelDeclarationEnd> result = [];
+ for (ParserAstNode topLevel in children!) {
+ if (!topLevel.isClass()) continue;
+ result.add(topLevel as TopLevelDeclarationEnd);
+ }
+ return result;
+ }
+
+ List<TopLevelDeclarationEnd> getMixinDeclarations() {
+ List<TopLevelDeclarationEnd> result = [];
+ for (ParserAstNode topLevel in children!) {
+ if (!topLevel.isMixinDeclaration()) continue;
+ result.add(topLevel as TopLevelDeclarationEnd);
+ }
+ return result;
+ }
+
+ List<ImportEnd> getImports() {
+ List<ImportEnd> result = [];
+ for (ParserAstNode topLevel in children!) {
+ if (!topLevel.isImport()) continue;
+ result.add(topLevel.children!.last as ImportEnd);
+ }
+ return result;
+ }
+
+ List<ExportEnd> getExports() {
+ List<ExportEnd> result = [];
+ for (ParserAstNode topLevel in children!) {
+ if (!topLevel.isExport()) continue;
+ result.add(topLevel.children!.last as ExportEnd);
+ }
+ return result;
+ }
+
+ // List<MetadataStarEnd> getMetadata() {
+ // List<MetadataStarEnd> result = [];
+ // for (ParserAstNode topLevel in children) {
+ // if (!topLevel.isMetadata()) continue;
+ // result.add(topLevel);
+ // }
+ // return result;
+ // }
+
+ // List<EnumEnd> getEnums() {
+ // List<EnumEnd> result = [];
+ // for (ParserAstNode topLevel in children) {
+ // if (!topLevel.isEnum()) continue;
+ // result.add(topLevel.children.last);
+ // }
+ // return result;
+ // }
+
+ // List<FunctionTypeAliasEnd> getTypedefs() {
+ // List<FunctionTypeAliasEnd> result = [];
+ // for (ParserAstNode topLevel in children) {
+ // if (!topLevel.isTypedef()) continue;
+ // result.add(topLevel.children.last);
+ // }
+ // return result;
+ // }
+
+ // List<MixinDeclarationEnd> getMixinDeclarations() {
+ // List<MixinDeclarationEnd> result = [];
+ // for (ParserAstNode topLevel in children) {
+ // if (!topLevel.isMixinDeclaration()) continue;
+ // result.add(topLevel.children.last);
+ // }
+ // return result;
+ // }
+
+ // List<TopLevelMethodEnd> getTopLevelMethods() {
+ // List<TopLevelMethodEnd> result = [];
+ // for (ParserAstNode topLevel in children) {
+ // if (!topLevel.isTopLevelMethod()) continue;
+ // result.add(topLevel.children.last);
+ // }
+ // return result;
+ // }
+
+ CompilationUnitBegin getBegin() {
+ return children!.first as CompilationUnitBegin;
+ }
+}
+
+extension TopLevelDeclarationExtension on TopLevelDeclarationEnd {
+ IdentifierHandle getIdentifier() {
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) return child;
+ }
+ throw "Not found.";
+ }
+
+ ClassDeclarationEnd getClassDeclaration() {
+ if (!isClass()) {
+ throw "Not a class";
+ }
+ for (ParserAstNode child in children!) {
+ if (child is ClassDeclarationEnd) {
+ return child;
+ }
+ }
+ throw "Not found.";
+ }
+}
+
+extension MixinDeclarationExtension on MixinDeclarationEnd {
+ ClassOrMixinOrExtensionBodyEnd getClassOrMixinOrExtensionBody() {
+ for (ParserAstNode child in children!) {
+ if (child is ClassOrMixinOrExtensionBodyEnd) {
+ return child;
+ }
+ }
+ throw "Not found.";
+ }
+}
+
+extension ClassDeclarationExtension on ClassDeclarationEnd {
+ ClassOrMixinOrExtensionBodyEnd getClassOrMixinOrExtensionBody() {
+ for (ParserAstNode child in children!) {
+ if (child is ClassOrMixinOrExtensionBodyEnd) {
+ return child;
+ }
+ }
+ throw "Not found.";
+ }
+
+ ClassExtendsHandle getClassExtends() {
+ for (ParserAstNode child in children!) {
+ if (child is ClassExtendsHandle) return child;
+ }
+ throw "Not found.";
+ }
+
+ ClassOrMixinImplementsHandle getClassImplements() {
+ for (ParserAstNode child in children!) {
+ if (child is ClassOrMixinImplementsHandle) {
+ return child;
+ }
+ }
+ throw "Not found.";
+ }
+
+ ClassWithClauseHandle? getClassWithClause() {
+ for (ParserAstNode child in children!) {
+ if (child is ClassWithClauseHandle) {
+ return child;
+ }
+ }
+ return null;
+ }
+}
+
+extension ClassOrMixinBodyExtension on ClassOrMixinOrExtensionBodyEnd {
+ List<MemberEnd> getMembers() {
+ List<MemberEnd> members = [];
+ for (ParserAstNode child in children!) {
+ if (child is MemberEnd) {
+ members.add(child);
+ }
+ }
+ return members;
+ }
+}
+
+extension MemberExtension on MemberEnd {
+ bool isClassConstructor() {
+ ParserAstNode child = children![1];
+ if (child is ClassConstructorEnd) return true;
+ return false;
+ }
+
+ ClassConstructorEnd getClassConstructor() {
+ ParserAstNode child = children![1];
+ if (child is ClassConstructorEnd) return child;
+ throw "Not found";
+ }
+
+ bool isClassFactoryMethod() {
+ ParserAstNode child = children![1];
+ if (child is ClassFactoryMethodEnd) return true;
+ return false;
+ }
+
+ ClassFactoryMethodEnd getClassFactoryMethod() {
+ ParserAstNode child = children![1];
+ if (child is ClassFactoryMethodEnd) return child;
+ throw "Not found";
+ }
+
+ bool isClassFields() {
+ ParserAstNode child = children![1];
+ if (child is ClassFieldsEnd) return true;
+ return false;
+ }
+
+ ClassFieldsEnd getClassFields() {
+ ParserAstNode child = children![1];
+ if (child is ClassFieldsEnd) return child;
+ throw "Not found";
+ }
+
+ bool isMixinFields() {
+ ParserAstNode child = children![1];
+ if (child is MixinFieldsEnd) return true;
+ return false;
+ }
+
+ MixinFieldsEnd getMixinFields() {
+ ParserAstNode child = children![1];
+ if (child is MixinFieldsEnd) return child;
+ throw "Not found";
+ }
+
+ bool isMixinMethod() {
+ ParserAstNode child = children![1];
+ if (child is MixinMethodEnd) return true;
+ return false;
+ }
+
+ MixinMethodEnd getMixinMethod() {
+ ParserAstNode child = children![1];
+ if (child is MixinMethodEnd) return child;
+ throw "Not found";
+ }
+
+ bool isMixinFactoryMethod() {
+ ParserAstNode child = children![1];
+ if (child is MixinFactoryMethodEnd) return true;
+ return false;
+ }
+
+ MixinFactoryMethodEnd getMixinFactoryMethod() {
+ ParserAstNode child = children![1];
+ if (child is MixinFactoryMethodEnd) return child;
+ throw "Not found";
+ }
+
+ bool isMixinConstructor() {
+ ParserAstNode child = children![1];
+ if (child is MixinConstructorEnd) return true;
+ return false;
+ }
+
+ MixinConstructorEnd getMixinConstructor() {
+ ParserAstNode child = children![1];
+ if (child is MixinConstructorEnd) return child;
+ throw "Not found";
+ }
+
+ bool isClassMethod() {
+ ParserAstNode child = children![1];
+ if (child is ClassMethodEnd) return true;
+ return false;
+ }
+
+ ClassMethodEnd getClassMethod() {
+ ParserAstNode child = children![1];
+ if (child is ClassMethodEnd) return child;
+ throw "Not found";
+ }
+
+ bool isClassRecoverableError() {
+ ParserAstNode child = children![1];
+ if (child is RecoverableErrorHandle) return true;
+ return false;
+ }
+}
+
+extension MixinFieldsExtension on MixinFieldsEnd {
+ List<IdentifierHandle> getFieldIdentifiers() {
+ int countLeft = count;
+ List<IdentifierHandle>? identifiers;
+ for (int i = children!.length - 1; i >= 0; i--) {
+ ParserAstNode child = children![i];
+ if (child is IdentifierHandle &&
+ child.context == IdentifierContext.fieldDeclaration) {
+ countLeft--;
+ if (identifiers == null) {
+ identifiers = new List<IdentifierHandle>.filled(count, child);
+ } else {
+ identifiers[countLeft] = child;
+ }
+ if (countLeft == 0) break;
+ }
+ }
+ if (countLeft != 0) throw "Didn't find the expected number of identifiers";
+ return identifiers ?? [];
+ }
+}
+
+extension ExtensionFieldsExtension on ExtensionFieldsEnd {
+ List<IdentifierHandle> getFieldIdentifiers() {
+ int countLeft = count;
+ List<IdentifierHandle>? identifiers;
+ for (int i = children!.length - 1; i >= 0; i--) {
+ ParserAstNode child = children![i];
+ if (child is IdentifierHandle &&
+ child.context == IdentifierContext.fieldDeclaration) {
+ countLeft--;
+ if (identifiers == null) {
+ identifiers = new List<IdentifierHandle>.filled(count, child);
+ } else {
+ identifiers[countLeft] = child;
+ }
+ if (countLeft == 0) break;
+ }
+ }
+ if (countLeft != 0) throw "Didn't find the expected number of identifiers";
+ return identifiers ?? [];
+ }
+}
+
+extension ClassFieldsExtension on ClassFieldsEnd {
+ List<IdentifierHandle> getFieldIdentifiers() {
+ int countLeft = count;
+ List<IdentifierHandle>? identifiers;
+ for (int i = children!.length - 1; i >= 0; i--) {
+ ParserAstNode child = children![i];
+ if (child is IdentifierHandle &&
+ child.context == IdentifierContext.fieldDeclaration) {
+ countLeft--;
+ if (identifiers == null) {
+ identifiers = new List<IdentifierHandle>.filled(count, child);
+ } else {
+ identifiers[countLeft] = child;
+ }
+ if (countLeft == 0) break;
+ }
+ }
+ if (countLeft != 0) throw "Didn't find the expected number of identifiers";
+ return identifiers ?? [];
+ }
+
+ TypeHandle? getFirstType() {
+ for (ParserAstNode child in children!) {
+ if (child is TypeHandle) return child;
+ }
+ return null;
+ }
+
+ FieldInitializerEnd? getFieldInitializer() {
+ for (ParserAstNode child in children!) {
+ if (child is FieldInitializerEnd) return child;
+ }
+ return null;
+ }
+}
+
+extension EnumExtension on EnumEnd {
+ List<IdentifierHandle> getIdentifiers() {
+ List<IdentifierHandle> ids = [];
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) ids.add(child);
+ }
+ return ids;
+ }
+}
+
+extension ExtensionDeclarationExtension on ExtensionDeclarationEnd {
+ List<IdentifierHandle> getIdentifiers() {
+ List<IdentifierHandle> ids = [];
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) ids.add(child);
+ }
+ return ids;
+ }
+}
+
+extension TopLevelMethodExtension on TopLevelMethodEnd {
+ IdentifierHandle getNameIdentifier() {
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) {
+ if (child.context == IdentifierContext.topLevelFunctionDeclaration) {
+ return child;
+ }
+ }
+ }
+ throw "Didn't find the name identifier!";
+ }
+}
+
+extension TypedefExtension on TypedefEnd {
+ IdentifierHandle getNameIdentifier() {
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) {
+ if (child.context == IdentifierContext.typedefDeclaration) {
+ return child;
+ }
+ }
+ }
+ throw "Didn't find the name identifier!";
+ }
+}
+
+extension ImportExtension on ImportEnd {
+ IdentifierHandle? getImportPrefix() {
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) {
+ if (child.context == IdentifierContext.importPrefixDeclaration) {
+ return child;
+ }
+ }
+ }
+ }
+
+ String getImportUriString() {
+ StringBuffer sb = new StringBuffer();
+ bool foundOne = false;
+ for (ParserAstNode child in children!) {
+ if (child is LiteralStringEnd) {
+ LiteralStringBegin uri = child.children!.single as LiteralStringBegin;
+ sb.write(unescapeString(
+ uri.token.lexeme, uri.token, const UnescapeErrorListenerDummy()));
+ foundOne = true;
+ }
+ }
+ if (!foundOne) throw "Didn't find any";
+ return sb.toString();
+ }
+
+ List<String>? getConditionalImportUriStrings() {
+ List<String>? result;
+ for (ParserAstNode child in children!) {
+ if (child is ConditionalUrisEnd) {
+ for (ParserAstNode child2 in child.children!) {
+ if (child2 is ConditionalUriEnd) {
+ LiteralStringEnd end = child2.children!.last as LiteralStringEnd;
+ LiteralStringBegin uri = end.children!.single as LiteralStringBegin;
+ (result ??= []).add(unescapeString(uri.token.lexeme, uri.token,
+ const UnescapeErrorListenerDummy()));
+ }
+ }
+ return result;
+ }
+ }
+ return result;
+ }
+}
+
+extension ExportExtension on ExportEnd {
+ String getExportUriString() {
+ StringBuffer sb = new StringBuffer();
+ bool foundOne = false;
+ for (ParserAstNode child in children!) {
+ if (child is LiteralStringEnd) {
+ LiteralStringBegin uri = child.children!.single as LiteralStringBegin;
+ sb.write(unescapeString(
+ uri.token.lexeme, uri.token, const UnescapeErrorListenerDummy()));
+ foundOne = true;
+ }
+ }
+ if (!foundOne) throw "Didn't find any";
+ return sb.toString();
+ }
+
+ List<String>? getConditionalExportUriStrings() {
+ List<String>? result;
+ for (ParserAstNode child in children!) {
+ if (child is ConditionalUrisEnd) {
+ for (ParserAstNode child2 in child.children!) {
+ if (child2 is ConditionalUriEnd) {
+ LiteralStringEnd end = child2.children!.last as LiteralStringEnd;
+ LiteralStringBegin uri = end.children!.single as LiteralStringBegin;
+ (result ??= []).add(unescapeString(uri.token.lexeme, uri.token,
+ const UnescapeErrorListenerDummy()));
+ }
+ }
+ return result;
+ }
+ }
+ return result;
+ }
+}
+
+extension PartExtension on PartEnd {
+ String getPartUriString() {
+ StringBuffer sb = new StringBuffer();
+ bool foundOne = false;
+ for (ParserAstNode child in children!) {
+ if (child is LiteralStringEnd) {
+ LiteralStringBegin uri = child.children!.single as LiteralStringBegin;
+ sb.write(unescapeString(
+ uri.token.lexeme, uri.token, const UnescapeErrorListenerDummy()));
+ foundOne = true;
+ }
+ }
+ if (!foundOne) throw "Didn't find any";
+ return sb.toString();
+ }
+}
+
+class UnescapeErrorListenerDummy implements UnescapeErrorListener {
+ const UnescapeErrorListenerDummy();
+
+ @override
+ void handleUnescapeError(
+ Message message, covariant location, int offset, int length) {
+ // Purposely doesn't do anything.
+ }
+}
+
+extension TopLevelFieldsExtension on TopLevelFieldsEnd {
+ List<IdentifierHandle> getFieldIdentifiers() {
+ int countLeft = count;
+ List<IdentifierHandle>? identifiers;
+ for (int i = children!.length - 1; i >= 0; i--) {
+ ParserAstNode child = children![i];
+ if (child is IdentifierHandle &&
+ child.context == IdentifierContext.topLevelVariableDeclaration) {
+ countLeft--;
+ if (identifiers == null) {
+ identifiers = new List<IdentifierHandle>.filled(count, child);
+ } else {
+ identifiers[countLeft] = child;
+ }
+ if (countLeft == 0) break;
+ }
+ }
+ if (countLeft != 0) throw "Didn't find the expected number of identifiers";
+ return identifiers ?? [];
+ }
+}
+
+extension ClassMethodExtension on ClassMethodEnd {
+ BlockFunctionBodyEnd? getBlockFunctionBody() {
+ for (ParserAstNode child in children!) {
+ if (child is BlockFunctionBodyEnd) {
+ return child;
+ }
+ }
+ return null;
+ }
+
+ String getNameIdentifier() {
+ bool foundType = false;
+ for (ParserAstNode child in children!) {
+ if (child is TypeHandle ||
+ child is NoTypeHandle ||
+ child is VoidKeywordHandle ||
+ child is FunctionTypeEnd) {
+ foundType = true;
+ }
+ if (foundType && child is IdentifierHandle) {
+ return child.token.lexeme;
+ } else if (foundType && child is OperatorNameHandle) {
+ return child.token.lexeme;
+ }
+ }
+ throw "No identifier found: $children";
+ }
+}
+
+extension MixinMethodExtension on MixinMethodEnd {
+ String getNameIdentifier() {
+ bool foundType = false;
+ for (ParserAstNode child in children!) {
+ if (child is TypeHandle ||
+ child is NoTypeHandle ||
+ child is VoidKeywordHandle) {
+ foundType = true;
+ }
+ if (foundType && child is IdentifierHandle) {
+ return child.token.lexeme;
+ } else if (foundType && child is OperatorNameHandle) {
+ return child.token.lexeme;
+ }
+ }
+ throw "No identifier found: $children";
+ }
+}
+
+extension ExtensionMethodExtension on ExtensionMethodEnd {
+ String getNameIdentifier() {
+ bool foundType = false;
+ for (ParserAstNode child in children!) {
+ if (child is TypeHandle ||
+ child is NoTypeHandle ||
+ child is VoidKeywordHandle) {
+ foundType = true;
+ }
+ if (foundType && child is IdentifierHandle) {
+ return child.token.lexeme;
+ } else if (foundType && child is OperatorNameHandle) {
+ return child.token.lexeme;
+ }
+ }
+ throw "No identifier found: $children";
+ }
+}
+
+extension ClassFactoryMethodExtension on ClassFactoryMethodEnd {
+ List<IdentifierHandle> getIdentifiers() {
+ List<IdentifierHandle> result = [];
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) {
+ result.add(child);
+ } else if (child is FormalParametersEnd) {
+ break;
+ }
+ }
+ return result;
+ }
+}
+
+extension ClassConstructorExtension on ClassConstructorEnd {
+ FormalParametersEnd getFormalParameters() {
+ for (ParserAstNode child in children!) {
+ if (child is FormalParametersEnd) {
+ return child;
+ }
+ }
+ throw "Not found";
+ }
+
+ InitializersEnd? getInitializers() {
+ for (ParserAstNode child in children!) {
+ if (child is InitializersEnd) {
+ return child;
+ }
+ }
+ return null;
+ }
+
+ BlockFunctionBodyEnd? getBlockFunctionBody() {
+ for (ParserAstNode child in children!) {
+ if (child is BlockFunctionBodyEnd) {
+ return child;
+ }
+ }
+ return null;
+ }
+
+ List<IdentifierHandle> getIdentifiers() {
+ List<IdentifierHandle> result = [];
+ for (ParserAstNode child in children!) {
+ if (child is IdentifierHandle) {
+ result.add(child);
+ }
+ }
+ return result;
+ }
+}
+
+extension FormalParametersExtension on FormalParametersEnd {
+ List<FormalParameterEnd> getFormalParameters() {
+ List<FormalParameterEnd> result = [];
+ for (ParserAstNode child in children!) {
+ if (child is FormalParameterEnd) {
+ result.add(child);
+ }
+ }
+ return result;
+ }
+
+ OptionalFormalParametersEnd? getOptionalFormalParameters() {
+ for (ParserAstNode child in children!) {
+ if (child is OptionalFormalParametersEnd) {
+ return child;
+ }
+ }
+ return null;
+ }
+}
+
+extension FormalParameterExtension on FormalParameterEnd {
+ FormalParameterBegin getBegin() {
+ return children!.first as FormalParameterBegin;
+ }
+}
+
+extension OptionalFormalParametersExtension on OptionalFormalParametersEnd {
+ List<FormalParameterEnd> getFormalParameters() {
+ List<FormalParameterEnd> result = [];
+ for (ParserAstNode child in children!) {
+ if (child is FormalParameterEnd) {
+ result.add(child);
+ }
+ }
+ return result;
+ }
+}
+
+extension InitializersExtension on InitializersEnd {
+ List<InitializerEnd> getInitializers() {
+ List<InitializerEnd> result = [];
+ for (ParserAstNode child in children!) {
+ if (child is InitializerEnd) {
+ result.add(child);
+ }
+ }
+ return result;
+ }
+
+ InitializersBegin getBegin() {
+ return children!.first as InitializersBegin;
+ }
+}
+
+extension InitializerExtension on InitializerEnd {
+ InitializerBegin getBegin() {
+ return children!.first as InitializerBegin;
+ }
+}
+
+void main(List<String> args) {
+ File f = new File(args[0]);
+ Uint8List data = f.readAsBytesSync();
+ ParserAstNode ast = getAST(data);
+ if (args.length > 1 && args[1] == "--benchmark") {
+ Stopwatch stopwatch = new Stopwatch()..start();
+ int numRuns = 100;
+ for (int i = 0; i < numRuns; i++) {
+ ParserAstNode ast2 = getAST(data);
+ if (ast.what != ast2.what) {
+ throw "Not the same result every time";
+ }
+ }
+ stopwatch.stop();
+ print("First $numRuns took ${stopwatch.elapsedMilliseconds} ms "
+ "(i.e. ${stopwatch.elapsedMilliseconds / numRuns}ms/iteration)");
+ stopwatch = new Stopwatch()..start();
+ numRuns = 2500;
+ for (int i = 0; i < numRuns; i++) {
+ ParserAstNode ast2 = getAST(data);
+ if (ast.what != ast2.what) {
+ throw "Not the same result every time";
+ }
+ }
+ stopwatch.stop();
+ print("Next $numRuns took ${stopwatch.elapsedMilliseconds} ms "
+ "(i.e. ${stopwatch.elapsedMilliseconds / numRuns}ms/iteration)");
+ } else {
+ print(ast);
+ }
+}
+
+class ParserASTListener extends AbstractParserAstListener {
+ @override
+ void seen(ParserAstNode entry) {
+ switch (entry.type) {
+ case ParserAstType.BEGIN:
+ case ParserAstType.HANDLE:
+ // This just adds stuff.
+ data.add(entry);
+ break;
+ case ParserAstType.END:
+ // End should gobble up everything until the corresponding begin (which
+ // should be the latest begin).
+ int? beginIndex;
+ for (int i = data.length - 1; i >= 0; i--) {
+ if (data[i].type == ParserAstType.BEGIN) {
+ beginIndex = i;
+ break;
+ }
+ }
+ if (beginIndex == null) {
+ throw "Couldn't find a begin for ${entry.what}. Has:\n"
+ "${data.map((e) => "${e.what}: ${e.type}").join("\n")}";
+ }
+ String begin = data[beginIndex].what;
+ String end = entry.what;
+ if (begin == end) {
+ // Exact match.
+ } else if (end == "TopLevelDeclaration" &&
+ (begin == "ExtensionDeclarationPrelude" ||
+ begin == "ClassOrMixinOrNamedMixinApplicationPrelude" ||
+ begin == "TopLevelMember" ||
+ begin == "UncategorizedTopLevelDeclaration")) {
+ // endTopLevelDeclaration is started by one of
+ // beginExtensionDeclarationPrelude,
+ // beginClassOrNamedMixinApplicationPrelude
+ // beginTopLevelMember or beginUncategorizedTopLevelDeclaration.
+ } else if (begin == "Method" &&
+ (end == "ClassConstructor" ||
+ end == "ClassMethod" ||
+ end == "ExtensionConstructor" ||
+ end == "ExtensionMethod" ||
+ end == "MixinConstructor" ||
+ end == "MixinMethod")) {
+ // beginMethod is ended by one of endClassConstructor, endClassMethod,
+ // endExtensionMethod, endMixinConstructor or endMixinMethod.
+ } else if (begin == "Fields" &&
+ (end == "TopLevelFields" ||
+ end == "ClassFields" ||
+ end == "MixinFields" ||
+ end == "ExtensionFields")) {
+ // beginFields is ended by one of endTopLevelFields, endMixinFields or
+ // endExtensionFields.
+ } else if (begin == "ForStatement" && end == "ForIn") {
+ // beginForStatement is ended by either endForStatement or endForIn.
+ } else if (begin == "FactoryMethod" &&
+ (end == "ClassFactoryMethod" ||
+ end == "MixinFactoryMethod" ||
+ end == "ExtensionFactoryMethod")) {
+ // beginFactoryMethod is ended by either endClassFactoryMethod,
+ // endMixinFactoryMethod or endExtensionFactoryMethod.
+ } else if (begin == "ForControlFlow" && (end == "ForInControlFlow")) {
+ // beginForControlFlow is ended by either endForControlFlow or
+ // endForInControlFlow.
+ } else if (begin == "IfControlFlow" && (end == "IfElseControlFlow")) {
+ // beginIfControlFlow is ended by either endIfControlFlow or
+ // endIfElseControlFlow.
+ } else if (begin == "AwaitExpression" &&
+ (end == "InvalidAwaitExpression")) {
+ // beginAwaitExpression is ended by either endAwaitExpression or
+ // endInvalidAwaitExpression.
+ } else if (begin == "YieldStatement" &&
+ (end == "InvalidYieldStatement")) {
+ // beginYieldStatement is ended by either endYieldStatement or
+ // endInvalidYieldStatement.
+ } else {
+ throw "Unknown combination: begin$begin and end$end";
+ }
+ List<ParserAstNode> children = data.sublist(beginIndex);
+ for (ParserAstNode child in children) {
+ child.parent = entry;
+ }
+ data.length = beginIndex;
+ data.add(entry..children = children);
+ break;
+ }
+ }
+
+ @override
+ void reportVarianceModifierNotEnabled(Token? variance) {
+ throw new UnimplementedError();
+ }
+
+ @override
+ Uri get uri => throw new UnimplementedError();
+
+ @override
+ void logEvent(String name) {
+ throw new UnimplementedError();
+ }
+}
diff --git a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
new file mode 100644
index 0000000..f41a614
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
@@ -0,0 +1,6885 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:_fe_analyzer_shared/src/parser/assert.dart';
+import 'package:_fe_analyzer_shared/src/parser/block_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/constructor_reference_context.dart';
+import 'package:_fe_analyzer_shared/src/parser/declaration_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/formal_parameter_kind.dart';
+import 'package:_fe_analyzer_shared/src/parser/identifier_context.dart';
+import 'package:_fe_analyzer_shared/src/parser/listener.dart';
+import 'package:_fe_analyzer_shared/src/parser/member_kind.dart';
+import 'package:_fe_analyzer_shared/src/scanner/error_token.dart';
+import 'package:_fe_analyzer_shared/src/scanner/token.dart';
+import 'package:front_end/src/fasta/messages.dart';
+
+// ignore_for_file: lines_longer_than_80_chars
+
+// THIS FILE IS AUTO GENERATED BY
+// 'tool/_fasta/parser_ast_helper_creator.dart'
+// Run this command to update it:
+// 'dart pkg/front_end/tool/_fasta/parser_ast_helper_creator.dart'
+
+abstract class ParserAstNode {
+ final String what;
+ final ParserAstType type;
+ Map<String, Object?> get deprecatedArguments;
+ List<ParserAstNode>? children;
+ ParserAstNode? parent;
+
+ ParserAstNode(this.what, this.type);
+
+ // TODO(jensj): Compare two ASTs.
+}
+
+enum ParserAstType { BEGIN, END, HANDLE }
+
+abstract class AbstractParserAstListener implements Listener {
+ List<ParserAstNode> data = [];
+
+ void seen(ParserAstNode entry);
+
+ @override
+ void beginArguments(Token token) {
+ ArgumentsBegin data = new ArgumentsBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endArguments(int count, Token beginToken, Token endToken) {
+ ArgumentsEnd data = new ArgumentsEnd(ParserAstType.END,
+ count: count, beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleAsyncModifier(Token? asyncToken, Token? starToken) {
+ AsyncModifierHandle data = new AsyncModifierHandle(ParserAstType.HANDLE,
+ asyncToken: asyncToken, starToken: starToken);
+ seen(data);
+ }
+
+ @override
+ void beginAwaitExpression(Token token) {
+ AwaitExpressionBegin data =
+ new AwaitExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endAwaitExpression(Token beginToken, Token endToken) {
+ AwaitExpressionEnd data = new AwaitExpressionEnd(ParserAstType.END,
+ beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endInvalidAwaitExpression(
+ Token beginToken, Token endToken, MessageCode errorCode) {
+ InvalidAwaitExpressionEnd data = new InvalidAwaitExpressionEnd(
+ ParserAstType.END,
+ beginToken: beginToken,
+ endToken: endToken,
+ errorCode: errorCode);
+ seen(data);
+ }
+
+ @override
+ void beginBlock(Token token, BlockKind blockKind) {
+ BlockBegin data =
+ new BlockBegin(ParserAstType.BEGIN, token: token, blockKind: blockKind);
+ seen(data);
+ }
+
+ @override
+ void endBlock(
+ int count, Token beginToken, Token endToken, BlockKind blockKind) {
+ BlockEnd data = new BlockEnd(ParserAstType.END,
+ count: count,
+ beginToken: beginToken,
+ endToken: endToken,
+ blockKind: blockKind);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidTopLevelBlock(Token token) {
+ InvalidTopLevelBlockHandle data =
+ new InvalidTopLevelBlockHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginCascade(Token token) {
+ CascadeBegin data = new CascadeBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endCascade() {
+ CascadeEnd data = new CascadeEnd(ParserAstType.END);
+ seen(data);
+ }
+
+ @override
+ void beginCaseExpression(Token caseKeyword) {
+ CaseExpressionBegin data =
+ new CaseExpressionBegin(ParserAstType.BEGIN, caseKeyword: caseKeyword);
+ seen(data);
+ }
+
+ @override
+ void endCaseExpression(Token colon) {
+ CaseExpressionEnd data =
+ new CaseExpressionEnd(ParserAstType.END, colon: colon);
+ seen(data);
+ }
+
+ @override
+ void beginClassOrMixinOrExtensionBody(DeclarationKind kind, Token token) {
+ ClassOrMixinOrExtensionBodyBegin data =
+ new ClassOrMixinOrExtensionBodyBegin(ParserAstType.BEGIN,
+ kind: kind, token: token);
+ seen(data);
+ }
+
+ @override
+ void endClassOrMixinOrExtensionBody(
+ DeclarationKind kind, int memberCount, Token beginToken, Token endToken) {
+ ClassOrMixinOrExtensionBodyEnd data = new ClassOrMixinOrExtensionBodyEnd(
+ ParserAstType.END,
+ kind: kind,
+ memberCount: memberCount,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginClassOrMixinOrNamedMixinApplicationPrelude(Token token) {
+ ClassOrMixinOrNamedMixinApplicationPreludeBegin data =
+ new ClassOrMixinOrNamedMixinApplicationPreludeBegin(ParserAstType.BEGIN,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void beginClassDeclaration(Token begin, Token? abstractToken, Token name) {
+ ClassDeclarationBegin data = new ClassDeclarationBegin(ParserAstType.BEGIN,
+ begin: begin, abstractToken: abstractToken, name: name);
+ seen(data);
+ }
+
+ @override
+ void handleClassExtends(Token? extendsKeyword, int typeCount) {
+ ClassExtendsHandle data = new ClassExtendsHandle(ParserAstType.HANDLE,
+ extendsKeyword: extendsKeyword, typeCount: typeCount);
+ seen(data);
+ }
+
+ @override
+ void handleClassOrMixinImplements(
+ Token? implementsKeyword, int interfacesCount) {
+ ClassOrMixinImplementsHandle data = new ClassOrMixinImplementsHandle(
+ ParserAstType.HANDLE,
+ implementsKeyword: implementsKeyword,
+ interfacesCount: interfacesCount);
+ seen(data);
+ }
+
+ @override
+ void handleExtensionShowHide(Token? showKeyword, int showElementCount,
+ Token? hideKeyword, int hideElementCount) {
+ ExtensionShowHideHandle data = new ExtensionShowHideHandle(
+ ParserAstType.HANDLE,
+ showKeyword: showKeyword,
+ showElementCount: showElementCount,
+ hideKeyword: hideKeyword,
+ hideElementCount: hideElementCount);
+ seen(data);
+ }
+
+ @override
+ void handleClassHeader(Token begin, Token classKeyword, Token? nativeToken) {
+ ClassHeaderHandle data = new ClassHeaderHandle(ParserAstType.HANDLE,
+ begin: begin, classKeyword: classKeyword, nativeToken: nativeToken);
+ seen(data);
+ }
+
+ @override
+ void handleRecoverClassHeader() {
+ RecoverClassHeaderHandle data =
+ new RecoverClassHeaderHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void endClassDeclaration(Token beginToken, Token endToken) {
+ ClassDeclarationEnd data = new ClassDeclarationEnd(ParserAstType.END,
+ beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginMixinDeclaration(Token mixinKeyword, Token name) {
+ MixinDeclarationBegin data = new MixinDeclarationBegin(ParserAstType.BEGIN,
+ mixinKeyword: mixinKeyword, name: name);
+ seen(data);
+ }
+
+ @override
+ void handleMixinOn(Token? onKeyword, int typeCount) {
+ MixinOnHandle data = new MixinOnHandle(ParserAstType.HANDLE,
+ onKeyword: onKeyword, typeCount: typeCount);
+ seen(data);
+ }
+
+ @override
+ void handleMixinHeader(Token mixinKeyword) {
+ MixinHeaderHandle data =
+ new MixinHeaderHandle(ParserAstType.HANDLE, mixinKeyword: mixinKeyword);
+ seen(data);
+ }
+
+ @override
+ void handleRecoverMixinHeader() {
+ RecoverMixinHeaderHandle data =
+ new RecoverMixinHeaderHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void endMixinDeclaration(Token mixinKeyword, Token endToken) {
+ MixinDeclarationEnd data = new MixinDeclarationEnd(ParserAstType.END,
+ mixinKeyword: mixinKeyword, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginUncategorizedTopLevelDeclaration(Token token) {
+ UncategorizedTopLevelDeclarationBegin data =
+ new UncategorizedTopLevelDeclarationBegin(ParserAstType.BEGIN,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void beginExtensionDeclarationPrelude(Token extensionKeyword) {
+ ExtensionDeclarationPreludeBegin data =
+ new ExtensionDeclarationPreludeBegin(ParserAstType.BEGIN,
+ extensionKeyword: extensionKeyword);
+ seen(data);
+ }
+
+ @override
+ void beginExtensionDeclaration(Token extensionKeyword, Token? name) {
+ ExtensionDeclarationBegin data = new ExtensionDeclarationBegin(
+ ParserAstType.BEGIN,
+ extensionKeyword: extensionKeyword,
+ name: name);
+ seen(data);
+ }
+
+ @override
+ void endExtensionDeclaration(Token extensionKeyword, Token? typeKeyword,
+ Token onKeyword, Token? showKeyword, Token? hideKeyword, Token endToken) {
+ ExtensionDeclarationEnd data = new ExtensionDeclarationEnd(
+ ParserAstType.END,
+ extensionKeyword: extensionKeyword,
+ typeKeyword: typeKeyword,
+ onKeyword: onKeyword,
+ showKeyword: showKeyword,
+ hideKeyword: hideKeyword,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginCombinators(Token token) {
+ CombinatorsBegin data =
+ new CombinatorsBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endCombinators(int count) {
+ CombinatorsEnd data = new CombinatorsEnd(ParserAstType.END, count: count);
+ seen(data);
+ }
+
+ @override
+ void beginCompilationUnit(Token token) {
+ CompilationUnitBegin data =
+ new CompilationUnitBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleDirectivesOnly() {
+ DirectivesOnlyHandle data = new DirectivesOnlyHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void endCompilationUnit(int count, Token token) {
+ CompilationUnitEnd data =
+ new CompilationUnitEnd(ParserAstType.END, count: count, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginConstLiteral(Token token) {
+ ConstLiteralBegin data =
+ new ConstLiteralBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endConstLiteral(Token token) {
+ ConstLiteralEnd data = new ConstLiteralEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginConstructorReference(Token start) {
+ ConstructorReferenceBegin data =
+ new ConstructorReferenceBegin(ParserAstType.BEGIN, start: start);
+ seen(data);
+ }
+
+ @override
+ void endConstructorReference(Token start, Token? periodBeforeName,
+ Token endToken, ConstructorReferenceContext constructorReferenceContext) {
+ ConstructorReferenceEnd data = new ConstructorReferenceEnd(
+ ParserAstType.END,
+ start: start,
+ periodBeforeName: periodBeforeName,
+ endToken: endToken,
+ constructorReferenceContext: constructorReferenceContext);
+ seen(data);
+ }
+
+ @override
+ void beginDoWhileStatement(Token token) {
+ DoWhileStatementBegin data =
+ new DoWhileStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endDoWhileStatement(
+ Token doKeyword, Token whileKeyword, Token endToken) {
+ DoWhileStatementEnd data = new DoWhileStatementEnd(ParserAstType.END,
+ doKeyword: doKeyword, whileKeyword: whileKeyword, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginDoWhileStatementBody(Token token) {
+ DoWhileStatementBodyBegin data =
+ new DoWhileStatementBodyBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endDoWhileStatementBody(Token token) {
+ DoWhileStatementBodyEnd data =
+ new DoWhileStatementBodyEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginWhileStatementBody(Token token) {
+ WhileStatementBodyBegin data =
+ new WhileStatementBodyBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endWhileStatementBody(Token token) {
+ WhileStatementBodyEnd data =
+ new WhileStatementBodyEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginEnum(Token enumKeyword) {
+ EnumBegin data =
+ new EnumBegin(ParserAstType.BEGIN, enumKeyword: enumKeyword);
+ seen(data);
+ }
+
+ @override
+ void endEnum(Token enumKeyword, Token leftBrace, int count) {
+ EnumEnd data = new EnumEnd(ParserAstType.END,
+ enumKeyword: enumKeyword, leftBrace: leftBrace, count: count);
+ seen(data);
+ }
+
+ @override
+ void beginExport(Token token) {
+ ExportBegin data = new ExportBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endExport(Token exportKeyword, Token semicolon) {
+ ExportEnd data = new ExportEnd(ParserAstType.END,
+ exportKeyword: exportKeyword, semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleExtraneousExpression(Token token, Message message) {
+ ExtraneousExpressionHandle data = new ExtraneousExpressionHandle(
+ ParserAstType.HANDLE,
+ token: token,
+ message: message);
+ seen(data);
+ }
+
+ @override
+ void handleExpressionStatement(Token token) {
+ ExpressionStatementHandle data =
+ new ExpressionStatementHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginFactoryMethod(DeclarationKind declarationKind, Token lastConsumed,
+ Token? externalToken, Token? constToken) {
+ FactoryMethodBegin data = new FactoryMethodBegin(ParserAstType.BEGIN,
+ declarationKind: declarationKind,
+ lastConsumed: lastConsumed,
+ externalToken: externalToken,
+ constToken: constToken);
+ seen(data);
+ }
+
+ @override
+ void endClassFactoryMethod(
+ Token beginToken, Token factoryKeyword, Token endToken) {
+ ClassFactoryMethodEnd data = new ClassFactoryMethodEnd(ParserAstType.END,
+ beginToken: beginToken,
+ factoryKeyword: factoryKeyword,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endMixinFactoryMethod(
+ Token beginToken, Token factoryKeyword, Token endToken) {
+ MixinFactoryMethodEnd data = new MixinFactoryMethodEnd(ParserAstType.END,
+ beginToken: beginToken,
+ factoryKeyword: factoryKeyword,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endExtensionFactoryMethod(
+ Token beginToken, Token factoryKeyword, Token endToken) {
+ ExtensionFactoryMethodEnd data = new ExtensionFactoryMethodEnd(
+ ParserAstType.END,
+ beginToken: beginToken,
+ factoryKeyword: factoryKeyword,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginFormalParameter(Token token, MemberKind kind, Token? requiredToken,
+ Token? covariantToken, Token? varFinalOrConst) {
+ FormalParameterBegin data = new FormalParameterBegin(ParserAstType.BEGIN,
+ token: token,
+ kind: kind,
+ requiredToken: requiredToken,
+ covariantToken: covariantToken,
+ varFinalOrConst: varFinalOrConst);
+ seen(data);
+ }
+
+ @override
+ void endFormalParameter(
+ Token? thisKeyword,
+ Token? superKeyword,
+ Token? periodAfterThisOrSuper,
+ Token nameToken,
+ Token? initializerStart,
+ Token? initializerEnd,
+ FormalParameterKind kind,
+ MemberKind memberKind) {
+ FormalParameterEnd data = new FormalParameterEnd(ParserAstType.END,
+ thisKeyword: thisKeyword,
+ superKeyword: superKeyword,
+ periodAfterThisOrSuper: periodAfterThisOrSuper,
+ nameToken: nameToken,
+ initializerStart: initializerStart,
+ initializerEnd: initializerEnd,
+ kind: kind,
+ memberKind: memberKind);
+ seen(data);
+ }
+
+ @override
+ void handleNoFormalParameters(Token token, MemberKind kind) {
+ NoFormalParametersHandle data = new NoFormalParametersHandle(
+ ParserAstType.HANDLE,
+ token: token,
+ kind: kind);
+ seen(data);
+ }
+
+ @override
+ void beginFormalParameters(Token token, MemberKind kind) {
+ FormalParametersBegin data = new FormalParametersBegin(ParserAstType.BEGIN,
+ token: token, kind: kind);
+ seen(data);
+ }
+
+ @override
+ void endFormalParameters(
+ int count, Token beginToken, Token endToken, MemberKind kind) {
+ FormalParametersEnd data = new FormalParametersEnd(ParserAstType.END,
+ count: count, beginToken: beginToken, endToken: endToken, kind: kind);
+ seen(data);
+ }
+
+ @override
+ void endClassFields(
+ Token? abstractToken,
+ Token? externalToken,
+ Token? staticToken,
+ Token? covariantToken,
+ Token? lateToken,
+ Token? varFinalOrConst,
+ int count,
+ Token beginToken,
+ Token endToken) {
+ ClassFieldsEnd data = new ClassFieldsEnd(ParserAstType.END,
+ abstractToken: abstractToken,
+ externalToken: externalToken,
+ staticToken: staticToken,
+ covariantToken: covariantToken,
+ lateToken: lateToken,
+ varFinalOrConst: varFinalOrConst,
+ count: count,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endMixinFields(
+ Token? abstractToken,
+ Token? externalToken,
+ Token? staticToken,
+ Token? covariantToken,
+ Token? lateToken,
+ Token? varFinalOrConst,
+ int count,
+ Token beginToken,
+ Token endToken) {
+ MixinFieldsEnd data = new MixinFieldsEnd(ParserAstType.END,
+ abstractToken: abstractToken,
+ externalToken: externalToken,
+ staticToken: staticToken,
+ covariantToken: covariantToken,
+ lateToken: lateToken,
+ varFinalOrConst: varFinalOrConst,
+ count: count,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endExtensionFields(
+ Token? abstractToken,
+ Token? externalToken,
+ Token? staticToken,
+ Token? covariantToken,
+ Token? lateToken,
+ Token? varFinalOrConst,
+ int count,
+ Token beginToken,
+ Token endToken) {
+ ExtensionFieldsEnd data = new ExtensionFieldsEnd(ParserAstType.END,
+ abstractToken: abstractToken,
+ externalToken: externalToken,
+ staticToken: staticToken,
+ covariantToken: covariantToken,
+ lateToken: lateToken,
+ varFinalOrConst: varFinalOrConst,
+ count: count,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleForInitializerEmptyStatement(Token token) {
+ ForInitializerEmptyStatementHandle data =
+ new ForInitializerEmptyStatementHandle(ParserAstType.HANDLE,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleForInitializerExpressionStatement(Token token, bool forIn) {
+ ForInitializerExpressionStatementHandle data =
+ new ForInitializerExpressionStatementHandle(ParserAstType.HANDLE,
+ token: token, forIn: forIn);
+ seen(data);
+ }
+
+ @override
+ void handleForInitializerLocalVariableDeclaration(Token token, bool forIn) {
+ ForInitializerLocalVariableDeclarationHandle data =
+ new ForInitializerLocalVariableDeclarationHandle(ParserAstType.HANDLE,
+ token: token, forIn: forIn);
+ seen(data);
+ }
+
+ @override
+ void beginForStatement(Token token) {
+ ForStatementBegin data =
+ new ForStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleForLoopParts(Token forKeyword, Token leftParen,
+ Token leftSeparator, int updateExpressionCount) {
+ ForLoopPartsHandle data = new ForLoopPartsHandle(ParserAstType.HANDLE,
+ forKeyword: forKeyword,
+ leftParen: leftParen,
+ leftSeparator: leftSeparator,
+ updateExpressionCount: updateExpressionCount);
+ seen(data);
+ }
+
+ @override
+ void endForStatement(Token endToken) {
+ ForStatementEnd data =
+ new ForStatementEnd(ParserAstType.END, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginForStatementBody(Token token) {
+ ForStatementBodyBegin data =
+ new ForStatementBodyBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endForStatementBody(Token token) {
+ ForStatementBodyEnd data =
+ new ForStatementBodyEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleForInLoopParts(Token? awaitToken, Token forToken,
+ Token leftParenthesis, Token inKeyword) {
+ ForInLoopPartsHandle data = new ForInLoopPartsHandle(ParserAstType.HANDLE,
+ awaitToken: awaitToken,
+ forToken: forToken,
+ leftParenthesis: leftParenthesis,
+ inKeyword: inKeyword);
+ seen(data);
+ }
+
+ @override
+ void endForIn(Token endToken) {
+ ForInEnd data = new ForInEnd(ParserAstType.END, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginForInExpression(Token token) {
+ ForInExpressionBegin data =
+ new ForInExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endForInExpression(Token token) {
+ ForInExpressionEnd data =
+ new ForInExpressionEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginForInBody(Token token) {
+ ForInBodyBegin data = new ForInBodyBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endForInBody(Token token) {
+ ForInBodyEnd data = new ForInBodyEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginNamedFunctionExpression(Token token) {
+ NamedFunctionExpressionBegin data =
+ new NamedFunctionExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endNamedFunctionExpression(Token endToken) {
+ NamedFunctionExpressionEnd data =
+ new NamedFunctionExpressionEnd(ParserAstType.END, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginLocalFunctionDeclaration(Token token) {
+ LocalFunctionDeclarationBegin data =
+ new LocalFunctionDeclarationBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endLocalFunctionDeclaration(Token endToken) {
+ LocalFunctionDeclarationEnd data =
+ new LocalFunctionDeclarationEnd(ParserAstType.END, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginBlockFunctionBody(Token token) {
+ BlockFunctionBodyBegin data =
+ new BlockFunctionBodyBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endBlockFunctionBody(int count, Token beginToken, Token endToken) {
+ BlockFunctionBodyEnd data = new BlockFunctionBodyEnd(ParserAstType.END,
+ count: count, beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleNoFunctionBody(Token token) {
+ NoFunctionBodyHandle data =
+ new NoFunctionBodyHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleFunctionBodySkipped(Token token, bool isExpressionBody) {
+ FunctionBodySkippedHandle data = new FunctionBodySkippedHandle(
+ ParserAstType.HANDLE,
+ token: token,
+ isExpressionBody: isExpressionBody);
+ seen(data);
+ }
+
+ @override
+ void beginFunctionName(Token token) {
+ FunctionNameBegin data =
+ new FunctionNameBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endFunctionName(Token beginToken, Token token) {
+ FunctionNameEnd data = new FunctionNameEnd(ParserAstType.END,
+ beginToken: beginToken, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginTypedef(Token token) {
+ TypedefBegin data = new TypedefBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endTypedef(Token typedefKeyword, Token? equals, Token endToken) {
+ TypedefEnd data = new TypedefEnd(ParserAstType.END,
+ typedefKeyword: typedefKeyword, equals: equals, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleClassWithClause(Token withKeyword) {
+ ClassWithClauseHandle data = new ClassWithClauseHandle(ParserAstType.HANDLE,
+ withKeyword: withKeyword);
+ seen(data);
+ }
+
+ @override
+ void handleClassNoWithClause() {
+ ClassNoWithClauseHandle data =
+ new ClassNoWithClauseHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void beginNamedMixinApplication(
+ Token begin, Token? abstractToken, Token name) {
+ NamedMixinApplicationBegin data = new NamedMixinApplicationBegin(
+ ParserAstType.BEGIN,
+ begin: begin,
+ abstractToken: abstractToken,
+ name: name);
+ seen(data);
+ }
+
+ @override
+ void handleNamedMixinApplicationWithClause(Token withKeyword) {
+ NamedMixinApplicationWithClauseHandle data =
+ new NamedMixinApplicationWithClauseHandle(ParserAstType.HANDLE,
+ withKeyword: withKeyword);
+ seen(data);
+ }
+
+ @override
+ void endNamedMixinApplication(Token begin, Token classKeyword, Token equals,
+ Token? implementsKeyword, Token endToken) {
+ NamedMixinApplicationEnd data = new NamedMixinApplicationEnd(
+ ParserAstType.END,
+ begin: begin,
+ classKeyword: classKeyword,
+ equals: equals,
+ implementsKeyword: implementsKeyword,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginHide(Token hideKeyword) {
+ HideBegin data =
+ new HideBegin(ParserAstType.BEGIN, hideKeyword: hideKeyword);
+ seen(data);
+ }
+
+ @override
+ void endHide(Token hideKeyword) {
+ HideEnd data = new HideEnd(ParserAstType.END, hideKeyword: hideKeyword);
+ seen(data);
+ }
+
+ @override
+ void handleIdentifierList(int count) {
+ IdentifierListHandle data =
+ new IdentifierListHandle(ParserAstType.HANDLE, count: count);
+ seen(data);
+ }
+
+ @override
+ void beginTypeList(Token token) {
+ TypeListBegin data = new TypeListBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endTypeList(int count) {
+ TypeListEnd data = new TypeListEnd(ParserAstType.END, count: count);
+ seen(data);
+ }
+
+ @override
+ void beginIfStatement(Token token) {
+ IfStatementBegin data =
+ new IfStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endIfStatement(Token ifToken, Token? elseToken) {
+ IfStatementEnd data = new IfStatementEnd(ParserAstType.END,
+ ifToken: ifToken, elseToken: elseToken);
+ seen(data);
+ }
+
+ @override
+ void beginThenStatement(Token token) {
+ ThenStatementBegin data =
+ new ThenStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endThenStatement(Token token) {
+ ThenStatementEnd data =
+ new ThenStatementEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginElseStatement(Token token) {
+ ElseStatementBegin data =
+ new ElseStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endElseStatement(Token token) {
+ ElseStatementEnd data =
+ new ElseStatementEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginImport(Token importKeyword) {
+ ImportBegin data =
+ new ImportBegin(ParserAstType.BEGIN, importKeyword: importKeyword);
+ seen(data);
+ }
+
+ @override
+ void handleImportPrefix(Token? deferredKeyword, Token? asKeyword) {
+ ImportPrefixHandle data = new ImportPrefixHandle(ParserAstType.HANDLE,
+ deferredKeyword: deferredKeyword, asKeyword: asKeyword);
+ seen(data);
+ }
+
+ @override
+ void endImport(Token importKeyword, Token? semicolon) {
+ ImportEnd data = new ImportEnd(ParserAstType.END,
+ importKeyword: importKeyword, semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleRecoverImport(Token? semicolon) {
+ RecoverImportHandle data =
+ new RecoverImportHandle(ParserAstType.HANDLE, semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void beginConditionalUris(Token token) {
+ ConditionalUrisBegin data =
+ new ConditionalUrisBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endConditionalUris(int count) {
+ ConditionalUrisEnd data =
+ new ConditionalUrisEnd(ParserAstType.END, count: count);
+ seen(data);
+ }
+
+ @override
+ void beginConditionalUri(Token ifKeyword) {
+ ConditionalUriBegin data =
+ new ConditionalUriBegin(ParserAstType.BEGIN, ifKeyword: ifKeyword);
+ seen(data);
+ }
+
+ @override
+ void endConditionalUri(Token ifKeyword, Token leftParen, Token? equalSign) {
+ ConditionalUriEnd data = new ConditionalUriEnd(ParserAstType.END,
+ ifKeyword: ifKeyword, leftParen: leftParen, equalSign: equalSign);
+ seen(data);
+ }
+
+ @override
+ void handleDottedName(int count, Token firstIdentifier) {
+ DottedNameHandle data = new DottedNameHandle(ParserAstType.HANDLE,
+ count: count, firstIdentifier: firstIdentifier);
+ seen(data);
+ }
+
+ @override
+ void beginImplicitCreationExpression(Token token) {
+ ImplicitCreationExpressionBegin data =
+ new ImplicitCreationExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endImplicitCreationExpression(Token token, Token openAngleBracket) {
+ ImplicitCreationExpressionEnd data = new ImplicitCreationExpressionEnd(
+ ParserAstType.END,
+ token: token,
+ openAngleBracket: openAngleBracket);
+ seen(data);
+ }
+
+ @override
+ void beginInitializedIdentifier(Token token) {
+ InitializedIdentifierBegin data =
+ new InitializedIdentifierBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endInitializedIdentifier(Token nameToken) {
+ InitializedIdentifierEnd data =
+ new InitializedIdentifierEnd(ParserAstType.END, nameToken: nameToken);
+ seen(data);
+ }
+
+ @override
+ void beginFieldInitializer(Token token) {
+ FieldInitializerBegin data =
+ new FieldInitializerBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endFieldInitializer(Token assignment, Token token) {
+ FieldInitializerEnd data = new FieldInitializerEnd(ParserAstType.END,
+ assignment: assignment, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNoFieldInitializer(Token token) {
+ NoFieldInitializerHandle data =
+ new NoFieldInitializerHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginVariableInitializer(Token token) {
+ VariableInitializerBegin data =
+ new VariableInitializerBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endVariableInitializer(Token assignmentOperator) {
+ VariableInitializerEnd data = new VariableInitializerEnd(ParserAstType.END,
+ assignmentOperator: assignmentOperator);
+ seen(data);
+ }
+
+ @override
+ void handleNoVariableInitializer(Token token) {
+ NoVariableInitializerHandle data =
+ new NoVariableInitializerHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginInitializer(Token token) {
+ InitializerBegin data =
+ new InitializerBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endInitializer(Token token) {
+ InitializerEnd data = new InitializerEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginInitializers(Token token) {
+ InitializersBegin data =
+ new InitializersBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endInitializers(int count, Token beginToken, Token endToken) {
+ InitializersEnd data = new InitializersEnd(ParserAstType.END,
+ count: count, beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleNoInitializers() {
+ NoInitializersHandle data = new NoInitializersHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidExpression(Token token) {
+ InvalidExpressionHandle data =
+ new InvalidExpressionHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidFunctionBody(Token token) {
+ InvalidFunctionBodyHandle data =
+ new InvalidFunctionBodyHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidTypeReference(Token token) {
+ InvalidTypeReferenceHandle data =
+ new InvalidTypeReferenceHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleLabel(Token token) {
+ LabelHandle data = new LabelHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginLabeledStatement(Token token, int labelCount) {
+ LabeledStatementBegin data = new LabeledStatementBegin(ParserAstType.BEGIN,
+ token: token, labelCount: labelCount);
+ seen(data);
+ }
+
+ @override
+ void endLabeledStatement(int labelCount) {
+ LabeledStatementEnd data =
+ new LabeledStatementEnd(ParserAstType.END, labelCount: labelCount);
+ seen(data);
+ }
+
+ @override
+ void beginLibraryName(Token token) {
+ LibraryNameBegin data =
+ new LibraryNameBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endLibraryName(Token libraryKeyword, Token semicolon) {
+ LibraryNameEnd data = new LibraryNameEnd(ParserAstType.END,
+ libraryKeyword: libraryKeyword, semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralMapEntry(Token colon, Token endToken) {
+ LiteralMapEntryHandle data = new LiteralMapEntryHandle(ParserAstType.HANDLE,
+ colon: colon, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginLiteralString(Token token) {
+ LiteralStringBegin data =
+ new LiteralStringBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleInterpolationExpression(Token leftBracket, Token? rightBracket) {
+ InterpolationExpressionHandle data = new InterpolationExpressionHandle(
+ ParserAstType.HANDLE,
+ leftBracket: leftBracket,
+ rightBracket: rightBracket);
+ seen(data);
+ }
+
+ @override
+ void endLiteralString(int interpolationCount, Token endToken) {
+ LiteralStringEnd data = new LiteralStringEnd(ParserAstType.END,
+ interpolationCount: interpolationCount, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleStringJuxtaposition(Token startToken, int literalCount) {
+ StringJuxtapositionHandle data = new StringJuxtapositionHandle(
+ ParserAstType.HANDLE,
+ startToken: startToken,
+ literalCount: literalCount);
+ seen(data);
+ }
+
+ @override
+ void beginMember() {
+ MemberBegin data = new MemberBegin(ParserAstType.BEGIN);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidMember(Token endToken) {
+ InvalidMemberHandle data =
+ new InvalidMemberHandle(ParserAstType.HANDLE, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endMember() {
+ MemberEnd data = new MemberEnd(ParserAstType.END);
+ seen(data);
+ }
+
+ @override
+ void beginMethod(
+ DeclarationKind declarationKind,
+ Token? externalToken,
+ Token? staticToken,
+ Token? covariantToken,
+ Token? varFinalOrConst,
+ Token? getOrSet,
+ Token name) {
+ MethodBegin data = new MethodBegin(ParserAstType.BEGIN,
+ declarationKind: declarationKind,
+ externalToken: externalToken,
+ staticToken: staticToken,
+ covariantToken: covariantToken,
+ varFinalOrConst: varFinalOrConst,
+ getOrSet: getOrSet,
+ name: name);
+ seen(data);
+ }
+
+ @override
+ void endClassMethod(Token? getOrSet, Token beginToken, Token beginParam,
+ Token? beginInitializers, Token endToken) {
+ ClassMethodEnd data = new ClassMethodEnd(ParserAstType.END,
+ getOrSet: getOrSet,
+ beginToken: beginToken,
+ beginParam: beginParam,
+ beginInitializers: beginInitializers,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endMixinMethod(Token? getOrSet, Token beginToken, Token beginParam,
+ Token? beginInitializers, Token endToken) {
+ MixinMethodEnd data = new MixinMethodEnd(ParserAstType.END,
+ getOrSet: getOrSet,
+ beginToken: beginToken,
+ beginParam: beginParam,
+ beginInitializers: beginInitializers,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endExtensionMethod(Token? getOrSet, Token beginToken, Token beginParam,
+ Token? beginInitializers, Token endToken) {
+ ExtensionMethodEnd data = new ExtensionMethodEnd(ParserAstType.END,
+ getOrSet: getOrSet,
+ beginToken: beginToken,
+ beginParam: beginParam,
+ beginInitializers: beginInitializers,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endClassConstructor(Token? getOrSet, Token beginToken, Token beginParam,
+ Token? beginInitializers, Token endToken) {
+ ClassConstructorEnd data = new ClassConstructorEnd(ParserAstType.END,
+ getOrSet: getOrSet,
+ beginToken: beginToken,
+ beginParam: beginParam,
+ beginInitializers: beginInitializers,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endMixinConstructor(Token? getOrSet, Token beginToken, Token beginParam,
+ Token? beginInitializers, Token endToken) {
+ MixinConstructorEnd data = new MixinConstructorEnd(ParserAstType.END,
+ getOrSet: getOrSet,
+ beginToken: beginToken,
+ beginParam: beginParam,
+ beginInitializers: beginInitializers,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endExtensionConstructor(Token? getOrSet, Token beginToken,
+ Token beginParam, Token? beginInitializers, Token endToken) {
+ ExtensionConstructorEnd data = new ExtensionConstructorEnd(
+ ParserAstType.END,
+ getOrSet: getOrSet,
+ beginToken: beginToken,
+ beginParam: beginParam,
+ beginInitializers: beginInitializers,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginMetadataStar(Token token) {
+ MetadataStarBegin data =
+ new MetadataStarBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endMetadataStar(int count) {
+ MetadataStarEnd data = new MetadataStarEnd(ParserAstType.END, count: count);
+ seen(data);
+ }
+
+ @override
+ void beginMetadata(Token token) {
+ MetadataBegin data = new MetadataBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endMetadata(Token beginToken, Token? periodBeforeName, Token endToken) {
+ MetadataEnd data = new MetadataEnd(ParserAstType.END,
+ beginToken: beginToken,
+ periodBeforeName: periodBeforeName,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginOptionalFormalParameters(Token token) {
+ OptionalFormalParametersBegin data =
+ new OptionalFormalParametersBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endOptionalFormalParameters(
+ int count, Token beginToken, Token endToken) {
+ OptionalFormalParametersEnd data = new OptionalFormalParametersEnd(
+ ParserAstType.END,
+ count: count,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginPart(Token token) {
+ PartBegin data = new PartBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endPart(Token partKeyword, Token semicolon) {
+ PartEnd data = new PartEnd(ParserAstType.END,
+ partKeyword: partKeyword, semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void beginPartOf(Token token) {
+ PartOfBegin data = new PartOfBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endPartOf(
+ Token partKeyword, Token ofKeyword, Token semicolon, bool hasName) {
+ PartOfEnd data = new PartOfEnd(ParserAstType.END,
+ partKeyword: partKeyword,
+ ofKeyword: ofKeyword,
+ semicolon: semicolon,
+ hasName: hasName);
+ seen(data);
+ }
+
+ @override
+ void beginRedirectingFactoryBody(Token token) {
+ RedirectingFactoryBodyBegin data =
+ new RedirectingFactoryBodyBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endRedirectingFactoryBody(Token beginToken, Token endToken) {
+ RedirectingFactoryBodyEnd data = new RedirectingFactoryBodyEnd(
+ ParserAstType.END,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginReturnStatement(Token token) {
+ ReturnStatementBegin data =
+ new ReturnStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNativeFunctionBody(Token nativeToken, Token semicolon) {
+ NativeFunctionBodyHandle data = new NativeFunctionBodyHandle(
+ ParserAstType.HANDLE,
+ nativeToken: nativeToken,
+ semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleNativeFunctionBodyIgnored(Token nativeToken, Token semicolon) {
+ NativeFunctionBodyIgnoredHandle data = new NativeFunctionBodyIgnoredHandle(
+ ParserAstType.HANDLE,
+ nativeToken: nativeToken,
+ semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleNativeFunctionBodySkipped(Token nativeToken, Token semicolon) {
+ NativeFunctionBodySkippedHandle data = new NativeFunctionBodySkippedHandle(
+ ParserAstType.HANDLE,
+ nativeToken: nativeToken,
+ semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleEmptyFunctionBody(Token semicolon) {
+ EmptyFunctionBodyHandle data =
+ new EmptyFunctionBodyHandle(ParserAstType.HANDLE, semicolon: semicolon);
+ seen(data);
+ }
+
+ @override
+ void handleExpressionFunctionBody(Token arrowToken, Token? endToken) {
+ ExpressionFunctionBodyHandle data = new ExpressionFunctionBodyHandle(
+ ParserAstType.HANDLE,
+ arrowToken: arrowToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endReturnStatement(
+ bool hasExpression, Token beginToken, Token endToken) {
+ ReturnStatementEnd data = new ReturnStatementEnd(ParserAstType.END,
+ hasExpression: hasExpression,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleSend(Token beginToken, Token endToken) {
+ SendHandle data = new SendHandle(ParserAstType.HANDLE,
+ beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginShow(Token showKeyword) {
+ ShowBegin data =
+ new ShowBegin(ParserAstType.BEGIN, showKeyword: showKeyword);
+ seen(data);
+ }
+
+ @override
+ void endShow(Token showKeyword) {
+ ShowEnd data = new ShowEnd(ParserAstType.END, showKeyword: showKeyword);
+ seen(data);
+ }
+
+ @override
+ void beginSwitchStatement(Token token) {
+ SwitchStatementBegin data =
+ new SwitchStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endSwitchStatement(Token switchKeyword, Token endToken) {
+ SwitchStatementEnd data = new SwitchStatementEnd(ParserAstType.END,
+ switchKeyword: switchKeyword, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginSwitchBlock(Token token) {
+ SwitchBlockBegin data =
+ new SwitchBlockBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endSwitchBlock(int caseCount, Token beginToken, Token endToken) {
+ SwitchBlockEnd data = new SwitchBlockEnd(ParserAstType.END,
+ caseCount: caseCount, beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginLiteralSymbol(Token token) {
+ LiteralSymbolBegin data =
+ new LiteralSymbolBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endLiteralSymbol(Token hashToken, int identifierCount) {
+ LiteralSymbolEnd data = new LiteralSymbolEnd(ParserAstType.END,
+ hashToken: hashToken, identifierCount: identifierCount);
+ seen(data);
+ }
+
+ @override
+ void handleThrowExpression(Token throwToken, Token endToken) {
+ ThrowExpressionHandle data = new ThrowExpressionHandle(ParserAstType.HANDLE,
+ throwToken: throwToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginRethrowStatement(Token token) {
+ RethrowStatementBegin data =
+ new RethrowStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endRethrowStatement(Token rethrowToken, Token endToken) {
+ RethrowStatementEnd data = new RethrowStatementEnd(ParserAstType.END,
+ rethrowToken: rethrowToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endTopLevelDeclaration(Token nextToken) {
+ TopLevelDeclarationEnd data =
+ new TopLevelDeclarationEnd(ParserAstType.END, nextToken: nextToken);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidTopLevelDeclaration(Token endToken) {
+ InvalidTopLevelDeclarationHandle data =
+ new InvalidTopLevelDeclarationHandle(ParserAstType.HANDLE,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginTopLevelMember(Token token) {
+ TopLevelMemberBegin data =
+ new TopLevelMemberBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginFields(
+ DeclarationKind declarationKind,
+ Token? abstractToken,
+ Token? externalToken,
+ Token? staticToken,
+ Token? covariantToken,
+ Token? lateToken,
+ Token? varFinalOrConst,
+ Token lastConsumed) {
+ FieldsBegin data = new FieldsBegin(ParserAstType.BEGIN,
+ declarationKind: declarationKind,
+ abstractToken: abstractToken,
+ externalToken: externalToken,
+ staticToken: staticToken,
+ covariantToken: covariantToken,
+ lateToken: lateToken,
+ varFinalOrConst: varFinalOrConst,
+ lastConsumed: lastConsumed);
+ seen(data);
+ }
+
+ @override
+ void endTopLevelFields(
+ Token? externalToken,
+ Token? staticToken,
+ Token? covariantToken,
+ Token? lateToken,
+ Token? varFinalOrConst,
+ int count,
+ Token beginToken,
+ Token endToken) {
+ TopLevelFieldsEnd data = new TopLevelFieldsEnd(ParserAstType.END,
+ externalToken: externalToken,
+ staticToken: staticToken,
+ covariantToken: covariantToken,
+ lateToken: lateToken,
+ varFinalOrConst: varFinalOrConst,
+ count: count,
+ beginToken: beginToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
+ TopLevelMethodBegin data = new TopLevelMethodBegin(ParserAstType.BEGIN,
+ lastConsumed: lastConsumed, externalToken: externalToken);
+ seen(data);
+ }
+
+ @override
+ void endTopLevelMethod(Token beginToken, Token? getOrSet, Token endToken) {
+ TopLevelMethodEnd data = new TopLevelMethodEnd(ParserAstType.END,
+ beginToken: beginToken, getOrSet: getOrSet, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginTryStatement(Token token) {
+ TryStatementBegin data =
+ new TryStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleCaseMatch(Token caseKeyword, Token colon) {
+ CaseMatchHandle data = new CaseMatchHandle(ParserAstType.HANDLE,
+ caseKeyword: caseKeyword, colon: colon);
+ seen(data);
+ }
+
+ @override
+ void beginCatchClause(Token token) {
+ CatchClauseBegin data =
+ new CatchClauseBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endCatchClause(Token token) {
+ CatchClauseEnd data = new CatchClauseEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleCatchBlock(Token? onKeyword, Token? catchKeyword, Token? comma) {
+ CatchBlockHandle data = new CatchBlockHandle(ParserAstType.HANDLE,
+ onKeyword: onKeyword, catchKeyword: catchKeyword, comma: comma);
+ seen(data);
+ }
+
+ @override
+ void handleFinallyBlock(Token finallyKeyword) {
+ FinallyBlockHandle data = new FinallyBlockHandle(ParserAstType.HANDLE,
+ finallyKeyword: finallyKeyword);
+ seen(data);
+ }
+
+ @override
+ void endTryStatement(
+ int catchCount, Token tryKeyword, Token? finallyKeyword) {
+ TryStatementEnd data = new TryStatementEnd(ParserAstType.END,
+ catchCount: catchCount,
+ tryKeyword: tryKeyword,
+ finallyKeyword: finallyKeyword);
+ seen(data);
+ }
+
+ @override
+ void handleType(Token beginToken, Token? questionMark) {
+ TypeHandle data = new TypeHandle(ParserAstType.HANDLE,
+ beginToken: beginToken, questionMark: questionMark);
+ seen(data);
+ }
+
+ @override
+ void handleNonNullAssertExpression(Token bang) {
+ NonNullAssertExpressionHandle data =
+ new NonNullAssertExpressionHandle(ParserAstType.HANDLE, bang: bang);
+ seen(data);
+ }
+
+ @override
+ void handleNoName(Token token) {
+ NoNameHandle data = new NoNameHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginFunctionType(Token beginToken) {
+ FunctionTypeBegin data =
+ new FunctionTypeBegin(ParserAstType.BEGIN, beginToken: beginToken);
+ seen(data);
+ }
+
+ @override
+ void endFunctionType(Token functionToken, Token? questionMark) {
+ FunctionTypeEnd data = new FunctionTypeEnd(ParserAstType.END,
+ functionToken: functionToken, questionMark: questionMark);
+ seen(data);
+ }
+
+ @override
+ void beginTypeArguments(Token token) {
+ TypeArgumentsBegin data =
+ new TypeArgumentsBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endTypeArguments(int count, Token beginToken, Token endToken) {
+ TypeArgumentsEnd data = new TypeArgumentsEnd(ParserAstType.END,
+ count: count, beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidTypeArguments(Token token) {
+ InvalidTypeArgumentsHandle data =
+ new InvalidTypeArgumentsHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNoTypeArguments(Token token) {
+ NoTypeArgumentsHandle data =
+ new NoTypeArgumentsHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginTypeVariable(Token token) {
+ TypeVariableBegin data =
+ new TypeVariableBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleTypeVariablesDefined(Token token, int count) {
+ TypeVariablesDefinedHandle data = new TypeVariablesDefinedHandle(
+ ParserAstType.HANDLE,
+ token: token,
+ count: count);
+ seen(data);
+ }
+
+ @override
+ void endTypeVariable(
+ Token token, int index, Token? extendsOrSuper, Token? variance) {
+ TypeVariableEnd data = new TypeVariableEnd(ParserAstType.END,
+ token: token,
+ index: index,
+ extendsOrSuper: extendsOrSuper,
+ variance: variance);
+ seen(data);
+ }
+
+ @override
+ void beginTypeVariables(Token token) {
+ TypeVariablesBegin data =
+ new TypeVariablesBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endTypeVariables(Token beginToken, Token endToken) {
+ TypeVariablesEnd data = new TypeVariablesEnd(ParserAstType.END,
+ beginToken: beginToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginFunctionExpression(Token token) {
+ FunctionExpressionBegin data =
+ new FunctionExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endFunctionExpression(Token beginToken, Token token) {
+ FunctionExpressionEnd data = new FunctionExpressionEnd(ParserAstType.END,
+ beginToken: beginToken, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginVariablesDeclaration(
+ Token token, Token? lateToken, Token? varFinalOrConst) {
+ VariablesDeclarationBegin data = new VariablesDeclarationBegin(
+ ParserAstType.BEGIN,
+ token: token,
+ lateToken: lateToken,
+ varFinalOrConst: varFinalOrConst);
+ seen(data);
+ }
+
+ @override
+ void endVariablesDeclaration(int count, Token? endToken) {
+ VariablesDeclarationEnd data = new VariablesDeclarationEnd(
+ ParserAstType.END,
+ count: count,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginWhileStatement(Token token) {
+ WhileStatementBegin data =
+ new WhileStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endWhileStatement(Token whileKeyword, Token endToken) {
+ WhileStatementEnd data = new WhileStatementEnd(ParserAstType.END,
+ whileKeyword: whileKeyword, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void beginAsOperatorType(Token operator) {
+ AsOperatorTypeBegin data =
+ new AsOperatorTypeBegin(ParserAstType.BEGIN, operator: operator);
+ seen(data);
+ }
+
+ @override
+ void endAsOperatorType(Token operator) {
+ AsOperatorTypeEnd data =
+ new AsOperatorTypeEnd(ParserAstType.END, operator: operator);
+ seen(data);
+ }
+
+ @override
+ void handleAsOperator(Token operator) {
+ AsOperatorHandle data =
+ new AsOperatorHandle(ParserAstType.HANDLE, operator: operator);
+ seen(data);
+ }
+
+ @override
+ void handleAssignmentExpression(Token token) {
+ AssignmentExpressionHandle data =
+ new AssignmentExpressionHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginBinaryExpression(Token token) {
+ BinaryExpressionBegin data =
+ new BinaryExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endBinaryExpression(Token token) {
+ BinaryExpressionEnd data =
+ new BinaryExpressionEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleEndingBinaryExpression(Token token) {
+ EndingBinaryExpressionHandle data =
+ new EndingBinaryExpressionHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginConditionalExpression(Token question) {
+ ConditionalExpressionBegin data =
+ new ConditionalExpressionBegin(ParserAstType.BEGIN, question: question);
+ seen(data);
+ }
+
+ @override
+ void handleConditionalExpressionColon() {
+ ConditionalExpressionColonHandle data =
+ new ConditionalExpressionColonHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void endConditionalExpression(Token question, Token colon) {
+ ConditionalExpressionEnd data = new ConditionalExpressionEnd(
+ ParserAstType.END,
+ question: question,
+ colon: colon);
+ seen(data);
+ }
+
+ @override
+ void beginConstExpression(Token constKeyword) {
+ ConstExpressionBegin data = new ConstExpressionBegin(ParserAstType.BEGIN,
+ constKeyword: constKeyword);
+ seen(data);
+ }
+
+ @override
+ void endConstExpression(Token token) {
+ ConstExpressionEnd data =
+ new ConstExpressionEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleConstFactory(Token constKeyword) {
+ ConstFactoryHandle data = new ConstFactoryHandle(ParserAstType.HANDLE,
+ constKeyword: constKeyword);
+ seen(data);
+ }
+
+ @override
+ void beginForControlFlow(Token? awaitToken, Token forToken) {
+ ForControlFlowBegin data = new ForControlFlowBegin(ParserAstType.BEGIN,
+ awaitToken: awaitToken, forToken: forToken);
+ seen(data);
+ }
+
+ @override
+ void endForControlFlow(Token token) {
+ ForControlFlowEnd data =
+ new ForControlFlowEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void endForInControlFlow(Token token) {
+ ForInControlFlowEnd data =
+ new ForInControlFlowEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginIfControlFlow(Token ifToken) {
+ IfControlFlowBegin data =
+ new IfControlFlowBegin(ParserAstType.BEGIN, ifToken: ifToken);
+ seen(data);
+ }
+
+ @override
+ void handleThenControlFlow(Token token) {
+ ThenControlFlowHandle data =
+ new ThenControlFlowHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleElseControlFlow(Token elseToken) {
+ ElseControlFlowHandle data =
+ new ElseControlFlowHandle(ParserAstType.HANDLE, elseToken: elseToken);
+ seen(data);
+ }
+
+ @override
+ void endIfControlFlow(Token token) {
+ IfControlFlowEnd data =
+ new IfControlFlowEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void endIfElseControlFlow(Token token) {
+ IfElseControlFlowEnd data =
+ new IfElseControlFlowEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleSpreadExpression(Token spreadToken) {
+ SpreadExpressionHandle data = new SpreadExpressionHandle(
+ ParserAstType.HANDLE,
+ spreadToken: spreadToken);
+ seen(data);
+ }
+
+ @override
+ void beginFunctionTypedFormalParameter(Token token) {
+ FunctionTypedFormalParameterBegin data =
+ new FunctionTypedFormalParameterBegin(ParserAstType.BEGIN,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void endFunctionTypedFormalParameter(Token nameToken, Token? question) {
+ FunctionTypedFormalParameterEnd data = new FunctionTypedFormalParameterEnd(
+ ParserAstType.END,
+ nameToken: nameToken,
+ question: question);
+ seen(data);
+ }
+
+ @override
+ void handleIdentifier(Token token, IdentifierContext context) {
+ IdentifierHandle data = new IdentifierHandle(ParserAstType.HANDLE,
+ token: token, context: context);
+ seen(data);
+ }
+
+ @override
+ void handleShowHideIdentifier(Token? modifier, Token identifier) {
+ ShowHideIdentifierHandle data = new ShowHideIdentifierHandle(
+ ParserAstType.HANDLE,
+ modifier: modifier,
+ identifier: identifier);
+ seen(data);
+ }
+
+ @override
+ void handleIndexedExpression(
+ Token? question, Token openSquareBracket, Token closeSquareBracket) {
+ IndexedExpressionHandle data = new IndexedExpressionHandle(
+ ParserAstType.HANDLE,
+ question: question,
+ openSquareBracket: openSquareBracket,
+ closeSquareBracket: closeSquareBracket);
+ seen(data);
+ }
+
+ @override
+ void beginIsOperatorType(Token operator) {
+ IsOperatorTypeBegin data =
+ new IsOperatorTypeBegin(ParserAstType.BEGIN, operator: operator);
+ seen(data);
+ }
+
+ @override
+ void endIsOperatorType(Token operator) {
+ IsOperatorTypeEnd data =
+ new IsOperatorTypeEnd(ParserAstType.END, operator: operator);
+ seen(data);
+ }
+
+ @override
+ void handleIsOperator(Token isOperator, Token? not) {
+ IsOperatorHandle data = new IsOperatorHandle(ParserAstType.HANDLE,
+ isOperator: isOperator, not: not);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralBool(Token token) {
+ LiteralBoolHandle data =
+ new LiteralBoolHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleBreakStatement(
+ bool hasTarget, Token breakKeyword, Token endToken) {
+ BreakStatementHandle data = new BreakStatementHandle(ParserAstType.HANDLE,
+ hasTarget: hasTarget, breakKeyword: breakKeyword, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleContinueStatement(
+ bool hasTarget, Token continueKeyword, Token endToken) {
+ ContinueStatementHandle data = new ContinueStatementHandle(
+ ParserAstType.HANDLE,
+ hasTarget: hasTarget,
+ continueKeyword: continueKeyword,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleEmptyStatement(Token token) {
+ EmptyStatementHandle data =
+ new EmptyStatementHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void beginAssert(Token assertKeyword, Assert kind) {
+ AssertBegin data = new AssertBegin(ParserAstType.BEGIN,
+ assertKeyword: assertKeyword, kind: kind);
+ seen(data);
+ }
+
+ @override
+ void endAssert(Token assertKeyword, Assert kind, Token leftParenthesis,
+ Token? commaToken, Token semicolonToken) {
+ AssertEnd data = new AssertEnd(ParserAstType.END,
+ assertKeyword: assertKeyword,
+ kind: kind,
+ leftParenthesis: leftParenthesis,
+ commaToken: commaToken,
+ semicolonToken: semicolonToken);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralDouble(Token token) {
+ LiteralDoubleHandle data =
+ new LiteralDoubleHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralInt(Token token) {
+ LiteralIntHandle data =
+ new LiteralIntHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralList(
+ int count, Token leftBracket, Token? constKeyword, Token rightBracket) {
+ LiteralListHandle data = new LiteralListHandle(ParserAstType.HANDLE,
+ count: count,
+ leftBracket: leftBracket,
+ constKeyword: constKeyword,
+ rightBracket: rightBracket);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralSetOrMap(
+ int count,
+ Token leftBrace,
+ Token? constKeyword,
+ Token rightBrace,
+ bool hasSetEntry,
+ ) {
+ LiteralSetOrMapHandle data = new LiteralSetOrMapHandle(ParserAstType.HANDLE,
+ count: count,
+ leftBrace: leftBrace,
+ constKeyword: constKeyword,
+ rightBrace: rightBrace,
+ hasSetEntry: hasSetEntry);
+ seen(data);
+ }
+
+ @override
+ void handleLiteralNull(Token token) {
+ LiteralNullHandle data =
+ new LiteralNullHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNativeClause(Token nativeToken, bool hasName) {
+ NativeClauseHandle data = new NativeClauseHandle(ParserAstType.HANDLE,
+ nativeToken: nativeToken, hasName: hasName);
+ seen(data);
+ }
+
+ @override
+ void handleNamedArgument(Token colon) {
+ NamedArgumentHandle data =
+ new NamedArgumentHandle(ParserAstType.HANDLE, colon: colon);
+ seen(data);
+ }
+
+ @override
+ void beginNewExpression(Token token) {
+ NewExpressionBegin data =
+ new NewExpressionBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endNewExpression(Token token) {
+ NewExpressionEnd data =
+ new NewExpressionEnd(ParserAstType.END, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNoArguments(Token token) {
+ NoArgumentsHandle data =
+ new NoArgumentsHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNoConstructorReferenceContinuationAfterTypeArguments(Token token) {
+ NoConstructorReferenceContinuationAfterTypeArgumentsHandle data =
+ new NoConstructorReferenceContinuationAfterTypeArgumentsHandle(
+ ParserAstType.HANDLE,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNoType(Token lastConsumed) {
+ NoTypeHandle data =
+ new NoTypeHandle(ParserAstType.HANDLE, lastConsumed: lastConsumed);
+ seen(data);
+ }
+
+ @override
+ void handleNoTypeVariables(Token token) {
+ NoTypeVariablesHandle data =
+ new NoTypeVariablesHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleOperator(Token token) {
+ OperatorHandle data =
+ new OperatorHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleSymbolVoid(Token token) {
+ SymbolVoidHandle data =
+ new SymbolVoidHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleOperatorName(Token operatorKeyword, Token token) {
+ OperatorNameHandle data = new OperatorNameHandle(ParserAstType.HANDLE,
+ operatorKeyword: operatorKeyword, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidOperatorName(Token operatorKeyword, Token token) {
+ InvalidOperatorNameHandle data = new InvalidOperatorNameHandle(
+ ParserAstType.HANDLE,
+ operatorKeyword: operatorKeyword,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleParenthesizedCondition(Token token) {
+ ParenthesizedConditionHandle data =
+ new ParenthesizedConditionHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleParenthesizedExpression(Token token) {
+ ParenthesizedExpressionHandle data =
+ new ParenthesizedExpressionHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleQualified(Token period) {
+ QualifiedHandle data =
+ new QualifiedHandle(ParserAstType.HANDLE, period: period);
+ seen(data);
+ }
+
+ @override
+ void handleStringPart(Token token) {
+ StringPartHandle data =
+ new StringPartHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleSuperExpression(Token token, IdentifierContext context) {
+ SuperExpressionHandle data = new SuperExpressionHandle(ParserAstType.HANDLE,
+ token: token, context: context);
+ seen(data);
+ }
+
+ @override
+ void beginSwitchCase(int labelCount, int expressionCount, Token firstToken) {
+ SwitchCaseBegin data = new SwitchCaseBegin(ParserAstType.BEGIN,
+ labelCount: labelCount,
+ expressionCount: expressionCount,
+ firstToken: firstToken);
+ seen(data);
+ }
+
+ @override
+ void endSwitchCase(
+ int labelCount,
+ int expressionCount,
+ Token? defaultKeyword,
+ Token? colonAfterDefault,
+ int statementCount,
+ Token firstToken,
+ Token endToken) {
+ SwitchCaseEnd data = new SwitchCaseEnd(ParserAstType.END,
+ labelCount: labelCount,
+ expressionCount: expressionCount,
+ defaultKeyword: defaultKeyword,
+ colonAfterDefault: colonAfterDefault,
+ statementCount: statementCount,
+ firstToken: firstToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleThisExpression(Token token, IdentifierContext context) {
+ ThisExpressionHandle data = new ThisExpressionHandle(ParserAstType.HANDLE,
+ token: token, context: context);
+ seen(data);
+ }
+
+ @override
+ void handleUnaryPostfixAssignmentExpression(Token token) {
+ UnaryPostfixAssignmentExpressionHandle data =
+ new UnaryPostfixAssignmentExpressionHandle(ParserAstType.HANDLE,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleUnaryPrefixExpression(Token token) {
+ UnaryPrefixExpressionHandle data =
+ new UnaryPrefixExpressionHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleUnaryPrefixAssignmentExpression(Token token) {
+ UnaryPrefixAssignmentExpressionHandle data =
+ new UnaryPrefixAssignmentExpressionHandle(ParserAstType.HANDLE,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void beginFormalParameterDefaultValueExpression() {
+ FormalParameterDefaultValueExpressionBegin data =
+ new FormalParameterDefaultValueExpressionBegin(ParserAstType.BEGIN);
+ seen(data);
+ }
+
+ @override
+ void endFormalParameterDefaultValueExpression() {
+ FormalParameterDefaultValueExpressionEnd data =
+ new FormalParameterDefaultValueExpressionEnd(ParserAstType.END);
+ seen(data);
+ }
+
+ @override
+ void handleValuedFormalParameter(Token equals, Token token) {
+ ValuedFormalParameterHandle data = new ValuedFormalParameterHandle(
+ ParserAstType.HANDLE,
+ equals: equals,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleFormalParameterWithoutValue(Token token) {
+ FormalParameterWithoutValueHandle data =
+ new FormalParameterWithoutValueHandle(ParserAstType.HANDLE,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleVoidKeyword(Token token) {
+ VoidKeywordHandle data =
+ new VoidKeywordHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleVoidKeywordWithTypeArguments(Token token) {
+ VoidKeywordWithTypeArgumentsHandle data =
+ new VoidKeywordWithTypeArgumentsHandle(ParserAstType.HANDLE,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void beginYieldStatement(Token token) {
+ YieldStatementBegin data =
+ new YieldStatementBegin(ParserAstType.BEGIN, token: token);
+ seen(data);
+ }
+
+ @override
+ void endYieldStatement(Token yieldToken, Token? starToken, Token endToken) {
+ YieldStatementEnd data = new YieldStatementEnd(ParserAstType.END,
+ yieldToken: yieldToken, starToken: starToken, endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void endInvalidYieldStatement(Token beginToken, Token? starToken,
+ Token endToken, MessageCode errorCode) {
+ InvalidYieldStatementEnd data = new InvalidYieldStatementEnd(
+ ParserAstType.END,
+ beginToken: beginToken,
+ starToken: starToken,
+ endToken: endToken,
+ errorCode: errorCode);
+ seen(data);
+ }
+
+ @override
+ void handleRecoverableError(
+ Message message, Token startToken, Token endToken) {
+ RecoverableErrorHandle data = new RecoverableErrorHandle(
+ ParserAstType.HANDLE,
+ message: message,
+ startToken: startToken,
+ endToken: endToken);
+ seen(data);
+ }
+
+ @override
+ void handleErrorToken(ErrorToken token) {
+ ErrorTokenHandle data =
+ new ErrorTokenHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleUnescapeError(
+ Message message, Token location, int stringOffset, int length) {
+ UnescapeErrorHandle data = new UnescapeErrorHandle(ParserAstType.HANDLE,
+ message: message,
+ location: location,
+ stringOffset: stringOffset,
+ length: length);
+ seen(data);
+ }
+
+ @override
+ void handleInvalidStatement(Token token, Message message) {
+ InvalidStatementHandle data = new InvalidStatementHandle(
+ ParserAstType.HANDLE,
+ token: token,
+ message: message);
+ seen(data);
+ }
+
+ @override
+ void handleScript(Token token) {
+ ScriptHandle data = new ScriptHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+
+ @override
+ void handleCommentReferenceText(String referenceSource, int referenceOffset) {
+ CommentReferenceTextHandle data = new CommentReferenceTextHandle(
+ ParserAstType.HANDLE,
+ referenceSource: referenceSource,
+ referenceOffset: referenceOffset);
+ seen(data);
+ }
+
+ @override
+ void handleCommentReference(
+ Token? newKeyword, Token? prefix, Token? period, Token token) {
+ CommentReferenceHandle data = new CommentReferenceHandle(
+ ParserAstType.HANDLE,
+ newKeyword: newKeyword,
+ prefix: prefix,
+ period: period,
+ token: token);
+ seen(data);
+ }
+
+ @override
+ void handleNoCommentReference() {
+ NoCommentReferenceHandle data =
+ new NoCommentReferenceHandle(ParserAstType.HANDLE);
+ seen(data);
+ }
+
+ @override
+ void handleTypeArgumentApplication(Token openAngleBracket) {
+ TypeArgumentApplicationHandle data = new TypeArgumentApplicationHandle(
+ ParserAstType.HANDLE,
+ openAngleBracket: openAngleBracket);
+ seen(data);
+ }
+
+ @override
+ void handleNewAsIdentifier(Token token) {
+ NewAsIdentifierHandle data =
+ new NewAsIdentifierHandle(ParserAstType.HANDLE, token: token);
+ seen(data);
+ }
+}
+
+class ArgumentsBegin extends ParserAstNode {
+ final Token token;
+
+ ArgumentsBegin(ParserAstType type, {required this.token})
+ : super("Arguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ArgumentsEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ ArgumentsEnd(ParserAstType type,
+ {required this.count, required this.beginToken, required this.endToken})
+ : super("Arguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class AsyncModifierHandle extends ParserAstNode {
+ final Token? asyncToken;
+ final Token? starToken;
+
+ AsyncModifierHandle(ParserAstType type, {this.asyncToken, this.starToken})
+ : super("AsyncModifier", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "asyncToken": asyncToken,
+ "starToken": starToken,
+ };
+}
+
+class AwaitExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ AwaitExpressionBegin(ParserAstType type, {required this.token})
+ : super("AwaitExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class AwaitExpressionEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token endToken;
+
+ AwaitExpressionEnd(ParserAstType type,
+ {required this.beginToken, required this.endToken})
+ : super("AwaitExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class InvalidAwaitExpressionEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token endToken;
+ final MessageCode errorCode;
+
+ InvalidAwaitExpressionEnd(ParserAstType type,
+ {required this.beginToken,
+ required this.endToken,
+ required this.errorCode})
+ : super("InvalidAwaitExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "endToken": endToken,
+ "errorCode": errorCode,
+ };
+}
+
+class BlockBegin extends ParserAstNode {
+ final Token token;
+ final BlockKind blockKind;
+
+ BlockBegin(ParserAstType type, {required this.token, required this.blockKind})
+ : super("Block", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "blockKind": blockKind,
+ };
+}
+
+class BlockEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+ final BlockKind blockKind;
+
+ BlockEnd(ParserAstType type,
+ {required this.count,
+ required this.beginToken,
+ required this.endToken,
+ required this.blockKind})
+ : super("Block", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ "blockKind": blockKind,
+ };
+}
+
+class InvalidTopLevelBlockHandle extends ParserAstNode {
+ final Token token;
+
+ InvalidTopLevelBlockHandle(ParserAstType type, {required this.token})
+ : super("InvalidTopLevelBlock", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CascadeBegin extends ParserAstNode {
+ final Token token;
+
+ CascadeBegin(ParserAstType type, {required this.token})
+ : super("Cascade", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CascadeEnd extends ParserAstNode {
+ CascadeEnd(ParserAstType type) : super("Cascade", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class CaseExpressionBegin extends ParserAstNode {
+ final Token caseKeyword;
+
+ CaseExpressionBegin(ParserAstType type, {required this.caseKeyword})
+ : super("CaseExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "caseKeyword": caseKeyword,
+ };
+}
+
+class CaseExpressionEnd extends ParserAstNode {
+ final Token colon;
+
+ CaseExpressionEnd(ParserAstType type, {required this.colon})
+ : super("CaseExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "colon": colon,
+ };
+}
+
+class ClassOrMixinOrExtensionBodyBegin extends ParserAstNode {
+ final DeclarationKind kind;
+ final Token token;
+
+ ClassOrMixinOrExtensionBodyBegin(ParserAstType type,
+ {required this.kind, required this.token})
+ : super("ClassOrMixinOrExtensionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "kind": kind,
+ "token": token,
+ };
+}
+
+class ClassOrMixinOrExtensionBodyEnd extends ParserAstNode {
+ final DeclarationKind kind;
+ final int memberCount;
+ final Token beginToken;
+ final Token endToken;
+
+ ClassOrMixinOrExtensionBodyEnd(ParserAstType type,
+ {required this.kind,
+ required this.memberCount,
+ required this.beginToken,
+ required this.endToken})
+ : super("ClassOrMixinOrExtensionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "kind": kind,
+ "memberCount": memberCount,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class ClassOrMixinOrNamedMixinApplicationPreludeBegin extends ParserAstNode {
+ final Token token;
+
+ ClassOrMixinOrNamedMixinApplicationPreludeBegin(ParserAstType type,
+ {required this.token})
+ : super("ClassOrMixinOrNamedMixinApplicationPrelude", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ClassDeclarationBegin extends ParserAstNode {
+ final Token begin;
+ final Token? abstractToken;
+ final Token name;
+
+ ClassDeclarationBegin(ParserAstType type,
+ {required this.begin, this.abstractToken, required this.name})
+ : super("ClassDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "begin": begin,
+ "abstractToken": abstractToken,
+ "name": name,
+ };
+}
+
+class ClassExtendsHandle extends ParserAstNode {
+ final Token? extendsKeyword;
+ final int typeCount;
+
+ ClassExtendsHandle(ParserAstType type,
+ {this.extendsKeyword, required this.typeCount})
+ : super("ClassExtends", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "extendsKeyword": extendsKeyword,
+ "typeCount": typeCount,
+ };
+}
+
+class ClassOrMixinImplementsHandle extends ParserAstNode {
+ final Token? implementsKeyword;
+ final int interfacesCount;
+
+ ClassOrMixinImplementsHandle(ParserAstType type,
+ {this.implementsKeyword, required this.interfacesCount})
+ : super("ClassOrMixinImplements", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "implementsKeyword": implementsKeyword,
+ "interfacesCount": interfacesCount,
+ };
+}
+
+class ExtensionShowHideHandle extends ParserAstNode {
+ final Token? showKeyword;
+ final int showElementCount;
+ final Token? hideKeyword;
+ final int hideElementCount;
+
+ ExtensionShowHideHandle(ParserAstType type,
+ {this.showKeyword,
+ required this.showElementCount,
+ this.hideKeyword,
+ required this.hideElementCount})
+ : super("ExtensionShowHide", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "showKeyword": showKeyword,
+ "showElementCount": showElementCount,
+ "hideKeyword": hideKeyword,
+ "hideElementCount": hideElementCount,
+ };
+}
+
+class ClassHeaderHandle extends ParserAstNode {
+ final Token begin;
+ final Token classKeyword;
+ final Token? nativeToken;
+
+ ClassHeaderHandle(ParserAstType type,
+ {required this.begin, required this.classKeyword, this.nativeToken})
+ : super("ClassHeader", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "begin": begin,
+ "classKeyword": classKeyword,
+ "nativeToken": nativeToken,
+ };
+}
+
+class RecoverClassHeaderHandle extends ParserAstNode {
+ RecoverClassHeaderHandle(ParserAstType type)
+ : super("RecoverClassHeader", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class ClassDeclarationEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token endToken;
+
+ ClassDeclarationEnd(ParserAstType type,
+ {required this.beginToken, required this.endToken})
+ : super("ClassDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class MixinDeclarationBegin extends ParserAstNode {
+ final Token mixinKeyword;
+ final Token name;
+
+ MixinDeclarationBegin(ParserAstType type,
+ {required this.mixinKeyword, required this.name})
+ : super("MixinDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "mixinKeyword": mixinKeyword,
+ "name": name,
+ };
+}
+
+class MixinOnHandle extends ParserAstNode {
+ final Token? onKeyword;
+ final int typeCount;
+
+ MixinOnHandle(ParserAstType type, {this.onKeyword, required this.typeCount})
+ : super("MixinOn", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "onKeyword": onKeyword,
+ "typeCount": typeCount,
+ };
+}
+
+class MixinHeaderHandle extends ParserAstNode {
+ final Token mixinKeyword;
+
+ MixinHeaderHandle(ParserAstType type, {required this.mixinKeyword})
+ : super("MixinHeader", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "mixinKeyword": mixinKeyword,
+ };
+}
+
+class RecoverMixinHeaderHandle extends ParserAstNode {
+ RecoverMixinHeaderHandle(ParserAstType type)
+ : super("RecoverMixinHeader", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class MixinDeclarationEnd extends ParserAstNode {
+ final Token mixinKeyword;
+ final Token endToken;
+
+ MixinDeclarationEnd(ParserAstType type,
+ {required this.mixinKeyword, required this.endToken})
+ : super("MixinDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "mixinKeyword": mixinKeyword,
+ "endToken": endToken,
+ };
+}
+
+class UncategorizedTopLevelDeclarationBegin extends ParserAstNode {
+ final Token token;
+
+ UncategorizedTopLevelDeclarationBegin(ParserAstType type,
+ {required this.token})
+ : super("UncategorizedTopLevelDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ExtensionDeclarationPreludeBegin extends ParserAstNode {
+ final Token extensionKeyword;
+
+ ExtensionDeclarationPreludeBegin(ParserAstType type,
+ {required this.extensionKeyword})
+ : super("ExtensionDeclarationPrelude", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "extensionKeyword": extensionKeyword,
+ };
+}
+
+class ExtensionDeclarationBegin extends ParserAstNode {
+ final Token extensionKeyword;
+ final Token? name;
+
+ ExtensionDeclarationBegin(ParserAstType type,
+ {required this.extensionKeyword, this.name})
+ : super("ExtensionDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "extensionKeyword": extensionKeyword,
+ "name": name,
+ };
+}
+
+class ExtensionDeclarationEnd extends ParserAstNode {
+ final Token extensionKeyword;
+ final Token? typeKeyword;
+ final Token onKeyword;
+ final Token? showKeyword;
+ final Token? hideKeyword;
+ final Token endToken;
+
+ ExtensionDeclarationEnd(ParserAstType type,
+ {required this.extensionKeyword,
+ this.typeKeyword,
+ required this.onKeyword,
+ this.showKeyword,
+ this.hideKeyword,
+ required this.endToken})
+ : super("ExtensionDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "extensionKeyword": extensionKeyword,
+ "typeKeyword": typeKeyword,
+ "onKeyword": onKeyword,
+ "showKeyword": showKeyword,
+ "hideKeyword": hideKeyword,
+ "endToken": endToken,
+ };
+}
+
+class CombinatorsBegin extends ParserAstNode {
+ final Token token;
+
+ CombinatorsBegin(ParserAstType type, {required this.token})
+ : super("Combinators", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CombinatorsEnd extends ParserAstNode {
+ final int count;
+
+ CombinatorsEnd(ParserAstType type, {required this.count})
+ : super("Combinators", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ };
+}
+
+class CompilationUnitBegin extends ParserAstNode {
+ final Token token;
+
+ CompilationUnitBegin(ParserAstType type, {required this.token})
+ : super("CompilationUnit", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class DirectivesOnlyHandle extends ParserAstNode {
+ DirectivesOnlyHandle(ParserAstType type) : super("DirectivesOnly", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class CompilationUnitEnd extends ParserAstNode {
+ final int count;
+ final Token token;
+
+ CompilationUnitEnd(ParserAstType type,
+ {required this.count, required this.token})
+ : super("CompilationUnit", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "token": token,
+ };
+}
+
+class ConstLiteralBegin extends ParserAstNode {
+ final Token token;
+
+ ConstLiteralBegin(ParserAstType type, {required this.token})
+ : super("ConstLiteral", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ConstLiteralEnd extends ParserAstNode {
+ final Token token;
+
+ ConstLiteralEnd(ParserAstType type, {required this.token})
+ : super("ConstLiteral", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ConstructorReferenceBegin extends ParserAstNode {
+ final Token start;
+
+ ConstructorReferenceBegin(ParserAstType type, {required this.start})
+ : super("ConstructorReference", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "start": start,
+ };
+}
+
+class ConstructorReferenceEnd extends ParserAstNode {
+ final Token start;
+ final Token? periodBeforeName;
+ final Token endToken;
+ final ConstructorReferenceContext constructorReferenceContext;
+
+ ConstructorReferenceEnd(ParserAstType type,
+ {required this.start,
+ this.periodBeforeName,
+ required this.endToken,
+ required this.constructorReferenceContext})
+ : super("ConstructorReference", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "start": start,
+ "periodBeforeName": periodBeforeName,
+ "endToken": endToken,
+ "constructorReferenceContext": constructorReferenceContext,
+ };
+}
+
+class DoWhileStatementBegin extends ParserAstNode {
+ final Token token;
+
+ DoWhileStatementBegin(ParserAstType type, {required this.token})
+ : super("DoWhileStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class DoWhileStatementEnd extends ParserAstNode {
+ final Token doKeyword;
+ final Token whileKeyword;
+ final Token endToken;
+
+ DoWhileStatementEnd(ParserAstType type,
+ {required this.doKeyword,
+ required this.whileKeyword,
+ required this.endToken})
+ : super("DoWhileStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "doKeyword": doKeyword,
+ "whileKeyword": whileKeyword,
+ "endToken": endToken,
+ };
+}
+
+class DoWhileStatementBodyBegin extends ParserAstNode {
+ final Token token;
+
+ DoWhileStatementBodyBegin(ParserAstType type, {required this.token})
+ : super("DoWhileStatementBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class DoWhileStatementBodyEnd extends ParserAstNode {
+ final Token token;
+
+ DoWhileStatementBodyEnd(ParserAstType type, {required this.token})
+ : super("DoWhileStatementBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class WhileStatementBodyBegin extends ParserAstNode {
+ final Token token;
+
+ WhileStatementBodyBegin(ParserAstType type, {required this.token})
+ : super("WhileStatementBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class WhileStatementBodyEnd extends ParserAstNode {
+ final Token token;
+
+ WhileStatementBodyEnd(ParserAstType type, {required this.token})
+ : super("WhileStatementBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class EnumBegin extends ParserAstNode {
+ final Token enumKeyword;
+
+ EnumBegin(ParserAstType type, {required this.enumKeyword})
+ : super("Enum", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "enumKeyword": enumKeyword,
+ };
+}
+
+class EnumEnd extends ParserAstNode {
+ final Token enumKeyword;
+ final Token leftBrace;
+ final int count;
+
+ EnumEnd(ParserAstType type,
+ {required this.enumKeyword, required this.leftBrace, required this.count})
+ : super("Enum", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "enumKeyword": enumKeyword,
+ "leftBrace": leftBrace,
+ "count": count,
+ };
+}
+
+class ExportBegin extends ParserAstNode {
+ final Token token;
+
+ ExportBegin(ParserAstType type, {required this.token})
+ : super("Export", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ExportEnd extends ParserAstNode {
+ final Token exportKeyword;
+ final Token semicolon;
+
+ ExportEnd(ParserAstType type,
+ {required this.exportKeyword, required this.semicolon})
+ : super("Export", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "exportKeyword": exportKeyword,
+ "semicolon": semicolon,
+ };
+}
+
+class ExtraneousExpressionHandle extends ParserAstNode {
+ final Token token;
+ final Message message;
+
+ ExtraneousExpressionHandle(ParserAstType type,
+ {required this.token, required this.message})
+ : super("ExtraneousExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "message": message,
+ };
+}
+
+class ExpressionStatementHandle extends ParserAstNode {
+ final Token token;
+
+ ExpressionStatementHandle(ParserAstType type, {required this.token})
+ : super("ExpressionStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FactoryMethodBegin extends ParserAstNode {
+ final DeclarationKind declarationKind;
+ final Token lastConsumed;
+ final Token? externalToken;
+ final Token? constToken;
+
+ FactoryMethodBegin(ParserAstType type,
+ {required this.declarationKind,
+ required this.lastConsumed,
+ this.externalToken,
+ this.constToken})
+ : super("FactoryMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "declarationKind": declarationKind,
+ "lastConsumed": lastConsumed,
+ "externalToken": externalToken,
+ "constToken": constToken,
+ };
+}
+
+class ClassFactoryMethodEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token factoryKeyword;
+ final Token endToken;
+
+ ClassFactoryMethodEnd(ParserAstType type,
+ {required this.beginToken,
+ required this.factoryKeyword,
+ required this.endToken})
+ : super("ClassFactoryMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "factoryKeyword": factoryKeyword,
+ "endToken": endToken,
+ };
+}
+
+class MixinFactoryMethodEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token factoryKeyword;
+ final Token endToken;
+
+ MixinFactoryMethodEnd(ParserAstType type,
+ {required this.beginToken,
+ required this.factoryKeyword,
+ required this.endToken})
+ : super("MixinFactoryMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "factoryKeyword": factoryKeyword,
+ "endToken": endToken,
+ };
+}
+
+class ExtensionFactoryMethodEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token factoryKeyword;
+ final Token endToken;
+
+ ExtensionFactoryMethodEnd(ParserAstType type,
+ {required this.beginToken,
+ required this.factoryKeyword,
+ required this.endToken})
+ : super("ExtensionFactoryMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "factoryKeyword": factoryKeyword,
+ "endToken": endToken,
+ };
+}
+
+class FormalParameterBegin extends ParserAstNode {
+ final Token token;
+ final MemberKind kind;
+ final Token? requiredToken;
+ final Token? covariantToken;
+ final Token? varFinalOrConst;
+
+ FormalParameterBegin(ParserAstType type,
+ {required this.token,
+ required this.kind,
+ this.requiredToken,
+ this.covariantToken,
+ this.varFinalOrConst})
+ : super("FormalParameter", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "kind": kind,
+ "requiredToken": requiredToken,
+ "covariantToken": covariantToken,
+ "varFinalOrConst": varFinalOrConst,
+ };
+}
+
+class FormalParameterEnd extends ParserAstNode {
+ final Token? thisKeyword;
+ final Token? superKeyword;
+ final Token? periodAfterThisOrSuper;
+ final Token nameToken;
+ final Token? initializerStart;
+ final Token? initializerEnd;
+ final FormalParameterKind kind;
+ final MemberKind memberKind;
+
+ FormalParameterEnd(ParserAstType type,
+ {this.thisKeyword,
+ this.superKeyword,
+ this.periodAfterThisOrSuper,
+ required this.nameToken,
+ this.initializerStart,
+ this.initializerEnd,
+ required this.kind,
+ required this.memberKind})
+ : super("FormalParameter", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "thisKeyword": thisKeyword,
+ "superKeyword": superKeyword,
+ "periodAfterThisOrSuper": periodAfterThisOrSuper,
+ "nameToken": nameToken,
+ "initializerStart": initializerStart,
+ "initializerEnd": initializerEnd,
+ "kind": kind,
+ "memberKind": memberKind,
+ };
+}
+
+class NoFormalParametersHandle extends ParserAstNode {
+ final Token token;
+ final MemberKind kind;
+
+ NoFormalParametersHandle(ParserAstType type,
+ {required this.token, required this.kind})
+ : super("NoFormalParameters", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "kind": kind,
+ };
+}
+
+class FormalParametersBegin extends ParserAstNode {
+ final Token token;
+ final MemberKind kind;
+
+ FormalParametersBegin(ParserAstType type,
+ {required this.token, required this.kind})
+ : super("FormalParameters", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "kind": kind,
+ };
+}
+
+class FormalParametersEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+ final MemberKind kind;
+
+ FormalParametersEnd(ParserAstType type,
+ {required this.count,
+ required this.beginToken,
+ required this.endToken,
+ required this.kind})
+ : super("FormalParameters", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ "kind": kind,
+ };
+}
+
+class ClassFieldsEnd extends ParserAstNode {
+ final Token? abstractToken;
+ final Token? externalToken;
+ final Token? staticToken;
+ final Token? covariantToken;
+ final Token? lateToken;
+ final Token? varFinalOrConst;
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ ClassFieldsEnd(ParserAstType type,
+ {this.abstractToken,
+ this.externalToken,
+ this.staticToken,
+ this.covariantToken,
+ this.lateToken,
+ this.varFinalOrConst,
+ required this.count,
+ required this.beginToken,
+ required this.endToken})
+ : super("ClassFields", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "abstractToken": abstractToken,
+ "externalToken": externalToken,
+ "staticToken": staticToken,
+ "covariantToken": covariantToken,
+ "lateToken": lateToken,
+ "varFinalOrConst": varFinalOrConst,
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class MixinFieldsEnd extends ParserAstNode {
+ final Token? abstractToken;
+ final Token? externalToken;
+ final Token? staticToken;
+ final Token? covariantToken;
+ final Token? lateToken;
+ final Token? varFinalOrConst;
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ MixinFieldsEnd(ParserAstType type,
+ {this.abstractToken,
+ this.externalToken,
+ this.staticToken,
+ this.covariantToken,
+ this.lateToken,
+ this.varFinalOrConst,
+ required this.count,
+ required this.beginToken,
+ required this.endToken})
+ : super("MixinFields", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "abstractToken": abstractToken,
+ "externalToken": externalToken,
+ "staticToken": staticToken,
+ "covariantToken": covariantToken,
+ "lateToken": lateToken,
+ "varFinalOrConst": varFinalOrConst,
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class ExtensionFieldsEnd extends ParserAstNode {
+ final Token? abstractToken;
+ final Token? externalToken;
+ final Token? staticToken;
+ final Token? covariantToken;
+ final Token? lateToken;
+ final Token? varFinalOrConst;
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ ExtensionFieldsEnd(ParserAstType type,
+ {this.abstractToken,
+ this.externalToken,
+ this.staticToken,
+ this.covariantToken,
+ this.lateToken,
+ this.varFinalOrConst,
+ required this.count,
+ required this.beginToken,
+ required this.endToken})
+ : super("ExtensionFields", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "abstractToken": abstractToken,
+ "externalToken": externalToken,
+ "staticToken": staticToken,
+ "covariantToken": covariantToken,
+ "lateToken": lateToken,
+ "varFinalOrConst": varFinalOrConst,
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class ForInitializerEmptyStatementHandle extends ParserAstNode {
+ final Token token;
+
+ ForInitializerEmptyStatementHandle(ParserAstType type, {required this.token})
+ : super("ForInitializerEmptyStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForInitializerExpressionStatementHandle extends ParserAstNode {
+ final Token token;
+ final bool forIn;
+
+ ForInitializerExpressionStatementHandle(ParserAstType type,
+ {required this.token, required this.forIn})
+ : super("ForInitializerExpressionStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "forIn": forIn,
+ };
+}
+
+class ForInitializerLocalVariableDeclarationHandle extends ParserAstNode {
+ final Token token;
+ final bool forIn;
+
+ ForInitializerLocalVariableDeclarationHandle(ParserAstType type,
+ {required this.token, required this.forIn})
+ : super("ForInitializerLocalVariableDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "forIn": forIn,
+ };
+}
+
+class ForStatementBegin extends ParserAstNode {
+ final Token token;
+
+ ForStatementBegin(ParserAstType type, {required this.token})
+ : super("ForStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForLoopPartsHandle extends ParserAstNode {
+ final Token forKeyword;
+ final Token leftParen;
+ final Token leftSeparator;
+ final int updateExpressionCount;
+
+ ForLoopPartsHandle(ParserAstType type,
+ {required this.forKeyword,
+ required this.leftParen,
+ required this.leftSeparator,
+ required this.updateExpressionCount})
+ : super("ForLoopParts", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "forKeyword": forKeyword,
+ "leftParen": leftParen,
+ "leftSeparator": leftSeparator,
+ "updateExpressionCount": updateExpressionCount,
+ };
+}
+
+class ForStatementEnd extends ParserAstNode {
+ final Token endToken;
+
+ ForStatementEnd(ParserAstType type, {required this.endToken})
+ : super("ForStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "endToken": endToken,
+ };
+}
+
+class ForStatementBodyBegin extends ParserAstNode {
+ final Token token;
+
+ ForStatementBodyBegin(ParserAstType type, {required this.token})
+ : super("ForStatementBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForStatementBodyEnd extends ParserAstNode {
+ final Token token;
+
+ ForStatementBodyEnd(ParserAstType type, {required this.token})
+ : super("ForStatementBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForInLoopPartsHandle extends ParserAstNode {
+ final Token? awaitToken;
+ final Token forToken;
+ final Token leftParenthesis;
+ final Token inKeyword;
+
+ ForInLoopPartsHandle(ParserAstType type,
+ {this.awaitToken,
+ required this.forToken,
+ required this.leftParenthesis,
+ required this.inKeyword})
+ : super("ForInLoopParts", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "awaitToken": awaitToken,
+ "forToken": forToken,
+ "leftParenthesis": leftParenthesis,
+ "inKeyword": inKeyword,
+ };
+}
+
+class ForInEnd extends ParserAstNode {
+ final Token endToken;
+
+ ForInEnd(ParserAstType type, {required this.endToken}) : super("ForIn", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "endToken": endToken,
+ };
+}
+
+class ForInExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ ForInExpressionBegin(ParserAstType type, {required this.token})
+ : super("ForInExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForInExpressionEnd extends ParserAstNode {
+ final Token token;
+
+ ForInExpressionEnd(ParserAstType type, {required this.token})
+ : super("ForInExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForInBodyBegin extends ParserAstNode {
+ final Token token;
+
+ ForInBodyBegin(ParserAstType type, {required this.token})
+ : super("ForInBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForInBodyEnd extends ParserAstNode {
+ final Token token;
+
+ ForInBodyEnd(ParserAstType type, {required this.token})
+ : super("ForInBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NamedFunctionExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ NamedFunctionExpressionBegin(ParserAstType type, {required this.token})
+ : super("NamedFunctionExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NamedFunctionExpressionEnd extends ParserAstNode {
+ final Token endToken;
+
+ NamedFunctionExpressionEnd(ParserAstType type, {required this.endToken})
+ : super("NamedFunctionExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "endToken": endToken,
+ };
+}
+
+class LocalFunctionDeclarationBegin extends ParserAstNode {
+ final Token token;
+
+ LocalFunctionDeclarationBegin(ParserAstType type, {required this.token})
+ : super("LocalFunctionDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LocalFunctionDeclarationEnd extends ParserAstNode {
+ final Token endToken;
+
+ LocalFunctionDeclarationEnd(ParserAstType type, {required this.endToken})
+ : super("LocalFunctionDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "endToken": endToken,
+ };
+}
+
+class BlockFunctionBodyBegin extends ParserAstNode {
+ final Token token;
+
+ BlockFunctionBodyBegin(ParserAstType type, {required this.token})
+ : super("BlockFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class BlockFunctionBodyEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ BlockFunctionBodyEnd(ParserAstType type,
+ {required this.count, required this.beginToken, required this.endToken})
+ : super("BlockFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class NoFunctionBodyHandle extends ParserAstNode {
+ final Token token;
+
+ NoFunctionBodyHandle(ParserAstType type, {required this.token})
+ : super("NoFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FunctionBodySkippedHandle extends ParserAstNode {
+ final Token token;
+ final bool isExpressionBody;
+
+ FunctionBodySkippedHandle(ParserAstType type,
+ {required this.token, required this.isExpressionBody})
+ : super("FunctionBodySkipped", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "isExpressionBody": isExpressionBody,
+ };
+}
+
+class FunctionNameBegin extends ParserAstNode {
+ final Token token;
+
+ FunctionNameBegin(ParserAstType type, {required this.token})
+ : super("FunctionName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FunctionNameEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token token;
+
+ FunctionNameEnd(ParserAstType type,
+ {required this.beginToken, required this.token})
+ : super("FunctionName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "token": token,
+ };
+}
+
+class TypedefBegin extends ParserAstNode {
+ final Token token;
+
+ TypedefBegin(ParserAstType type, {required this.token})
+ : super("Typedef", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class TypedefEnd extends ParserAstNode {
+ final Token typedefKeyword;
+ final Token? equals;
+ final Token endToken;
+
+ TypedefEnd(ParserAstType type,
+ {required this.typedefKeyword, this.equals, required this.endToken})
+ : super("Typedef", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "typedefKeyword": typedefKeyword,
+ "equals": equals,
+ "endToken": endToken,
+ };
+}
+
+class ClassWithClauseHandle extends ParserAstNode {
+ final Token withKeyword;
+
+ ClassWithClauseHandle(ParserAstType type, {required this.withKeyword})
+ : super("ClassWithClause", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "withKeyword": withKeyword,
+ };
+}
+
+class ClassNoWithClauseHandle extends ParserAstNode {
+ ClassNoWithClauseHandle(ParserAstType type)
+ : super("ClassNoWithClause", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class NamedMixinApplicationBegin extends ParserAstNode {
+ final Token begin;
+ final Token? abstractToken;
+ final Token name;
+
+ NamedMixinApplicationBegin(ParserAstType type,
+ {required this.begin, this.abstractToken, required this.name})
+ : super("NamedMixinApplication", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "begin": begin,
+ "abstractToken": abstractToken,
+ "name": name,
+ };
+}
+
+class NamedMixinApplicationWithClauseHandle extends ParserAstNode {
+ final Token withKeyword;
+
+ NamedMixinApplicationWithClauseHandle(ParserAstType type,
+ {required this.withKeyword})
+ : super("NamedMixinApplicationWithClause", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "withKeyword": withKeyword,
+ };
+}
+
+class NamedMixinApplicationEnd extends ParserAstNode {
+ final Token begin;
+ final Token classKeyword;
+ final Token equals;
+ final Token? implementsKeyword;
+ final Token endToken;
+
+ NamedMixinApplicationEnd(ParserAstType type,
+ {required this.begin,
+ required this.classKeyword,
+ required this.equals,
+ this.implementsKeyword,
+ required this.endToken})
+ : super("NamedMixinApplication", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "begin": begin,
+ "classKeyword": classKeyword,
+ "equals": equals,
+ "implementsKeyword": implementsKeyword,
+ "endToken": endToken,
+ };
+}
+
+class HideBegin extends ParserAstNode {
+ final Token hideKeyword;
+
+ HideBegin(ParserAstType type, {required this.hideKeyword})
+ : super("Hide", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "hideKeyword": hideKeyword,
+ };
+}
+
+class HideEnd extends ParserAstNode {
+ final Token hideKeyword;
+
+ HideEnd(ParserAstType type, {required this.hideKeyword})
+ : super("Hide", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "hideKeyword": hideKeyword,
+ };
+}
+
+class IdentifierListHandle extends ParserAstNode {
+ final int count;
+
+ IdentifierListHandle(ParserAstType type, {required this.count})
+ : super("IdentifierList", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ };
+}
+
+class TypeListBegin extends ParserAstNode {
+ final Token token;
+
+ TypeListBegin(ParserAstType type, {required this.token})
+ : super("TypeList", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class TypeListEnd extends ParserAstNode {
+ final int count;
+
+ TypeListEnd(ParserAstType type, {required this.count})
+ : super("TypeList", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ };
+}
+
+class IfStatementBegin extends ParserAstNode {
+ final Token token;
+
+ IfStatementBegin(ParserAstType type, {required this.token})
+ : super("IfStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class IfStatementEnd extends ParserAstNode {
+ final Token ifToken;
+ final Token? elseToken;
+
+ IfStatementEnd(ParserAstType type, {required this.ifToken, this.elseToken})
+ : super("IfStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "ifToken": ifToken,
+ "elseToken": elseToken,
+ };
+}
+
+class ThenStatementBegin extends ParserAstNode {
+ final Token token;
+
+ ThenStatementBegin(ParserAstType type, {required this.token})
+ : super("ThenStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ThenStatementEnd extends ParserAstNode {
+ final Token token;
+
+ ThenStatementEnd(ParserAstType type, {required this.token})
+ : super("ThenStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ElseStatementBegin extends ParserAstNode {
+ final Token token;
+
+ ElseStatementBegin(ParserAstType type, {required this.token})
+ : super("ElseStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ElseStatementEnd extends ParserAstNode {
+ final Token token;
+
+ ElseStatementEnd(ParserAstType type, {required this.token})
+ : super("ElseStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ImportBegin extends ParserAstNode {
+ final Token importKeyword;
+
+ ImportBegin(ParserAstType type, {required this.importKeyword})
+ : super("Import", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "importKeyword": importKeyword,
+ };
+}
+
+class ImportPrefixHandle extends ParserAstNode {
+ final Token? deferredKeyword;
+ final Token? asKeyword;
+
+ ImportPrefixHandle(ParserAstType type, {this.deferredKeyword, this.asKeyword})
+ : super("ImportPrefix", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "deferredKeyword": deferredKeyword,
+ "asKeyword": asKeyword,
+ };
+}
+
+class ImportEnd extends ParserAstNode {
+ final Token importKeyword;
+ final Token? semicolon;
+
+ ImportEnd(ParserAstType type, {required this.importKeyword, this.semicolon})
+ : super("Import", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "importKeyword": importKeyword,
+ "semicolon": semicolon,
+ };
+}
+
+class RecoverImportHandle extends ParserAstNode {
+ final Token? semicolon;
+
+ RecoverImportHandle(ParserAstType type, {this.semicolon})
+ : super("RecoverImport", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "semicolon": semicolon,
+ };
+}
+
+class ConditionalUrisBegin extends ParserAstNode {
+ final Token token;
+
+ ConditionalUrisBegin(ParserAstType type, {required this.token})
+ : super("ConditionalUris", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ConditionalUrisEnd extends ParserAstNode {
+ final int count;
+
+ ConditionalUrisEnd(ParserAstType type, {required this.count})
+ : super("ConditionalUris", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ };
+}
+
+class ConditionalUriBegin extends ParserAstNode {
+ final Token ifKeyword;
+
+ ConditionalUriBegin(ParserAstType type, {required this.ifKeyword})
+ : super("ConditionalUri", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "ifKeyword": ifKeyword,
+ };
+}
+
+class ConditionalUriEnd extends ParserAstNode {
+ final Token ifKeyword;
+ final Token leftParen;
+ final Token? equalSign;
+
+ ConditionalUriEnd(ParserAstType type,
+ {required this.ifKeyword, required this.leftParen, this.equalSign})
+ : super("ConditionalUri", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "ifKeyword": ifKeyword,
+ "leftParen": leftParen,
+ "equalSign": equalSign,
+ };
+}
+
+class DottedNameHandle extends ParserAstNode {
+ final int count;
+ final Token firstIdentifier;
+
+ DottedNameHandle(ParserAstType type,
+ {required this.count, required this.firstIdentifier})
+ : super("DottedName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "firstIdentifier": firstIdentifier,
+ };
+}
+
+class ImplicitCreationExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ ImplicitCreationExpressionBegin(ParserAstType type, {required this.token})
+ : super("ImplicitCreationExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ImplicitCreationExpressionEnd extends ParserAstNode {
+ final Token token;
+ final Token openAngleBracket;
+
+ ImplicitCreationExpressionEnd(ParserAstType type,
+ {required this.token, required this.openAngleBracket})
+ : super("ImplicitCreationExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "openAngleBracket": openAngleBracket,
+ };
+}
+
+class InitializedIdentifierBegin extends ParserAstNode {
+ final Token token;
+
+ InitializedIdentifierBegin(ParserAstType type, {required this.token})
+ : super("InitializedIdentifier", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InitializedIdentifierEnd extends ParserAstNode {
+ final Token nameToken;
+
+ InitializedIdentifierEnd(ParserAstType type, {required this.nameToken})
+ : super("InitializedIdentifier", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nameToken": nameToken,
+ };
+}
+
+class FieldInitializerBegin extends ParserAstNode {
+ final Token token;
+
+ FieldInitializerBegin(ParserAstType type, {required this.token})
+ : super("FieldInitializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FieldInitializerEnd extends ParserAstNode {
+ final Token assignment;
+ final Token token;
+
+ FieldInitializerEnd(ParserAstType type,
+ {required this.assignment, required this.token})
+ : super("FieldInitializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "assignment": assignment,
+ "token": token,
+ };
+}
+
+class NoFieldInitializerHandle extends ParserAstNode {
+ final Token token;
+
+ NoFieldInitializerHandle(ParserAstType type, {required this.token})
+ : super("NoFieldInitializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class VariableInitializerBegin extends ParserAstNode {
+ final Token token;
+
+ VariableInitializerBegin(ParserAstType type, {required this.token})
+ : super("VariableInitializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class VariableInitializerEnd extends ParserAstNode {
+ final Token assignmentOperator;
+
+ VariableInitializerEnd(ParserAstType type, {required this.assignmentOperator})
+ : super("VariableInitializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "assignmentOperator": assignmentOperator,
+ };
+}
+
+class NoVariableInitializerHandle extends ParserAstNode {
+ final Token token;
+
+ NoVariableInitializerHandle(ParserAstType type, {required this.token})
+ : super("NoVariableInitializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InitializerBegin extends ParserAstNode {
+ final Token token;
+
+ InitializerBegin(ParserAstType type, {required this.token})
+ : super("Initializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InitializerEnd extends ParserAstNode {
+ final Token token;
+
+ InitializerEnd(ParserAstType type, {required this.token})
+ : super("Initializer", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InitializersBegin extends ParserAstNode {
+ final Token token;
+
+ InitializersBegin(ParserAstType type, {required this.token})
+ : super("Initializers", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InitializersEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ InitializersEnd(ParserAstType type,
+ {required this.count, required this.beginToken, required this.endToken})
+ : super("Initializers", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class NoInitializersHandle extends ParserAstNode {
+ NoInitializersHandle(ParserAstType type) : super("NoInitializers", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class InvalidExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ InvalidExpressionHandle(ParserAstType type, {required this.token})
+ : super("InvalidExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InvalidFunctionBodyHandle extends ParserAstNode {
+ final Token token;
+
+ InvalidFunctionBodyHandle(ParserAstType type, {required this.token})
+ : super("InvalidFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InvalidTypeReferenceHandle extends ParserAstNode {
+ final Token token;
+
+ InvalidTypeReferenceHandle(ParserAstType type, {required this.token})
+ : super("InvalidTypeReference", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LabelHandle extends ParserAstNode {
+ final Token token;
+
+ LabelHandle(ParserAstType type, {required this.token}) : super("Label", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LabeledStatementBegin extends ParserAstNode {
+ final Token token;
+ final int labelCount;
+
+ LabeledStatementBegin(ParserAstType type,
+ {required this.token, required this.labelCount})
+ : super("LabeledStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "labelCount": labelCount,
+ };
+}
+
+class LabeledStatementEnd extends ParserAstNode {
+ final int labelCount;
+
+ LabeledStatementEnd(ParserAstType type, {required this.labelCount})
+ : super("LabeledStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "labelCount": labelCount,
+ };
+}
+
+class LibraryNameBegin extends ParserAstNode {
+ final Token token;
+
+ LibraryNameBegin(ParserAstType type, {required this.token})
+ : super("LibraryName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LibraryNameEnd extends ParserAstNode {
+ final Token libraryKeyword;
+ final Token semicolon;
+
+ LibraryNameEnd(ParserAstType type,
+ {required this.libraryKeyword, required this.semicolon})
+ : super("LibraryName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "libraryKeyword": libraryKeyword,
+ "semicolon": semicolon,
+ };
+}
+
+class LiteralMapEntryHandle extends ParserAstNode {
+ final Token colon;
+ final Token endToken;
+
+ LiteralMapEntryHandle(ParserAstType type,
+ {required this.colon, required this.endToken})
+ : super("LiteralMapEntry", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "colon": colon,
+ "endToken": endToken,
+ };
+}
+
+class LiteralStringBegin extends ParserAstNode {
+ final Token token;
+
+ LiteralStringBegin(ParserAstType type, {required this.token})
+ : super("LiteralString", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class InterpolationExpressionHandle extends ParserAstNode {
+ final Token leftBracket;
+ final Token? rightBracket;
+
+ InterpolationExpressionHandle(ParserAstType type,
+ {required this.leftBracket, this.rightBracket})
+ : super("InterpolationExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "leftBracket": leftBracket,
+ "rightBracket": rightBracket,
+ };
+}
+
+class LiteralStringEnd extends ParserAstNode {
+ final int interpolationCount;
+ final Token endToken;
+
+ LiteralStringEnd(ParserAstType type,
+ {required this.interpolationCount, required this.endToken})
+ : super("LiteralString", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "interpolationCount": interpolationCount,
+ "endToken": endToken,
+ };
+}
+
+class StringJuxtapositionHandle extends ParserAstNode {
+ final Token startToken;
+ final int literalCount;
+
+ StringJuxtapositionHandle(ParserAstType type,
+ {required this.startToken, required this.literalCount})
+ : super("StringJuxtaposition", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "startToken": startToken,
+ "literalCount": literalCount,
+ };
+}
+
+class MemberBegin extends ParserAstNode {
+ MemberBegin(ParserAstType type) : super("Member", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class InvalidMemberHandle extends ParserAstNode {
+ final Token endToken;
+
+ InvalidMemberHandle(ParserAstType type, {required this.endToken})
+ : super("InvalidMember", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "endToken": endToken,
+ };
+}
+
+class MemberEnd extends ParserAstNode {
+ MemberEnd(ParserAstType type) : super("Member", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class MethodBegin extends ParserAstNode {
+ final DeclarationKind declarationKind;
+ final Token? externalToken;
+ final Token? staticToken;
+ final Token? covariantToken;
+ final Token? varFinalOrConst;
+ final Token? getOrSet;
+ final Token name;
+
+ MethodBegin(ParserAstType type,
+ {required this.declarationKind,
+ this.externalToken,
+ this.staticToken,
+ this.covariantToken,
+ this.varFinalOrConst,
+ this.getOrSet,
+ required this.name})
+ : super("Method", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "declarationKind": declarationKind,
+ "externalToken": externalToken,
+ "staticToken": staticToken,
+ "covariantToken": covariantToken,
+ "varFinalOrConst": varFinalOrConst,
+ "getOrSet": getOrSet,
+ "name": name,
+ };
+}
+
+class ClassMethodEnd extends ParserAstNode {
+ final Token? getOrSet;
+ final Token beginToken;
+ final Token beginParam;
+ final Token? beginInitializers;
+ final Token endToken;
+
+ ClassMethodEnd(ParserAstType type,
+ {this.getOrSet,
+ required this.beginToken,
+ required this.beginParam,
+ this.beginInitializers,
+ required this.endToken})
+ : super("ClassMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "getOrSet": getOrSet,
+ "beginToken": beginToken,
+ "beginParam": beginParam,
+ "beginInitializers": beginInitializers,
+ "endToken": endToken,
+ };
+}
+
+class MixinMethodEnd extends ParserAstNode {
+ final Token? getOrSet;
+ final Token beginToken;
+ final Token beginParam;
+ final Token? beginInitializers;
+ final Token endToken;
+
+ MixinMethodEnd(ParserAstType type,
+ {this.getOrSet,
+ required this.beginToken,
+ required this.beginParam,
+ this.beginInitializers,
+ required this.endToken})
+ : super("MixinMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "getOrSet": getOrSet,
+ "beginToken": beginToken,
+ "beginParam": beginParam,
+ "beginInitializers": beginInitializers,
+ "endToken": endToken,
+ };
+}
+
+class ExtensionMethodEnd extends ParserAstNode {
+ final Token? getOrSet;
+ final Token beginToken;
+ final Token beginParam;
+ final Token? beginInitializers;
+ final Token endToken;
+
+ ExtensionMethodEnd(ParserAstType type,
+ {this.getOrSet,
+ required this.beginToken,
+ required this.beginParam,
+ this.beginInitializers,
+ required this.endToken})
+ : super("ExtensionMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "getOrSet": getOrSet,
+ "beginToken": beginToken,
+ "beginParam": beginParam,
+ "beginInitializers": beginInitializers,
+ "endToken": endToken,
+ };
+}
+
+class ClassConstructorEnd extends ParserAstNode {
+ final Token? getOrSet;
+ final Token beginToken;
+ final Token beginParam;
+ final Token? beginInitializers;
+ final Token endToken;
+
+ ClassConstructorEnd(ParserAstType type,
+ {this.getOrSet,
+ required this.beginToken,
+ required this.beginParam,
+ this.beginInitializers,
+ required this.endToken})
+ : super("ClassConstructor", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "getOrSet": getOrSet,
+ "beginToken": beginToken,
+ "beginParam": beginParam,
+ "beginInitializers": beginInitializers,
+ "endToken": endToken,
+ };
+}
+
+class MixinConstructorEnd extends ParserAstNode {
+ final Token? getOrSet;
+ final Token beginToken;
+ final Token beginParam;
+ final Token? beginInitializers;
+ final Token endToken;
+
+ MixinConstructorEnd(ParserAstType type,
+ {this.getOrSet,
+ required this.beginToken,
+ required this.beginParam,
+ this.beginInitializers,
+ required this.endToken})
+ : super("MixinConstructor", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "getOrSet": getOrSet,
+ "beginToken": beginToken,
+ "beginParam": beginParam,
+ "beginInitializers": beginInitializers,
+ "endToken": endToken,
+ };
+}
+
+class ExtensionConstructorEnd extends ParserAstNode {
+ final Token? getOrSet;
+ final Token beginToken;
+ final Token beginParam;
+ final Token? beginInitializers;
+ final Token endToken;
+
+ ExtensionConstructorEnd(ParserAstType type,
+ {this.getOrSet,
+ required this.beginToken,
+ required this.beginParam,
+ this.beginInitializers,
+ required this.endToken})
+ : super("ExtensionConstructor", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "getOrSet": getOrSet,
+ "beginToken": beginToken,
+ "beginParam": beginParam,
+ "beginInitializers": beginInitializers,
+ "endToken": endToken,
+ };
+}
+
+class MetadataStarBegin extends ParserAstNode {
+ final Token token;
+
+ MetadataStarBegin(ParserAstType type, {required this.token})
+ : super("MetadataStar", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class MetadataStarEnd extends ParserAstNode {
+ final int count;
+
+ MetadataStarEnd(ParserAstType type, {required this.count})
+ : super("MetadataStar", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ };
+}
+
+class MetadataBegin extends ParserAstNode {
+ final Token token;
+
+ MetadataBegin(ParserAstType type, {required this.token})
+ : super("Metadata", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class MetadataEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token? periodBeforeName;
+ final Token endToken;
+
+ MetadataEnd(ParserAstType type,
+ {required this.beginToken, this.periodBeforeName, required this.endToken})
+ : super("Metadata", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "periodBeforeName": periodBeforeName,
+ "endToken": endToken,
+ };
+}
+
+class OptionalFormalParametersBegin extends ParserAstNode {
+ final Token token;
+
+ OptionalFormalParametersBegin(ParserAstType type, {required this.token})
+ : super("OptionalFormalParameters", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class OptionalFormalParametersEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ OptionalFormalParametersEnd(ParserAstType type,
+ {required this.count, required this.beginToken, required this.endToken})
+ : super("OptionalFormalParameters", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class PartBegin extends ParserAstNode {
+ final Token token;
+
+ PartBegin(ParserAstType type, {required this.token}) : super("Part", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class PartEnd extends ParserAstNode {
+ final Token partKeyword;
+ final Token semicolon;
+
+ PartEnd(ParserAstType type,
+ {required this.partKeyword, required this.semicolon})
+ : super("Part", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "partKeyword": partKeyword,
+ "semicolon": semicolon,
+ };
+}
+
+class PartOfBegin extends ParserAstNode {
+ final Token token;
+
+ PartOfBegin(ParserAstType type, {required this.token})
+ : super("PartOf", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class PartOfEnd extends ParserAstNode {
+ final Token partKeyword;
+ final Token ofKeyword;
+ final Token semicolon;
+ final bool hasName;
+
+ PartOfEnd(ParserAstType type,
+ {required this.partKeyword,
+ required this.ofKeyword,
+ required this.semicolon,
+ required this.hasName})
+ : super("PartOf", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "partKeyword": partKeyword,
+ "ofKeyword": ofKeyword,
+ "semicolon": semicolon,
+ "hasName": hasName,
+ };
+}
+
+class RedirectingFactoryBodyBegin extends ParserAstNode {
+ final Token token;
+
+ RedirectingFactoryBodyBegin(ParserAstType type, {required this.token})
+ : super("RedirectingFactoryBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class RedirectingFactoryBodyEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token endToken;
+
+ RedirectingFactoryBodyEnd(ParserAstType type,
+ {required this.beginToken, required this.endToken})
+ : super("RedirectingFactoryBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class ReturnStatementBegin extends ParserAstNode {
+ final Token token;
+
+ ReturnStatementBegin(ParserAstType type, {required this.token})
+ : super("ReturnStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NativeFunctionBodyHandle extends ParserAstNode {
+ final Token nativeToken;
+ final Token semicolon;
+
+ NativeFunctionBodyHandle(ParserAstType type,
+ {required this.nativeToken, required this.semicolon})
+ : super("NativeFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nativeToken": nativeToken,
+ "semicolon": semicolon,
+ };
+}
+
+class NativeFunctionBodyIgnoredHandle extends ParserAstNode {
+ final Token nativeToken;
+ final Token semicolon;
+
+ NativeFunctionBodyIgnoredHandle(ParserAstType type,
+ {required this.nativeToken, required this.semicolon})
+ : super("NativeFunctionBodyIgnored", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nativeToken": nativeToken,
+ "semicolon": semicolon,
+ };
+}
+
+class NativeFunctionBodySkippedHandle extends ParserAstNode {
+ final Token nativeToken;
+ final Token semicolon;
+
+ NativeFunctionBodySkippedHandle(ParserAstType type,
+ {required this.nativeToken, required this.semicolon})
+ : super("NativeFunctionBodySkipped", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nativeToken": nativeToken,
+ "semicolon": semicolon,
+ };
+}
+
+class EmptyFunctionBodyHandle extends ParserAstNode {
+ final Token semicolon;
+
+ EmptyFunctionBodyHandle(ParserAstType type, {required this.semicolon})
+ : super("EmptyFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "semicolon": semicolon,
+ };
+}
+
+class ExpressionFunctionBodyHandle extends ParserAstNode {
+ final Token arrowToken;
+ final Token? endToken;
+
+ ExpressionFunctionBodyHandle(ParserAstType type,
+ {required this.arrowToken, this.endToken})
+ : super("ExpressionFunctionBody", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "arrowToken": arrowToken,
+ "endToken": endToken,
+ };
+}
+
+class ReturnStatementEnd extends ParserAstNode {
+ final bool hasExpression;
+ final Token beginToken;
+ final Token endToken;
+
+ ReturnStatementEnd(ParserAstType type,
+ {required this.hasExpression,
+ required this.beginToken,
+ required this.endToken})
+ : super("ReturnStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "hasExpression": hasExpression,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class SendHandle extends ParserAstNode {
+ final Token beginToken;
+ final Token endToken;
+
+ SendHandle(ParserAstType type,
+ {required this.beginToken, required this.endToken})
+ : super("Send", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class ShowBegin extends ParserAstNode {
+ final Token showKeyword;
+
+ ShowBegin(ParserAstType type, {required this.showKeyword})
+ : super("Show", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "showKeyword": showKeyword,
+ };
+}
+
+class ShowEnd extends ParserAstNode {
+ final Token showKeyword;
+
+ ShowEnd(ParserAstType type, {required this.showKeyword})
+ : super("Show", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "showKeyword": showKeyword,
+ };
+}
+
+class SwitchStatementBegin extends ParserAstNode {
+ final Token token;
+
+ SwitchStatementBegin(ParserAstType type, {required this.token})
+ : super("SwitchStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class SwitchStatementEnd extends ParserAstNode {
+ final Token switchKeyword;
+ final Token endToken;
+
+ SwitchStatementEnd(ParserAstType type,
+ {required this.switchKeyword, required this.endToken})
+ : super("SwitchStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "switchKeyword": switchKeyword,
+ "endToken": endToken,
+ };
+}
+
+class SwitchBlockBegin extends ParserAstNode {
+ final Token token;
+
+ SwitchBlockBegin(ParserAstType type, {required this.token})
+ : super("SwitchBlock", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class SwitchBlockEnd extends ParserAstNode {
+ final int caseCount;
+ final Token beginToken;
+ final Token endToken;
+
+ SwitchBlockEnd(ParserAstType type,
+ {required this.caseCount,
+ required this.beginToken,
+ required this.endToken})
+ : super("SwitchBlock", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "caseCount": caseCount,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class LiteralSymbolBegin extends ParserAstNode {
+ final Token token;
+
+ LiteralSymbolBegin(ParserAstType type, {required this.token})
+ : super("LiteralSymbol", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LiteralSymbolEnd extends ParserAstNode {
+ final Token hashToken;
+ final int identifierCount;
+
+ LiteralSymbolEnd(ParserAstType type,
+ {required this.hashToken, required this.identifierCount})
+ : super("LiteralSymbol", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "hashToken": hashToken,
+ "identifierCount": identifierCount,
+ };
+}
+
+class ThrowExpressionHandle extends ParserAstNode {
+ final Token throwToken;
+ final Token endToken;
+
+ ThrowExpressionHandle(ParserAstType type,
+ {required this.throwToken, required this.endToken})
+ : super("ThrowExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "throwToken": throwToken,
+ "endToken": endToken,
+ };
+}
+
+class RethrowStatementBegin extends ParserAstNode {
+ final Token token;
+
+ RethrowStatementBegin(ParserAstType type, {required this.token})
+ : super("RethrowStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class RethrowStatementEnd extends ParserAstNode {
+ final Token rethrowToken;
+ final Token endToken;
+
+ RethrowStatementEnd(ParserAstType type,
+ {required this.rethrowToken, required this.endToken})
+ : super("RethrowStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "rethrowToken": rethrowToken,
+ "endToken": endToken,
+ };
+}
+
+class TopLevelDeclarationEnd extends ParserAstNode {
+ final Token nextToken;
+
+ TopLevelDeclarationEnd(ParserAstType type, {required this.nextToken})
+ : super("TopLevelDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nextToken": nextToken,
+ };
+}
+
+class InvalidTopLevelDeclarationHandle extends ParserAstNode {
+ final Token endToken;
+
+ InvalidTopLevelDeclarationHandle(ParserAstType type, {required this.endToken})
+ : super("InvalidTopLevelDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "endToken": endToken,
+ };
+}
+
+class TopLevelMemberBegin extends ParserAstNode {
+ final Token token;
+
+ TopLevelMemberBegin(ParserAstType type, {required this.token})
+ : super("TopLevelMember", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FieldsBegin extends ParserAstNode {
+ final DeclarationKind declarationKind;
+ final Token? abstractToken;
+ final Token? externalToken;
+ final Token? staticToken;
+ final Token? covariantToken;
+ final Token? lateToken;
+ final Token? varFinalOrConst;
+ final Token lastConsumed;
+
+ FieldsBegin(ParserAstType type,
+ {required this.declarationKind,
+ this.abstractToken,
+ this.externalToken,
+ this.staticToken,
+ this.covariantToken,
+ this.lateToken,
+ this.varFinalOrConst,
+ required this.lastConsumed})
+ : super("Fields", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "declarationKind": declarationKind,
+ "abstractToken": abstractToken,
+ "externalToken": externalToken,
+ "staticToken": staticToken,
+ "covariantToken": covariantToken,
+ "lateToken": lateToken,
+ "varFinalOrConst": varFinalOrConst,
+ "lastConsumed": lastConsumed,
+ };
+}
+
+class TopLevelFieldsEnd extends ParserAstNode {
+ final Token? externalToken;
+ final Token? staticToken;
+ final Token? covariantToken;
+ final Token? lateToken;
+ final Token? varFinalOrConst;
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ TopLevelFieldsEnd(ParserAstType type,
+ {this.externalToken,
+ this.staticToken,
+ this.covariantToken,
+ this.lateToken,
+ this.varFinalOrConst,
+ required this.count,
+ required this.beginToken,
+ required this.endToken})
+ : super("TopLevelFields", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "externalToken": externalToken,
+ "staticToken": staticToken,
+ "covariantToken": covariantToken,
+ "lateToken": lateToken,
+ "varFinalOrConst": varFinalOrConst,
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class TopLevelMethodBegin extends ParserAstNode {
+ final Token lastConsumed;
+ final Token? externalToken;
+
+ TopLevelMethodBegin(ParserAstType type,
+ {required this.lastConsumed, this.externalToken})
+ : super("TopLevelMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "lastConsumed": lastConsumed,
+ "externalToken": externalToken,
+ };
+}
+
+class TopLevelMethodEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token? getOrSet;
+ final Token endToken;
+
+ TopLevelMethodEnd(ParserAstType type,
+ {required this.beginToken, this.getOrSet, required this.endToken})
+ : super("TopLevelMethod", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "getOrSet": getOrSet,
+ "endToken": endToken,
+ };
+}
+
+class TryStatementBegin extends ParserAstNode {
+ final Token token;
+
+ TryStatementBegin(ParserAstType type, {required this.token})
+ : super("TryStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CaseMatchHandle extends ParserAstNode {
+ final Token caseKeyword;
+ final Token colon;
+
+ CaseMatchHandle(ParserAstType type,
+ {required this.caseKeyword, required this.colon})
+ : super("CaseMatch", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "caseKeyword": caseKeyword,
+ "colon": colon,
+ };
+}
+
+class CatchClauseBegin extends ParserAstNode {
+ final Token token;
+
+ CatchClauseBegin(ParserAstType type, {required this.token})
+ : super("CatchClause", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CatchClauseEnd extends ParserAstNode {
+ final Token token;
+
+ CatchClauseEnd(ParserAstType type, {required this.token})
+ : super("CatchClause", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CatchBlockHandle extends ParserAstNode {
+ final Token? onKeyword;
+ final Token? catchKeyword;
+ final Token? comma;
+
+ CatchBlockHandle(ParserAstType type,
+ {this.onKeyword, this.catchKeyword, this.comma})
+ : super("CatchBlock", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "onKeyword": onKeyword,
+ "catchKeyword": catchKeyword,
+ "comma": comma,
+ };
+}
+
+class FinallyBlockHandle extends ParserAstNode {
+ final Token finallyKeyword;
+
+ FinallyBlockHandle(ParserAstType type, {required this.finallyKeyword})
+ : super("FinallyBlock", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "finallyKeyword": finallyKeyword,
+ };
+}
+
+class TryStatementEnd extends ParserAstNode {
+ final int catchCount;
+ final Token tryKeyword;
+ final Token? finallyKeyword;
+
+ TryStatementEnd(ParserAstType type,
+ {required this.catchCount, required this.tryKeyword, this.finallyKeyword})
+ : super("TryStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "catchCount": catchCount,
+ "tryKeyword": tryKeyword,
+ "finallyKeyword": finallyKeyword,
+ };
+}
+
+class TypeHandle extends ParserAstNode {
+ final Token beginToken;
+ final Token? questionMark;
+
+ TypeHandle(ParserAstType type, {required this.beginToken, this.questionMark})
+ : super("Type", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "questionMark": questionMark,
+ };
+}
+
+class NonNullAssertExpressionHandle extends ParserAstNode {
+ final Token bang;
+
+ NonNullAssertExpressionHandle(ParserAstType type, {required this.bang})
+ : super("NonNullAssertExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "bang": bang,
+ };
+}
+
+class NoNameHandle extends ParserAstNode {
+ final Token token;
+
+ NoNameHandle(ParserAstType type, {required this.token})
+ : super("NoName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FunctionTypeBegin extends ParserAstNode {
+ final Token beginToken;
+
+ FunctionTypeBegin(ParserAstType type, {required this.beginToken})
+ : super("FunctionType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ };
+}
+
+class FunctionTypeEnd extends ParserAstNode {
+ final Token functionToken;
+ final Token? questionMark;
+
+ FunctionTypeEnd(ParserAstType type,
+ {required this.functionToken, this.questionMark})
+ : super("FunctionType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "functionToken": functionToken,
+ "questionMark": questionMark,
+ };
+}
+
+class TypeArgumentsBegin extends ParserAstNode {
+ final Token token;
+
+ TypeArgumentsBegin(ParserAstType type, {required this.token})
+ : super("TypeArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class TypeArgumentsEnd extends ParserAstNode {
+ final int count;
+ final Token beginToken;
+ final Token endToken;
+
+ TypeArgumentsEnd(ParserAstType type,
+ {required this.count, required this.beginToken, required this.endToken})
+ : super("TypeArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class InvalidTypeArgumentsHandle extends ParserAstNode {
+ final Token token;
+
+ InvalidTypeArgumentsHandle(ParserAstType type, {required this.token})
+ : super("InvalidTypeArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NoTypeArgumentsHandle extends ParserAstNode {
+ final Token token;
+
+ NoTypeArgumentsHandle(ParserAstType type, {required this.token})
+ : super("NoTypeArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class TypeVariableBegin extends ParserAstNode {
+ final Token token;
+
+ TypeVariableBegin(ParserAstType type, {required this.token})
+ : super("TypeVariable", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class TypeVariablesDefinedHandle extends ParserAstNode {
+ final Token token;
+ final int count;
+
+ TypeVariablesDefinedHandle(ParserAstType type,
+ {required this.token, required this.count})
+ : super("TypeVariablesDefined", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "count": count,
+ };
+}
+
+class TypeVariableEnd extends ParserAstNode {
+ final Token token;
+ final int index;
+ final Token? extendsOrSuper;
+ final Token? variance;
+
+ TypeVariableEnd(ParserAstType type,
+ {required this.token,
+ required this.index,
+ this.extendsOrSuper,
+ this.variance})
+ : super("TypeVariable", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "index": index,
+ "extendsOrSuper": extendsOrSuper,
+ "variance": variance,
+ };
+}
+
+class TypeVariablesBegin extends ParserAstNode {
+ final Token token;
+
+ TypeVariablesBegin(ParserAstType type, {required this.token})
+ : super("TypeVariables", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class TypeVariablesEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token endToken;
+
+ TypeVariablesEnd(ParserAstType type,
+ {required this.beginToken, required this.endToken})
+ : super("TypeVariables", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "endToken": endToken,
+ };
+}
+
+class FunctionExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ FunctionExpressionBegin(ParserAstType type, {required this.token})
+ : super("FunctionExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FunctionExpressionEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token token;
+
+ FunctionExpressionEnd(ParserAstType type,
+ {required this.beginToken, required this.token})
+ : super("FunctionExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "token": token,
+ };
+}
+
+class VariablesDeclarationBegin extends ParserAstNode {
+ final Token token;
+ final Token? lateToken;
+ final Token? varFinalOrConst;
+
+ VariablesDeclarationBegin(ParserAstType type,
+ {required this.token, this.lateToken, this.varFinalOrConst})
+ : super("VariablesDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "lateToken": lateToken,
+ "varFinalOrConst": varFinalOrConst,
+ };
+}
+
+class VariablesDeclarationEnd extends ParserAstNode {
+ final int count;
+ final Token? endToken;
+
+ VariablesDeclarationEnd(ParserAstType type,
+ {required this.count, this.endToken})
+ : super("VariablesDeclaration", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "endToken": endToken,
+ };
+}
+
+class WhileStatementBegin extends ParserAstNode {
+ final Token token;
+
+ WhileStatementBegin(ParserAstType type, {required this.token})
+ : super("WhileStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class WhileStatementEnd extends ParserAstNode {
+ final Token whileKeyword;
+ final Token endToken;
+
+ WhileStatementEnd(ParserAstType type,
+ {required this.whileKeyword, required this.endToken})
+ : super("WhileStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "whileKeyword": whileKeyword,
+ "endToken": endToken,
+ };
+}
+
+class AsOperatorTypeBegin extends ParserAstNode {
+ final Token operator;
+
+ AsOperatorTypeBegin(ParserAstType type, {required this.operator})
+ : super("AsOperatorType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operator": operator,
+ };
+}
+
+class AsOperatorTypeEnd extends ParserAstNode {
+ final Token operator;
+
+ AsOperatorTypeEnd(ParserAstType type, {required this.operator})
+ : super("AsOperatorType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operator": operator,
+ };
+}
+
+class AsOperatorHandle extends ParserAstNode {
+ final Token operator;
+
+ AsOperatorHandle(ParserAstType type, {required this.operator})
+ : super("AsOperator", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operator": operator,
+ };
+}
+
+class AssignmentExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ AssignmentExpressionHandle(ParserAstType type, {required this.token})
+ : super("AssignmentExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class BinaryExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ BinaryExpressionBegin(ParserAstType type, {required this.token})
+ : super("BinaryExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class BinaryExpressionEnd extends ParserAstNode {
+ final Token token;
+
+ BinaryExpressionEnd(ParserAstType type, {required this.token})
+ : super("BinaryExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class EndingBinaryExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ EndingBinaryExpressionHandle(ParserAstType type, {required this.token})
+ : super("EndingBinaryExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ConditionalExpressionBegin extends ParserAstNode {
+ final Token question;
+
+ ConditionalExpressionBegin(ParserAstType type, {required this.question})
+ : super("ConditionalExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "question": question,
+ };
+}
+
+class ConditionalExpressionColonHandle extends ParserAstNode {
+ ConditionalExpressionColonHandle(ParserAstType type)
+ : super("ConditionalExpressionColon", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class ConditionalExpressionEnd extends ParserAstNode {
+ final Token question;
+ final Token colon;
+
+ ConditionalExpressionEnd(ParserAstType type,
+ {required this.question, required this.colon})
+ : super("ConditionalExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "question": question,
+ "colon": colon,
+ };
+}
+
+class ConstExpressionBegin extends ParserAstNode {
+ final Token constKeyword;
+
+ ConstExpressionBegin(ParserAstType type, {required this.constKeyword})
+ : super("ConstExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "constKeyword": constKeyword,
+ };
+}
+
+class ConstExpressionEnd extends ParserAstNode {
+ final Token token;
+
+ ConstExpressionEnd(ParserAstType type, {required this.token})
+ : super("ConstExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ConstFactoryHandle extends ParserAstNode {
+ final Token constKeyword;
+
+ ConstFactoryHandle(ParserAstType type, {required this.constKeyword})
+ : super("ConstFactory", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "constKeyword": constKeyword,
+ };
+}
+
+class ForControlFlowBegin extends ParserAstNode {
+ final Token? awaitToken;
+ final Token forToken;
+
+ ForControlFlowBegin(ParserAstType type,
+ {this.awaitToken, required this.forToken})
+ : super("ForControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "awaitToken": awaitToken,
+ "forToken": forToken,
+ };
+}
+
+class ForControlFlowEnd extends ParserAstNode {
+ final Token token;
+
+ ForControlFlowEnd(ParserAstType type, {required this.token})
+ : super("ForControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ForInControlFlowEnd extends ParserAstNode {
+ final Token token;
+
+ ForInControlFlowEnd(ParserAstType type, {required this.token})
+ : super("ForInControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class IfControlFlowBegin extends ParserAstNode {
+ final Token ifToken;
+
+ IfControlFlowBegin(ParserAstType type, {required this.ifToken})
+ : super("IfControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "ifToken": ifToken,
+ };
+}
+
+class ThenControlFlowHandle extends ParserAstNode {
+ final Token token;
+
+ ThenControlFlowHandle(ParserAstType type, {required this.token})
+ : super("ThenControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ElseControlFlowHandle extends ParserAstNode {
+ final Token elseToken;
+
+ ElseControlFlowHandle(ParserAstType type, {required this.elseToken})
+ : super("ElseControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "elseToken": elseToken,
+ };
+}
+
+class IfControlFlowEnd extends ParserAstNode {
+ final Token token;
+
+ IfControlFlowEnd(ParserAstType type, {required this.token})
+ : super("IfControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class IfElseControlFlowEnd extends ParserAstNode {
+ final Token token;
+
+ IfElseControlFlowEnd(ParserAstType type, {required this.token})
+ : super("IfElseControlFlow", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class SpreadExpressionHandle extends ParserAstNode {
+ final Token spreadToken;
+
+ SpreadExpressionHandle(ParserAstType type, {required this.spreadToken})
+ : super("SpreadExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "spreadToken": spreadToken,
+ };
+}
+
+class FunctionTypedFormalParameterBegin extends ParserAstNode {
+ final Token token;
+
+ FunctionTypedFormalParameterBegin(ParserAstType type, {required this.token})
+ : super("FunctionTypedFormalParameter", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FunctionTypedFormalParameterEnd extends ParserAstNode {
+ final Token nameToken;
+ final Token? question;
+
+ FunctionTypedFormalParameterEnd(ParserAstType type,
+ {required this.nameToken, this.question})
+ : super("FunctionTypedFormalParameter", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nameToken": nameToken,
+ "question": question,
+ };
+}
+
+class IdentifierHandle extends ParserAstNode {
+ final Token token;
+ final IdentifierContext context;
+
+ IdentifierHandle(ParserAstType type,
+ {required this.token, required this.context})
+ : super("Identifier", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "context": context,
+ };
+}
+
+class ShowHideIdentifierHandle extends ParserAstNode {
+ final Token? modifier;
+ final Token identifier;
+
+ ShowHideIdentifierHandle(ParserAstType type,
+ {this.modifier, required this.identifier})
+ : super("ShowHideIdentifier", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "modifier": modifier,
+ "identifier": identifier,
+ };
+}
+
+class IndexedExpressionHandle extends ParserAstNode {
+ final Token? question;
+ final Token openSquareBracket;
+ final Token closeSquareBracket;
+
+ IndexedExpressionHandle(ParserAstType type,
+ {this.question,
+ required this.openSquareBracket,
+ required this.closeSquareBracket})
+ : super("IndexedExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "question": question,
+ "openSquareBracket": openSquareBracket,
+ "closeSquareBracket": closeSquareBracket,
+ };
+}
+
+class IsOperatorTypeBegin extends ParserAstNode {
+ final Token operator;
+
+ IsOperatorTypeBegin(ParserAstType type, {required this.operator})
+ : super("IsOperatorType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operator": operator,
+ };
+}
+
+class IsOperatorTypeEnd extends ParserAstNode {
+ final Token operator;
+
+ IsOperatorTypeEnd(ParserAstType type, {required this.operator})
+ : super("IsOperatorType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operator": operator,
+ };
+}
+
+class IsOperatorHandle extends ParserAstNode {
+ final Token isOperator;
+ final Token? not;
+
+ IsOperatorHandle(ParserAstType type, {required this.isOperator, this.not})
+ : super("IsOperator", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "isOperator": isOperator,
+ "not": not,
+ };
+}
+
+class LiteralBoolHandle extends ParserAstNode {
+ final Token token;
+
+ LiteralBoolHandle(ParserAstType type, {required this.token})
+ : super("LiteralBool", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class BreakStatementHandle extends ParserAstNode {
+ final bool hasTarget;
+ final Token breakKeyword;
+ final Token endToken;
+
+ BreakStatementHandle(ParserAstType type,
+ {required this.hasTarget,
+ required this.breakKeyword,
+ required this.endToken})
+ : super("BreakStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "hasTarget": hasTarget,
+ "breakKeyword": breakKeyword,
+ "endToken": endToken,
+ };
+}
+
+class ContinueStatementHandle extends ParserAstNode {
+ final bool hasTarget;
+ final Token continueKeyword;
+ final Token endToken;
+
+ ContinueStatementHandle(ParserAstType type,
+ {required this.hasTarget,
+ required this.continueKeyword,
+ required this.endToken})
+ : super("ContinueStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "hasTarget": hasTarget,
+ "continueKeyword": continueKeyword,
+ "endToken": endToken,
+ };
+}
+
+class EmptyStatementHandle extends ParserAstNode {
+ final Token token;
+
+ EmptyStatementHandle(ParserAstType type, {required this.token})
+ : super("EmptyStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class AssertBegin extends ParserAstNode {
+ final Token assertKeyword;
+ final Assert kind;
+
+ AssertBegin(ParserAstType type,
+ {required this.assertKeyword, required this.kind})
+ : super("Assert", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "assertKeyword": assertKeyword,
+ "kind": kind,
+ };
+}
+
+class AssertEnd extends ParserAstNode {
+ final Token assertKeyword;
+ final Assert kind;
+ final Token leftParenthesis;
+ final Token? commaToken;
+ final Token semicolonToken;
+
+ AssertEnd(ParserAstType type,
+ {required this.assertKeyword,
+ required this.kind,
+ required this.leftParenthesis,
+ this.commaToken,
+ required this.semicolonToken})
+ : super("Assert", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "assertKeyword": assertKeyword,
+ "kind": kind,
+ "leftParenthesis": leftParenthesis,
+ "commaToken": commaToken,
+ "semicolonToken": semicolonToken,
+ };
+}
+
+class LiteralDoubleHandle extends ParserAstNode {
+ final Token token;
+
+ LiteralDoubleHandle(ParserAstType type, {required this.token})
+ : super("LiteralDouble", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LiteralIntHandle extends ParserAstNode {
+ final Token token;
+
+ LiteralIntHandle(ParserAstType type, {required this.token})
+ : super("LiteralInt", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class LiteralListHandle extends ParserAstNode {
+ final int count;
+ final Token leftBracket;
+ final Token? constKeyword;
+ final Token rightBracket;
+
+ LiteralListHandle(ParserAstType type,
+ {required this.count,
+ required this.leftBracket,
+ this.constKeyword,
+ required this.rightBracket})
+ : super("LiteralList", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "leftBracket": leftBracket,
+ "constKeyword": constKeyword,
+ "rightBracket": rightBracket,
+ };
+}
+
+class LiteralSetOrMapHandle extends ParserAstNode {
+ final int count;
+ final Token leftBrace;
+ final Token? constKeyword;
+ final Token rightBrace;
+ final bool hasSetEntry;
+
+ LiteralSetOrMapHandle(ParserAstType type,
+ {required this.count,
+ required this.leftBrace,
+ this.constKeyword,
+ required this.rightBrace,
+ required this.hasSetEntry})
+ : super("LiteralSetOrMap", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "count": count,
+ "leftBrace": leftBrace,
+ "constKeyword": constKeyword,
+ "rightBrace": rightBrace,
+ "hasSetEntry": hasSetEntry,
+ };
+}
+
+class LiteralNullHandle extends ParserAstNode {
+ final Token token;
+
+ LiteralNullHandle(ParserAstType type, {required this.token})
+ : super("LiteralNull", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NativeClauseHandle extends ParserAstNode {
+ final Token nativeToken;
+ final bool hasName;
+
+ NativeClauseHandle(ParserAstType type,
+ {required this.nativeToken, required this.hasName})
+ : super("NativeClause", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "nativeToken": nativeToken,
+ "hasName": hasName,
+ };
+}
+
+class NamedArgumentHandle extends ParserAstNode {
+ final Token colon;
+
+ NamedArgumentHandle(ParserAstType type, {required this.colon})
+ : super("NamedArgument", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "colon": colon,
+ };
+}
+
+class NewExpressionBegin extends ParserAstNode {
+ final Token token;
+
+ NewExpressionBegin(ParserAstType type, {required this.token})
+ : super("NewExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NewExpressionEnd extends ParserAstNode {
+ final Token token;
+
+ NewExpressionEnd(ParserAstType type, {required this.token})
+ : super("NewExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NoArgumentsHandle extends ParserAstNode {
+ final Token token;
+
+ NoArgumentsHandle(ParserAstType type, {required this.token})
+ : super("NoArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NoConstructorReferenceContinuationAfterTypeArgumentsHandle
+ extends ParserAstNode {
+ final Token token;
+
+ NoConstructorReferenceContinuationAfterTypeArgumentsHandle(ParserAstType type,
+ {required this.token})
+ : super("NoConstructorReferenceContinuationAfterTypeArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class NoTypeHandle extends ParserAstNode {
+ final Token lastConsumed;
+
+ NoTypeHandle(ParserAstType type, {required this.lastConsumed})
+ : super("NoType", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "lastConsumed": lastConsumed,
+ };
+}
+
+class NoTypeVariablesHandle extends ParserAstNode {
+ final Token token;
+
+ NoTypeVariablesHandle(ParserAstType type, {required this.token})
+ : super("NoTypeVariables", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class OperatorHandle extends ParserAstNode {
+ final Token token;
+
+ OperatorHandle(ParserAstType type, {required this.token})
+ : super("Operator", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class SymbolVoidHandle extends ParserAstNode {
+ final Token token;
+
+ SymbolVoidHandle(ParserAstType type, {required this.token})
+ : super("SymbolVoid", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class OperatorNameHandle extends ParserAstNode {
+ final Token operatorKeyword;
+ final Token token;
+
+ OperatorNameHandle(ParserAstType type,
+ {required this.operatorKeyword, required this.token})
+ : super("OperatorName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operatorKeyword": operatorKeyword,
+ "token": token,
+ };
+}
+
+class InvalidOperatorNameHandle extends ParserAstNode {
+ final Token operatorKeyword;
+ final Token token;
+
+ InvalidOperatorNameHandle(ParserAstType type,
+ {required this.operatorKeyword, required this.token})
+ : super("InvalidOperatorName", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "operatorKeyword": operatorKeyword,
+ "token": token,
+ };
+}
+
+class ParenthesizedConditionHandle extends ParserAstNode {
+ final Token token;
+
+ ParenthesizedConditionHandle(ParserAstType type, {required this.token})
+ : super("ParenthesizedCondition", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class ParenthesizedExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ ParenthesizedExpressionHandle(ParserAstType type, {required this.token})
+ : super("ParenthesizedExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class QualifiedHandle extends ParserAstNode {
+ final Token period;
+
+ QualifiedHandle(ParserAstType type, {required this.period})
+ : super("Qualified", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "period": period,
+ };
+}
+
+class StringPartHandle extends ParserAstNode {
+ final Token token;
+
+ StringPartHandle(ParserAstType type, {required this.token})
+ : super("StringPart", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class SuperExpressionHandle extends ParserAstNode {
+ final Token token;
+ final IdentifierContext context;
+
+ SuperExpressionHandle(ParserAstType type,
+ {required this.token, required this.context})
+ : super("SuperExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "context": context,
+ };
+}
+
+class SwitchCaseBegin extends ParserAstNode {
+ final int labelCount;
+ final int expressionCount;
+ final Token firstToken;
+
+ SwitchCaseBegin(ParserAstType type,
+ {required this.labelCount,
+ required this.expressionCount,
+ required this.firstToken})
+ : super("SwitchCase", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "labelCount": labelCount,
+ "expressionCount": expressionCount,
+ "firstToken": firstToken,
+ };
+}
+
+class SwitchCaseEnd extends ParserAstNode {
+ final int labelCount;
+ final int expressionCount;
+ final Token? defaultKeyword;
+ final Token? colonAfterDefault;
+ final int statementCount;
+ final Token firstToken;
+ final Token endToken;
+
+ SwitchCaseEnd(ParserAstType type,
+ {required this.labelCount,
+ required this.expressionCount,
+ this.defaultKeyword,
+ this.colonAfterDefault,
+ required this.statementCount,
+ required this.firstToken,
+ required this.endToken})
+ : super("SwitchCase", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "labelCount": labelCount,
+ "expressionCount": expressionCount,
+ "defaultKeyword": defaultKeyword,
+ "colonAfterDefault": colonAfterDefault,
+ "statementCount": statementCount,
+ "firstToken": firstToken,
+ "endToken": endToken,
+ };
+}
+
+class ThisExpressionHandle extends ParserAstNode {
+ final Token token;
+ final IdentifierContext context;
+
+ ThisExpressionHandle(ParserAstType type,
+ {required this.token, required this.context})
+ : super("ThisExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "context": context,
+ };
+}
+
+class UnaryPostfixAssignmentExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ UnaryPostfixAssignmentExpressionHandle(ParserAstType type,
+ {required this.token})
+ : super("UnaryPostfixAssignmentExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class UnaryPrefixExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ UnaryPrefixExpressionHandle(ParserAstType type, {required this.token})
+ : super("UnaryPrefixExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class UnaryPrefixAssignmentExpressionHandle extends ParserAstNode {
+ final Token token;
+
+ UnaryPrefixAssignmentExpressionHandle(ParserAstType type,
+ {required this.token})
+ : super("UnaryPrefixAssignmentExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class FormalParameterDefaultValueExpressionBegin extends ParserAstNode {
+ FormalParameterDefaultValueExpressionBegin(ParserAstType type)
+ : super("FormalParameterDefaultValueExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class FormalParameterDefaultValueExpressionEnd extends ParserAstNode {
+ FormalParameterDefaultValueExpressionEnd(ParserAstType type)
+ : super("FormalParameterDefaultValueExpression", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class ValuedFormalParameterHandle extends ParserAstNode {
+ final Token equals;
+ final Token token;
+
+ ValuedFormalParameterHandle(ParserAstType type,
+ {required this.equals, required this.token})
+ : super("ValuedFormalParameter", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "equals": equals,
+ "token": token,
+ };
+}
+
+class FormalParameterWithoutValueHandle extends ParserAstNode {
+ final Token token;
+
+ FormalParameterWithoutValueHandle(ParserAstType type, {required this.token})
+ : super("FormalParameterWithoutValue", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class VoidKeywordHandle extends ParserAstNode {
+ final Token token;
+
+ VoidKeywordHandle(ParserAstType type, {required this.token})
+ : super("VoidKeyword", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class VoidKeywordWithTypeArgumentsHandle extends ParserAstNode {
+ final Token token;
+
+ VoidKeywordWithTypeArgumentsHandle(ParserAstType type, {required this.token})
+ : super("VoidKeywordWithTypeArguments", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class YieldStatementBegin extends ParserAstNode {
+ final Token token;
+
+ YieldStatementBegin(ParserAstType type, {required this.token})
+ : super("YieldStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class YieldStatementEnd extends ParserAstNode {
+ final Token yieldToken;
+ final Token? starToken;
+ final Token endToken;
+
+ YieldStatementEnd(ParserAstType type,
+ {required this.yieldToken, this.starToken, required this.endToken})
+ : super("YieldStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "yieldToken": yieldToken,
+ "starToken": starToken,
+ "endToken": endToken,
+ };
+}
+
+class InvalidYieldStatementEnd extends ParserAstNode {
+ final Token beginToken;
+ final Token? starToken;
+ final Token endToken;
+ final MessageCode errorCode;
+
+ InvalidYieldStatementEnd(ParserAstType type,
+ {required this.beginToken,
+ this.starToken,
+ required this.endToken,
+ required this.errorCode})
+ : super("InvalidYieldStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "beginToken": beginToken,
+ "starToken": starToken,
+ "endToken": endToken,
+ "errorCode": errorCode,
+ };
+}
+
+class RecoverableErrorHandle extends ParserAstNode {
+ final Message message;
+ final Token startToken;
+ final Token endToken;
+
+ RecoverableErrorHandle(ParserAstType type,
+ {required this.message, required this.startToken, required this.endToken})
+ : super("RecoverableError", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "message": message,
+ "startToken": startToken,
+ "endToken": endToken,
+ };
+}
+
+class ErrorTokenHandle extends ParserAstNode {
+ final ErrorToken token;
+
+ ErrorTokenHandle(ParserAstType type, {required this.token})
+ : super("ErrorToken", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class UnescapeErrorHandle extends ParserAstNode {
+ final Message message;
+ final Token location;
+ final int stringOffset;
+ final int length;
+
+ UnescapeErrorHandle(ParserAstType type,
+ {required this.message,
+ required this.location,
+ required this.stringOffset,
+ required this.length})
+ : super("UnescapeError", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "message": message,
+ "location": location,
+ "stringOffset": stringOffset,
+ "length": length,
+ };
+}
+
+class InvalidStatementHandle extends ParserAstNode {
+ final Token token;
+ final Message message;
+
+ InvalidStatementHandle(ParserAstType type,
+ {required this.token, required this.message})
+ : super("InvalidStatement", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ "message": message,
+ };
+}
+
+class ScriptHandle extends ParserAstNode {
+ final Token token;
+
+ ScriptHandle(ParserAstType type, {required this.token})
+ : super("Script", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
+
+class CommentReferenceTextHandle extends ParserAstNode {
+ final String referenceSource;
+ final int referenceOffset;
+
+ CommentReferenceTextHandle(ParserAstType type,
+ {required this.referenceSource, required this.referenceOffset})
+ : super("CommentReferenceText", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "referenceSource": referenceSource,
+ "referenceOffset": referenceOffset,
+ };
+}
+
+class CommentReferenceHandle extends ParserAstNode {
+ final Token? newKeyword;
+ final Token? prefix;
+ final Token? period;
+ final Token token;
+
+ CommentReferenceHandle(ParserAstType type,
+ {this.newKeyword, this.prefix, this.period, required this.token})
+ : super("CommentReference", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "newKeyword": newKeyword,
+ "prefix": prefix,
+ "period": period,
+ "token": token,
+ };
+}
+
+class NoCommentReferenceHandle extends ParserAstNode {
+ NoCommentReferenceHandle(ParserAstType type)
+ : super("NoCommentReference", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {};
+}
+
+class TypeArgumentApplicationHandle extends ParserAstNode {
+ final Token openAngleBracket;
+
+ TypeArgumentApplicationHandle(ParserAstType type,
+ {required this.openAngleBracket})
+ : super("TypeArgumentApplication", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "openAngleBracket": openAngleBracket,
+ };
+}
+
+class NewAsIdentifierHandle extends ParserAstNode {
+ final Token token;
+
+ NewAsIdentifierHandle(ParserAstType type, {required this.token})
+ : super("NewAsIdentifier", type);
+
+ @override
+ Map<String, Object?> get deprecatedArguments => {
+ "token": token,
+ };
+}
diff --git a/pkg/front_end/test/crashing_test_case_minimizer_impl.dart b/pkg/front_end/test/crashing_test_case_minimizer_impl.dart
index 2991e70..3d08af6 100644
--- a/pkg/front_end/test/crashing_test_case_minimizer_impl.dart
+++ b/pkg/front_end/test/crashing_test_case_minimizer_impl.dart
@@ -50,8 +50,8 @@
import 'package:front_end/src/fasta/messages.dart' show Message;
import 'package:front_end/src/fasta/source/diet_parser.dart'
show useImplicitCreationExpressionInCfe;
-import 'package:front_end/src/fasta/util/direct_parser_ast.dart';
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
+import 'package:front_end/src/fasta/util/parser_ast.dart';
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart';
import 'package:front_end/src/fasta/util/textual_outline.dart'
show textualOutline;
@@ -539,7 +539,7 @@
if (inlinableUri == uri) continue;
final Uint8List? originalBytes = _fs.data[uri];
if (originalBytes == null || originalBytes.isEmpty) continue;
- DirectParserASTContentCompilationUnitEnd ast = getAST(originalBytes,
+ CompilationUnitEnd ast = getAST(originalBytes,
includeBody: false,
includeComments: false,
enableExtensionMethods: true,
@@ -552,7 +552,7 @@
// * if that *doesn't* work and we've inserted an export,
// try converting that to an import instead.
List<_Replacement> replacements = [];
- for (DirectParserASTContentImportEnd import in ast.getImports()) {
+ for (ImportEnd import in ast.getImports()) {
Token importUriToken = import.importKeyword.next!;
Uri importUri = _getUri(importUriToken, uri);
if (inlinableUri == importUri) {
@@ -560,7 +560,7 @@
import.importKeyword.offset - 1, import.semicolon!.offset + 1));
}
}
- for (DirectParserASTContentExportEnd export in ast.getExports()) {
+ for (ExportEnd export in ast.getExports()) {
Token exportUriToken = export.exportKeyword.next!;
Uri exportUri = _getUri(exportUriToken, uri);
if (inlinableUri == exportUri) {
@@ -585,10 +585,10 @@
includeComments: false,
enableExtensionMethods: true,
enableNonNullable: _isUriNnbd(uri));
- for (DirectParserASTContentImportEnd import in ast.getImports()) {
+ for (ImportEnd import in ast.getImports()) {
offsetOfLast = max(offsetOfLast, import.semicolon!.offset + 1);
}
- for (DirectParserASTContentExportEnd export in ast.getExports()) {
+ for (ExportEnd export in ast.getExports()) {
offsetOfLast = max(offsetOfLast, export.semicolon.offset + 1);
}
@@ -686,17 +686,17 @@
Uint8List _rewriteImportsExportsToUri(
Uint8List oldData, Uri newUri, Uri oldUri, bool nnbd,
{bool convertExportToImport: false}) {
- DirectParserASTContentCompilationUnitEnd ast = getAST(oldData,
+ CompilationUnitEnd ast = getAST(oldData,
includeBody: false,
includeComments: false,
enableExtensionMethods: true,
enableNonNullable: nnbd);
List<_Replacement> replacements = [];
- for (DirectParserASTContentImportEnd import in ast.getImports()) {
+ for (ImportEnd import in ast.getImports()) {
_rewriteImportsExportsToUriInternal(
import.importKeyword.next!, oldUri, replacements, newUri);
}
- for (DirectParserASTContentExportEnd export in ast.getExports()) {
+ for (ExportEnd export in ast.getExports()) {
if (convertExportToImport) {
replacements.add(new _Replacement(
export.exportKeyword.offset - 1,
@@ -1254,7 +1254,7 @@
if (!uri.toString().endsWith(".dart")) return;
Uint8List data = _fs.data[uri]!;
- DirectParserASTContentCompilationUnitEnd ast = getAST(data,
+ CompilationUnitEnd ast = getAST(data,
includeBody: true,
includeComments: false,
enableExtensionMethods: true,
@@ -1263,64 +1263,60 @@
_CompilationHelperClass helper = new _CompilationHelperClass(data);
// Try to remove top level things one at a time.
- for (DirectParserASTContent child in ast.children!) {
+ for (ParserAstNode child in ast.children!) {
bool shouldCompile = false;
String what = "";
if (child.isClass()) {
- DirectParserASTContentClassDeclarationEnd cls = child.asClass();
+ ClassDeclarationEnd cls = child.asClass();
helper.replacements.add(new _Replacement(
cls.beginToken.offset - 1, cls.endToken.offset + 1));
shouldCompile = true;
what = "class";
} else if (child.isMixinDeclaration()) {
- DirectParserASTContentMixinDeclarationEnd decl =
- child.asMixinDeclaration();
+ MixinDeclarationEnd decl = child.asMixinDeclaration();
helper.replacements.add(new _Replacement(
decl.mixinKeyword.offset - 1, decl.endToken.offset + 1));
shouldCompile = true;
what = "mixin";
} else if (child.isNamedMixinDeclaration()) {
- DirectParserASTContentNamedMixinApplicationEnd decl =
- child.asNamedMixinDeclaration();
+ NamedMixinApplicationEnd decl = child.asNamedMixinDeclaration();
helper.replacements.add(
new _Replacement(decl.begin.offset - 1, decl.endToken.offset + 1));
shouldCompile = true;
what = "named mixin";
} else if (child.isExtension()) {
- DirectParserASTContentExtensionDeclarationEnd decl =
- child.asExtension();
+ ExtensionDeclarationEnd decl = child.asExtension();
helper.replacements.add(new _Replacement(
decl.extensionKeyword.offset - 1, decl.endToken.offset + 1));
shouldCompile = true;
what = "extension";
} else if (child.isTopLevelFields()) {
- DirectParserASTContentTopLevelFieldsEnd decl = child.asTopLevelFields();
+ TopLevelFieldsEnd decl = child.asTopLevelFields();
helper.replacements.add(new _Replacement(
decl.beginToken.offset - 1, decl.endToken.offset + 1));
shouldCompile = true;
what = "toplevel fields";
} else if (child.isTopLevelMethod()) {
- DirectParserASTContentTopLevelMethodEnd decl = child.asTopLevelMethod();
+ TopLevelMethodEnd decl = child.asTopLevelMethod();
helper.replacements.add(new _Replacement(
decl.beginToken.offset - 1, decl.endToken.offset + 1));
shouldCompile = true;
what = "toplevel method";
} else if (child.isEnum()) {
- DirectParserASTContentEnumEnd decl = child.asEnum();
+ EnumEnd decl = child.asEnum();
helper.replacements.add(new _Replacement(
decl.enumKeyword.offset - 1, decl.leftBrace.endGroup!.offset + 1));
shouldCompile = true;
what = "enum";
} else if (child.isTypedef()) {
- DirectParserASTContentTypedefEnd decl = child.asTypedef();
+ TypedefEnd decl = child.asTypedef();
helper.replacements.add(new _Replacement(
decl.typedefKeyword.offset - 1, decl.endToken.offset + 1));
shouldCompile = true;
what = "typedef";
} else if (child.isMetadata()) {
- DirectParserASTContentMetadataStarEnd decl = child.asMetadata();
- List<DirectParserASTContentMetadataEnd> metadata =
- decl.getMetadataEntries();
+ MetadataStarEnd decl = child.asMetadata();
+ List<MetadataEnd> metadata = decl.getMetadataEntries();
if (metadata.isNotEmpty) {
helper.replacements.add(new _Replacement(
metadata.first.beginToken.offset - 1,
@@ -1329,31 +1325,31 @@
}
what = "metadata";
} else if (child.isImport()) {
- DirectParserASTContentImportEnd decl = child.asImport();
+ ImportEnd decl = child.asImport();
helper.replacements.add(new _Replacement(
decl.importKeyword.offset - 1, decl.semicolon!.offset + 1));
shouldCompile = true;
what = "import";
} else if (child.isExport()) {
- DirectParserASTContentExportEnd decl = child.asExport();
+ ExportEnd decl = child.asExport();
helper.replacements.add(new _Replacement(
decl.exportKeyword.offset - 1, decl.semicolon.offset + 1));
shouldCompile = true;
what = "export";
} else if (child.isLibraryName()) {
- DirectParserASTContentLibraryNameEnd decl = child.asLibraryName();
+ LibraryNameEnd decl = child.asLibraryName();
helper.replacements.add(new _Replacement(
decl.libraryKeyword.offset - 1, decl.semicolon.offset + 1));
shouldCompile = true;
what = "library name";
} else if (child.isPart()) {
- DirectParserASTContentPartEnd decl = child.asPart();
+ PartEnd decl = child.asPart();
helper.replacements.add(new _Replacement(
decl.partKeyword.offset - 1, decl.semicolon.offset + 1));
shouldCompile = true;
what = "part";
} else if (child.isPartOf()) {
- DirectParserASTContentPartOfEnd decl = child.asPartOf();
+ PartOfEnd decl = child.asPartOf();
helper.replacements.add(new _Replacement(
decl.partKeyword.offset - 1, decl.semicolon.offset + 1));
shouldCompile = true;
@@ -1373,8 +1369,8 @@
if (!success) {
if (child.isClass()) {
// Also try to remove all content of the class.
- DirectParserASTContentClassDeclarationEnd decl = child.asClass();
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd body =
+ ClassDeclarationEnd decl = child.asClass();
+ ClassOrMixinOrExtensionBodyEnd body =
decl.getClassOrMixinOrExtensionBody();
if (body.beginToken.offset + 2 < body.endToken.offset) {
helper.replacements.add(new _Replacement(
@@ -1387,11 +1383,11 @@
if (!success) {
// Also try to remove members one at a time.
- for (DirectParserASTContent child in body.children!) {
+ for (ParserAstNode child in body.children!) {
shouldCompile = false;
- if (child is DirectParserASTContentMemberEnd) {
+ if (child is MemberEnd) {
if (child.isClassConstructor()) {
- DirectParserASTContentClassConstructorEnd memberDecl =
+ ClassConstructorEnd memberDecl =
child.getClassConstructor();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
@@ -1399,23 +1395,21 @@
what = "class constructor";
shouldCompile = true;
} else if (child.isClassFields()) {
- DirectParserASTContentClassFieldsEnd memberDecl =
- child.getClassFields();
+ ClassFieldsEnd memberDecl = child.getClassFields();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
memberDecl.endToken.offset + 1));
what = "class fields";
shouldCompile = true;
} else if (child.isClassMethod()) {
- DirectParserASTContentClassMethodEnd memberDecl =
- child.getClassMethod();
+ ClassMethodEnd memberDecl = child.getClassMethod();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
memberDecl.endToken.offset + 1));
what = "class method";
shouldCompile = true;
} else if (child.isClassFactoryMethod()) {
- DirectParserASTContentClassFactoryMethodEnd memberDecl =
+ ClassFactoryMethodEnd memberDecl =
child.getClassFactoryMethod();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
@@ -1427,10 +1421,8 @@
continue;
}
} else if (child.isMetadata()) {
- DirectParserASTContentMetadataStarEnd decl =
- child.asMetadata();
- List<DirectParserASTContentMetadataEnd> metadata =
- decl.getMetadataEntries();
+ MetadataStarEnd decl = child.asMetadata();
+ List<MetadataEnd> metadata = decl.getMetadataEntries();
if (metadata.isNotEmpty) {
helper.replacements.add(new _Replacement(
metadata.first.beginToken.offset - 1,
@@ -1444,8 +1436,8 @@
helper, uri, initialComponent, what);
if (helper.shouldQuit) return;
if (!success) {
- DirectParserASTContentBlockFunctionBodyEnd? decl;
- if (child is DirectParserASTContentMemberEnd) {
+ BlockFunctionBodyEnd? decl;
+ if (child is MemberEnd) {
if (child.isClassMethod()) {
decl = child.getClassMethod().getBlockFunctionBody();
} else if (child.isClassConstructor()) {
@@ -1501,9 +1493,8 @@
}
} else if (child.isMixinDeclaration()) {
// Also try to remove all content of the mixin.
- DirectParserASTContentMixinDeclarationEnd decl =
- child.asMixinDeclaration();
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd body =
+ MixinDeclarationEnd decl = child.asMixinDeclaration();
+ ClassOrMixinOrExtensionBodyEnd body =
decl.getClassOrMixinOrExtensionBody();
if (body.beginToken.offset + 2 < body.endToken.offset) {
helper.replacements.add(new _Replacement(
@@ -1516,11 +1507,11 @@
if (!success) {
// Also try to remove members one at a time.
- for (DirectParserASTContent child in body.children!) {
+ for (ParserAstNode child in body.children!) {
shouldCompile = false;
- if (child is DirectParserASTContentMemberEnd) {
+ if (child is MemberEnd) {
if (child.isMixinConstructor()) {
- DirectParserASTContentMixinConstructorEnd memberDecl =
+ MixinConstructorEnd memberDecl =
child.getMixinConstructor();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
@@ -1528,23 +1519,21 @@
what = "mixin constructor";
shouldCompile = true;
} else if (child.isMixinFields()) {
- DirectParserASTContentMixinFieldsEnd memberDecl =
- child.getMixinFields();
+ MixinFieldsEnd memberDecl = child.getMixinFields();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
memberDecl.endToken.offset + 1));
what = "mixin fields";
shouldCompile = true;
} else if (child.isMixinMethod()) {
- DirectParserASTContentMixinMethodEnd memberDecl =
- child.getMixinMethod();
+ MixinMethodEnd memberDecl = child.getMixinMethod();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
memberDecl.endToken.offset + 1));
what = "mixin method";
shouldCompile = true;
} else if (child.isMixinFactoryMethod()) {
- DirectParserASTContentMixinFactoryMethodEnd memberDecl =
+ MixinFactoryMethodEnd memberDecl =
child.getMixinFactoryMethod();
helper.replacements.add(new _Replacement(
memberDecl.beginToken.offset - 1,
@@ -1556,10 +1545,8 @@
continue;
}
} else if (child.isMetadata()) {
- DirectParserASTContentMetadataStarEnd decl =
- child.asMetadata();
- List<DirectParserASTContentMetadataEnd> metadata =
- decl.getMetadataEntries();
+ MetadataStarEnd decl = child.asMetadata();
+ List<MetadataEnd> metadata = decl.getMetadataEntries();
if (metadata.isNotEmpty) {
helper.replacements.add(new _Replacement(
metadata.first.beginToken.offset - 1,
@@ -1573,8 +1560,8 @@
helper, uri, initialComponent, what);
if (helper.shouldQuit) return;
if (!success) {
- DirectParserASTContentBlockFunctionBodyEnd? decl;
- if (child is DirectParserASTContentMemberEnd) {
+ BlockFunctionBodyEnd? decl;
+ if (child is MemberEnd) {
if (child.isClassMethod()) {
decl = child.getClassMethod().getBlockFunctionBody();
} else if (child.isClassConstructor()) {
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 7a4b070..c97e664 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -85,10 +85,10 @@
import 'package:front_end/src/fasta/kernel/verifier.dart' show verifyComponent;
-import 'package:front_end/src/fasta/util/direct_parser_ast.dart'
- show DirectParserASTContentVisitor, getAST;
+import 'package:front_end/src/fasta/util/parser_ast.dart'
+ show ParserAstVisitor, getAST;
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart';
import 'package:kernel/ast.dart'
show
@@ -1475,13 +1475,13 @@
enum FuzzSorterState { nonSortable, importExportSortable, sortableRest }
-class FuzzAstVisitorSorter extends DirectParserASTContentVisitor {
+class FuzzAstVisitorSorter extends ParserAstVisitor {
final Uint8List bytes;
final String asString;
final bool nnbd;
FuzzAstVisitorSorter(this.bytes, this.nnbd) : asString = utf8.decode(bytes) {
- DirectParserASTContentCompilationUnitEnd ast = getAST(bytes,
+ CompilationUnitEnd ast = getAST(bytes,
includeBody: false,
includeComments: true,
enableExtensionMethods: true,
@@ -1590,48 +1590,45 @@
}
@override
- void visitExport(DirectParserASTContentExportEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitExport(ExportEnd node, Token startInclusive, Token endInclusive) {
handleData(
FuzzSorterState.importExportSortable, startInclusive, endInclusive);
}
@override
- void visitImport(DirectParserASTContentImportEnd node, Token startInclusive,
- Token? endInclusive) {
+ void visitImport(ImportEnd node, Token startInclusive, Token? endInclusive) {
handleData(
FuzzSorterState.importExportSortable, startInclusive, endInclusive!);
}
@override
- void visitClass(DirectParserASTContentClassDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitClass(
+ ClassDeclarationEnd node, Token startInclusive, Token endInclusive) {
// TODO(jensj): Possibly sort stuff inside of this too.
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitEnum(DirectParserASTContentEnumEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitEnum(EnumEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitExtension(DirectParserASTContentExtensionDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitExtension(
+ ExtensionDeclarationEnd node, Token startInclusive, Token endInclusive) {
// TODO(jensj): Possibly sort stuff inside of this too.
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitLibraryName(DirectParserASTContentLibraryNameEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitLibraryName(
+ LibraryNameEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.nonSortable, startInclusive, endInclusive);
}
@override
- void visitMetadata(DirectParserASTContentMetadataEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitMetadata(
+ MetadataEnd node, Token startInclusive, Token endInclusive) {
if (metadataStart == null) {
metadataStart = startInclusive;
metadataEndInclusive = endInclusive;
@@ -1641,46 +1638,43 @@
}
@override
- void visitMixin(DirectParserASTContentMixinDeclarationEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitMixin(
+ MixinDeclarationEnd node, Token startInclusive, Token endInclusive) {
// TODO(jensj): Possibly sort stuff inside of this too.
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitNamedMixin(DirectParserASTContentNamedMixinApplicationEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitNamedMixin(
+ NamedMixinApplicationEnd node, Token startInclusive, Token endInclusive) {
// TODO(jensj): Possibly sort stuff inside of this too.
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitPart(DirectParserASTContentPartEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitPart(PartEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.nonSortable, startInclusive, endInclusive);
}
@override
- void visitPartOf(DirectParserASTContentPartOfEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitPartOf(PartOfEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.nonSortable, startInclusive, endInclusive);
}
@override
- void visitTopLevelFields(DirectParserASTContentTopLevelFieldsEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitTopLevelFields(
+ TopLevelFieldsEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitTopLevelMethod(DirectParserASTContentTopLevelMethodEnd node,
- Token startInclusive, Token endInclusive) {
+ void visitTopLevelMethod(
+ TopLevelMethodEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
@override
- void visitTypedef(DirectParserASTContentTypedefEnd node, Token startInclusive,
- Token endInclusive) {
+ void visitTypedef(TypedefEnd node, Token startInclusive, Token endInclusive) {
handleData(FuzzSorterState.sortableRest, startInclusive, endInclusive);
}
}
diff --git a/pkg/front_end/test/fasta/util/direct_parser_ast_test.dart b/pkg/front_end/test/fasta/util/parser_ast_test.dart
similarity index 74%
rename from pkg/front_end/test/fasta/util/direct_parser_ast_test.dart
rename to pkg/front_end/test/fasta/util/parser_ast_test.dart
index 08f036e..4d74a08 100644
--- a/pkg/front_end/test/fasta/util/direct_parser_ast_test.dart
+++ b/pkg/front_end/test/fasta/util/parser_ast_test.dart
@@ -5,8 +5,8 @@
import 'dart:convert';
import 'dart:io';
-import 'package:front_end/src/fasta/util/direct_parser_ast.dart';
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
+import 'package:front_end/src/fasta/util/parser_ast.dart';
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart';
late Uri base;
@@ -33,13 +33,13 @@
try {
processed++;
List<int> data = entry.readAsBytesSync();
- DirectParserASTContentCompilationUnitEnd ast = getAST(data,
+ CompilationUnitEnd ast = getAST(data,
includeBody: true,
includeComments: true,
enableExtensionMethods: true,
enableNonNullable: false);
splitIntoChunks(ast, data);
- for (DirectParserASTContent child in ast.children!) {
+ for (ParserAstNode child in ast.children!) {
if (child.isClass()) {
splitIntoChunks(
child.asClass().getClassOrMixinOrExtensionBody(), data);
@@ -61,9 +61,9 @@
void testTopLevelStuff() {
File file = new File.fromUri(
- base.resolve("direct_parser_ast_test_data/top_level_stuff.txt"));
+ base.resolve("parser_ast_test_data/top_level_stuff.txt"));
List<int> data = file.readAsBytesSync();
- DirectParserASTContentCompilationUnitEnd ast = getAST(data,
+ CompilationUnitEnd ast = getAST(data,
includeBody: true,
includeComments: true,
enableExtensionMethods: true,
@@ -117,7 +117,7 @@
expect("@AnnotationAtEOF", foundChunks[21]);
file = new File.fromUri(
- base.resolve("direct_parser_ast_test_data/top_level_stuff_helper.txt"));
+ base.resolve("parser_ast_test_data/top_level_stuff_helper.txt"));
data = file.readAsBytesSync();
ast = getAST(data,
includeBody: true,
@@ -128,8 +128,8 @@
expect(1, foundChunks.length);
expect("part of 'top_level_stuff.txt';", foundChunks[0]);
- file = new File.fromUri(
- base.resolve("direct_parser_ast_test_data/script_handle.txt"));
+ file =
+ new File.fromUri(base.resolve("parser_ast_test_data/script_handle.txt"));
data = file.readAsBytesSync();
ast = getAST(data,
includeBody: true,
@@ -142,30 +142,26 @@
}
void testClassStuff() {
- File file =
- new File.fromUri(base.resolve("direct_parser_ast_test_data/class.txt"));
+ File file = new File.fromUri(base.resolve("parser_ast_test_data/class.txt"));
List<int> data = file.readAsBytesSync();
- DirectParserASTContentCompilationUnitEnd ast = getAST(data,
+ CompilationUnitEnd ast = getAST(data,
includeBody: true,
includeComments: true,
enableExtensionMethods: true,
enableNonNullable: false);
- List<DirectParserASTContentTopLevelDeclarationEnd> classes = ast.getClasses();
+ List<TopLevelDeclarationEnd> classes = ast.getClasses();
expect(2, classes.length);
- DirectParserASTContentTopLevelDeclarationEnd decl = classes[0];
- DirectParserASTContentClassDeclarationEnd cls = decl.asClass();
+ TopLevelDeclarationEnd decl = classes[0];
+ ClassDeclarationEnd cls = decl.asClass();
expect("Foo", decl.getIdentifier().token.lexeme);
- DirectParserASTContentClassExtendsHandle extendsDecl = cls.getClassExtends();
+ ClassExtendsHandle extendsDecl = cls.getClassExtends();
expect("extends", extendsDecl.extendsKeyword?.lexeme);
- DirectParserASTContentClassOrMixinImplementsHandle implementsDecl =
- cls.getClassImplements();
+ ClassOrMixinImplementsHandle implementsDecl = cls.getClassImplements();
expect("implements", implementsDecl.implementsKeyword?.lexeme);
- DirectParserASTContentClassWithClauseHandle? withClauseDecl =
- cls.getClassWithClause();
+ ClassWithClauseHandle? withClauseDecl = cls.getClassWithClause();
expect(null, withClauseDecl);
- List<DirectParserASTContentMemberEnd> members =
- cls.getClassOrMixinOrExtensionBody().getMembers();
+ List<MemberEnd> members = cls.getClassOrMixinOrExtensionBody().getMembers();
expect(5, members.length);
expect(members[0].isClassConstructor(), true);
expect(members[1].isClassFactoryMethod(), true);
@@ -208,8 +204,7 @@
}""", chunks[0]);
// TODO: Move (something like) this into the check-all-files-thing.
- for (DirectParserASTContentMemberEnd member
- in cls.getClassOrMixinOrExtensionBody().getMembers()) {
+ for (MemberEnd member in cls.getClassOrMixinOrExtensionBody().getMembers()) {
if (member.isClassConstructor()) continue;
if (member.isClassFactoryMethod()) continue;
if (member.isClassFields()) continue;
@@ -231,24 +226,21 @@
}
void testMixinStuff() {
- File file =
- new File.fromUri(base.resolve("direct_parser_ast_test_data/mixin.txt"));
+ File file = new File.fromUri(base.resolve("parser_ast_test_data/mixin.txt"));
List<int> data = file.readAsBytesSync();
- DirectParserASTContentCompilationUnitEnd ast = getAST(data,
+ CompilationUnitEnd ast = getAST(data,
includeBody: true,
includeComments: true,
enableExtensionMethods: true,
enableNonNullable: false);
- List<DirectParserASTContentTopLevelDeclarationEnd> mixins =
- ast.getMixinDeclarations();
+ List<TopLevelDeclarationEnd> mixins = ast.getMixinDeclarations();
expect(mixins.length, 1);
- DirectParserASTContentTopLevelDeclarationEnd decl = mixins[0];
- DirectParserASTContentMixinDeclarationEnd mxn = decl.asMixinDeclaration();
+ TopLevelDeclarationEnd decl = mixins[0];
+ MixinDeclarationEnd mxn = decl.asMixinDeclaration();
expect("B", decl.getIdentifier().token.lexeme);
- List<DirectParserASTContentMemberEnd> members =
- mxn.getClassOrMixinOrExtensionBody().getMembers();
+ List<MemberEnd> members = mxn.getClassOrMixinOrExtensionBody().getMembers();
expect(4, members.length);
expect(members[0].isMixinFields(), true);
expect(members[1].isMixinMethod(), true);
@@ -274,28 +266,27 @@
if (expect != actual) throw "Expected '$expect' but got '$actual'";
}
-List<String> splitIntoChunks(DirectParserASTContent ast, List<int> data) {
+List<String> splitIntoChunks(ParserAstNode ast, List<int> data) {
List<String> foundChunks = [];
- for (DirectParserASTContent child in ast.children!) {
+ for (ParserAstNode child in ast.children!) {
foundChunks.addAll(processItem(child, data));
}
return foundChunks;
}
-List<String> processItem(DirectParserASTContent item, List<int> data) {
+List<String> processItem(ParserAstNode item, List<int> data) {
if (item.isClass()) {
- DirectParserASTContentClassDeclarationEnd cls = item.asClass();
+ ClassDeclarationEnd cls = item.asClass();
return [
getCutContent(data, cls.beginToken.offset,
cls.endToken.offset + cls.endToken.length)
];
} else if (item.isMetadata()) {
- DirectParserASTContentMetadataStarEnd metadataStar = item.asMetadata();
- List<DirectParserASTContentMetadataEnd> entries =
- metadataStar.getMetadataEntries();
+ MetadataStarEnd metadataStar = item.asMetadata();
+ List<MetadataEnd> entries = metadataStar.getMetadataEntries();
if (entries.isNotEmpty) {
List<String> chunks = [];
- for (DirectParserASTContentMetadataEnd metadata in entries) {
+ for (MetadataEnd metadata in entries) {
chunks.add(getCutContent(
data, metadata.beginToken.offset, metadata.endToken.offset));
}
@@ -303,49 +294,49 @@
}
return const [];
} else if (item.isImport()) {
- DirectParserASTContentImportEnd import = item.asImport();
+ ImportEnd import = item.asImport();
return [
getCutContent(data, import.importKeyword.offset,
import.semicolon!.offset + import.semicolon!.length)
];
} else if (item.isExport()) {
- DirectParserASTContentExportEnd export = item.asExport();
+ ExportEnd export = item.asExport();
return [
getCutContent(data, export.exportKeyword.offset,
export.semicolon.offset + export.semicolon.length)
];
} else if (item.isLibraryName()) {
- DirectParserASTContentLibraryNameEnd name = item.asLibraryName();
+ LibraryNameEnd name = item.asLibraryName();
return [
getCutContent(data, name.libraryKeyword.offset,
name.semicolon.offset + name.semicolon.length)
];
} else if (item.isPart()) {
- DirectParserASTContentPartEnd part = item.asPart();
+ PartEnd part = item.asPart();
return [
getCutContent(data, part.partKeyword.offset,
part.semicolon.offset + part.semicolon.length)
];
} else if (item.isPartOf()) {
- DirectParserASTContentPartOfEnd partOf = item.asPartOf();
+ PartOfEnd partOf = item.asPartOf();
return [
getCutContent(data, partOf.partKeyword.offset,
partOf.semicolon.offset + partOf.semicolon.length)
];
} else if (item.isTopLevelMethod()) {
- DirectParserASTContentTopLevelMethodEnd method = item.asTopLevelMethod();
+ TopLevelMethodEnd method = item.asTopLevelMethod();
return [
getCutContent(data, method.beginToken.offset,
method.endToken.offset + method.endToken.length)
];
} else if (item.isTopLevelFields()) {
- DirectParserASTContentTopLevelFieldsEnd fields = item.asTopLevelFields();
+ TopLevelFieldsEnd fields = item.asTopLevelFields();
return [
getCutContent(data, fields.beginToken.offset,
fields.endToken.offset + fields.endToken.length)
];
} else if (item.isEnum()) {
- DirectParserASTContentEnumEnd declaration = item.asEnum();
+ EnumEnd declaration = item.asEnum();
return [
getCutContent(
data,
@@ -354,114 +345,107 @@
declaration.leftBrace.endGroup!.length)
];
} else if (item.isMixinDeclaration()) {
- DirectParserASTContentMixinDeclarationEnd mixinDecl =
- item.asMixinDeclaration();
+ MixinDeclarationEnd mixinDecl = item.asMixinDeclaration();
return [
getCutContent(data, mixinDecl.mixinKeyword.offset,
mixinDecl.endToken.offset + mixinDecl.endToken.length)
];
} else if (item.isNamedMixinDeclaration()) {
- DirectParserASTContentNamedMixinApplicationEnd namedMixinDecl =
- item.asNamedMixinDeclaration();
+ NamedMixinApplicationEnd namedMixinDecl = item.asNamedMixinDeclaration();
return [
getCutContent(data, namedMixinDecl.begin.offset,
namedMixinDecl.endToken.offset + namedMixinDecl.endToken.length)
];
} else if (item.isTypedef()) {
- DirectParserASTContentTypedefEnd typedefDecl = item.asTypedef();
+ TypedefEnd typedefDecl = item.asTypedef();
return [
getCutContent(data, typedefDecl.typedefKeyword.offset,
typedefDecl.endToken.offset + typedefDecl.endToken.length)
];
} else if (item.isExtension()) {
- DirectParserASTContentExtensionDeclarationEnd extensionDecl =
- item.asExtension();
+ ExtensionDeclarationEnd extensionDecl = item.asExtension();
return [
getCutContent(data, extensionDecl.extensionKeyword.offset,
extensionDecl.endToken.offset + extensionDecl.endToken.length)
];
} else if (item.isScript()) {
- DirectParserASTContentScriptHandle script = item.asScript();
+ ScriptHandle script = item.asScript();
return [
getCutContent(
data, script.token.offset, script.token.offset + script.token.length)
];
- } else if (item is DirectParserASTContentMemberEnd) {
+ } else if (item is MemberEnd) {
if (item.isClassConstructor()) {
- DirectParserASTContentClassConstructorEnd decl =
- item.getClassConstructor();
+ ClassConstructorEnd decl = item.getClassConstructor();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isClassFactoryMethod()) {
- DirectParserASTContentClassFactoryMethodEnd decl =
- item.getClassFactoryMethod();
+ ClassFactoryMethodEnd decl = item.getClassFactoryMethod();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isClassMethod()) {
- DirectParserASTContentClassMethodEnd decl = item.getClassMethod();
+ ClassMethodEnd decl = item.getClassMethod();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isClassFields()) {
- DirectParserASTContentClassFieldsEnd decl = item.getClassFields();
+ ClassFieldsEnd decl = item.getClassFields();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isClassFields()) {
- DirectParserASTContentClassFieldsEnd decl = item.getClassFields();
+ ClassFieldsEnd decl = item.getClassFields();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isMixinFields()) {
- DirectParserASTContentMixinFieldsEnd decl = item.getMixinFields();
+ MixinFieldsEnd decl = item.getMixinFields();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isMixinMethod()) {
- DirectParserASTContentMixinMethodEnd decl = item.getMixinMethod();
+ MixinMethodEnd decl = item.getMixinMethod();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isMixinFactoryMethod()) {
- DirectParserASTContentMixinFactoryMethodEnd decl =
- item.getMixinFactoryMethod();
+ MixinFactoryMethodEnd decl = item.getMixinFactoryMethod();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else if (item.isMixinConstructor()) {
- DirectParserASTContentMixinConstructorEnd decl =
- item.getMixinConstructor();
+ MixinConstructorEnd decl = item.getMixinConstructor();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else {
- if (item.type == DirectParserASTType.BEGIN) return const [];
- if (item.type == DirectParserASTType.HANDLE) return const [];
+ if (item.type == ParserAstType.BEGIN) return const [];
+ if (item.type == ParserAstType.HANDLE) return const [];
if (item.isClassRecoverableError()) return const [];
if (item.isRecoverableError()) return const [];
if (item.isRecoverImport()) return const [];
throw "Unknown: $item --- ${item.children}";
}
} else if (item.isFunctionBody()) {
- DirectParserASTContentBlockFunctionBodyEnd decl = item.asFunctionBody();
+ BlockFunctionBodyEnd decl = item.asFunctionBody();
return [
getCutContent(data, decl.beginToken.offset,
decl.endToken.offset + decl.endToken.length)
];
} else {
- if (item.type == DirectParserASTType.BEGIN) return const [];
- if (item.type == DirectParserASTType.HANDLE) return const [];
+ if (item.type == ParserAstType.BEGIN) return const [];
+ if (item.type == ParserAstType.HANDLE) return const [];
if (item.isInvalidTopLevelDeclaration()) return const [];
if (item.isRecoverableError()) return const [];
if (item.isRecoverImport()) return const [];
diff --git a/pkg/front_end/test/fasta/util/direct_parser_ast_test_data/class.txt b/pkg/front_end/test/fasta/util/parser_ast_test_data/class.txt
similarity index 100%
rename from pkg/front_end/test/fasta/util/direct_parser_ast_test_data/class.txt
rename to pkg/front_end/test/fasta/util/parser_ast_test_data/class.txt
diff --git a/pkg/front_end/test/fasta/util/direct_parser_ast_test_data/mixin.txt b/pkg/front_end/test/fasta/util/parser_ast_test_data/mixin.txt
similarity index 100%
rename from pkg/front_end/test/fasta/util/direct_parser_ast_test_data/mixin.txt
rename to pkg/front_end/test/fasta/util/parser_ast_test_data/mixin.txt
diff --git a/pkg/front_end/test/fasta/util/direct_parser_ast_test_data/script_handle.txt b/pkg/front_end/test/fasta/util/parser_ast_test_data/script_handle.txt
similarity index 100%
rename from pkg/front_end/test/fasta/util/direct_parser_ast_test_data/script_handle.txt
rename to pkg/front_end/test/fasta/util/parser_ast_test_data/script_handle.txt
diff --git a/pkg/front_end/test/fasta/util/direct_parser_ast_test_data/top_level_stuff.txt b/pkg/front_end/test/fasta/util/parser_ast_test_data/top_level_stuff.txt
similarity index 100%
rename from pkg/front_end/test/fasta/util/direct_parser_ast_test_data/top_level_stuff.txt
rename to pkg/front_end/test/fasta/util/parser_ast_test_data/top_level_stuff.txt
diff --git a/pkg/front_end/test/fasta/util/direct_parser_ast_test_data/top_level_stuff_helper.txt b/pkg/front_end/test/fasta/util/parser_ast_test_data/top_level_stuff_helper.txt
similarity index 100%
rename from pkg/front_end/test/fasta/util/direct_parser_ast_test_data/top_level_stuff_helper.txt
rename to pkg/front_end/test/fasta/util/parser_ast_test_data/top_level_stuff_helper.txt
diff --git a/pkg/front_end/test/generated_files_up_to_date_git_test.dart b/pkg/front_end/test/generated_files_up_to_date_git_test.dart
index 78cdefb..89665f6 100644
--- a/pkg/front_end/test/generated_files_up_to_date_git_test.dart
+++ b/pkg/front_end/test/generated_files_up_to_date_git_test.dart
@@ -7,8 +7,8 @@
import "../tool/_fasta/generate_messages.dart" as generateMessages;
import "../tool/_fasta/generate_experimental_flags.dart"
as generateExperimentalFlags;
-import "../tool/_fasta/direct_parser_ast_helper_creator.dart"
- as generateDirectParserAstHelper;
+import "../tool/_fasta/parser_ast_helper_creator.dart"
+ as generateParserAstHelper;
import "parser_test_listener_creator.dart" as generateParserTestListener;
import "parser_test_parser_creator.dart" as generateParserTestParser;
import '../tool/ast_model.dart';
@@ -45,11 +45,10 @@
}
void directParserAstHelper() {
- Uri generatedFile =
- generateDirectParserAstHelper.computeAstHelperUri(repoDir);
- String generated = generateDirectParserAstHelper.generateAstHelper(repoDir);
+ Uri generatedFile = generateParserAstHelper.computeAstHelperUri(repoDir);
+ String generated = generateParserAstHelper.generateAstHelper(repoDir);
check(generated, generatedFile,
- "dart pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart");
+ "dart pkg/front_end/tool/_fasta/parser_ast_helper_creator.dart");
}
Future<void> astEquivalence(AstModel astModel) async {
diff --git a/pkg/front_end/test/parser_suite.dart b/pkg/front_end/test/parser_suite.dart
index cb24755..5910e30 100644
--- a/pkg/front_end/test/parser_suite.dart
+++ b/pkg/front_end/test/parser_suite.dart
@@ -15,7 +15,7 @@
import 'package:front_end/src/fasta/source/diet_parser.dart'
show useImplicitCreationExpressionInCfe;
-import 'package:front_end/src/fasta/util/direct_parser_ast.dart' show getAST;
+import 'package:front_end/src/fasta/util/parser_ast.dart' show getAST;
import 'package:_fe_analyzer_shared/src/parser/parser.dart'
show Parser, lengthOfSpan;
@@ -29,8 +29,8 @@
import 'package:front_end/src/fasta/source/stack_listener_impl.dart'
show offsetForToken;
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart'
- show DirectParserASTContent;
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart'
+ show ParserAstNode;
import 'package:kernel/ast.dart';
@@ -144,7 +144,7 @@
@override
final List<Step> steps = const <Step>[
const ListenerStep(false),
- const DirectParserASTStep(),
+ const ParserAstStep(),
];
@override
@@ -159,18 +159,17 @@
}
}
-class DirectParserASTStep
- extends Step<TestDescription, TestDescription, Context> {
- const DirectParserASTStep();
+class ParserAstStep extends Step<TestDescription, TestDescription, Context> {
+ const ParserAstStep();
@override
- String get name => "DirectParserAST";
+ String get name => "ParserAst";
@override
Future<Result<TestDescription>> run(
TestDescription description, Context context) {
Uri uri = description.uri;
File f = new File.fromUri(uri);
List<int> rawBytes = f.readAsBytesSync();
- DirectParserASTContent ast = getAST(rawBytes);
+ ParserAstNode ast = getAST(rawBytes);
if (ast.what != "CompilationUnit") {
throw "Expected a single element for 'CompilationUnit' "
"but got ${ast.what}";
diff --git a/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.expect b/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.expect
index 776ec91..cd13068 100644
--- a/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.expect
+++ b/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.expect
@@ -14,7 +14,7 @@
// typedef F<Glib.=
// ^
//
-// pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart:2:16: Error: Can't create typedef from non-function type.
+// pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart:2:16: Error: Can't create typedef from non-type.
// typedef F<Glib.=
// ^
//
diff --git a/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.outline.expect b/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.outline.expect
index 776ec91..cd13068 100644
--- a/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.outline.expect
@@ -14,7 +14,7 @@
// typedef F<Glib.=
// ^
//
-// pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart:2:16: Error: Can't create typedef from non-function type.
+// pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart:2:16: Error: Can't create typedef from non-type.
// typedef F<Glib.=
// ^
//
diff --git a/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.transformed.expect b/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.transformed.expect
index 776ec91..cd13068 100644
--- a/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart.weak.transformed.expect
@@ -14,7 +14,7 @@
// typedef F<Glib.=
// ^
//
-// pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart:2:16: Error: Can't create typedef from non-function type.
+// pkg/front_end/testcases/general/error_recovery/issue_39033b.crash_dart:2:16: Error: Can't create typedef from non-type.
// typedef F<Glib.=
// ^
//
diff --git a/pkg/front_end/testcases/general/issue47495.dart.weak.expect b/pkg/front_end/testcases/general/issue47495.dart.weak.expect
index 1c6fab0..aeebd16 100644
--- a/pkg/front_end/testcases/general/issue47495.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue47495.dart.weak.expect
@@ -17,20 +17,6 @@
// typedef MAlias = M;
// ^
//
-// pkg/front_end/testcases/general/issue47495.dart:13:7: Error: The type 'SAlias' which is an alias of 'invalid-type' can't be used as supertype.
-// class C = SAlias with MAlias;
-// ^
-// pkg/front_end/testcases/general/issue47495.dart:10:9: Context: The issue arises via this type alias.
-// typedef SAlias = S;
-// ^
-//
-// pkg/front_end/testcases/general/issue47495.dart:13:7: Error: The type 'MAlias' which is an alias of 'invalid-type' can't be used as supertype.
-// class C = SAlias with MAlias;
-// ^
-// pkg/front_end/testcases/general/issue47495.dart:11:9: Context: The issue arises via this type alias.
-// typedef MAlias = M;
-// ^
-//
import self as self;
import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/issue47495.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47495.dart.weak.outline.expect
index f366ace..697ca5b 100644
--- a/pkg/front_end/testcases/general/issue47495.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue47495.dart.weak.outline.expect
@@ -17,20 +17,6 @@
// typedef MAlias = M;
// ^
//
-// pkg/front_end/testcases/general/issue47495.dart:13:7: Error: The type 'SAlias' which is an alias of 'invalid-type' can't be used as supertype.
-// class C = SAlias with MAlias;
-// ^
-// pkg/front_end/testcases/general/issue47495.dart:10:9: Context: The issue arises via this type alias.
-// typedef SAlias = S;
-// ^
-//
-// pkg/front_end/testcases/general/issue47495.dart:13:7: Error: The type 'MAlias' which is an alias of 'invalid-type' can't be used as supertype.
-// class C = SAlias with MAlias;
-// ^
-// pkg/front_end/testcases/general/issue47495.dart:11:9: Context: The issue arises via this type alias.
-// typedef MAlias = M;
-// ^
-//
import self as self;
import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/issue47495.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47495.dart.weak.transformed.expect
index 1c6fab0..aeebd16 100644
--- a/pkg/front_end/testcases/general/issue47495.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue47495.dart.weak.transformed.expect
@@ -17,20 +17,6 @@
// typedef MAlias = M;
// ^
//
-// pkg/front_end/testcases/general/issue47495.dart:13:7: Error: The type 'SAlias' which is an alias of 'invalid-type' can't be used as supertype.
-// class C = SAlias with MAlias;
-// ^
-// pkg/front_end/testcases/general/issue47495.dart:10:9: Context: The issue arises via this type alias.
-// typedef SAlias = S;
-// ^
-//
-// pkg/front_end/testcases/general/issue47495.dart:13:7: Error: The type 'MAlias' which is an alias of 'invalid-type' can't be used as supertype.
-// class C = SAlias with MAlias;
-// ^
-// pkg/front_end/testcases/general/issue47495.dart:11:9: Context: The issue arises via this type alias.
-// typedef MAlias = M;
-// ^
-//
import self as self;
import "dart:core" as core;
diff --git a/pkg/front_end/testcases/general/issue47728_1.dart b/pkg/front_end/testcases/general/issue47728_1.dart
new file mode 100644
index 0000000..c21c8d9
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_1.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.12
+
+typedef A = Function()?;
+
+class B {}
+
+class C = A with B;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_1.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47728_1.dart.textual_outline.expect
new file mode 100644
index 0000000..ce30a6e
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_1.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+// @dart = 2.12
+typedef A = Function()?;
+
+class B {}
+
+class C = A with B;
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue47728_1.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..41cba10
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_1.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+// @dart = 2.12
+class B {}
+
+class C = A with B;
+main() {}
+typedef A = Function()?;
diff --git a/pkg/front_end/testcases/general/issue47728_1.dart.weak.expect b/pkg/front_end/testcases/general/issue47728_1.dart.weak.expect
new file mode 100644
index 0000000..a0401b1
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_1.dart.weak.expect
@@ -0,0 +1,23 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_1.dart:7:11: Error: Can't create typedef from nullable type.
+// typedef A = Function()?;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_1.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47728_1.dart.weak.outline.expect
new file mode 100644
index 0000000..f10b81e
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_1.dart.weak.outline.expect
@@ -0,0 +1,22 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_1.dart:7:11: Error: Can't create typedef from nullable type.
+// typedef A = Function()?;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/issue47728_1.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47728_1.dart.weak.transformed.expect
new file mode 100644
index 0000000..047429d
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_1.dart.weak.transformed.expect
@@ -0,0 +1,23 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_1.dart:7:11: Error: Can't create typedef from nullable type.
+// typedef A = Function()?;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends core::Object implements self::B /*isEliminatedMixin*/ {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_2.dart b/pkg/front_end/testcases/general/issue47728_2.dart
new file mode 100644
index 0000000..70ff02c
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_2.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+typedef A = ;
+
+class B {}
+
+class C = A with B;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect
new file mode 100644
index 0000000..d2e4a8cd
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+typedef A = ;
+class B {}
+class C = A with B;
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect
new file mode 100644
index 0000000..82e50f8
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect
@@ -0,0 +1,27 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_2.dart:5:13: Error: Expected a type, but got ';'.
+// typedef A = ;
+// ^
+//
+// pkg/front_end/testcases/general/issue47728_2.dart:5:11: Error: Can't create typedef from non-type.
+// typedef A = ;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect
new file mode 100644
index 0000000..836ab09
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_2.dart:5:13: Error: Expected a type, but got ';'.
+// typedef A = ;
+// ^
+//
+// pkg/front_end/testcases/general/issue47728_2.dart:5:11: Error: Can't create typedef from non-type.
+// typedef A = ;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..3b07de4
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect
@@ -0,0 +1,27 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_2.dart:5:13: Error: Expected a type, but got ';'.
+// typedef A = ;
+// ^
+//
+// pkg/front_end/testcases/general/issue47728_2.dart:5:11: Error: Can't create typedef from non-type.
+// typedef A = ;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends core::Object implements self::B /*isEliminatedMixin*/ {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_3.dart b/pkg/front_end/testcases/general/issue47728_3.dart
new file mode 100644
index 0000000..cc160b7
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_3.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.12
+
+typedef A = ;
+
+class B {}
+
+class C = A with B;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_3.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47728_3.dart.textual_outline.expect
new file mode 100644
index 0000000..f5e4116
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_3.dart.textual_outline.expect
@@ -0,0 +1,5 @@
+// @dart = 2.12
+typedef A = ;
+class B {}
+class C = A with B;
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_3.dart.weak.expect b/pkg/front_end/testcases/general/issue47728_3.dart.weak.expect
new file mode 100644
index 0000000..7f3c778
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_3.dart.weak.expect
@@ -0,0 +1,27 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_3.dart:7:13: Error: Expected a type, but got ';'.
+// typedef A = ;
+// ^
+//
+// pkg/front_end/testcases/general/issue47728_3.dart:7:11: Error: Can't create typedef from non-type.
+// typedef A = ;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_3.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47728_3.dart.weak.outline.expect
new file mode 100644
index 0000000..e34cb28
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_3.dart.weak.outline.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_3.dart:7:13: Error: Expected a type, but got ';'.
+// typedef A = ;
+// ^
+//
+// pkg/front_end/testcases/general/issue47728_3.dart:7:11: Error: Can't create typedef from non-type.
+// typedef A = ;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/issue47728_3.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47728_3.dart.weak.transformed.expect
new file mode 100644
index 0000000..11c3c9f
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_3.dart.weak.transformed.expect
@@ -0,0 +1,27 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_3.dart:7:13: Error: Expected a type, but got ';'.
+// typedef A = ;
+// ^
+//
+// pkg/front_end/testcases/general/issue47728_3.dart:7:11: Error: Can't create typedef from non-type.
+// typedef A = ;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = invalid-type;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends core::Object implements self::B /*isEliminatedMixin*/ {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_4.dart b/pkg/front_end/testcases/general/issue47728_4.dart
new file mode 100644
index 0000000..bd0512e
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_4.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+typedef A = Function()?;
+
+class B {}
+
+class C = A with B;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect
new file mode 100644
index 0000000..aca4ab4
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+typedef A = Function()?;
+
+class B {}
+
+class C = A with B;
+main() {}
diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..09de3de
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect
@@ -0,0 +1,5 @@
+class B {}
+
+class C = A with B;
+main() {}
+typedef A = Function()?;
diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect
new file mode 100644
index 0000000..b242e08
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_4.dart:9:7: Error: The type 'A' which is an alias of 'dynamic Function()?' can't be used as supertype because it is nullable.
+// class C = A with B;
+// ^
+// pkg/front_end/testcases/general/issue47728_4.dart:5:9: Context: The issue arises via this type alias.
+// typedef A = Function()?;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = () →? dynamic;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect
new file mode 100644
index 0000000..bcc7a6f
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_4.dart:9:7: Error: The type 'A' which is an alias of 'dynamic Function()?' can't be used as supertype because it is nullable.
+// class C = A with B;
+// ^
+// pkg/front_end/testcases/general/issue47728_4.dart:5:9: Context: The issue arises via this type alias.
+// typedef A = Function()?;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = () →? dynamic;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ ;
+}
+class C = core::Object with self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect
new file mode 100644
index 0000000..a92eb47
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect
@@ -0,0 +1,26 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/issue47728_4.dart:9:7: Error: The type 'A' which is an alias of 'dynamic Function()?' can't be used as supertype because it is nullable.
+// class C = A with B;
+// ^
+// pkg/front_end/testcases/general/issue47728_4.dart:5:9: Context: The issue arises via this type alias.
+// typedef A = Function()?;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef A = () →? dynamic;
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends core::Object implements self::B /*isEliminatedMixin*/ {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect
index af8ae54..7b520a3 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.expect
@@ -10,7 +10,7 @@
// typedef T =
// ^
//
-// pkg/front_end/testcases/regress/issue_31171.dart:7:11: Error: Can't create typedef from non-function type.
+// pkg/front_end/testcases/regress/issue_31171.dart:7:11: Error: Can't create typedef from non-type.
// typedef T =
// ^
//
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect
index d0b75ac..1b5d642 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.outline.expect
@@ -10,7 +10,7 @@
// typedef T =
// ^
//
-// pkg/front_end/testcases/regress/issue_31171.dart:7:11: Error: Can't create typedef from non-function type.
+// pkg/front_end/testcases/regress/issue_31171.dart:7:11: Error: Can't create typedef from non-type.
// typedef T =
// ^
//
diff --git a/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect
index af8ae54..7b520a3 100644
--- a/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31171.dart.weak.transformed.expect
@@ -10,7 +10,7 @@
// typedef T =
// ^
//
-// pkg/front_end/testcases/regress/issue_31171.dart:7:11: Error: Can't create typedef from non-function type.
+// pkg/front_end/testcases/regress/issue_31171.dart:7:11: Error: Can't create typedef from non-type.
// typedef T =
// ^
//
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 6fec846..13f7172 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -88,6 +88,8 @@
general/issue45490: FormatterCrash
general/issue45700.crash: FormatterCrash
general/issue47495: FormatterCrash
+general/issue47728_2: FormatterCrash
+general/issue47728_3: FormatterCrash
general/many_errors: FormatterCrash
general/missing_prefix_name: FormatterCrash
general/new_as_selector: FormatterCrash
diff --git a/pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart b/pkg/front_end/tool/_fasta/parser_ast_helper_creator.dart
similarity index 89%
rename from pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart
rename to pkg/front_end/tool/_fasta/parser_ast_helper_creator.dart
index 2cfa64c..b9999d6 100644
--- a/pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart
+++ b/pkg/front_end/tool/_fasta/parser_ast_helper_creator.dart
@@ -19,8 +19,8 @@
}
Uri computeAstHelperUri(Uri repoDir) {
- return repoDir.resolve(
- "pkg/front_end/lib/src/fasta/util/direct_parser_ast_helper.dart");
+ return repoDir
+ .resolve("pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart");
}
String generateAstHelper(Uri repoDir) {
@@ -55,28 +55,28 @@
// ignore_for_file: lines_longer_than_80_chars
// THIS FILE IS AUTO GENERATED BY
-// 'tool/_fasta/direct_parser_ast_helper_creator.dart'
+// 'tool/_fasta/parser_ast_helper_creator.dart'
// Run this command to update it:
-// 'dart pkg/front_end/tool/_fasta/direct_parser_ast_helper_creator.dart'
+// 'dart pkg/front_end/tool/_fasta/parser_ast_helper_creator.dart'
-abstract class DirectParserASTContent {
+abstract class ParserAstNode {
final String what;
- final DirectParserASTType type;
+ final ParserAstType type;
Map<String, Object?> get deprecatedArguments;
- List<DirectParserASTContent>? children;
- DirectParserASTContent? parent;
+ List<ParserAstNode>? children;
+ ParserAstNode? parent;
- DirectParserASTContent(this.what, this.type);
+ ParserAstNode(this.what, this.type);
// TODO(jensj): Compare two ASTs.
}
-enum DirectParserASTType { BEGIN, END, HANDLE }
+enum ParserAstType { BEGIN, END, HANDLE }
-abstract class AbstractDirectParserASTListener implements Listener {
- List<DirectParserASTContent> data = [];
+abstract class AbstractParserAstListener implements Listener {
+ List<ParserAstNode> data = [];
- void seen(DirectParserASTContent entry);
+ void seen(ParserAstNode entry);
""");
@@ -181,9 +181,9 @@
throw "Unexpected.";
}
- String className = "DirectParserASTContent${name}${typeStringCamel}";
+ String className = "${name}${typeStringCamel}";
sb.write("$className data = new $className(");
- sb.write("DirectParserASTType.");
+ sb.write("ParserAstType.");
sb.write(typeString);
for (int i = 0; i < parameters.length; i++) {
Parameter param = parameters[i];
@@ -198,9 +198,8 @@
sb.write("seen(data);");
sb.write("\n ");
- newClasses
- .write("class DirectParserASTContent${name}${typeStringCamel} "
- "extends DirectParserASTContent {\n");
+ newClasses.write("class ${name}${typeStringCamel} "
+ "extends ParserAstNode {\n");
for (int i = 0; i < parameters.length; i++) {
Parameter param = parameters[i];
@@ -212,8 +211,8 @@
newClasses.write(';\n');
}
newClasses.write('\n');
- newClasses.write(" DirectParserASTContent${name}${typeStringCamel}"
- "(DirectParserASTType type");
+ newClasses.write(" ${name}${typeStringCamel}"
+ "(ParserAstType type");
String separator = ", {";
for (int i = 0; i < parameters.length; i++) {
Parameter param = parameters[i];
diff --git a/pkg/front_end/tool/kernel_ast_file_rewriter.dart b/pkg/front_end/tool/kernel_ast_file_rewriter.dart
index d80b5c2..091640d 100644
--- a/pkg/front_end/tool/kernel_ast_file_rewriter.dart
+++ b/pkg/front_end/tool/kernel_ast_file_rewriter.dart
@@ -11,28 +11,27 @@
import 'package:_fe_analyzer_shared/src/scanner/token.dart'
show CommentToken, Token;
-import "package:front_end/src/fasta/util/direct_parser_ast.dart";
+import "package:front_end/src/fasta/util/parser_ast.dart";
-import 'package:front_end/src/fasta/util/direct_parser_ast_helper.dart';
+import 'package:front_end/src/fasta/util/parser_ast_helper.dart';
void main(List<String> args) {
Uri uri = Platform.script;
uri = uri.resolve("../../kernel/lib/ast.dart");
Uint8List bytes = new File.fromUri(uri).readAsBytesSync();
- DirectParserASTContentCompilationUnitEnd ast =
+ CompilationUnitEnd ast =
getAST(bytes, includeBody: true, includeComments: true);
- Map<String, DirectParserASTContentTopLevelDeclarationEnd> classes = {};
- for (DirectParserASTContentTopLevelDeclarationEnd cls in ast.getClasses()) {
- DirectParserASTContentIdentifierHandle identifier = cls.getIdentifier();
+ Map<String, TopLevelDeclarationEnd> classes = {};
+ for (TopLevelDeclarationEnd cls in ast.getClasses()) {
+ IdentifierHandle identifier = cls.getIdentifier();
assert(classes[identifier.token] == null);
classes[identifier.token.toString()] = cls;
}
Set<String?> goodNames = {"TreeNode"};
Map<Token, Replacement> replacements = {};
- for (MapEntry<String, DirectParserASTContentTopLevelDeclarationEnd> entry
- in classes.entries) {
- DirectParserASTContentTopLevelDeclarationEnd cls = entry.value;
+ for (MapEntry<String, TopLevelDeclarationEnd> entry in classes.entries) {
+ TopLevelDeclarationEnd cls = entry.value;
// Simple "class hierarchy" to only work on TreeNodes.
if (goodNames.contains(entry.key)) {
@@ -40,7 +39,7 @@
} else {
// Check if good.
String? parent = getExtends(cls);
- DirectParserASTContentTopLevelDeclarationEnd? parentCls = classes[parent];
+ TopLevelDeclarationEnd? parentCls = classes[parent];
List<String?> allParents = [parent];
while (
parent != null && parentCls != null && !goodNames.contains(parent)) {
@@ -55,18 +54,15 @@
}
}
- DirectParserASTContentClassDeclarationEnd classDeclaration =
- cls.getClassDeclaration();
- DirectParserASTContentClassOrMixinOrExtensionBodyEnd classOrMixinBody =
+ ClassDeclarationEnd classDeclaration = cls.getClassDeclaration();
+ ClassOrMixinOrExtensionBodyEnd classOrMixinBody =
classDeclaration.getClassOrMixinOrExtensionBody();
Set<String> namedClassConstructors = {};
Set<String> namedFields = {};
- for (DirectParserASTContentMemberEnd member
- in classOrMixinBody.getMembers()) {
+ for (MemberEnd member in classOrMixinBody.getMembers()) {
if (member.isClassConstructor()) {
- DirectParserASTContentClassConstructorEnd constructor =
- member.getClassConstructor();
+ ClassConstructorEnd constructor = member.getClassConstructor();
Token nameToken = constructor.beginToken;
// String name = nameToken.lexeme;
if (nameToken.next!.lexeme == ".") {
@@ -78,8 +74,7 @@
throw "Unexpected";
}
} else if (member.isClassFields()) {
- DirectParserASTContentClassFieldsEnd classFields =
- member.getClassFields();
+ ClassFieldsEnd classFields = member.getClassFields();
Token identifierToken = classFields.getFieldIdentifiers().single.token;
String identifier = identifierToken.toString();
namedFields.add(identifier);
@@ -94,8 +89,7 @@
classBraceToken, classBraceToken, "{\n bool frozen = false;");
}
- for (DirectParserASTContentMemberEnd member
- in classOrMixinBody.getMembers()) {
+ for (MemberEnd member in classOrMixinBody.getMembers()) {
if (member.isClassConstructor()) {
processConstructor(
member, replacements, namedClassConstructors, namedFields);
@@ -143,10 +137,10 @@
}
void processField(
- DirectParserASTContentMemberEnd member,
- MapEntry<String, DirectParserASTContentTopLevelDeclarationEnd> entry,
+ MemberEnd member,
+ MapEntry<String, TopLevelDeclarationEnd> entry,
Map<Token, Replacement> replacements) {
- DirectParserASTContentClassFieldsEnd classFields = member.getClassFields();
+ ClassFieldsEnd classFields = member.getClassFields();
if (classFields.count != 1) {
throw "Notice ${classFields.count}";
@@ -165,7 +159,7 @@
isFinal = true;
}
- DirectParserASTContentTypeHandle? type = classFields.getFirstType();
+ TypeHandle? type = classFields.getFirstType();
String typeString = "dynamic";
if (type != null) {
Token token = type.beginToken;
@@ -177,8 +171,7 @@
typeString = typeString.trim();
}
- DirectParserASTContentFieldInitializerEnd? initializer =
- classFields.getFieldInitializer();
+ FieldInitializerEnd? initializer = classFields.getFieldInitializer();
String initializerString = "";
if (initializer != null) {
Token token = initializer.assignment;
@@ -240,19 +233,13 @@
}
}
-void processConstructor(
- DirectParserASTContentMemberEnd member,
- Map<Token, Replacement> replacements,
- Set<String> namedClassConstructors,
- Set<String> namedFields) {
- DirectParserASTContentClassConstructorEnd constructor =
- member.getClassConstructor();
- DirectParserASTContentFormalParametersEnd formalParameters =
- constructor.getFormalParameters();
- List<DirectParserASTContentFormalParameterEnd> parameters =
- formalParameters.getFormalParameters();
+void processConstructor(MemberEnd member, Map<Token, Replacement> replacements,
+ Set<String> namedClassConstructors, Set<String> namedFields) {
+ ClassConstructorEnd constructor = member.getClassConstructor();
+ FormalParametersEnd formalParameters = constructor.getFormalParameters();
+ List<FormalParameterEnd> parameters = formalParameters.getFormalParameters();
- for (DirectParserASTContentFormalParameterEnd parameter in parameters) {
+ for (FormalParameterEnd parameter in parameters) {
Token token = parameter.getBegin().token;
if (token.lexeme != "this") {
continue;
@@ -262,14 +249,14 @@
replacements[afterDot] = new Replacement(afterDot, afterDot, "_$afterDot");
}
- DirectParserASTContentOptionalFormalParametersEnd? optionalFormalParameters =
+ OptionalFormalParametersEnd? optionalFormalParameters =
formalParameters.getOptionalFormalParameters();
Set<String> addInitializers = {};
if (optionalFormalParameters != null) {
- List<DirectParserASTContentFormalParameterEnd> parameters =
+ List<FormalParameterEnd> parameters =
optionalFormalParameters.getFormalParameters();
- for (DirectParserASTContentFormalParameterEnd parameter in parameters) {
+ for (FormalParameterEnd parameter in parameters) {
Token token = parameter.getBegin().token;
if (token.lexeme != "this") {
continue;
@@ -284,15 +271,12 @@
}
}
- DirectParserASTContentInitializersEnd? initializers =
- constructor.getInitializers();
+ InitializersEnd? initializers = constructor.getInitializers();
// First patch up any existing initializers.
if (initializers != null) {
- List<DirectParserASTContentInitializerEnd> actualInitializers =
- initializers.getInitializers();
- for (DirectParserASTContentInitializerEnd initializer
- in actualInitializers) {
+ List<InitializerEnd> actualInitializers = initializers.getInitializers();
+ for (InitializerEnd initializer in actualInitializers) {
Token token = initializer.getBegin().token;
// This is only afterDot if there's a dot --- which (probably) is
// only there if there's a `this`.
@@ -318,8 +302,8 @@
} else if (token.lexeme == "super") {
// Don't try to patch this one.
} else if (token.lexeme == "assert") {
- List<DirectParserASTContentIdentifierHandle> identifiers = initializer
- .recursivelyFind<DirectParserASTContentIdentifierHandle>();
+ List<IdentifierHandle> identifiers =
+ initializer.recursivelyFind<IdentifierHandle>();
for (Token token in identifiers.map((e) => e.token)) {
if (namedFields.contains(token.lexeme)) {
replacements[token] = new Replacement(token, token, "_$token");
@@ -345,7 +329,7 @@
} else if (addInitializers.isNotEmpty) {
// Add to existing initializer list. We add them as the first one(s)
// so we don't have to insert before the potential super call.
- DirectParserASTContentInitializersBegin firstOne = initializers!.getBegin();
+ InitializersBegin firstOne = initializers!.getBegin();
Token colon = firstOne.token;
assert(colon.lexeme == ":");
String initializerString =
@@ -365,13 +349,12 @@
// C(this.field1) : field2 = field1 + 1;
// }
if (addInitializers.isNotEmpty) {
- DirectParserASTContentBlockFunctionBodyEnd? blockFunctionBody =
+ BlockFunctionBodyEnd? blockFunctionBody =
constructor.getBlockFunctionBody();
if (blockFunctionBody != null) {
- List<DirectParserASTContentIdentifierHandle> identifiers =
- blockFunctionBody
- .recursivelyFind<DirectParserASTContentIdentifierHandle>();
- for (DirectParserASTContentIdentifierHandle identifier in identifiers) {
+ List<IdentifierHandle> identifiers =
+ blockFunctionBody.recursivelyFind<IdentifierHandle>();
+ for (IdentifierHandle identifier in identifiers) {
Token token = identifier.token;
IdentifierContext context = identifier.context;
if (namedFields.contains(token.lexeme) &&
@@ -395,12 +378,10 @@
Replacement(this.beginToken, this.endToken, this.replacement);
}
-String? getExtends(DirectParserASTContentTopLevelDeclarationEnd cls) {
- DirectParserASTContentClassDeclarationEnd classDeclaration =
- cls.getClassDeclaration();
+String? getExtends(TopLevelDeclarationEnd cls) {
+ ClassDeclarationEnd classDeclaration = cls.getClassDeclaration();
- DirectParserASTContentClassExtendsHandle classExtends =
- classDeclaration.getClassExtends();
+ ClassExtendsHandle classExtends = classDeclaration.getClassExtends();
Token? extendsKeyword = classExtends.extendsKeyword;
if (extendsKeyword == null) {
return null;
@@ -409,15 +390,14 @@
}
}
-void debugDumpNode(DirectParserASTContent node) {
+void debugDumpNode(ParserAstNode node) {
node.children!.forEach((element) {
print("${element.what} (${element.deprecatedArguments}) "
"(${element.children})");
});
}
-void debugDumpNodeRecursively(DirectParserASTContent node,
- {String indent = ""}) {
+void debugDumpNodeRecursively(ParserAstNode node, {String indent = ""}) {
print("$indent${node.what} (${node.deprecatedArguments})");
if (node.children == null) return;
node.children!.forEach((element) {
diff --git a/pkg/front_end/tool/parser_direct_ast/viewer.dart b/pkg/front_end/tool/parser_direct_ast/viewer.dart
index edf1159..8650f0f 100644
--- a/pkg/front_end/tool/parser_direct_ast/viewer.dart
+++ b/pkg/front_end/tool/parser_direct_ast/viewer.dart
@@ -5,9 +5,9 @@
import "dart:io" show File, Platform;
import "dart:typed_data" show Uint8List;
-import "package:front_end/src/fasta/util/direct_parser_ast.dart" show getAST;
-import "package:front_end/src/fasta/util/direct_parser_ast_helper.dart"
- show DirectParserASTContent, DirectParserASTType;
+import "package:front_end/src/fasta/util/parser_ast.dart" show getAST;
+import "package:front_end/src/fasta/util/parser_ast_helper.dart"
+ show ParserAstNode, ParserAstType;
import "console_helper.dart";
@@ -17,7 +17,7 @@
uri = Uri.base.resolve(args.first);
}
Uint8List bytes = new File.fromUri(uri).readAsBytesSync();
- DirectParserASTContent ast = getAST(bytes, enableExtensionMethods: true);
+ ParserAstNode ast = getAST(bytes, enableExtensionMethods: true);
Widget widget = new QuitOnQWidget(
new WithSingleLineBottomWidget(
@@ -33,7 +33,7 @@
class PrintedLine {
final String text;
- final DirectParserASTContent? ast;
+ final ParserAstNode? ast;
final List<PrintedLine>? parentShown;
final int? selected;
@@ -53,21 +53,21 @@
late List<PrintedLine> shown;
int selected = 0;
- AstWidget(DirectParserASTContent ast) {
+ AstWidget(ParserAstNode ast) {
shown = [new PrintedLine.ast(ast, textualize(ast))];
}
- String textualize(DirectParserASTContent element,
+ String textualize(ParserAstNode element,
{bool indent: false, bool withEndHeader: false}) {
String header;
switch (element.type) {
- case DirectParserASTType.BEGIN:
+ case ParserAstType.BEGIN:
header = "begin";
break;
- case DirectParserASTType.HANDLE:
+ case ParserAstType.HANDLE:
header = "handle";
break;
- case DirectParserASTType.END:
+ case ParserAstType.END:
header = withEndHeader ? "end" : "";
break;
}
@@ -114,7 +114,7 @@
selected = selectedElement.selected!;
} else {
shown = [new PrintedLine.parent(shown, selected)];
- List<DirectParserASTContent>? children = selectedElement.ast!.children;
+ List<ParserAstNode>? children = selectedElement.ast!.children;
if (children != null) {
for (int i = 0; i < children.length; i++) {
shown.add(new PrintedLine.ast(
diff --git a/runtime/tests/concurrency/stress_test_list.json b/runtime/tests/concurrency/stress_test_list.json
index 067339d..a3073eb 100644
--- a/runtime/tests/concurrency/stress_test_list.json
+++ b/runtime/tests/concurrency/stress_test_list.json
@@ -340,7 +340,6 @@
"../../../tests/corelib/regexp/backreferences_test.dart",
"../../../tests/corelib/regexp/bol-with-multiline_test.dart",
"../../../tests/corelib/regexp/bol_test.dart",
- "../../../tests/corelib/regexp/capture-3_test.dart",
"../../../tests/corelib/regexp/capture_test.dart",
"../../../tests/corelib/regexp/captures_test.dart",
"../../../tests/corelib/regexp/char-insensitive_test.dart",
@@ -3752,7 +3751,6 @@
"../../../tests/corelib_2/regexp/backreferences_test.dart",
"../../../tests/corelib_2/regexp/bol-with-multiline_test.dart",
"../../../tests/corelib_2/regexp/bol_test.dart",
- "../../../tests/corelib_2/regexp/capture-3_test.dart",
"../../../tests/corelib_2/regexp/capture_test.dart",
"../../../tests/corelib_2/regexp/captures_test.dart",
"../../../tests/corelib_2/regexp/char-insensitive_test.dart",
diff --git a/runtime/vm/compiler/backend/constant_propagator.cc b/runtime/vm/compiler/backend/constant_propagator.cc
index f4f5424..eed551a 100644
--- a/runtime/vm/compiler/backend/constant_propagator.cc
+++ b/runtime/vm/compiler/backend/constant_propagator.cc
@@ -588,9 +588,17 @@
const Object& left = left_defn->constant_value();
const Object& right = right_defn->constant_value();
if (IsNonConstant(left) || IsNonConstant(right)) {
- // TODO(vegorov): incorporate nullability information into the lattice.
- if ((left.IsNull() && instr->right()->Type()->HasDecidableNullability()) ||
- (right.IsNull() && instr->left()->Type()->HasDecidableNullability())) {
+ if ((left.ptr() == Object::sentinel().ptr() &&
+ !instr->right()->Type()->can_be_sentinel()) ||
+ (right.ptr() == Object::sentinel().ptr() &&
+ !instr->left()->Type()->can_be_sentinel())) {
+ // Handle provably false (EQ_STRICT) or true (NE_STRICT) sentinel checks.
+ SetValue(instr, Bool::Get(instr->kind() != Token::kEQ_STRICT));
+ } else if ((left.IsNull() &&
+ instr->right()->Type()->HasDecidableNullability()) ||
+ (right.IsNull() &&
+ instr->left()->Type()->HasDecidableNullability())) {
+ // TODO(vegorov): incorporate nullability information into the lattice.
bool result = left.IsNull() ? instr->right()->Type()->IsNull()
: instr->left()->Type()->IsNull();
if (instr->kind() == Token::kNE_STRICT) {
diff --git a/runtime/vm/compiler/backend/constant_propagator_test.cc b/runtime/vm/compiler/backend/constant_propagator_test.cc
index de14881..1ee3b6d 100644
--- a/runtime/vm/compiler/backend/constant_propagator_test.cc
+++ b/runtime/vm/compiler/backend/constant_propagator_test.cc
@@ -295,4 +295,85 @@
}
#endif
+void StrictCompareSentinel(Thread* thread,
+ bool negate,
+ bool non_sentinel_on_left) {
+ const char* kScript = R"(
+ late final int x = 4;
+ )";
+ Zone* const Z = Thread::Current()->zone();
+ const auto& root_library = Library::CheckedHandle(Z, LoadTestScript(kScript));
+ const auto& toplevel = Class::Handle(Z, root_library.toplevel_class());
+ const auto& field_x = Field::Handle(
+ Z, toplevel.LookupStaticField(String::Handle(Z, String::New("x"))));
+
+ using compiler::BlockBuilder;
+ CompilerState S(thread, /*is_aot=*/false, /*is_optimizing=*/true);
+ FlowGraphBuilderHelper H;
+
+ auto b1 = H.flow_graph()->graph_entry()->normal_entry();
+
+ {
+ BlockBuilder builder(H.flow_graph(), b1);
+ auto v_load = builder.AddDefinition(new LoadStaticFieldInstr(
+ field_x, {},
+ /*calls_initializer=*/true, S.GetNextDeoptId()));
+ auto v_sentinel = H.flow_graph()->GetConstant(Object::sentinel());
+ Value* const left_value =
+ non_sentinel_on_left ? new Value(v_load) : new Value(v_sentinel);
+ Value* const right_value =
+ non_sentinel_on_left ? new Value(v_sentinel) : new Value(v_load);
+ auto v_compare = builder.AddDefinition(new StrictCompareInstr(
+ {}, negate ? Token::kNE_STRICT : Token::kEQ_STRICT, left_value,
+ right_value,
+ /*needs_number_check=*/false, S.GetNextDeoptId()));
+ builder.AddReturn(new Value(v_compare));
+ }
+
+ H.FinishGraph();
+
+ FlowGraphPrinter::PrintGraph("Before TypePropagator", H.flow_graph());
+ FlowGraphTypePropagator::Propagate(H.flow_graph());
+ FlowGraphPrinter::PrintGraph("After TypePropagator", H.flow_graph());
+ GrowableArray<BlockEntryInstr*> ignored;
+ ConstantPropagator::Optimize(H.flow_graph());
+ FlowGraphPrinter::PrintGraph("After ConstantPropagator", H.flow_graph());
+
+ ReturnInstr* ret = nullptr;
+
+ ILMatcher cursor(H.flow_graph(),
+ H.flow_graph()->graph_entry()->normal_entry(), true);
+ RELEASE_ASSERT(cursor.TryMatch({
+ kMatchAndMoveFunctionEntry,
+ kMatchAndMoveLoadStaticField,
+ // The StrictCompare instruction should be removed.
+ {kMatchReturn, &ret},
+ }));
+
+ EXPECT_PROPERTY(ret, it.value()->BindsToConstant());
+ EXPECT_PROPERTY(&ret->value()->BoundConstant(), it.IsBool());
+ EXPECT_PROPERTY(&ret->value()->BoundConstant(),
+ Bool::Cast(it).value() == negate);
+}
+
+ISOLATE_UNIT_TEST_CASE(ConstantPropagator_StrictCompareEqualsSentinelLeft) {
+ StrictCompareSentinel(thread, /*negate=*/false,
+ /*non_sentinel_on_left=*/true);
+}
+
+ISOLATE_UNIT_TEST_CASE(ConstantPropagator_StrictCompareEqualsSentinelRightt) {
+ StrictCompareSentinel(thread, /*negate=*/false,
+ /*non_sentinel_on_left=*/false);
+}
+
+ISOLATE_UNIT_TEST_CASE(ConstantPropagator_StrictCompareNotEqualsSentinelLeft) {
+ StrictCompareSentinel(thread, /*negate=*/true,
+ /*non_sentinel_on_left=*/true);
+}
+
+ISOLATE_UNIT_TEST_CASE(ConstantPropagator_StrictCompareNotEqualsSentinelRight) {
+ StrictCompareSentinel(thread, /*negate=*/true,
+ /*non_sentinel_on_left=*/false);
+}
+
} // namespace dart
diff --git a/runtime/vm/compiler/backend/il_arm.cc b/runtime/vm/compiler/backend/il_arm.cc
index 5262ad3..3e956fe 100644
--- a/runtime/vm/compiler/backend/il_arm.cc
+++ b/runtime/vm/compiler/backend/il_arm.cc
@@ -1448,7 +1448,23 @@
}
if (is_leaf_) {
+#if !defined(PRODUCT)
+ // Set the thread object's top_exit_frame_info and VMTag to enable the
+ // profiler to determine that thread is no longer executing Dart code.
+ __ StoreToOffset(FPREG, THR,
+ compiler::target::Thread::top_exit_frame_info_offset());
+ __ StoreToOffset(branch, THR, compiler::target::Thread::vm_tag_offset());
+#endif
+
__ blx(branch);
+
+#if !defined(PRODUCT)
+ __ LoadImmediate(temp1, compiler::target::Thread::vm_tag_dart_id());
+ __ StoreToOffset(temp1, THR, compiler::target::Thread::vm_tag_offset());
+ __ LoadImmediate(temp1, 0);
+ __ StoreToOffset(temp1, THR,
+ compiler::target::Thread::top_exit_frame_info_offset());
+#endif
} else {
// We need to copy the return address up into the dummy stack frame so the
// stack walker will know which safepoint to use.
diff --git a/runtime/vm/compiler/backend/il_arm64.cc b/runtime/vm/compiler/backend/il_arm64.cc
index c0a5d1a..1c5673c 100644
--- a/runtime/vm/compiler/backend/il_arm64.cc
+++ b/runtime/vm/compiler/backend/il_arm64.cc
@@ -1270,6 +1270,14 @@
}
if (is_leaf_) {
+#if !defined(PRODUCT)
+ // Set the thread object's top_exit_frame_info and VMTag to enable the
+ // profiler to determine that thread is no longer executing Dart code.
+ __ StoreToOffset(FPREG, THR,
+ compiler::target::Thread::top_exit_frame_info_offset());
+ __ StoreToOffset(branch, THR, compiler::target::Thread::vm_tag_offset());
+#endif
+
// We are entering runtime code, so the C stack pointer must be restored
// from the stack limit to the top of the stack.
__ mov(R25, CSP);
@@ -1280,6 +1288,13 @@
// Restore the Dart stack pointer.
__ mov(SP, CSP);
__ mov(CSP, R25);
+
+#if !defined(PRODUCT)
+ __ LoadImmediate(temp1, compiler::target::Thread::vm_tag_dart_id());
+ __ StoreToOffset(temp1, THR, compiler::target::Thread::vm_tag_offset());
+ __ StoreToOffset(ZR, THR,
+ compiler::target::Thread::top_exit_frame_info_offset());
+#endif
} else {
// We need to copy a dummy return address up into the dummy stack frame so
// the stack walker will know which safepoint to use.
diff --git a/runtime/vm/compiler/backend/il_ia32.cc b/runtime/vm/compiler/backend/il_ia32.cc
index 4d84b62..60dd46e 100644
--- a/runtime/vm/compiler/backend/il_ia32.cc
+++ b/runtime/vm/compiler/backend/il_ia32.cc
@@ -1052,7 +1052,24 @@
}
if (is_leaf_) {
+#if !defined(PRODUCT)
+ // Set the thread object's top_exit_frame_info and VMTag to enable the
+ // profiler to determine that thread is no longer executing Dart code.
+ __ movl(compiler::Address(
+ THR, compiler::target::Thread::top_exit_frame_info_offset()),
+ FPREG);
+ __ movl(compiler::Assembler::VMTagAddress(), branch);
+#endif
+
__ call(branch);
+
+#if !defined(PRODUCT)
+ __ movl(compiler::Assembler::VMTagAddress(),
+ compiler::Immediate(compiler::target::Thread::vm_tag_dart_id()));
+ __ movl(compiler::Address(
+ THR, compiler::target::Thread::top_exit_frame_info_offset()),
+ compiler::Immediate(0));
+#endif
} else {
// We need to copy a dummy return address up into the dummy stack frame so
// the stack walker will know which safepoint to use. Unlike X64, there's no
diff --git a/runtime/vm/compiler/backend/il_x64.cc b/runtime/vm/compiler/backend/il_x64.cc
index 105d49c..c770204 100644
--- a/runtime/vm/compiler/backend/il_x64.cc
+++ b/runtime/vm/compiler/backend/il_x64.cc
@@ -1240,7 +1240,24 @@
}
if (is_leaf_) {
+#if !defined(PRODUCT)
+ // Set the thread object's top_exit_frame_info and VMTag to enable the
+ // profiler to determine that thread is no longer executing Dart code.
+ __ movq(compiler::Address(
+ THR, compiler::target::Thread::top_exit_frame_info_offset()),
+ FPREG);
+ __ movq(compiler::Assembler::VMTagAddress(), target_address);
+#endif
+
__ CallCFunction(target_address, /*restore_rsp=*/true);
+
+#if !defined(PRODUCT)
+ __ movq(compiler::Assembler::VMTagAddress(),
+ compiler::Immediate(compiler::target::Thread::vm_tag_dart_id()));
+ __ movq(compiler::Address(
+ THR, compiler::target::Thread::top_exit_frame_info_offset()),
+ compiler::Immediate(0));
+#endif
} else {
// We need to copy a dummy return address up into the dummy stack frame so
// the stack walker will know which safepoint to use. RIP points to the
diff --git a/runtime/vm/heap/safepoint.h b/runtime/vm/heap/safepoint.h
index d002189..42fd7d4c 100644
--- a/runtime/vm/heap/safepoint.h
+++ b/runtime/vm/heap/safepoint.h
@@ -76,6 +76,7 @@
void BlockForSafepoint(Thread* T);
bool IsOwnedByTheThread(Thread* thread) {
+ MonitorLocker ml(threads_lock());
for (intptr_t level = 0; level < SafepointLevel::kNumLevels; ++level) {
if (handlers_[level]->owner_ == thread) {
return true;
diff --git a/sdk/lib/collection/splay_tree.dart b/sdk/lib/collection/splay_tree.dart
index 5770c5b..1ab21db 100644
--- a/sdk/lib/collection/splay_tree.dart
+++ b/sdk/lib/collection/splay_tree.dart
@@ -54,7 +54,7 @@
// Number of elements in the splay tree.
int _count = 0;
- /// Counter incremented whenever the keys in the map changes.
+ /// Counter incremented whenever the keys in the map change.
///
/// Used to detect concurrent modifications.
int _modificationCount = 0;
@@ -310,6 +310,86 @@
/// using the `compare` function on an argument value that may not be a [K]
/// value. If omitted, the `isValidKey` function defaults to testing if the
/// value is a [K].
+///
+/// **Notice:**
+/// Do not modify a map (add or remove keys) while an operation
+/// is being performed on that map, for example in functions
+/// called during a [forEach] or [putIfAbsent] call,
+/// or while iterating the map ([keys], [values] or [entries]).
+///
+/// Example:
+/// ```dart
+/// final planetsByMass = SplayTreeMap<double, String>((a, b) => a.compareTo(b));
+/// ```
+/// To add data to a map, use [operator[]=], [addAll] or [addEntries].
+/// ```
+/// planetsByMass[0.06] = 'Mercury';
+/// planetsByMass
+/// .addAll({0.81: 'Venus', 1.0: 'Earth', 0.11: 'Mars', 317.83: 'Jupiter'});
+/// ```
+/// To check if the map is empty, use [isEmpty] or [isNotEmpty].
+/// To find the number of map entries, use [length].
+/// ```
+/// print(planetsByMass.isEmpty); // false
+/// print(planetsByMass.length); // 5
+/// ```
+/// The [forEach] method calls a function for each key/value entry of the map.
+/// ```
+/// planetsByMass.forEach((key, value) {
+/// print('$key \t $value');
+/// // 0.06 Mercury
+/// // 0.11 Mars
+/// // 0.81 Venus
+/// // 1.0 Earth
+/// // 317.83 Jupiter
+/// });
+/// ```
+/// To check whether the map has an entry with a specific key, use [containsKey].
+/// ```
+/// final keyOneExists = planetsByMass.containsKey(1.0); // true
+/// final keyFiveExists = planetsByMass.containsKey(5); // false
+/// ```
+/// To check whether the map has an entry with a specific value,
+/// use [containsValue].
+/// ```
+/// final earthExists = planetsByMass.containsValue('Earth'); // true
+/// final plutoExists = planetsByMass.containsValue('Pluto'); // false
+/// ```
+/// To remove an entry with a specific key, use [remove].
+/// ```
+/// final removedValue = planetsByMass.remove(1.0);
+/// print(removedValue); // Earth
+/// ```
+/// To remove multiple entries at the same time, based on their keys and values,
+/// use [removeWhere].
+/// ```
+/// planetsByMass.removeWhere((key, value) => key <= 1);
+/// print(planetsByMass); // {317.83: Jupiter}
+/// ```
+/// To conditionally add or modify a value for a specific key, depending on
+/// whether there already is an entry with that key,
+/// use [putIfAbsent] or [update].
+/// ```
+/// planetsByMass.update(1, (v) => '', ifAbsent: () => 'Earth');
+/// planetsByMass.putIfAbsent(317.83, () => 'Another Jupiter');
+/// print(planetsByMass); // {1.0: Earth, 317.83: Jupiter}
+/// ```
+/// To update the values of all keys, based on the existing key and value,
+/// use [updateAll].
+/// ```
+/// planetsByMass.updateAll((key, value) => 'X');
+/// print(planetsByMass); // {1.0: X, 317.83: X}
+/// ```
+/// To remove all entries and empty the map, use [clear].
+/// ```
+/// planetsByMass.clear();
+/// print(planetsByMass.isEmpty); // false
+/// print(planetsByMass); // {}
+/// ```
+/// **See also:**
+/// * [Map], the general interface of key/value pair collections.
+/// * [HashMap] is unordered (the order of iteration is not guaranteed).
+/// * [LinkedHashMap] iterates in key insertion order.
class SplayTreeMap<K, V> extends _SplayTree<K, _SplayTreeMapNode<K, V>>
with MapMixin<K, V> {
_SplayTreeMapNode<K, V>? _root;
@@ -327,6 +407,12 @@
///
/// The keys must all be instances of [K] and the values of [V].
/// The [other] map itself can have any type.
+ /// Example:
+ /// ```dart
+ /// final baseMap = <int, Object>{3: 'C', 1: 'A', 2: 'B'};
+ /// final fromBaseMap = SplayTreeMap<int, String>.from(baseMap);
+ /// print(fromBaseMap); // {1: A, 2: B, 3: C}
+ /// ```
factory SplayTreeMap.from(Map<dynamic, dynamic> other,
[int Function(K key1, K key2)? compare,
bool Function(dynamic potentialKey)? isValidKey]) {
@@ -341,6 +427,12 @@
}
/// Creates a [SplayTreeMap] that contains all key/value pairs of [other].
+ /// Example:
+ /// ```dart
+ /// final baseMap = <int, String>{3: 'A', 2: 'B', 1: 'C', 4: 'D'};
+ /// final mapOf = SplayTreeMap<num, Object>.of(baseMap);
+ /// print(mapOf); // {1: C, 2: B, 3: A, 4: D}
+ /// ```
factory SplayTreeMap.of(Map<K, V> other,
[int Function(K key1, K key2)? compare,
bool Function(dynamic potentialKey)? isValidKey]) =>
@@ -355,8 +447,16 @@
/// The keys of the key/value pairs do not need to be unique. The last
/// occurrence of a key will simply overwrite any previous value.
///
- /// If no functions are specified for [key] and [value] the default is to
+ /// If no functions are specified for [key] and [value], the default is to
/// use the iterable value itself.
+ /// Example:
+ /// ```dart
+ /// final numbers = [12, 11, 14, 13];
+ /// final mapFromIterable =
+ /// SplayTreeMap<int, int>.fromIterable(numbers,
+ /// key: (i) => i, value: (i) => i * i);
+ /// print(mapFromIterable); // {11: 121, 12: 144, 13: 169, 14: 196}
+ /// ```
factory SplayTreeMap.fromIterable(Iterable iterable,
{K Function(dynamic element)? key,
V Function(dynamic element)? value,
@@ -376,6 +476,13 @@
/// overwrites the previous value.
///
/// It is an error if the two [Iterable]s don't have the same length.
+ /// Example:
+ /// ```dart
+ /// final keys = ['1', '2', '3', '4'];
+ /// final values = ['A', 'B', 'C', 'D'];
+ /// final mapFromIterables = SplayTreeMap.fromIterables(keys, values);
+ /// print(mapFromIterables); // {1: A, 2: B, 3: C, 4: D}
+ /// ```
factory SplayTreeMap.fromIterables(Iterable<K> keys, Iterable<V> values,
[int Function(K key1, K key2)? compare,
bool Function(dynamic potentialKey)? isValidKey]) {
@@ -772,6 +879,74 @@
/// [Comparable], and are compared using their [Comparable.compareTo] method.
/// Non-comparable objects (including `null`) will not work as an element
/// in that case.
+///
+/// **Note:**
+/// Do not modify a set (add or remove elements) while an operation
+/// is being performed on that set, for example in functions
+/// called during a [forEach] or [containsAll] call,
+/// or while iterating the set.
+///
+/// Do not modify elements in a way which changes their equality (and thus their
+/// hash code) while they are in the set. Some specialized kinds of sets may be
+/// more permissive with regards to equality, in which case they should document
+/// their different behavior and restrictions.
+///
+/// Example:
+/// ```dart
+/// final planets = SplayTreeSet<String>((a, b) => a.compareTo(b));
+/// ```
+/// To add data to a set, use [add] or [addAll].
+/// ```
+/// planets.add('Neptune');
+/// planets.addAll({'Venus', 'Mars', 'Earth', 'Jupiter'});
+/// print(planets); // {Earth, Jupiter, Mars, Neptune, Venus}
+/// ```
+/// To check if the set is empty, use [isEmpty] or [isNotEmpty].
+/// To find the number of elements in the set, use [length].
+/// ```
+/// final isEmpty = planets.isEmpty; // false
+/// final length = planets.length; // 5
+/// ```
+/// To check whether the set contains a specific element, use [contains].
+/// ```
+/// final marsExists = planets.contains('Mars'); // true
+/// ```
+/// To get element value using index, use [elementAt].
+/// ```
+/// final elementAt = planets.elementAt(1);
+/// print(elementAt); // Jupiter
+/// ```
+/// To make a copy of set, use [toSet].
+/// ```
+/// final copySet = planets.toSet(); // a `SplayTreeSet` with the same ordering.
+/// print(copySet); // {Earth, Jupiter, Mars, Neptune, Venus}
+/// ```
+/// To remove an element, use [remove].
+/// ```
+/// final removedValue = planets.remove('Mars'); // true
+/// print(planets); // {Earth, Jupiter, Neptune, Venus}
+/// ```
+/// To remove multiple elements at the same time, use [removeWhere].
+/// ```
+/// planets.removeWhere((element) => element.startsWith('J'));
+/// print(planets); // {Earth, Neptune, Venus}
+/// ```
+/// To removes all elements in this set that do not meet a condition,
+/// use [retainWhere].
+/// ```
+/// planets.retainWhere((element) => element.contains('Earth'));
+/// print(planets); // {Earth}
+/// ```
+/// To remove all elements and empty the set, use [clear].
+/// ```
+/// planets.clear();
+/// print(planets.isEmpty); // true
+/// print(planets); // {}
+/// ```
+/// **See also:**
+/// * [Set] is a base-class for collection of objects.
+/// * [HashSet] the order of the objects in the iterations is not guaranteed.
+/// * [LinkedHashSet] objects stored based on insertion order.
class SplayTreeSet<E> extends _SplayTree<E, _SplayTreeSetNode<E>>
with IterableMixin<E>, SetMixin<E> {
_SplayTreeSetNode<E>? _root;
@@ -788,7 +963,7 @@
/// work on all `E` instances.
///
/// For operations that add elements to the set, the user is supposed to not
- /// pass in objects that doesn't work with the compare function.
+ /// pass in objects that don't work with the compare function.
///
/// The methods [contains], [remove], [lookup], [removeAll] or [retainAll]
/// are typed to accept any object(s), and the [isValidKey] test can used to
@@ -809,7 +984,7 @@
/// Creates a [SplayTreeSet] that contains all [elements].
///
- /// The set works as if created by `new SplayTreeSet<E>(compare, isValidKey)`.
+ /// The set works as if created by `SplayTreeSet<E>(compare, isValidKey)`.
///
/// All the [elements] should be instances of [E] and valid arguments to
/// [compare].
@@ -820,6 +995,12 @@
/// Set<SubType> subSet =
/// SplayTreeSet<SubType>.from(superSet.whereType<SubType>());
/// ```
+ /// Example:
+ /// ```dart
+ /// final numbers = <num>[20, 30, 10];
+ /// final setFrom = SplayTreeSet<int>.from(numbers);
+ /// print(setFrom); // {10, 20, 30}
+ /// ```
factory SplayTreeSet.from(Iterable elements,
[int Function(E key1, E key2)? compare,
bool Function(dynamic potentialKey)? isValidKey]) {
@@ -838,6 +1019,12 @@
/// The set works as if created by `new SplayTreeSet<E>(compare, isValidKey)`.
///
/// All the [elements] should be valid as arguments to the [compare] function.
+ /// Example:
+ /// ```dart
+ /// final baseSet = <int>{1, 2, 3};
+ /// final setOf = SplayTreeSet<num>.of(baseSet);
+ /// print(setOf); // {1, 2, 3}
+ /// ```
factory SplayTreeSet.of(Iterable<E> elements,
[int Function(E key1, E key2)? compare,
bool Function(dynamic potentialKey)? isValidKey]) =>
diff --git a/sdk/lib/core/set.dart b/sdk/lib/core/set.dart
index d94a58f..f548888 100644
--- a/sdk/lib/core/set.dart
+++ b/sdk/lib/core/set.dart
@@ -13,8 +13,8 @@
/// elements are treated as being the same for any operation on the set.
///
/// The default [Set] implementation, [LinkedHashSet], considers objects
-/// indistinguishable if they are equal with regard to
-/// operator [Object.==].
+/// indistinguishable if they are equal with regard to [Object.==] and
+/// [Object.hashCode].
///
/// Iterating over elements of a set may be either unordered
/// or ordered in some way. Examples:
diff --git a/tests/ffi/regress_47594_test.dart b/tests/ffi/regress_47594_test.dart
new file mode 100644
index 0000000..abd6628
--- /dev/null
+++ b/tests/ffi/regress_47594_test.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// Regression test for http://dartbug.com/47594.
+// FFI leaf calls did not mark the thread for the transition and would cause
+// the stack walker to segfault when it was unable to interpret the frame.
+//
+// VMOptions=--deterministic --enable-vm-service --profiler
+
+import 'dart:ffi';
+
+import 'package:ffi/ffi.dart';
+
+final strerror = DynamicLibrary.process()
+ .lookupFunction<Pointer<Utf8> Function(Int32), Pointer<Utf8> Function(int)>(
+ 'strerror',
+ isLeaf: true);
+
+void main() {
+ for (var i = 0; i < 10000; i++) strerror(0).toDartString();
+}
diff --git a/tests/ffi_2/regress_47594_test.dart b/tests/ffi_2/regress_47594_test.dart
new file mode 100644
index 0000000..abd6628
--- /dev/null
+++ b/tests/ffi_2/regress_47594_test.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// Regression test for http://dartbug.com/47594.
+// FFI leaf calls did not mark the thread for the transition and would cause
+// the stack walker to segfault when it was unable to interpret the frame.
+//
+// VMOptions=--deterministic --enable-vm-service --profiler
+
+import 'dart:ffi';
+
+import 'package:ffi/ffi.dart';
+
+final strerror = DynamicLibrary.process()
+ .lookupFunction<Pointer<Utf8> Function(Int32), Pointer<Utf8> Function(int)>(
+ 'strerror',
+ isLeaf: true);
+
+void main() {
+ for (var i = 0; i < 10000; i++) strerror(0).toDartString();
+}
diff --git a/tools/VERSION b/tools/VERSION
index 7e6515a..687f8d7 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 16
PATCH 0
-PRERELEASE 55
+PRERELEASE 56
PRERELEASE_PATCH 0
\ No newline at end of file