| Index: frog/leg/tree/nodes.dart
|
| diff --git a/frog/leg/tree/nodes.dart b/frog/leg/tree/nodes.dart
|
| index c8bba1500a58b7bc29dfc2819b79bccfbfc35a01..3acc0e8ef3b5fec2bfa9a9f9a909dfa0a66fc014 100644
|
| --- a/frog/leg/tree/nodes.dart
|
| +++ b/frog/leg/tree/nodes.dart
|
| @@ -1405,64 +1405,35 @@ class SwitchStatement extends Statement {
|
|
|
| class SwitchCase extends Node {
|
| final Identifier label;
|
| - final Expression expression;
|
| + final NodeList expressions;
|
| + final Token defaultKeyword;
|
| final NodeList statements;
|
|
|
| - final Token caseKeyword;
|
| + final Token startToken;
|
|
|
| - SwitchCase(this.label, this.expression, this.statements, this.caseKeyword);
|
| + SwitchCase(this.label, this.expressions, this.defaultKeyword,
|
| + this.statements, this.startToken);
|
|
|
| SwitchCase asSwitchCase() => this;
|
|
|
| + bool get isDefaultCase() => defaultKeyword !== null;
|
| +
|
| accept(Visitor visitor) => visitor.visitSwitchCase(this);
|
|
|
| visitChildren(Visitor visitor) {
|
| if (label !== null) label.accept(visitor);
|
| - expression.accept(visitor);
|
| + expressions.accept(visitor);
|
| statements.accept(visitor);
|
| }
|
|
|
| Token getBeginToken() {
|
| - if (label !== null) return label.getBeginToken();
|
| - return caseKeyword;
|
| + return startToken;
|
| }
|
|
|
| Token getEndToken() {
|
| if (statements.nodes.isEmpty()) {
|
| // The colon after the expression.
|
| - return expression.getEndToken().next;
|
| - } else {
|
| - return statements.getEndToken();
|
| - }
|
| - }
|
| -}
|
| -
|
| -class DefaultCase extends Node {
|
| - final Identifier label;
|
| - final NodeList statements;
|
| -
|
| - final Token defaultKeyword;
|
| -
|
| - DefaultCase(this.label, this.statements, this.defaultKeyword);
|
| -
|
| - DefaultCase asDefaultCase() => this;
|
| -
|
| - accept(Visitor visitor) => visitor.visitDefaultCase(this);
|
| -
|
| - visitChildren(Visitor visitor) {
|
| - if (label !== null) label.accept(visitor);
|
| - statements.accept(visitor);
|
| - }
|
| -
|
| - Token getBeginToken() {
|
| - if (label !== null) return label.getBeginToken();
|
| - return defaultKeyword;
|
| - }
|
| -
|
| - Token getEndToken() {
|
| - if (statements.nodes.isEmpty()) {
|
| - // The colon after default.
|
| - return defaultKeyword.next;
|
| + return expressions.getEndToken().next;
|
| } else {
|
| return statements.getEndToken();
|
| }
|
|
|