| 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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); | 246 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); |
| 247 R visitTypedefType(TypedefType node) => defaultDartType(node); | 247 R visitTypedefType(TypedefType node) => defaultDartType(node); |
| 248 } | 248 } |
| 249 | 249 |
| 250 class MemberReferenceVisitor<R> { | 250 class MemberReferenceVisitor<R> { |
| 251 R defaultMemberReference(Member node) => null; | 251 R defaultMemberReference(Member node) => null; |
| 252 | 252 |
| 253 R visitFieldReference(Field node) => defaultMemberReference(node); | 253 R visitFieldReference(Field node) => defaultMemberReference(node); |
| 254 R visitConstructorReference(Constructor node) => defaultMemberReference(node); | 254 R visitConstructorReference(Constructor node) => defaultMemberReference(node); |
| 255 R visitProcedureReference(Procedure node) => defaultMemberReference(node); | 255 R visitProcedureReference(Procedure node) => defaultMemberReference(node); |
| 256 |
| 257 R visitInterfaceTargetReference(Reference reference) => null; |
| 256 } | 258 } |
| 257 | 259 |
| 258 class Visitor<R> extends TreeVisitor<R> | 260 class Visitor<R> extends TreeVisitor<R> |
| 259 implements DartTypeVisitor<R>, MemberReferenceVisitor<R> { | 261 implements DartTypeVisitor<R>, MemberReferenceVisitor<R> { |
| 260 /// The catch-all case, except for references. | 262 /// The catch-all case, except for references. |
| 261 R defaultNode(Node node) => null; | 263 R defaultNode(Node node) => null; |
| 262 R defaultTreeNode(TreeNode node) => defaultNode(node); | 264 R defaultTreeNode(TreeNode node) => defaultNode(node); |
| 263 | 265 |
| 264 // DartTypes | 266 // DartTypes |
| 265 R defaultDartType(DartType node) => defaultNode(node); | 267 R defaultDartType(DartType node) => defaultNode(node); |
| 266 R visitInvalidType(InvalidType node) => defaultDartType(node); | 268 R visitInvalidType(InvalidType node) => defaultDartType(node); |
| 267 R visitDynamicType(DynamicType node) => defaultDartType(node); | 269 R visitDynamicType(DynamicType node) => defaultDartType(node); |
| 268 R visitVoidType(VoidType node) => defaultDartType(node); | 270 R visitVoidType(VoidType node) => defaultDartType(node); |
| 269 R visitBottomType(BottomType node) => defaultDartType(node); | 271 R visitBottomType(BottomType node) => defaultDartType(node); |
| 270 R visitInterfaceType(InterfaceType node) => defaultDartType(node); | 272 R visitInterfaceType(InterfaceType node) => defaultDartType(node); |
| 271 R visitVectorType(VectorType node) => defaultDartType(node); | 273 R visitVectorType(VectorType node) => defaultDartType(node); |
| 272 R visitFunctionType(FunctionType node) => defaultDartType(node); | 274 R visitFunctionType(FunctionType node) => defaultDartType(node); |
| 273 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); | 275 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); |
| 274 R visitTypedefType(TypedefType node) => defaultDartType(node); | 276 R visitTypedefType(TypedefType node) => defaultDartType(node); |
| 275 | 277 |
| 276 // Class references | 278 // Class references |
| 277 R visitClassReference(Class node) => null; | 279 R visitClassReference(Class node) => null; |
| 278 R visitTypedefReference(Typedef node) => null; | 280 R visitTypedefReference(Typedef node) => null; |
| 279 | 281 |
| 280 // Member references | 282 // Member references |
| 281 R defaultMemberReference(Member node) => null; | 283 R defaultMemberReference(Member node) => null; |
| 282 R visitFieldReference(Field node) => defaultMemberReference(node); | 284 R visitFieldReference(Field node) => defaultMemberReference(node); |
| 283 R visitConstructorReference(Constructor node) => defaultMemberReference(node); | 285 R visitConstructorReference(Constructor node) => defaultMemberReference(node); |
| 284 R visitProcedureReference(Procedure node) => defaultMemberReference(node); | 286 R visitProcedureReference(Procedure node) => defaultMemberReference(node); |
| 287 R visitInterfaceTargetReference(Reference reference) => null; |
| 285 | 288 |
| 286 R visitName(Name node) => defaultNode(node); | 289 R visitName(Name node) => defaultNode(node); |
| 287 R visitSupertype(Supertype node) => defaultNode(node); | 290 R visitSupertype(Supertype node) => defaultNode(node); |
| 288 R visitNamedType(NamedType node) => defaultNode(node); | 291 R visitNamedType(NamedType node) => defaultNode(node); |
| 289 } | 292 } |
| 290 | 293 |
| 291 class RecursiveVisitor<R> extends Visitor<R> { | 294 class RecursiveVisitor<R> extends Visitor<R> { |
| 292 R defaultNode(Node node) { | 295 R defaultNode(Node node) { |
| 293 node.visitChildren(this); | 296 node.visitChildren(this); |
| 294 return null; | 297 return null; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 defaultStatement(node, arg); | 439 defaultStatement(node, arg); |
| 437 R visitTryCatch(TryCatch node, T arg) => defaultStatement(node, arg); | 440 R visitTryCatch(TryCatch node, T arg) => defaultStatement(node, arg); |
| 438 R visitTryFinally(TryFinally node, T arg) => defaultStatement(node, arg); | 441 R visitTryFinally(TryFinally node, T arg) => defaultStatement(node, arg); |
| 439 R visitYieldStatement(YieldStatement node, T arg) => | 442 R visitYieldStatement(YieldStatement node, T arg) => |
| 440 defaultStatement(node, arg); | 443 defaultStatement(node, arg); |
| 441 R visitVariableDeclaration(VariableDeclaration node, T arg) => | 444 R visitVariableDeclaration(VariableDeclaration node, T arg) => |
| 442 defaultStatement(node, arg); | 445 defaultStatement(node, arg); |
| 443 R visitFunctionDeclaration(FunctionDeclaration node, T arg) => | 446 R visitFunctionDeclaration(FunctionDeclaration node, T arg) => |
| 444 defaultStatement(node, arg); | 447 defaultStatement(node, arg); |
| 445 } | 448 } |
| OLD | NEW |