OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 library kernel.ast.visitor; | 4 library kernel.ast.visitor; |
5 | 5 |
6 import 'ast.dart'; | 6 import 'ast.dart'; |
7 | 7 |
8 abstract class ExpressionVisitor<R> { | 8 abstract class ExpressionVisitor<R> { |
9 R defaultExpression(Expression node) => null; | 9 R defaultExpression(Expression node) => null; |
10 R defaultBasicLiteral(BasicLiteral node) => defaultExpression(node); | 10 R defaultBasicLiteral(BasicLiteral node) => defaultExpression(node); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 R visitListLiteral(ListLiteral node) => defaultExpression(node); | 44 R visitListLiteral(ListLiteral node) => defaultExpression(node); |
45 R visitMapLiteral(MapLiteral node) => defaultExpression(node); | 45 R visitMapLiteral(MapLiteral node) => defaultExpression(node); |
46 R visitAwaitExpression(AwaitExpression node) => defaultExpression(node); | 46 R visitAwaitExpression(AwaitExpression node) => defaultExpression(node); |
47 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); | 47 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); |
48 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); | 48 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); |
49 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); | 49 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); |
50 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); | 50 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); |
51 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); | 51 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); |
52 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); | 52 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); |
53 R visitLet(Let node) => defaultExpression(node); | 53 R visitLet(Let node) => defaultExpression(node); |
| 54 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); |
| 55 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => |
| 56 defaultExpression(node); |
54 } | 57 } |
55 | 58 |
56 abstract class StatementVisitor<R> { | 59 abstract class StatementVisitor<R> { |
57 R defaultStatement(Statement node) => null; | 60 R defaultStatement(Statement node) => null; |
58 | 61 |
59 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); | 62 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); |
60 R visitExpressionStatement(ExpressionStatement node) => | 63 R visitExpressionStatement(ExpressionStatement node) => |
61 defaultStatement(node); | 64 defaultStatement(node); |
62 R visitBlock(Block node) => defaultStatement(node); | 65 R visitBlock(Block node) => defaultStatement(node); |
63 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); | 66 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 R visitListLiteral(ListLiteral node) => defaultExpression(node); | 151 R visitListLiteral(ListLiteral node) => defaultExpression(node); |
149 R visitMapLiteral(MapLiteral node) => defaultExpression(node); | 152 R visitMapLiteral(MapLiteral node) => defaultExpression(node); |
150 R visitAwaitExpression(AwaitExpression node) => defaultExpression(node); | 153 R visitAwaitExpression(AwaitExpression node) => defaultExpression(node); |
151 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); | 154 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); |
152 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); | 155 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); |
153 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); | 156 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); |
154 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); | 157 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); |
155 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); | 158 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); |
156 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); | 159 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); |
157 R visitLet(Let node) => defaultExpression(node); | 160 R visitLet(Let node) => defaultExpression(node); |
| 161 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); |
| 162 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => |
| 163 defaultExpression(node); |
158 | 164 |
159 // Statements | 165 // Statements |
160 R defaultStatement(Statement node) => defaultTreeNode(node); | 166 R defaultStatement(Statement node) => defaultTreeNode(node); |
161 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); | 167 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); |
162 R visitExpressionStatement(ExpressionStatement node) => | 168 R visitExpressionStatement(ExpressionStatement node) => |
163 defaultStatement(node); | 169 defaultStatement(node); |
164 R visitBlock(Block node) => defaultStatement(node); | 170 R visitBlock(Block node) => defaultStatement(node); |
165 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); | 171 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); |
166 R visitAssertStatement(AssertStatement node) => defaultStatement(node); | 172 R visitAssertStatement(AssertStatement node) => defaultStatement(node); |
167 R visitLabeledStatement(LabeledStatement node) => defaultStatement(node); | 173 R visitLabeledStatement(LabeledStatement node) => defaultStatement(node); |
(...skipping 29 matching lines...) Expand all Loading... |
197 R visitInvalidInitializer(InvalidInitializer node) => | 203 R visitInvalidInitializer(InvalidInitializer node) => |
198 defaultInitializer(node); | 204 defaultInitializer(node); |
199 R visitFieldInitializer(FieldInitializer node) => defaultInitializer(node); | 205 R visitFieldInitializer(FieldInitializer node) => defaultInitializer(node); |
200 R visitSuperInitializer(SuperInitializer node) => defaultInitializer(node); | 206 R visitSuperInitializer(SuperInitializer node) => defaultInitializer(node); |
201 R visitRedirectingInitializer(RedirectingInitializer node) => | 207 R visitRedirectingInitializer(RedirectingInitializer node) => |
202 defaultInitializer(node); | 208 defaultInitializer(node); |
203 R visitLocalInitializer(LocalInitializer node) => defaultInitializer(node); | 209 R visitLocalInitializer(LocalInitializer node) => defaultInitializer(node); |
204 | 210 |
205 // Other tree nodes | 211 // Other tree nodes |
206 R visitLibrary(Library node) => defaultTreeNode(node); | 212 R visitLibrary(Library node) => defaultTreeNode(node); |
| 213 R visitDeferredImport(DeferredImport node) => defaultTreeNode(node); |
207 R visitTypeParameter(TypeParameter node) => defaultTreeNode(node); | 214 R visitTypeParameter(TypeParameter node) => defaultTreeNode(node); |
208 R visitFunctionNode(FunctionNode node) => defaultTreeNode(node); | 215 R visitFunctionNode(FunctionNode node) => defaultTreeNode(node); |
209 R visitArguments(Arguments node) => defaultTreeNode(node); | 216 R visitArguments(Arguments node) => defaultTreeNode(node); |
210 R visitNamedExpression(NamedExpression node) => defaultTreeNode(node); | 217 R visitNamedExpression(NamedExpression node) => defaultTreeNode(node); |
211 R visitSwitchCase(SwitchCase node) => defaultTreeNode(node); | 218 R visitSwitchCase(SwitchCase node) => defaultTreeNode(node); |
212 R visitCatch(Catch node) => defaultTreeNode(node); | 219 R visitCatch(Catch node) => defaultTreeNode(node); |
213 R visitMapEntry(MapEntry node) => defaultTreeNode(node); | 220 R visitMapEntry(MapEntry node) => defaultTreeNode(node); |
214 R visitProgram(Program node) => defaultTreeNode(node); | 221 R visitProgram(Program node) => defaultTreeNode(node); |
215 } | 222 } |
216 | 223 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 /// By default, recursion stops at this point. | 311 /// By default, recursion stops at this point. |
305 DartType visitDartType(DartType node) => node; | 312 DartType visitDartType(DartType node) => node; |
306 | 313 |
307 Supertype visitSupertype(Supertype node) => node; | 314 Supertype visitSupertype(Supertype node) => node; |
308 | 315 |
309 TreeNode defaultTreeNode(TreeNode node) { | 316 TreeNode defaultTreeNode(TreeNode node) { |
310 node.transformChildren(this); | 317 node.transformChildren(this); |
311 return node; | 318 return node; |
312 } | 319 } |
313 } | 320 } |
OLD | NEW |