| 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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); | 54 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); |
| 55 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => | 55 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => |
| 56 defaultExpression(node); | 56 defaultExpression(node); |
| 57 R visitVectorCreation(VectorCreation node) => defaultExpression(node); |
| 58 R visitVectorGet(VectorGet node) => defaultExpression(node); |
| 59 R visitVectorSet(VectorSet node) => defaultExpression(node); |
| 60 R visitVectorCopy(VectorCopy node) => defaultExpression(node); |
| 57 } | 61 } |
| 58 | 62 |
| 59 abstract class StatementVisitor<R> { | 63 abstract class StatementVisitor<R> { |
| 60 R defaultStatement(Statement node) => null; | 64 R defaultStatement(Statement node) => null; |
| 61 | 65 |
| 62 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); | 66 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); |
| 63 R visitExpressionStatement(ExpressionStatement node) => | 67 R visitExpressionStatement(ExpressionStatement node) => |
| 64 defaultStatement(node); | 68 defaultStatement(node); |
| 65 R visitBlock(Block node) => defaultStatement(node); | 69 R visitBlock(Block node) => defaultStatement(node); |
| 66 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); | 70 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); | 158 R visitFunctionExpression(FunctionExpression node) => defaultExpression(node); |
| 155 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); | 159 R visitStringLiteral(StringLiteral node) => defaultBasicLiteral(node); |
| 156 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); | 160 R visitIntLiteral(IntLiteral node) => defaultBasicLiteral(node); |
| 157 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); | 161 R visitDoubleLiteral(DoubleLiteral node) => defaultBasicLiteral(node); |
| 158 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); | 162 R visitBoolLiteral(BoolLiteral node) => defaultBasicLiteral(node); |
| 159 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); | 163 R visitNullLiteral(NullLiteral node) => defaultBasicLiteral(node); |
| 160 R visitLet(Let node) => defaultExpression(node); | 164 R visitLet(Let node) => defaultExpression(node); |
| 161 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); | 165 R visitLoadLibrary(LoadLibrary node) => defaultExpression(node); |
| 162 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => | 166 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) => |
| 163 defaultExpression(node); | 167 defaultExpression(node); |
| 168 R visitVectorCreation(VectorCreation node) => defaultExpression(node); |
| 169 R visitVectorGet(VectorGet node) => defaultExpression(node); |
| 170 R visitVectorSet(VectorSet node) => defaultExpression(node); |
| 171 R visitVectorCopy(VectorCopy node) => defaultExpression(node); |
| 164 | 172 |
| 165 // Statements | 173 // Statements |
| 166 R defaultStatement(Statement node) => defaultTreeNode(node); | 174 R defaultStatement(Statement node) => defaultTreeNode(node); |
| 167 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); | 175 R visitInvalidStatement(InvalidStatement node) => defaultStatement(node); |
| 168 R visitExpressionStatement(ExpressionStatement node) => | 176 R visitExpressionStatement(ExpressionStatement node) => |
| 169 defaultStatement(node); | 177 defaultStatement(node); |
| 170 R visitBlock(Block node) => defaultStatement(node); | 178 R visitBlock(Block node) => defaultStatement(node); |
| 171 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); | 179 R visitEmptyStatement(EmptyStatement node) => defaultStatement(node); |
| 172 R visitAssertStatement(AssertStatement node) => defaultStatement(node); | 180 R visitAssertStatement(AssertStatement node) => defaultStatement(node); |
| 173 R visitLabeledStatement(LabeledStatement node) => defaultStatement(node); | 181 R visitLabeledStatement(LabeledStatement node) => defaultStatement(node); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 } | 230 } |
| 223 | 231 |
| 224 class DartTypeVisitor<R> { | 232 class DartTypeVisitor<R> { |
| 225 R defaultDartType(DartType node) => null; | 233 R defaultDartType(DartType node) => null; |
| 226 | 234 |
| 227 R visitInvalidType(InvalidType node) => defaultDartType(node); | 235 R visitInvalidType(InvalidType node) => defaultDartType(node); |
| 228 R visitDynamicType(DynamicType node) => defaultDartType(node); | 236 R visitDynamicType(DynamicType node) => defaultDartType(node); |
| 229 R visitVoidType(VoidType node) => defaultDartType(node); | 237 R visitVoidType(VoidType node) => defaultDartType(node); |
| 230 R visitBottomType(BottomType node) => defaultDartType(node); | 238 R visitBottomType(BottomType node) => defaultDartType(node); |
| 231 R visitInterfaceType(InterfaceType node) => defaultDartType(node); | 239 R visitInterfaceType(InterfaceType node) => defaultDartType(node); |
| 240 R visitVectorType(VectorType node) => defaultDartType(node); |
| 232 R visitFunctionType(FunctionType node) => defaultDartType(node); | 241 R visitFunctionType(FunctionType node) => defaultDartType(node); |
| 233 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); | 242 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); |
| 234 } | 243 } |
| 235 | 244 |
| 236 class MemberReferenceVisitor<R> { | 245 class MemberReferenceVisitor<R> { |
| 237 R defaultMemberReference(Member node) => null; | 246 R defaultMemberReference(Member node) => null; |
| 238 | 247 |
| 239 R visitFieldReference(Field node) => defaultMemberReference(node); | 248 R visitFieldReference(Field node) => defaultMemberReference(node); |
| 240 R visitConstructorReference(Constructor node) => defaultMemberReference(node); | 249 R visitConstructorReference(Constructor node) => defaultMemberReference(node); |
| 241 R visitProcedureReference(Procedure node) => defaultMemberReference(node); | 250 R visitProcedureReference(Procedure node) => defaultMemberReference(node); |
| 242 } | 251 } |
| 243 | 252 |
| 244 class Visitor<R> extends TreeVisitor<R> | 253 class Visitor<R> extends TreeVisitor<R> |
| 245 implements DartTypeVisitor<R>, MemberReferenceVisitor<R> { | 254 implements DartTypeVisitor<R>, MemberReferenceVisitor<R> { |
| 246 /// The catch-all case, except for references. | 255 /// The catch-all case, except for references. |
| 247 R defaultNode(Node node) => null; | 256 R defaultNode(Node node) => null; |
| 248 R defaultTreeNode(TreeNode node) => defaultNode(node); | 257 R defaultTreeNode(TreeNode node) => defaultNode(node); |
| 249 | 258 |
| 250 /// Inferred values | 259 /// Inferred values |
| 251 R visitInferredValue(InferredValue node) => defaultNode(node); | 260 R visitInferredValue(InferredValue node) => defaultNode(node); |
| 252 | 261 |
| 253 // DartTypes | 262 // DartTypes |
| 254 R defaultDartType(DartType node) => defaultNode(node); | 263 R defaultDartType(DartType node) => defaultNode(node); |
| 255 R visitInvalidType(InvalidType node) => defaultDartType(node); | 264 R visitInvalidType(InvalidType node) => defaultDartType(node); |
| 256 R visitDynamicType(DynamicType node) => defaultDartType(node); | 265 R visitDynamicType(DynamicType node) => defaultDartType(node); |
| 257 R visitVoidType(VoidType node) => defaultDartType(node); | 266 R visitVoidType(VoidType node) => defaultDartType(node); |
| 258 R visitBottomType(BottomType node) => defaultDartType(node); | 267 R visitBottomType(BottomType node) => defaultDartType(node); |
| 259 R visitInterfaceType(InterfaceType node) => defaultDartType(node); | 268 R visitInterfaceType(InterfaceType node) => defaultDartType(node); |
| 269 R visitVectorType(VectorType node) => defaultDartType(node); |
| 260 R visitFunctionType(FunctionType node) => defaultDartType(node); | 270 R visitFunctionType(FunctionType node) => defaultDartType(node); |
| 261 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); | 271 R visitTypeParameterType(TypeParameterType node) => defaultDartType(node); |
| 262 | 272 |
| 263 // Class references | 273 // Class references |
| 264 R visitClassReference(Class node) => null; | 274 R visitClassReference(Class node) => null; |
| 265 | 275 |
| 266 // Member references | 276 // Member references |
| 267 R defaultMemberReference(Member node) => null; | 277 R defaultMemberReference(Member node) => null; |
| 268 R visitFieldReference(Field node) => defaultMemberReference(node); | 278 R visitFieldReference(Field node) => defaultMemberReference(node); |
| 269 R visitConstructorReference(Constructor node) => defaultMemberReference(node); | 279 R visitConstructorReference(Constructor node) => defaultMemberReference(node); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 defaultBasicLiteral(node, arg); | 383 defaultBasicLiteral(node, arg); |
| 374 R visitIntLiteral(IntLiteral node, arg) => defaultBasicLiteral(node, arg); | 384 R visitIntLiteral(IntLiteral node, arg) => defaultBasicLiteral(node, arg); |
| 375 R visitDoubleLiteral(DoubleLiteral node, arg) => | 385 R visitDoubleLiteral(DoubleLiteral node, arg) => |
| 376 defaultBasicLiteral(node, arg); | 386 defaultBasicLiteral(node, arg); |
| 377 R visitBoolLiteral(BoolLiteral node, arg) => defaultBasicLiteral(node, arg); | 387 R visitBoolLiteral(BoolLiteral node, arg) => defaultBasicLiteral(node, arg); |
| 378 R visitNullLiteral(NullLiteral node, arg) => defaultBasicLiteral(node, arg); | 388 R visitNullLiteral(NullLiteral node, arg) => defaultBasicLiteral(node, arg); |
| 379 R visitLet(Let node, arg) => defaultExpression(node, arg); | 389 R visitLet(Let node, arg) => defaultExpression(node, arg); |
| 380 R visitLoadLibrary(LoadLibrary node, arg) => defaultExpression(node, arg); | 390 R visitLoadLibrary(LoadLibrary node, arg) => defaultExpression(node, arg); |
| 381 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node, arg) => | 391 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node, arg) => |
| 382 defaultExpression(node, arg); | 392 defaultExpression(node, arg); |
| 393 R visitVectorCreation(VectorCreation node, arg) => |
| 394 defaultExpression(node, arg); |
| 395 R visitVectorGet(VectorGet node, arg) => defaultExpression(node, arg); |
| 396 R visitVectorSet(VectorSet node, arg) => defaultExpression(node, arg); |
| 397 R visitVectorCopy(VectorCopy node, arg) => defaultExpression(node, arg); |
| 383 } | 398 } |
| 384 | 399 |
| 385 abstract class StatementVisitor1<R> { | 400 abstract class StatementVisitor1<R> { |
| 386 R defaultStatement(Statement node, arg) => null; | 401 R defaultStatement(Statement node, arg) => null; |
| 387 | 402 |
| 388 R visitInvalidStatement(InvalidStatement node, arg) => | 403 R visitInvalidStatement(InvalidStatement node, arg) => |
| 389 defaultStatement(node, arg); | 404 defaultStatement(node, arg); |
| 390 R visitExpressionStatement(ExpressionStatement node, arg) => | 405 R visitExpressionStatement(ExpressionStatement node, arg) => |
| 391 defaultStatement(node, arg); | 406 defaultStatement(node, arg); |
| 392 R visitBlock(Block node, arg) => defaultStatement(node, arg); | 407 R visitBlock(Block node, arg) => defaultStatement(node, arg); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 413 defaultStatement(node, arg); | 428 defaultStatement(node, arg); |
| 414 R visitTryCatch(TryCatch node, arg) => defaultStatement(node, arg); | 429 R visitTryCatch(TryCatch node, arg) => defaultStatement(node, arg); |
| 415 R visitTryFinally(TryFinally node, arg) => defaultStatement(node, arg); | 430 R visitTryFinally(TryFinally node, arg) => defaultStatement(node, arg); |
| 416 R visitYieldStatement(YieldStatement node, arg) => | 431 R visitYieldStatement(YieldStatement node, arg) => |
| 417 defaultStatement(node, arg); | 432 defaultStatement(node, arg); |
| 418 R visitVariableDeclaration(VariableDeclaration node, arg) => | 433 R visitVariableDeclaration(VariableDeclaration node, arg) => |
| 419 defaultStatement(node, arg); | 434 defaultStatement(node, arg); |
| 420 R visitFunctionDeclaration(FunctionDeclaration node, arg) => | 435 R visitFunctionDeclaration(FunctionDeclaration node, arg) => |
| 421 defaultStatement(node, arg); | 436 defaultStatement(node, arg); |
| 422 } | 437 } |
| OLD | NEW |