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

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

Issue 2312183003: Removed Polymer from Observatory deps (Closed)
Patch Set: Created 4 years, 3 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
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library polymer_expressions.visitor;
6
7 import 'expression.dart';
8
9 abstract class Visitor {
10 visit(Expression s) => s.accept(this);
11 visitEmptyExpression(EmptyExpression e);
12 visitParenthesizedExpression(ParenthesizedExpression e);
13 visitGetter(Getter i);
14 visitIndex(Index i);
15 visitInvoke(Invoke i);
16 visitLiteral(Literal l);
17 visitListLiteral(ListLiteral l);
18 visitMapLiteral(MapLiteral l);
19 visitMapLiteralEntry(MapLiteralEntry l);
20 visitIdentifier(Identifier i);
21 visitBinaryOperator(BinaryOperator o);
22 visitUnaryOperator(UnaryOperator o);
23 visitTernaryOperator(TernaryOperator o);
24 visitInExpression(InExpression c);
25 visitAsExpression(AsExpression c);
26 }
27
28 class RecursiveVisitor extends Visitor {
29 preVisitExpression(Expression e) {}
30 visitExpression(Expression e) {}
31
32 visitEmptyExpression(EmptyExpression e) {
33 preVisitExpression(e);
34 visitExpression(e);
35 }
36
37 visitParenthesizedExpression(ParenthesizedExpression e) {
38 preVisitExpression(e);
39 visit(e.child);
40 visitExpression(e);
41 }
42
43 visitGetter(Getter i) {
44 preVisitExpression(i);
45 visit(i.receiver);
46 visitExpression(i);
47 }
48
49 visitIndex(Index i) {
50 preVisitExpression(i);
51 visit(i.receiver);
52 visit(i.argument);
53 visitExpression(i);
54 }
55
56 visitInvoke(Invoke i) {
57 preVisitExpression(i);
58 visit(i.receiver);
59 if (i.arguments != null) {
60 for (var a in i.arguments) {
61 visit(a);
62 }
63 }
64 visitExpression(i);
65 }
66
67 visitLiteral(Literal l) {
68 preVisitExpression(l);
69 visitExpression(l);
70 }
71
72 visitListLiteral(ListLiteral l) {
73 preVisitExpression(l);
74 for (var i in l.items) {
75 visit(i);
76 }
77 visitExpression(l);
78 }
79
80 visitMapLiteral(MapLiteral l) {
81 preVisitExpression(l);
82 for (var e in l.entries) {
83 visit(e);
84 }
85 visitExpression(l);
86 }
87
88 visitMapLiteralEntry(MapLiteralEntry e) {
89 preVisitExpression(e);
90 visit(e.key);
91 visit(e.entryValue);
92 visitExpression(e);
93 }
94
95 visitIdentifier(Identifier i) {
96 preVisitExpression(i);
97 visitExpression(i);
98 }
99
100 visitBinaryOperator(BinaryOperator o) {
101 preVisitExpression(o);
102 visit(o.left);
103 visit(o.right);
104 visitExpression(o);
105 }
106
107 visitUnaryOperator(UnaryOperator o) {
108 preVisitExpression(o);
109 visit(o.child);
110 visitExpression(o);
111 }
112
113 visitTernaryOperator(TernaryOperator o) {
114 preVisitExpression(o);
115 visit(o.condition);
116 visit(o.trueExpr);
117 visit(o.falseExpr);
118 visitExpression(o);
119 }
120
121 visitInExpression(InExpression c) {
122 preVisitExpression(c);
123 visit(c.left);
124 visit(c.right);
125 visitExpression(c);
126 }
127
128 visitAsExpression(AsExpression c) {
129 visit(c.left);
130 visit(c.right);
131 visitExpression(c);
132 }
133 }
OLDNEW
« no previous file with comments | « packages/polymer_expressions/lib/tokenizer.dart ('k') | packages/polymer_expressions/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698