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 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 R visitClassReference(Class node) => null; | 259 R visitClassReference(Class node) => null; |
260 | 260 |
261 // Member references | 261 // Member references |
262 R defaultMemberReference(Member node) => null; | 262 R defaultMemberReference(Member node) => null; |
263 R visitFieldReference(Field node) => defaultMemberReference(node); | 263 R visitFieldReference(Field node) => defaultMemberReference(node); |
264 R visitConstructorReference(Constructor node) => defaultMemberReference(node); | 264 R visitConstructorReference(Constructor node) => defaultMemberReference(node); |
265 R visitProcedureReference(Procedure node) => defaultMemberReference(node); | 265 R visitProcedureReference(Procedure node) => defaultMemberReference(node); |
266 | 266 |
267 R visitName(Name node) => defaultNode(node); | 267 R visitName(Name node) => defaultNode(node); |
268 R visitSupertype(Supertype node) => defaultNode(node); | 268 R visitSupertype(Supertype node) => defaultNode(node); |
| 269 R visitNamedType(NamedType node) => defaultNode(node); |
269 } | 270 } |
270 | 271 |
271 class RecursiveVisitor<R> extends Visitor<R> { | 272 class RecursiveVisitor<R> extends Visitor<R> { |
272 R defaultNode(Node node) { | 273 R defaultNode(Node node) { |
273 node.visitChildren(this); | 274 node.visitChildren(this); |
274 return null; | 275 return null; |
275 } | 276 } |
276 } | 277 } |
277 | 278 |
278 /// Visitor that recursively rewrites each node in tree. | 279 /// Visitor that recursively rewrites each node in tree. |
(...skipping 26 matching lines...) Expand all Loading... |
305 /// By default, recursion stops at this point. | 306 /// By default, recursion stops at this point. |
306 DartType visitDartType(DartType node) => node; | 307 DartType visitDartType(DartType node) => node; |
307 | 308 |
308 Supertype visitSupertype(Supertype node) => node; | 309 Supertype visitSupertype(Supertype node) => node; |
309 | 310 |
310 TreeNode defaultTreeNode(TreeNode node) { | 311 TreeNode defaultTreeNode(TreeNode node) { |
311 node.transformChildren(this); | 312 node.transformChildren(this); |
312 return node; | 313 return node; |
313 } | 314 } |
314 } | 315 } |
OLD | NEW |