| Index: pkg/polymer_expressions/lib/visitor.dart
|
| diff --git a/pkg/polymer_expressions/lib/visitor.dart b/pkg/polymer_expressions/lib/visitor.dart
|
| index 08a6a022aac7498305e659c6daf013dedf6ceadd..8c4118df150aa432128a079f8e874285fb7829c8 100644
|
| --- a/pkg/polymer_expressions/lib/visitor.dart
|
| +++ b/pkg/polymer_expressions/lib/visitor.dart
|
| @@ -24,28 +24,36 @@ abstract class Visitor {
|
| visitInExpression(InExpression c);
|
| }
|
|
|
| -abstract class RecursiveVisitor extends Visitor {
|
| - visitExpression(Expression e);
|
| +class RecursiveVisitor extends Visitor {
|
| + preVisitExpression(Expression e) {}
|
| + visitExpression(Expression e) {}
|
|
|
| - visitEmptyExpression(EmptyExpression e) => visitExpression(e);
|
| + visitEmptyExpression(EmptyExpression e) {
|
| + preVisitExpression(e);
|
| + visitExpression(e);
|
| + }
|
|
|
| visitParenthesizedExpression(ParenthesizedExpression e) {
|
| + preVisitExpression(e);
|
| visit(e.child);
|
| visitExpression(e);
|
| }
|
|
|
| visitGetter(Getter i) {
|
| + preVisitExpression(i);
|
| visit(i.receiver);
|
| visitExpression(i);
|
| }
|
|
|
| visitIndex(Index i) {
|
| + preVisitExpression(i);
|
| visit(i.receiver);
|
| visit(i.argument);
|
| visitExpression(i);
|
| }
|
|
|
| visitInvoke(Invoke i) {
|
| + preVisitExpression(i);
|
| visit(i.receiver);
|
| if (i.arguments != null) {
|
| for (var a in i.arguments) {
|
| @@ -55,9 +63,13 @@ abstract class RecursiveVisitor extends Visitor {
|
| visitExpression(i);
|
| }
|
|
|
| - visitLiteral(Literal l) => visitExpression(l);
|
| + visitLiteral(Literal l) {
|
| + preVisitExpression(l);
|
| + visitExpression(l);
|
| + }
|
|
|
| visitListLiteral(ListLiteral l) {
|
| + preVisitExpression(l);
|
| for (var i in l.items) {
|
| visit(i);
|
| }
|
| @@ -65,6 +77,7 @@ abstract class RecursiveVisitor extends Visitor {
|
| }
|
|
|
| visitMapLiteral(MapLiteral l) {
|
| + preVisitExpression(l);
|
| for (var e in l.entries) {
|
| visit(e);
|
| }
|
| @@ -72,25 +85,32 @@ abstract class RecursiveVisitor extends Visitor {
|
| }
|
|
|
| visitMapLiteralEntry(MapLiteralEntry e) {
|
| + preVisitExpression(e);
|
| visit(e.key);
|
| visit(e.entryValue);
|
| visitExpression(e);
|
| }
|
|
|
| - visitIdentifier(Identifier i) => visitExpression(i);
|
| + visitIdentifier(Identifier i) {
|
| + preVisitExpression(i);
|
| + visitExpression(i);
|
| + }
|
|
|
| visitBinaryOperator(BinaryOperator o) {
|
| + preVisitExpression(o);
|
| visit(o.left);
|
| visit(o.right);
|
| visitExpression(o);
|
| }
|
|
|
| visitUnaryOperator(UnaryOperator o) {
|
| + preVisitExpression(o);
|
| visit(o.child);
|
| visitExpression(o);
|
| }
|
|
|
| visitTernaryOperator(TernaryOperator o) {
|
| + preVisitExpression(o);
|
| visit(o.condition);
|
| visit(o.trueExpr);
|
| visit(o.falseExpr);
|
| @@ -98,8 +118,9 @@ abstract class RecursiveVisitor extends Visitor {
|
| }
|
|
|
| visitInExpression(InExpression c) {
|
| + preVisitExpression(c);
|
| visit(c.left);
|
| visit(c.right);
|
| visitExpression(c);
|
| }
|
| -}
|
| +}
|
|
|