| Index: lib/compiler/implementation/tree/nodes.dart
|
| diff --git a/lib/compiler/implementation/tree/nodes.dart b/lib/compiler/implementation/tree/nodes.dart
|
| index 71326fb607522bb2a342cc502a76c4d3aca8024f..993116cbf5d20f770dc62d27bd93f1cec4268d60 100644
|
| --- a/lib/compiler/implementation/tree/nodes.dart
|
| +++ b/lib/compiler/implementation/tree/nodes.dart
|
| @@ -5,6 +5,8 @@
|
| interface Visitor<R> {
|
| R visitBlock(Block node);
|
| R visitBreakStatement(BreakStatement node);
|
| + R visitCascade(Cascade node);
|
| + R visitCascadeReceiver(CascadeReceiver node);
|
| R visitCatchBlock(CatchBlock node);
|
| R visitClassNode(ClassNode node);
|
| R visitConditional(Conditional node);
|
| @@ -108,6 +110,8 @@ class Node implements Hashable {
|
|
|
| Block asBlock() => null;
|
| BreakStatement asBreakStatement() => null;
|
| + Cascade asCascade() => null;
|
| + CascadeReceiver asCascadeReceiver() => null;
|
| CatchBlock asCatchBlock() => null;
|
| ClassNode asClassNode() => null;
|
| Conditional asConditional() => null;
|
| @@ -1561,6 +1565,39 @@ class TryStatement extends Statement {
|
| }
|
| }
|
|
|
| +class Cascade extends Node {
|
| + final Node expression;
|
| + Cascade(this.expression);
|
| +
|
| + Cascade asCascade() => this;
|
| + accept(Visitor visitor) => visitor.visitCascade(this);
|
| +
|
| + void visitChildren(Visitor visitor) {
|
| + expression.accept(visitor);
|
| + }
|
| +
|
| + Token getBeginToken() => expression.getBeginToken();
|
| +
|
| + Token getEndToken() => expression.getEndToken();
|
| +}
|
| +
|
| +class CascadeReceiver extends Node {
|
| + final Node expression;
|
| + final Token cascadeOperator;
|
| + CascadeReceiver(this.expression, this.cascadeOperator);
|
| +
|
| + CascadeReceiver asCascadeReceiver() => this;
|
| + accept(Visitor visitor) => visitor.visitCascadeReceiver(this);
|
| +
|
| + void visitChildren(Visitor visitor) {
|
| + expression.accept(visitor);
|
| + }
|
| +
|
| + Token getBeginToken() => expression.getBeginToken();
|
| +
|
| + Token getEndToken() => expression.getEndToken();
|
| +}
|
| +
|
| class CatchBlock extends Node {
|
| final NodeList formals;
|
| final Block block;
|
|
|