Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Unified Diff: pkg/compiler/lib/src/tree/nodes.dart

Issue 1863403002: Add Visitor1<R, A> (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/tree/nodes.dart
diff --git a/pkg/compiler/lib/src/tree/nodes.dart b/pkg/compiler/lib/src/tree/nodes.dart
index 46c54245bcb9c8fb4f4910b41f308826cfb2d89a..c31168dd1cb71a32241c556701d33c70cdd41b4d 100644
--- a/pkg/compiler/lib/src/tree/nodes.dart
+++ b/pkg/compiler/lib/src/tree/nodes.dart
@@ -110,6 +110,139 @@ abstract class Visitor<R> {
R visitYield(Yield node) => visitStatement(node);
}
+/// Visitor for [Node]s that take an additional argument of type [A] and returns
+/// a value of type [R].
+abstract class Visitor1<R, A> {
+ const Visitor1();
+
+ R visitNode(Node node, A arg);
+
+ R visitAssert(Assert node, A arg) => visitStatement(node, arg);
+ R visitAsyncForIn(AsyncForIn node, A arg) => visitLoop(node, arg);
+ R visitAsyncModifier(AsyncModifier node, A arg) => visitNode(node, arg);
+ R visitAwait(Await node, A arg) => visitExpression(node, arg);
+ R visitBlock(Block node, A arg) => visitStatement(node, arg);
+ R visitBreakStatement(BreakStatement node, A arg) {
+ return visitGotoStatement(node, arg);
+ }
+ R visitCascade(Cascade node, A arg) => visitExpression(node, arg);
+ R visitCascadeReceiver(CascadeReceiver node, A arg) {
+ return visitExpression(node, arg);
+ }
+ R visitCaseMatch(CaseMatch node, A arg) => visitNode(node, arg);
+ R visitCatchBlock(CatchBlock node, A arg) => visitNode(node, arg);
+ R visitClassNode(ClassNode node, A arg) => visitNode(node, arg);
+ R visitCombinator(Combinator node, A arg) => visitNode(node, arg);
+ R visitConditional(Conditional node, A arg) => visitExpression(node, arg);
+ R visitConditionalUri(ConditionalUri node, A arg) {
+ return visitNode(node, arg);
+ }
+ R visitContinueStatement(ContinueStatement node, A arg) {
+ return visitGotoStatement(node, arg);
+ }
+ R visitDottedName(DottedName node, A arg) {
+ return visitExpression(node, arg);
+ }
+ R visitDoWhile(DoWhile node, A arg) => visitLoop(node, arg);
+ R visitEmptyStatement(EmptyStatement node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitEnum(Enum node, A arg) => visitNode(node, arg);
+ R visitExport(Export node, A arg) => visitLibraryDependency(node, arg);
+ R visitExpression(Expression node, A arg) => visitNode(node, arg);
+ R visitExpressionStatement(ExpressionStatement node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitFor(For node, A arg) => visitLoop(node, arg);
+ R visitFunctionDeclaration(FunctionDeclaration node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitFunctionExpression(FunctionExpression node, A arg) {
+ return visitExpression(node, arg);
+ }
+ R visitGotoStatement(GotoStatement node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitIdentifier(Identifier node, A arg) {
+ return visitExpression(node, arg);
+ }
+ R visitImport(Import node, A arg) {
+ return visitLibraryDependency(node, arg);
+ }
+ R visitIf(If node, A arg) => visitStatement(node, arg);
+ R visitLabel(Label node, A arg) => visitNode(node, arg);
+ R visitLabeledStatement(LabeledStatement node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitLibraryDependency(LibraryDependency node, A arg) {
+ return visitLibraryTag(node, arg);
+ }
+ R visitLibraryName(LibraryName node, A arg) => visitLibraryTag(node, arg);
+ R visitLibraryTag(LibraryTag node, A arg) => visitNode(node, arg);
+ R visitLiteral(Literal node, A arg) => visitExpression(node, arg);
+ R visitLiteralBool(LiteralBool node, A arg) => visitLiteral(node, arg);
+ R visitLiteralDouble(LiteralDouble node, A arg) => visitLiteral(node, arg);
+ R visitLiteralInt(LiteralInt node, A arg) => visitLiteral(node, arg);
+ R visitLiteralList(LiteralList node, A arg) => visitExpression(node, arg);
+ R visitLiteralMap(LiteralMap node, A arg) => visitExpression(node, arg);
+ R visitLiteralMapEntry(LiteralMapEntry node, A arg) => visitNode(node, arg);
+ R visitLiteralNull(LiteralNull node, A arg) => visitLiteral(node, arg);
+ R visitLiteralString(LiteralString node, A arg) => visitStringNode(node, arg);
+ R visitStringJuxtaposition(StringJuxtaposition node, A arg) {
+ return visitStringNode(node, arg);
+ }
+ R visitSyncForIn(SyncForIn node, A arg) => visitLoop(node, arg);
+ R visitLoop(Loop node, A arg) => visitStatement(node, arg);
+ R visitMetadata(Metadata node, A arg) => visitNode(node, arg);
+ R visitMixinApplication(MixinApplication node, A arg) => visitNode(node, arg);
+ R visitModifiers(Modifiers node, A arg) => visitNode(node, arg);
+ R visitNamedArgument(NamedArgument node, A arg) => visitExpression(node, arg);
+ R visitNamedMixinApplication(NamedMixinApplication node, A arg) {
+ return visitMixinApplication(node, arg);
+ }
+ R visitNewExpression(NewExpression node, A arg) => visitExpression(node, arg);
+ R visitNodeList(NodeList node, A arg) => visitNode(node, arg);
+ R visitOperator(Operator node, A arg) => visitIdentifier(node, arg);
+ R visitParenthesizedExpression(ParenthesizedExpression node, A arg) {
+ return visitExpression(node, arg);
+ }
+ R visitPart(Part node, A arg) => visitLibraryTag(node, arg);
+ R visitPartOf(PartOf node, A arg) => visitNode(node, arg);
+ R visitPostfix(Postfix node, A arg) => visitNodeList(node, arg);
+ R visitPrefix(Prefix node, A arg) => visitNodeList(node, arg);
+ R visitRedirectingFactoryBody(RedirectingFactoryBody node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitRethrow(Rethrow node, A arg) => visitStatement(node, arg);
+ R visitReturn(Return node, A arg) => visitStatement(node, arg);
+ R visitSend(Send node, A arg) => visitExpression(node, arg);
+ R visitSendSet(SendSet node, A arg) => visitSend(node, arg);
+ R visitStatement(Statement node, A arg) => visitNode(node, arg);
+ R visitStringNode(StringNode node, A arg) => visitExpression(node, arg);
+ R visitStringInterpolation(StringInterpolation node, A arg) {
+ return visitStringNode(node, arg);
+ }
+ R visitStringInterpolationPart(StringInterpolationPart node, A arg) {
+ return visitNode(node, arg);
+ }
+ R visitSwitchCase(SwitchCase node, A arg) => visitNode(node, arg);
+ R visitSwitchStatement(SwitchStatement node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitLiteralSymbol(LiteralSymbol node, A arg) => visitExpression(node, arg);
+ R visitThrow(Throw node, A arg) => visitExpression(node, arg);
+ R visitTryStatement(TryStatement node, A arg) => visitStatement(node, arg);
+ R visitTypeAnnotation(TypeAnnotation node, A arg) => visitNode(node, arg);
+ R visitTypedef(Typedef node, A arg) => visitNode(node, arg);
+ R visitTypeVariable(TypeVariable node, A arg) => visitNode(node, arg);
+ R visitVariableDefinitions(VariableDefinitions node, A arg) {
+ return visitStatement(node, arg);
+ }
+ R visitWhile(While node, A arg) => visitLoop(node, arg);
+ R visitYield(Yield node, A arg) => visitStatement(node, arg);
+}
+
+
Token firstBeginToken(Node first, Node second) {
Token token = null;
if (first != null) {
@@ -141,8 +274,12 @@ abstract class Node extends NullTreeElementMixin implements Spannable {
accept(Visitor visitor);
+ accept1(Visitor1 visitor, arg);
+
visitChildren(Visitor visitor);
+ visitChildren1(Visitor1 visitor, arg);
+
/**
* Returns this node unparsed to Dart source string.
*/
@@ -271,6 +408,8 @@ class ClassNode extends Node {
accept(Visitor visitor) => visitor.visitClassNode(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitClassNode(this, arg);
+
visitChildren(Visitor visitor) {
if (name != null) name.accept(visitor);
if (typeParameters != null) typeParameters.accept(visitor);
@@ -279,6 +418,14 @@ class ClassNode extends Node {
if (body != null) body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (name != null) name.accept1(visitor, arg);
+ if (typeParameters != null) typeParameters.accept1(visitor, arg);
+ if (superclass != null) superclass.accept1(visitor, arg);
+ if (interfaces != null) interfaces.accept1(visitor, arg);
+ if (body != null) body.accept1(visitor, arg);
+ }
+
Token getBeginToken() => beginToken;
@override
@@ -313,11 +460,18 @@ class MixinApplication extends Node {
accept(Visitor visitor) => visitor.visitMixinApplication(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitMixinApplication(this, arg);
+
visitChildren(Visitor visitor) {
if (superclass != null) superclass.accept(visitor);
if (mixins != null) mixins.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (superclass != null) superclass.accept1(visitor, arg);
+ if (mixins != null) mixins.accept1(visitor, arg);
+ }
+
Token getBeginToken() => superclass.getBeginToken();
Token getEndToken() => mixins.getEndToken();
}
@@ -347,6 +501,10 @@ class NamedMixinApplication extends Node implements MixinApplication {
accept(Visitor visitor) => visitor.visitNamedMixinApplication(this);
+ accept1(Visitor1 visitor, arg) {
+ return visitor.visitNamedMixinApplication(this, arg);
+ }
+
visitChildren(Visitor visitor) {
name.accept(visitor);
if (typeParameters != null) typeParameters.accept(visitor);
@@ -355,6 +513,14 @@ class NamedMixinApplication extends Node implements MixinApplication {
mixinApplication.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ name.accept1(visitor, arg);
+ if (typeParameters != null) typeParameters.accept1(visitor, arg);
+ if (modifiers != null) modifiers.accept1(visitor, arg);
+ if (interfaces != null) interfaces.accept1(visitor, arg);
+ mixinApplication.accept1(visitor, arg);
+ }
+
Token getBeginToken() => classKeyword;
Token getEndToken() => endToken;
}
@@ -363,9 +529,6 @@ abstract class Expression extends Node {
Expression();
Expression asExpression() => this;
-
- // TODO(ahe): make class abstract instead of adding an abstract method.
- accept(Visitor visitor);
}
abstract class Statement extends Node {
@@ -373,9 +536,6 @@ abstract class Statement extends Node {
Statement asStatement() => this;
- // TODO(ahe): make class abstract instead of adding an abstract method.
- accept(Visitor visitor);
-
bool isValidBreakTarget() => true;
}
@@ -423,12 +583,20 @@ class Send extends Expression with StoredTreeElementMixin {
accept(Visitor visitor) => visitor.visitSend(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitSend(this, arg);
+
visitChildren(Visitor visitor) {
if (receiver != null) receiver.accept(visitor);
if (selector != null) selector.accept(visitor);
if (argumentsNode != null) argumentsNode.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (receiver != null) receiver.accept1(visitor, arg);
+ if (selector != null) selector.accept1(visitor, arg);
+ if (argumentsNode != null) argumentsNode.accept1(visitor, arg);
+ }
+
int argumentCount() {
return (argumentsNode == null) ? -1 : argumentsNode.slowLength();
}
@@ -529,6 +697,18 @@ class SendSet extends Send {
accept(Visitor visitor) => visitor.visitSendSet(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitSendSet(this, arg);
+
+ visitChildren(Visitor visitor) {
+ super.visitChildren(visitor);
+ if (assignmentOperator != null) assignmentOperator.accept(visitor);
+ }
+
+ visitChildren1(Visitor1 visitor, arg) {
+ super.visitChildren1(visitor, arg);
+ if (assignmentOperator != null) assignmentOperator.accept1(visitor, arg);
+ }
+
/// `true` if this send is not a simple assignment.
bool get isComplex => !identical(assignmentOperator.source, '=');
@@ -536,11 +716,6 @@ class SendSet extends Send {
bool get isIfNullAssignment =>
identical(assignmentOperator.source, '??=');
- visitChildren(Visitor visitor) {
- super.visitChildren(visitor);
- if (assignmentOperator != null) assignmentOperator.accept(visitor);
- }
-
Send copyWithReceiver(Node newReceiver, bool isConditional) {
assert(receiver == null);
return new SendSet(newReceiver, selector, assignmentOperator,
@@ -571,10 +746,16 @@ class NewExpression extends Expression {
accept(Visitor visitor) => visitor.visitNewExpression(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitNewExpression(this, arg);
+
visitChildren(Visitor visitor) {
if (send != null) send.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (send != null) send.accept1(visitor, arg);
+ }
+
bool get isConst {
return newToken == null || identical(newToken.stringValue, 'const');
}
@@ -617,6 +798,8 @@ class NodeList extends Node with IterableMixin<Node> {
accept(Visitor visitor) => visitor.visitNodeList(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitNodeList(this, arg);
+
visitChildren(Visitor visitor) {
if (nodes == null) return;
for (Link<Node> link = nodes; !link.isEmpty; link = link.tail) {
@@ -624,6 +807,13 @@ class NodeList extends Node with IterableMixin<Node> {
}
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (nodes == null) return;
+ for (Link<Node> link = nodes; !link.isEmpty; link = link.tail) {
+ if (link.head != null) link.head.accept1(visitor, arg);
+ }
+ }
+
Token getBeginToken() {
if (beginToken != null) return beginToken;
if (nodes != null) {
@@ -664,10 +854,16 @@ class Block extends Statement {
accept(Visitor visitor) => visitor.visitBlock(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitBlock(this, arg);
+
visitChildren(Visitor visitor) {
if (statements != null) statements.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (statements != null) statements.accept1(visitor, arg);
+ }
+
Token getBeginToken() => statements.getBeginToken();
Token getEndToken() => statements.getEndToken();
@@ -690,12 +886,20 @@ class If extends Statement {
accept(Visitor visitor) => visitor.visitIf(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitIf(this, arg);
+
visitChildren(Visitor visitor) {
if (condition != null) condition.accept(visitor);
if (thenPart != null) thenPart.accept(visitor);
if (elsePart != null) elsePart.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (condition != null) condition.accept1(visitor, arg);
+ if (thenPart != null) thenPart.accept1(visitor, arg);
+ if (elsePart != null) elsePart.accept1(visitor, arg);
+ }
+
Token getBeginToken() => ifToken;
Token getEndToken() {
@@ -719,12 +923,20 @@ class Conditional extends Expression {
accept(Visitor visitor) => visitor.visitConditional(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitConditional(this, arg);
+
visitChildren(Visitor visitor) {
condition.accept(visitor);
thenExpression.accept(visitor);
elseExpression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ condition.accept1(visitor, arg);
+ thenExpression.accept1(visitor, arg);
+ elseExpression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => condition.getBeginToken();
Token getEndToken() => elseExpression.getEndToken();
@@ -756,6 +968,8 @@ class For extends Loop {
accept(Visitor visitor) => visitor.visitFor(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitFor(this, arg);
+
visitChildren(Visitor visitor) {
if (initializer != null) initializer.accept(visitor);
if (conditionStatement != null) conditionStatement.accept(visitor);
@@ -763,6 +977,13 @@ class For extends Loop {
if (body != null) body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (initializer != null) initializer.accept1(visitor, arg);
+ if (conditionStatement != null) conditionStatement.accept1(visitor, arg);
+ if (update != null) update.accept1(visitor, arg);
+ if (body != null) body.accept1(visitor, arg);
+ }
+
Token getBeginToken() => forToken;
Token getEndToken() {
@@ -779,8 +1000,12 @@ class FunctionDeclaration extends Statement {
accept(Visitor visitor) => visitor.visitFunctionDeclaration(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitFunctionDeclaration(this, arg);
+
visitChildren(Visitor visitor) => function.accept(visitor);
+ visitChildren1(Visitor1 visitor, arg) => function.accept1(visitor, arg);
+
Token getBeginToken() => function.getBeginToken();
@override
@@ -804,8 +1029,12 @@ class AsyncModifier extends Node {
accept(Visitor visitor) => visitor.visitAsyncModifier(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitAsyncModifier(this, arg);
+
visitChildren(Visitor visitor) {}
+ visitChildren1(Visitor1 visitor, arg) {}
+
Token getBeginToken() => asyncToken;
Token getEndToken() => starToken != null ? starToken : asyncToken;
@@ -845,6 +1074,8 @@ class FunctionExpression extends Expression with StoredTreeElementMixin {
accept(Visitor visitor) => visitor.visitFunctionExpression(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitFunctionExpression(this, arg);
+
bool get isRedirectingFactory {
return body != null && body.asRedirectingFactoryBody() != null;
}
@@ -859,6 +1090,16 @@ class FunctionExpression extends Expression with StoredTreeElementMixin {
if (body != null) body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (modifiers != null) modifiers.accept1(visitor, arg);
+ if (returnType != null) returnType.accept1(visitor, arg);
+ if (name != null) name.accept1(visitor, arg);
+ if (parameters != null) parameters.accept1(visitor, arg);
+ if (initializers != null) initializers.accept1(visitor, arg);
+ if (asyncModifier != null) asyncModifier.accept1(visitor, arg);
+ if (body != null) body.accept1(visitor, arg);
+ }
+
bool get hasBody => body.asEmptyStatement() == null;
bool get hasEmptyBody {
@@ -898,6 +1139,8 @@ abstract class Literal<T> extends Expression {
visitChildren(Visitor visitor) {}
+ visitChildren1(Visitor1 visitor, arg) {}
+
Token getBeginToken() => token;
Token getEndToken() => token;
@@ -921,6 +1164,8 @@ class LiteralInt extends Literal<int> {
}
accept(Visitor visitor) => visitor.visitLiteralInt(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralInt(this, arg);
}
class LiteralDouble extends Literal<double> {
@@ -942,6 +1187,8 @@ class LiteralDouble extends Literal<double> {
}
accept(Visitor visitor) => visitor.visitLiteralDouble(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralDouble(this, arg);
}
class LiteralBool extends Literal<bool> {
@@ -957,6 +1204,8 @@ class LiteralBool extends Literal<bool> {
}
accept(Visitor visitor) => visitor.visitLiteralBool(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralBool(this, arg);
}
@@ -1031,14 +1280,18 @@ class LiteralString extends StringNode {
LiteralString asLiteralString() => this;
- void visitChildren(Visitor visitor) {}
-
bool get isInterpolation => false;
Token getBeginToken() => token;
Token getEndToken() => token;
accept(Visitor visitor) => visitor.visitLiteralString(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralString(this, arg);
+
+ void visitChildren(Visitor visitor) {}
+
+ void visitChildren1(Visitor1 visitor, arg) {}
}
class LiteralNull extends Literal<String> {
@@ -1049,6 +1302,8 @@ class LiteralNull extends Literal<String> {
String get value => null;
accept(Visitor visitor) => visitor.visitLiteralNull(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralNull(this, arg);
}
class LiteralList extends Expression {
@@ -1064,11 +1319,18 @@ class LiteralList extends Expression {
LiteralList asLiteralList() => this;
accept(Visitor visitor) => visitor.visitLiteralList(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralList(this, arg);
+
visitChildren(Visitor visitor) {
if (typeArguments != null) typeArguments.accept(visitor);
elements.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (typeArguments != null) typeArguments.accept1(visitor, arg);
+ elements.accept1(visitor, arg);
+ }
+
Token getBeginToken() {
if (constKeyword != null) return constKeyword;
return firstBeginToken(typeArguments, elements);
@@ -1086,11 +1348,17 @@ class LiteralSymbol extends Expression {
LiteralSymbol asLiteralSymbol() => this;
+ accept(Visitor visitor) => visitor.visitLiteralSymbol(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralSymbol(this, arg);
+
void visitChildren(Visitor visitor) {
if (identifiers != null) identifiers.accept(visitor);
}
- accept(Visitor visitor) => visitor.visitLiteralSymbol(this);
+ void visitChildren1(Visitor1 visitor, arg) {
+ if (identifiers != null) identifiers.accept1(visitor, arg);
+ }
Token getBeginToken() => hashToken;
@@ -1118,8 +1386,12 @@ class Identifier extends Expression with StoredTreeElementMixin {
accept(Visitor visitor) => visitor.visitIdentifier(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitIdentifier(this, arg);
+
visitChildren(Visitor visitor) {}
+ visitChildren1(Visitor1 visitor, arg) {}
+
Token getBeginToken() => token;
Token getEndToken() => token;
@@ -1135,11 +1407,17 @@ class DottedName extends Expression {
DottedName asDottedName() => this;
+ accept(Visitor visitor) => visitor.visitDottedName(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitDottedName(this, arg);
+
void visitChildren(Visitor visitor) {
identifiers.accept(visitor);
}
- accept(Visitor visitor) => visitor.visitDottedName(this);
+ void visitChildren1(Visitor1 visitor, arg) {
+ identifiers.accept1(visitor, arg);
+ }
Token getBeginToken() => token;
Token getEndToken() => identifiers.getEndToken();
@@ -1163,6 +1441,8 @@ class Operator extends Identifier {
Operator asOperator() => this;
accept(Visitor visitor) => visitor.visitOperator(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitOperator(this, arg);
}
class Return extends Statement {
@@ -1181,10 +1461,16 @@ class Return extends Statement {
accept(Visitor visitor) => visitor.visitReturn(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitReturn(this, arg);
+
visitChildren(Visitor visitor) {
if (expression != null) expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (expression != null) expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => beginToken;
Token getEndToken() {
@@ -1207,10 +1493,16 @@ class Yield extends Statement {
accept(Visitor visitor) => visitor.visitYield(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitYield(this, arg);
+
visitChildren(Visitor visitor) {
expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => yieldToken;
Token getEndToken() => endToken;
@@ -1228,10 +1520,18 @@ class RedirectingFactoryBody extends Statement with StoredTreeElementMixin {
accept(Visitor visitor) => visitor.visitRedirectingFactoryBody(this);
+ accept1(Visitor1 visitor, arg) {
+ return visitor.visitRedirectingFactoryBody(this, arg);
+ }
+
visitChildren(Visitor visitor) {
constructorReference.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ constructorReference.accept1(visitor, arg);
+ }
+
Token getBeginToken() => beginToken;
Token getEndToken() => endToken;
@@ -1247,10 +1547,16 @@ class ExpressionStatement extends Statement {
accept(Visitor visitor) => visitor.visitExpressionStatement(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitExpressionStatement(this, arg);
+
visitChildren(Visitor visitor) {
if (expression != null) expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (expression != null) expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => expression.getBeginToken();
Token getEndToken() => endToken;
@@ -1268,10 +1574,16 @@ class Throw extends Expression {
accept(Visitor visitor) => visitor.visitThrow(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitThrow(this, arg);
+
visitChildren(Visitor visitor) {
expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => throwToken;
Token getEndToken() => endToken;
@@ -1288,10 +1600,16 @@ class Await extends Expression {
accept(Visitor visitor) => visitor.visitAwait(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitAwait(this, arg);
+
visitChildren(Visitor visitor) {
expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => awaitToken;
Token getEndToken() => expression.getEndToken();
@@ -1312,11 +1630,18 @@ class Assert extends Statement {
accept(Visitor visitor) => visitor.visitAssert(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitAssert(this, arg);
+
visitChildren(Visitor visitor) {
condition.accept(visitor);
if (message != null) message.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ condition.accept1(visitor, arg);
+ if (message != null) message.accept1(visitor, arg);
+ }
+
Token getBeginToken() => assertToken;
Token getEndToken() => semicolonToken;
}
@@ -1330,8 +1655,13 @@ class Rethrow extends Statement {
Rethrow asRethrow() => this;
accept(Visitor visitor) => visitor.visitRethrow(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitRethrow(this, arg);
+
visitChildren(Visitor visitor) { }
+ visitChildren1(Visitor1 visitor, arg) { }
+
Token getBeginToken() => throwToken;
Token getEndToken() => endToken;
}
@@ -1346,11 +1676,18 @@ class TypeAnnotation extends Node {
accept(Visitor visitor) => visitor.visitTypeAnnotation(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitTypeAnnotation(this, arg);
+
visitChildren(Visitor visitor) {
typeName.accept(visitor);
if (typeArguments != null) typeArguments.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ typeName.accept1(visitor, arg);
+ if (typeArguments != null) typeArguments.accept1(visitor, arg);
+ }
+
Token getBeginToken() => typeName.getBeginToken();
Token getEndToken() {
@@ -1366,6 +1703,8 @@ class TypeVariable extends Node {
accept(Visitor visitor) => visitor.visitTypeVariable(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitTypeVariable(this, arg);
+
visitChildren(Visitor visitor) {
name.accept(visitor);
if (bound != null) {
@@ -1373,6 +1712,13 @@ class TypeVariable extends Node {
}
}
+ visitChildren1(Visitor1 visitor, arg) {
+ name.accept1(visitor, arg);
+ if (bound != null) {
+ bound.accept1(visitor, arg);
+ }
+ }
+
TypeVariable asTypeVariable() => this;
Token getBeginToken() => name.getBeginToken();
@@ -1407,12 +1753,20 @@ class VariableDefinitions extends Statement {
accept(Visitor visitor) => visitor.visitVariableDefinitions(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitVariableDefinitions(this, arg);
+
visitChildren(Visitor visitor) {
if (metadata != null) metadata.accept(visitor);
if (type != null) type.accept(visitor);
if (definitions != null) definitions.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (metadata != null) metadata.accept1(visitor, arg);
+ if (type != null) type.accept1(visitor, arg);
+ if (definitions != null) definitions.accept1(visitor, arg);
+ }
+
Token getBeginToken() {
var token = firstBeginToken(modifiers, type);
if (token == null) {
@@ -1448,11 +1802,18 @@ class DoWhile extends Loop {
accept(Visitor visitor) => visitor.visitDoWhile(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitDoWhile(this, arg);
+
visitChildren(Visitor visitor) {
if (condition != null) condition.accept(visitor);
if (body != null) body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (condition != null) condition.accept1(visitor, arg);
+ if (body != null) body.accept1(visitor, arg);
+ }
+
Token getBeginToken() => doKeyword;
Token getEndToken() => endToken;
@@ -1469,11 +1830,18 @@ class While extends Loop {
accept(Visitor visitor) => visitor.visitWhile(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitWhile(this, arg);
+
visitChildren(Visitor visitor) {
if (condition != null) condition.accept(visitor);
if (body != null) body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (condition != null) condition.accept1(visitor, arg);
+ if (body != null) body.accept1(visitor, arg);
+ }
+
Token getBeginToken() => whileKeyword;
Token getEndToken() => body.getEndToken();
@@ -1490,10 +1858,18 @@ class ParenthesizedExpression extends Expression {
accept(Visitor visitor) => visitor.visitParenthesizedExpression(this);
+ accept1(Visitor1 visitor, arg) {
+ return visitor.visitParenthesizedExpression(this, arg);
+ }
+
visitChildren(Visitor visitor) {
if (expression != null) expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (expression != null) expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => beginToken;
Token getEndToken() => beginToken.endGroup;
@@ -1559,9 +1935,15 @@ class Modifiers extends Node {
Modifiers asModifiers() => this;
Token getBeginToken() => nodes.getBeginToken();
Token getEndToken() => nodes.getEndToken();
+
accept(Visitor visitor) => visitor.visitModifiers(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitModifiers(this, arg);
+
visitChildren(Visitor visitor) => nodes.accept(visitor);
+ visitChildren1(Visitor1 visitor, arg) => nodes.accept1(visitor, arg);
+
bool get isStatic => (flags & FLAG_STATIC) != 0;
bool get isAbstract => (flags & FLAG_ABSTRACT) != 0;
bool get isFinal => (flags & FLAG_FINAL) != 0;
@@ -1602,11 +1984,18 @@ class StringInterpolation extends StringNode {
accept(Visitor visitor) => visitor.visitStringInterpolation(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitStringInterpolation(this, arg);
+
visitChildren(Visitor visitor) {
string.accept(visitor);
parts.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ string.accept1(visitor, arg);
+ parts.accept1(visitor, arg);
+ }
+
Token getBeginToken() => string.getBeginToken();
Token getEndToken() => parts.getEndToken();
}
@@ -1621,11 +2010,20 @@ class StringInterpolationPart extends Node {
accept(Visitor visitor) => visitor.visitStringInterpolationPart(this);
+ accept1(Visitor1 visitor, arg) {
+ return visitor.visitStringInterpolationPart(this, arg);
+ }
+
visitChildren(Visitor visitor) {
expression.accept(visitor);
string.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ string.accept1(visitor, arg);
+ }
+
Token getBeginToken() => expression.getBeginToken();
Token getEndToken() => string.getEndToken();
@@ -1687,11 +2085,18 @@ class StringJuxtaposition extends StringNode {
accept(Visitor visitor) => visitor.visitStringJuxtaposition(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitStringJuxtaposition(this, arg);
+
void visitChildren(Visitor visitor) {
first.accept(visitor);
second.accept(visitor);
}
+ void visitChildren1(Visitor1 visitor, arg) {
+ first.accept1(visitor, arg);
+ second.accept1(visitor, arg);
+ }
+
Token getBeginToken() => first.getBeginToken();
Token getEndToken() => second.getEndToken();
@@ -1706,8 +2111,12 @@ class EmptyStatement extends Statement {
accept(Visitor visitor) => visitor.visitEmptyStatement(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitEmptyStatement(this, arg);
+
visitChildren(Visitor visitor) {}
+ visitChildren1(Visitor1 visitor, arg) {}
+
Token getBeginToken() => semicolonToken;
Token getEndToken() => semicolonToken;
@@ -1727,11 +2136,18 @@ class LiteralMap extends Expression {
accept(Visitor visitor) => visitor.visitLiteralMap(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralMap(this, arg);
+
visitChildren(Visitor visitor) {
if (typeArguments != null) typeArguments.accept(visitor);
entries.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (typeArguments != null) typeArguments.accept1(visitor, arg);
+ entries.accept1(visitor, arg);
+ }
+
Token getBeginToken() {
if (constKeyword != null) return constKeyword;
return firstBeginToken(typeArguments, entries);
@@ -1752,11 +2168,18 @@ class LiteralMapEntry extends Node {
accept(Visitor visitor) => visitor.visitLiteralMapEntry(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitLiteralMapEntry(this, arg);
+
visitChildren(Visitor visitor) {
key.accept(visitor);
value.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ key.accept1(visitor, arg);
+ value.accept1(visitor, arg);
+ }
+
Token getBeginToken() => key.getBeginToken();
Token getEndToken() => value.getEndToken();
@@ -1774,11 +2197,18 @@ class NamedArgument extends Expression {
accept(Visitor visitor) => visitor.visitNamedArgument(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitNamedArgument(this, arg);
+
visitChildren(Visitor visitor) {
name.accept(visitor);
expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ name.accept1(visitor, arg);
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => name.getBeginToken();
Token getEndToken() => expression.getEndToken();
@@ -1799,11 +2229,18 @@ class SwitchStatement extends Statement {
accept(Visitor visitor) => visitor.visitSwitchStatement(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitSwitchStatement(this, arg);
+
visitChildren(Visitor visitor) {
parenthesizedExpression.accept(visitor);
cases.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ parenthesizedExpression.accept1(visitor, arg);
+ cases.accept1(visitor, arg);
+ }
+
Token getBeginToken() => switchKeyword;
Token getEndToken() => cases.getEndToken();
@@ -1818,8 +2255,14 @@ class CaseMatch extends Node {
CaseMatch asCaseMatch() => this;
Token getBeginToken() => caseKeyword;
Token getEndToken() => colonToken;
+
accept(Visitor visitor) => visitor.visitCaseMatch(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitCaseMatch(this, arg);
+
visitChildren(Visitor visitor) => expression.accept(visitor);
+
+ visitChildren1(Visitor1 visitor, arg) => expression.accept1(visitor, arg);
}
class SwitchCase extends Node {
@@ -1851,11 +2294,18 @@ class SwitchCase extends Node {
accept(Visitor visitor) => visitor.visitSwitchCase(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitSwitchCase(this, arg);
+
visitChildren(Visitor visitor) {
labelsAndCases.accept(visitor);
statements.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ labelsAndCases.accept1(visitor, arg);
+ statements.accept1(visitor, arg);
+ }
+
Token getBeginToken() {
return startToken;
}
@@ -1886,6 +2336,10 @@ abstract class GotoStatement extends Statement {
if (target != null) target.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (target != null) target.accept1(visitor, arg);
+ }
+
Token getBeginToken() => keywordToken;
Token getEndToken() => semicolonToken;
@@ -1901,6 +2355,8 @@ class BreakStatement extends GotoStatement {
BreakStatement asBreakStatement() => this;
accept(Visitor visitor) => visitor.visitBreakStatement(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitBreakStatement(this, arg);
}
class ContinueStatement extends GotoStatement {
@@ -1910,6 +2366,8 @@ class ContinueStatement extends GotoStatement {
ContinueStatement asContinueStatement() => this;
accept(Visitor visitor) => visitor.visitContinueStatement(this);
+
+ accept1(Visitor1 visitor, arg) => visitor.visitContinueStatement(this, arg);
}
abstract class ForIn extends Loop {
@@ -1938,12 +2396,20 @@ class SyncForIn extends ForIn with StoredTreeElementMixin {
accept(Visitor visitor) => visitor.visitSyncForIn(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitSyncForIn(this, arg);
+
visitChildren(Visitor visitor) {
declaredIdentifier.accept(visitor);
expression.accept(visitor);
body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ declaredIdentifier.accept1(visitor, arg);
+ expression.accept1(visitor, arg);
+ body.accept1(visitor, arg);
+ }
+
Token getBeginToken() => forToken;
}
@@ -1958,12 +2424,20 @@ class AsyncForIn extends ForIn with StoredTreeElementMixin {
accept(Visitor visitor) => visitor.visitAsyncForIn(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitAsyncForIn(this, arg);
+
visitChildren(Visitor visitor) {
declaredIdentifier.accept(visitor);
expression.accept(visitor);
body.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ declaredIdentifier.accept1(visitor, arg);
+ expression.accept1(visitor, arg);
+ body.accept1(visitor, arg);
+ }
+
Token getBeginToken() => awaitToken;
}
@@ -1979,10 +2453,16 @@ class Label extends Node {
accept(Visitor visitor) => visitor.visitLabel(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitLabel(this, arg);
+
void visitChildren(Visitor visitor) {
identifier.accept(visitor);
}
+ void visitChildren1(Visitor1 visitor, arg) {
+ identifier.accept1(visitor, arg);
+ }
+
Token getBeginToken() => identifier.token;
Token getEndToken() => colonToken;
}
@@ -1997,11 +2477,18 @@ class LabeledStatement extends Statement {
accept(Visitor visitor) => visitor.visitLabeledStatement(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitLabeledStatement(this, arg);
+
visitChildren(Visitor visitor) {
labels.accept(visitor);
statement.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ labels.accept1(visitor, arg);
+ statement.accept1(visitor, arg);
+ }
+
Token getBeginToken() => labels.getBeginToken();
Token getEndToken() => statement.getEndToken();
@@ -2037,8 +2524,12 @@ class LibraryName extends LibraryTag {
accept(Visitor visitor) => visitor.visitLibraryName(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitLibraryName(this, arg);
+
visitChildren(Visitor visitor) => name.accept(visitor);
+ visitChildren1(Visitor1 visitor, arg) => name.accept1(visitor, arg);
+
Token getBeginToken() => libraryKeyword;
Token getEndToken() => name.getEndToken().next;
@@ -2089,12 +2580,20 @@ class Import extends LibraryDependency {
accept(Visitor visitor) => visitor.visitImport(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitImport(this, arg);
+
visitChildren(Visitor visitor) {
uri.accept(visitor);
if (prefix != null) prefix.accept(visitor);
if (combinators != null) combinators.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ uri.accept1(visitor, arg);
+ if (prefix != null) prefix.accept1(visitor, arg);
+ if (combinators != null) combinators.accept1(visitor, arg);
+ }
+
Token getBeginToken() => importKeyword;
Token getEndToken() {
@@ -2127,12 +2626,20 @@ class ConditionalUri extends Node {
accept(Visitor visitor) => visitor.visitConditionalUri(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitConditionalUri(this, arg);
+
visitChildren(Visitor visitor) {
key.accept(visitor);
if (value != null) value.accept(visitor);
uri.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ key.accept1(visitor, arg);
+ if (value != null) value.accept1(visitor, arg);
+ uri.accept1(visitor, arg);
+ }
+
Token getBeginToken() => ifToken;
Token getEndToken() => uri.getEndToken();
@@ -2156,11 +2663,18 @@ class Enum extends Node {
accept(Visitor visitor) => visitor.visitEnum(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitEnum(this, arg);
+
visitChildren(Visitor visitor) {
name.accept(visitor);
if (names != null) names.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ name.accept1(visitor, arg);
+ if (names != null) names.accept1(visitor, arg);
+ }
+
Token getBeginToken() => enumToken;
Token getEndToken() => names.getEndToken();
}
@@ -2188,11 +2702,18 @@ class Export extends LibraryDependency {
accept(Visitor visitor) => visitor.visitExport(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitExport(this, arg);
+
visitChildren(Visitor visitor) {
uri.accept(visitor);
if (combinators != null) combinators.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ uri.accept1(visitor, arg);
+ if (combinators != null) combinators.accept1(visitor, arg);
+ }
+
Token getBeginToken() => exportKeyword;
Token getEndToken() {
@@ -2216,8 +2737,12 @@ class Part extends LibraryTag {
accept(Visitor visitor) => visitor.visitPart(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitPart(this, arg);
+
visitChildren(Visitor visitor) => uri.accept(visitor);
+ visitChildren1(Visitor1 visitor, arg) => uri.accept1(visitor, arg);
+
Token getBeginToken() => partKeyword;
Token getEndToken() => uri.getEndToken().next;
@@ -2240,8 +2765,12 @@ class PartOf extends Node {
accept(Visitor visitor) => visitor.visitPartOf(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitPartOf(this, arg);
+
visitChildren(Visitor visitor) => name.accept(visitor);
+ visitChildren1(Visitor1 visitor, arg) => name.accept1(visitor, arg);
+
Token getBeginToken() => partKeyword;
Token getEndToken() => name.getEndToken().next;
@@ -2262,8 +2791,12 @@ class Combinator extends Node {
accept(Visitor visitor) => visitor.visitCombinator(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitCombinator(this, arg);
+
visitChildren(Visitor visitor) => identifiers.accept(visitor);
+ visitChildren1(Visitor1 visitor, arg) => identifiers.accept1(visitor, arg);
+
Token getBeginToken() => keywordToken;
Token getEndToken() => identifiers.getEndToken();
@@ -2285,6 +2818,8 @@ class Typedef extends Node {
accept(Visitor visitor) => visitor.visitTypedef(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitTypedef(this, arg);
+
visitChildren(Visitor visitor) {
if (returnType != null) returnType.accept(visitor);
name.accept(visitor);
@@ -2292,6 +2827,13 @@ class Typedef extends Node {
formals.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (returnType != null) returnType.accept1(visitor, arg);
+ name.accept1(visitor, arg);
+ if (typeParameters != null) typeParameters.accept1(visitor, arg);
+ formals.accept1(visitor, arg);
+ }
+
Token getBeginToken() => typedefKeyword;
Token getEndToken() => endToken;
@@ -2312,12 +2854,20 @@ class TryStatement extends Statement {
accept(Visitor visitor) => visitor.visitTryStatement(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitTryStatement(this, arg);
+
visitChildren(Visitor visitor) {
tryBlock.accept(visitor);
catchBlocks.accept(visitor);
if (finallyBlock != null) finallyBlock.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ tryBlock.accept1(visitor, arg);
+ catchBlocks.accept1(visitor, arg);
+ if (finallyBlock != null) finallyBlock.accept1(visitor, arg);
+ }
+
Token getBeginToken() => tryKeyword;
Token getEndToken() {
@@ -2334,10 +2884,16 @@ class Cascade extends Expression {
Cascade asCascade() => this;
accept(Visitor visitor) => visitor.visitCascade(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitCascade(this, arg);
+
void visitChildren(Visitor visitor) {
expression.accept(visitor);
}
+ void visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => expression.getBeginToken();
Token getEndToken() => expression.getEndToken();
@@ -2351,10 +2907,16 @@ class CascadeReceiver extends Expression {
CascadeReceiver asCascadeReceiver() => this;
accept(Visitor visitor) => visitor.visitCascadeReceiver(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitCascadeReceiver(this, arg);
+
void visitChildren(Visitor visitor) {
expression.accept(visitor);
}
+ void visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => expression.getBeginToken();
Token getEndToken() => expression.getEndToken();
@@ -2375,6 +2937,8 @@ class CatchBlock extends Node {
accept(Visitor visitor) => visitor.visitCatchBlock(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitCatchBlock(this, arg);
+
Node get exception {
if (formals == null || formals.nodes.isEmpty) return null;
VariableDefinitions declarations = formals.nodes.head;
@@ -2395,6 +2959,12 @@ class CatchBlock extends Node {
block.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ if (type != null) type.accept1(visitor, arg);
+ if (formals != null) formals.accept1(visitor, arg);
+ block.accept1(visitor, arg);
+ }
+
Token getBeginToken() => onKeyword != null ? onKeyword : catchKeyword;
Token getEndToken() => block.getEndToken();
@@ -2410,10 +2980,16 @@ class Metadata extends Node {
accept(Visitor visitor) => visitor.visitMetadata(this);
+ accept1(Visitor1 visitor, arg) => visitor.visitMetadata(this, arg);
+
visitChildren(Visitor visitor) {
expression.accept(visitor);
}
+ visitChildren1(Visitor1 visitor, arg) {
+ expression.accept1(visitor, arg);
+ }
+
Token getBeginToken() => token;
Token getEndToken() => expression.getEndToken();
@@ -2482,8 +3058,12 @@ class ErrorNode
accept(Visitor visitor) {}
+ accept1(Visitor1 visitor, arg) {}
+
visitChildren(Visitor visitor) {}
+ visitChildren1(Visitor1 visitor, arg) {}
+
bool get isErroneous => true;
// FunctionExpression.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698