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

Side by Side Diff: pkg/polymer_expressions/lib/visitor.dart

Issue 207433002: Changes in polymer-expressions to prepare for codegen in polymer: (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library polymer_expressions.visitor; 5 library polymer_expressions.visitor;
6 6
7 import 'expression.dart'; 7 import 'expression.dart';
8 8
9 abstract class Visitor { 9 abstract class Visitor {
10 visit(Expression s) => s.accept(this); 10 visit(Expression s) => s.accept(this);
11 visitEmptyExpression(EmptyExpression e); 11 visitEmptyExpression(EmptyExpression e);
12 visitParenthesizedExpression(ParenthesizedExpression e); 12 visitParenthesizedExpression(ParenthesizedExpression e);
13 visitGetter(Getter i); 13 visitGetter(Getter i);
14 visitIndex(Index i); 14 visitIndex(Index i);
15 visitInvoke(Invoke i); 15 visitInvoke(Invoke i);
16 visitLiteral(Literal l); 16 visitLiteral(Literal l);
17 visitListLiteral(ListLiteral l); 17 visitListLiteral(ListLiteral l);
18 visitMapLiteral(MapLiteral l); 18 visitMapLiteral(MapLiteral l);
19 visitMapLiteralEntry(MapLiteralEntry l); 19 visitMapLiteralEntry(MapLiteralEntry l);
20 visitIdentifier(Identifier i); 20 visitIdentifier(Identifier i);
21 visitBinaryOperator(BinaryOperator o); 21 visitBinaryOperator(BinaryOperator o);
22 visitUnaryOperator(UnaryOperator o); 22 visitUnaryOperator(UnaryOperator o);
23 visitTernaryOperator(TernaryOperator o); 23 visitTernaryOperator(TernaryOperator o);
24 visitInExpression(InExpression c); 24 visitInExpression(InExpression c);
25 } 25 }
26 26
27 abstract class RecursiveVisitor extends Visitor { 27 class RecursiveVisitor extends Visitor {
28 visitExpression(Expression e); 28 preVisitExpression(Expression e) {}
Siggi Cherem (dart-lang) 2014/03/21 01:43:46 I'll use this in my codegen change.
29 visitExpression(Expression e) {}
Siggi Cherem (dart-lang) 2014/03/21 01:43:46 I felt I ended up overriding this for no purpose,
Jennifer Messerly 2014/03/21 20:08:54 agree.
29 30
30 visitEmptyExpression(EmptyExpression e) => visitExpression(e); 31 visitEmptyExpression(EmptyExpression e) {
32 preVisitExpression(e);
33 visitExpression(e);
34 }
31 35
32 visitParenthesizedExpression(ParenthesizedExpression e) { 36 visitParenthesizedExpression(ParenthesizedExpression e) {
37 preVisitExpression(e);
33 visit(e.child); 38 visit(e.child);
34 visitExpression(e); 39 visitExpression(e);
35 } 40 }
36 41
37 visitGetter(Getter i) { 42 visitGetter(Getter i) {
43 preVisitExpression(i);
38 visit(i.receiver); 44 visit(i.receiver);
39 visitExpression(i); 45 visitExpression(i);
40 } 46 }
41 47
42 visitIndex(Index i) { 48 visitIndex(Index i) {
49 preVisitExpression(i);
43 visit(i.receiver); 50 visit(i.receiver);
44 visit(i.argument); 51 visit(i.argument);
45 visitExpression(i); 52 visitExpression(i);
46 } 53 }
47 54
48 visitInvoke(Invoke i) { 55 visitInvoke(Invoke i) {
56 preVisitExpression(i);
49 visit(i.receiver); 57 visit(i.receiver);
50 if (i.arguments != null) { 58 if (i.arguments != null) {
51 for (var a in i.arguments) { 59 for (var a in i.arguments) {
52 visit(a); 60 visit(a);
53 } 61 }
54 } 62 }
55 visitExpression(i); 63 visitExpression(i);
56 } 64 }
57 65
58 visitLiteral(Literal l) => visitExpression(l); 66 visitLiteral(Literal l) {
67 preVisitExpression(l);
68 visitExpression(l);
69 }
59 70
60 visitListLiteral(ListLiteral l) { 71 visitListLiteral(ListLiteral l) {
72 preVisitExpression(l);
61 for (var i in l.items) { 73 for (var i in l.items) {
62 visit(i); 74 visit(i);
63 } 75 }
64 visitExpression(l); 76 visitExpression(l);
65 } 77 }
66 78
67 visitMapLiteral(MapLiteral l) { 79 visitMapLiteral(MapLiteral l) {
80 preVisitExpression(l);
68 for (var e in l.entries) { 81 for (var e in l.entries) {
69 visit(e); 82 visit(e);
70 } 83 }
71 visitExpression(l); 84 visitExpression(l);
72 } 85 }
73 86
74 visitMapLiteralEntry(MapLiteralEntry e) { 87 visitMapLiteralEntry(MapLiteralEntry e) {
88 preVisitExpression(e);
75 visit(e.key); 89 visit(e.key);
76 visit(e.entryValue); 90 visit(e.entryValue);
77 visitExpression(e); 91 visitExpression(e);
78 } 92 }
79 93
80 visitIdentifier(Identifier i) => visitExpression(i); 94 visitIdentifier(Identifier i) {
95 preVisitExpression(i);
96 visitExpression(i);
97 }
81 98
82 visitBinaryOperator(BinaryOperator o) { 99 visitBinaryOperator(BinaryOperator o) {
100 preVisitExpression(o);
83 visit(o.left); 101 visit(o.left);
84 visit(o.right); 102 visit(o.right);
85 visitExpression(o); 103 visitExpression(o);
86 } 104 }
87 105
88 visitUnaryOperator(UnaryOperator o) { 106 visitUnaryOperator(UnaryOperator o) {
107 preVisitExpression(o);
89 visit(o.child); 108 visit(o.child);
90 visitExpression(o); 109 visitExpression(o);
91 } 110 }
92 111
93 visitTernaryOperator(TernaryOperator o) { 112 visitTernaryOperator(TernaryOperator o) {
113 preVisitExpression(o);
94 visit(o.condition); 114 visit(o.condition);
95 visit(o.trueExpr); 115 visit(o.trueExpr);
96 visit(o.falseExpr); 116 visit(o.falseExpr);
97 visitExpression(o); 117 visitExpression(o);
98 } 118 }
99 119
100 visitInExpression(InExpression c) { 120 visitInExpression(InExpression c) {
121 preVisitExpression(c);
101 visit(c.left); 122 visit(c.left);
102 visit(c.right); 123 visit(c.right);
103 visitExpression(c); 124 visitExpression(c);
104 } 125 }
105 } 126 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698