| 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 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 DartType visitDartType(DartType node) => node; | 321 DartType visitDartType(DartType node) => node; |
| 322 | 322 |
| 323 Supertype visitSupertype(Supertype node) => node; | 323 Supertype visitSupertype(Supertype node) => node; |
| 324 | 324 |
| 325 TreeNode defaultTreeNode(TreeNode node) { | 325 TreeNode defaultTreeNode(TreeNode node) { |
| 326 node.transformChildren(this); | 326 node.transformChildren(this); |
| 327 return node; | 327 return node; |
| 328 } | 328 } |
| 329 } | 329 } |
| 330 | 330 |
| 331 abstract class ExpressionVisitor1<R> { | 331 abstract class ExpressionVisitor1<R, T> { |
| 332 R defaultExpression(Expression node, arg) => null; | 332 R defaultExpression(Expression node, T arg) => null; |
| 333 R defaultBasicLiteral(BasicLiteral node, arg) => defaultExpression(node, arg); | 333 R defaultBasicLiteral(BasicLiteral node, T arg) => |
| 334 R visitInvalidExpression(InvalidExpression node, arg) => | |
| 335 defaultExpression(node, arg); | 334 defaultExpression(node, arg); |
| 336 R visitVariableGet(VariableGet node, arg) => defaultExpression(node, arg); | 335 R visitInvalidExpression(InvalidExpression node, T arg) => |
| 337 R visitVariableSet(VariableSet node, arg) => defaultExpression(node, arg); | |
| 338 R visitPropertyGet(PropertyGet node, arg) => defaultExpression(node, arg); | |
| 339 R visitPropertySet(PropertySet node, arg) => defaultExpression(node, arg); | |
| 340 R visitDirectPropertyGet(DirectPropertyGet node, arg) => | |
| 341 defaultExpression(node, arg); | 336 defaultExpression(node, arg); |
| 342 R visitDirectPropertySet(DirectPropertySet node, arg) => | 337 R visitVariableGet(VariableGet node, T arg) => defaultExpression(node, arg); |
| 338 R visitVariableSet(VariableSet node, T arg) => defaultExpression(node, arg); |
| 339 R visitPropertyGet(PropertyGet node, T arg) => defaultExpression(node, arg); |
| 340 R visitPropertySet(PropertySet node, T arg) => defaultExpression(node, arg); |
| 341 R visitDirectPropertyGet(DirectPropertyGet node, T arg) => |
| 343 defaultExpression(node, arg); | 342 defaultExpression(node, arg); |
| 344 R visitSuperPropertyGet(SuperPropertyGet node, arg) => | 343 R visitDirectPropertySet(DirectPropertySet node, T arg) => |
| 345 defaultExpression(node, arg); | 344 defaultExpression(node, arg); |
| 346 R visitSuperPropertySet(SuperPropertySet node, arg) => | 345 R visitSuperPropertyGet(SuperPropertyGet node, T arg) => |
| 347 defaultExpression(node, arg); | 346 defaultExpression(node, arg); |
| 348 R visitStaticGet(StaticGet node, arg) => defaultExpression(node, arg); | 347 R visitSuperPropertySet(SuperPropertySet node, T arg) => |
| 349 R visitStaticSet(StaticSet node, arg) => defaultExpression(node, arg); | |
| 350 R visitMethodInvocation(MethodInvocation node, arg) => | |
| 351 defaultExpression(node, arg); | 348 defaultExpression(node, arg); |
| 352 R visitDirectMethodInvocation(DirectMethodInvocation node, arg) => | 349 R visitStaticGet(StaticGet node, T arg) => defaultExpression(node, arg); |
| 350 R visitStaticSet(StaticSet node, T arg) => defaultExpression(node, arg); |
| 351 R visitMethodInvocation(MethodInvocation node, T arg) => |
| 353 defaultExpression(node, arg); | 352 defaultExpression(node, arg); |
| 354 R visitSuperMethodInvocation(SuperMethodInvocation node, arg) => | 353 R visitDirectMethodInvocation(DirectMethodInvocation node, T arg) => |
| 355 defaultExpression(node, arg); | 354 defaultExpression(node, arg); |
| 356 R visitStaticInvocation(StaticInvocation node, arg) => | 355 R visitSuperMethodInvocation(SuperMethodInvocation node, T arg) => |
| 357 defaultExpression(node, arg); | 356 defaultExpression(node, arg); |
| 358 R visitConstructorInvocation(ConstructorInvocation node, arg) => | 357 R visitStaticInvocation(StaticInvocation node, T arg) => |
| 359 defaultExpression(node, arg); | 358 defaultExpression(node, arg); |
| 360 R visitNot(Not node, arg) => defaultExpression(node, arg); | 359 R visitConstructorInvocation(ConstructorInvocation node, T arg) => |
| 361 R visitLogicalExpression(LogicalExpression node, arg) => | |
| 362 defaultExpression(node, arg); | 360 defaultExpression(node, arg); |
| 363 R visitConditionalExpression(ConditionalExpression node, arg) => | 361 R visitNot(Not node, T arg) => defaultExpression(node, arg); |
| 362 R visitLogicalExpression(LogicalExpression node, T arg) => |
| 364 defaultExpression(node, arg); | 363 defaultExpression(node, arg); |
| 365 R visitStringConcatenation(StringConcatenation node, arg) => | 364 R visitConditionalExpression(ConditionalExpression node, T arg) => |
| 366 defaultExpression(node, arg); | 365 defaultExpression(node, arg); |
| 367 R visitIsExpression(IsExpression node, arg) => defaultExpression(node, arg); | 366 R visitStringConcatenation(StringConcatenation node, T arg) => |
| 368 R visitAsExpression(AsExpression node, arg) => defaultExpression(node, arg); | |
| 369 R visitSymbolLiteral(SymbolLiteral node, arg) => defaultExpression(node, arg); | |
| 370 R visitTypeLiteral(TypeLiteral node, arg) => defaultExpression(node, arg); | |
| 371 R visitThisExpression(ThisExpression node, arg) => | |
| 372 defaultExpression(node, arg); | 367 defaultExpression(node, arg); |
| 373 R visitRethrow(Rethrow node, arg) => defaultExpression(node, arg); | 368 R visitIsExpression(IsExpression node, T arg) => defaultExpression(node, arg); |
| 374 R visitThrow(Throw node, arg) => defaultExpression(node, arg); | 369 R visitAsExpression(AsExpression node, T arg) => defaultExpression(node, arg); |
| 375 R visitListLiteral(ListLiteral node, arg) => defaultExpression(node, arg); | 370 R visitSymbolLiteral(SymbolLiteral node, T arg) => |
| 376 R visitMapLiteral(MapLiteral node, arg) => defaultExpression(node, arg); | |
| 377 R visitAwaitExpression(AwaitExpression node, arg) => | |
| 378 defaultExpression(node, arg); | 371 defaultExpression(node, arg); |
| 379 R visitFunctionExpression(FunctionExpression node, arg) => | 372 R visitTypeLiteral(TypeLiteral node, T arg) => defaultExpression(node, arg); |
| 373 R visitThisExpression(ThisExpression node, T arg) => |
| 380 defaultExpression(node, arg); | 374 defaultExpression(node, arg); |
| 381 R visitStringLiteral(StringLiteral node, arg) => | 375 R visitRethrow(Rethrow node, T arg) => defaultExpression(node, arg); |
| 376 R visitThrow(Throw node, T arg) => defaultExpression(node, arg); |
| 377 R visitListLiteral(ListLiteral node, T arg) => defaultExpression(node, arg); |
| 378 R visitMapLiteral(MapLiteral node, T arg) => defaultExpression(node, arg); |
| 379 R visitAwaitExpression(AwaitExpression node, T arg) => |
| 380 defaultExpression(node, arg); |
| 381 R visitFunctionExpression(FunctionExpression node, T arg) => |
| 382 defaultExpression(node, arg); |
| 383 R visitStringLiteral(StringLiteral node, T arg) => |
| 382 defaultBasicLiteral(node, arg); | 384 defaultBasicLiteral(node, arg); |
| 383 R visitIntLiteral(IntLiteral node, arg) => defaultBasicLiteral(node, arg); | 385 R visitIntLiteral(IntLiteral node, T arg) => defaultBasicLiteral(node, arg); |
| 384 R visitDoubleLiteral(DoubleLiteral node, arg) => | 386 R visitDoubleLiteral(DoubleLiteral node, T arg) => |
| 385 defaultBasicLiteral(node, arg); | 387 defaultBasicLiteral(node, arg); |
| 386 R visitBoolLiteral(BoolLiteral node, arg) => defaultBasicLiteral(node, arg); | 388 R visitBoolLiteral(BoolLiteral node, T arg) => defaultBasicLiteral(node, arg); |
| 387 R visitNullLiteral(NullLiteral node, arg) => defaultBasicLiteral(node, arg); | 389 R visitNullLiteral(NullLiteral node, T arg) => defaultBasicLiteral(node, arg); |
| 388 R visitLet(Let node, arg) => defaultExpression(node, arg); | 390 R visitLet(Let node, T arg) => defaultExpression(node, arg); |
| 389 R visitLoadLibrary(LoadLibrary node, arg) => defaultExpression(node, arg); | 391 R visitLoadLibrary(LoadLibrary node, T arg) => defaultExpression(node, arg); |
| 390 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node, arg) => | 392 R visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node, T arg) => |
| 391 defaultExpression(node, arg); | 393 defaultExpression(node, arg); |
| 392 R visitVectorCreation(VectorCreation node, arg) => | 394 R visitVectorCreation(VectorCreation node, T arg) => |
| 393 defaultExpression(node, arg); | 395 defaultExpression(node, arg); |
| 394 R visitVectorGet(VectorGet node, arg) => defaultExpression(node, arg); | 396 R visitVectorGet(VectorGet node, T arg) => defaultExpression(node, arg); |
| 395 R visitVectorSet(VectorSet node, arg) => defaultExpression(node, arg); | 397 R visitVectorSet(VectorSet node, T arg) => defaultExpression(node, arg); |
| 396 R visitVectorCopy(VectorCopy node, arg) => defaultExpression(node, arg); | 398 R visitVectorCopy(VectorCopy node, T arg) => defaultExpression(node, arg); |
| 397 R visitClosureCreation(ClosureCreation node, arg) => | 399 R visitClosureCreation(ClosureCreation node, T arg) => |
| 398 defaultExpression(node, arg); | 400 defaultExpression(node, arg); |
| 399 } | 401 } |
| 400 | 402 |
| 401 abstract class StatementVisitor1<R> { | 403 abstract class StatementVisitor1<R, T> { |
| 402 R defaultStatement(Statement node, arg) => null; | 404 R defaultStatement(Statement node, T arg) => null; |
| 403 | 405 |
| 404 R visitInvalidStatement(InvalidStatement node, arg) => | 406 R visitInvalidStatement(InvalidStatement node, T arg) => |
| 405 defaultStatement(node, arg); | 407 defaultStatement(node, arg); |
| 406 R visitExpressionStatement(ExpressionStatement node, arg) => | 408 R visitExpressionStatement(ExpressionStatement node, T arg) => |
| 407 defaultStatement(node, arg); | 409 defaultStatement(node, arg); |
| 408 R visitBlock(Block node, arg) => defaultStatement(node, arg); | 410 R visitBlock(Block node, T arg) => defaultStatement(node, arg); |
| 409 R visitEmptyStatement(EmptyStatement node, arg) => | 411 R visitEmptyStatement(EmptyStatement node, T arg) => |
| 410 defaultStatement(node, arg); | 412 defaultStatement(node, arg); |
| 411 R visitAssertStatement(AssertStatement node, arg) => | 413 R visitAssertStatement(AssertStatement node, T arg) => |
| 412 defaultStatement(node, arg); | 414 defaultStatement(node, arg); |
| 413 R visitLabeledStatement(LabeledStatement node, arg) => | 415 R visitLabeledStatement(LabeledStatement node, T arg) => |
| 414 defaultStatement(node, arg); | 416 defaultStatement(node, arg); |
| 415 R visitBreakStatement(BreakStatement node, arg) => | 417 R visitBreakStatement(BreakStatement node, T arg) => |
| 416 defaultStatement(node, arg); | 418 defaultStatement(node, arg); |
| 417 R visitWhileStatement(WhileStatement node, arg) => | 419 R visitWhileStatement(WhileStatement node, T arg) => |
| 418 defaultStatement(node, arg); | 420 defaultStatement(node, arg); |
| 419 R visitDoStatement(DoStatement node, arg) => defaultStatement(node, arg); | 421 R visitDoStatement(DoStatement node, T arg) => defaultStatement(node, arg); |
| 420 R visitForStatement(ForStatement node, arg) => defaultStatement(node, arg); | 422 R visitForStatement(ForStatement node, T arg) => defaultStatement(node, arg); |
| 421 R visitForInStatement(ForInStatement node, arg) => | 423 R visitForInStatement(ForInStatement node, T arg) => |
| 422 defaultStatement(node, arg); | 424 defaultStatement(node, arg); |
| 423 R visitSwitchStatement(SwitchStatement node, arg) => | 425 R visitSwitchStatement(SwitchStatement node, T arg) => |
| 424 defaultStatement(node, arg); | 426 defaultStatement(node, arg); |
| 425 R visitContinueSwitchStatement(ContinueSwitchStatement node, arg) => | 427 R visitContinueSwitchStatement(ContinueSwitchStatement node, T arg) => |
| 426 defaultStatement(node, arg); | 428 defaultStatement(node, arg); |
| 427 R visitIfStatement(IfStatement node, arg) => defaultStatement(node, arg); | 429 R visitIfStatement(IfStatement node, T arg) => defaultStatement(node, arg); |
| 428 R visitReturnStatement(ReturnStatement node, arg) => | 430 R visitReturnStatement(ReturnStatement node, T arg) => |
| 429 defaultStatement(node, arg); | 431 defaultStatement(node, arg); |
| 430 R visitTryCatch(TryCatch node, arg) => defaultStatement(node, arg); | 432 R visitTryCatch(TryCatch node, T arg) => defaultStatement(node, arg); |
| 431 R visitTryFinally(TryFinally node, arg) => defaultStatement(node, arg); | 433 R visitTryFinally(TryFinally node, T arg) => defaultStatement(node, arg); |
| 432 R visitYieldStatement(YieldStatement node, arg) => | 434 R visitYieldStatement(YieldStatement node, T arg) => |
| 433 defaultStatement(node, arg); | 435 defaultStatement(node, arg); |
| 434 R visitVariableDeclaration(VariableDeclaration node, arg) => | 436 R visitVariableDeclaration(VariableDeclaration node, T arg) => |
| 435 defaultStatement(node, arg); | 437 defaultStatement(node, arg); |
| 436 R visitFunctionDeclaration(FunctionDeclaration node, arg) => | 438 R visitFunctionDeclaration(FunctionDeclaration node, T arg) => |
| 437 defaultStatement(node, arg); | 439 defaultStatement(node, arg); |
| 438 } | 440 } |
| OLD | NEW |