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